feixian_weifajianguan/OpenAuth.App/ServiceApp/DroneCaseInfo/DroneCaseInfoApp2.cs

3329 lines
164 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Castle.Core.Internal;
using DocumentFormat.OpenXml.Office2010.Excel;
using DocumentFormat.OpenXml.Spreadsheet;
using Infrastructure;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.Functions;
using OpenAuth.App.Base;
using OpenAuth.App.BasicQueryService;
using OpenAuth.App.Request;
using OpenAuth.App.Response;
using OpenAuth.App.ServiceApp.DroneCaseInfo.Request;
using OpenAuth.App.ServiceApp.Response;
using OpenAuth.App.SysDatabaseLink.Response;
using OpenAuth.Repository;
using OpenAuth.Repository.Domain;
using Org.BouncyCastle.Ocsp;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OpenAuth.App
{
public partial class DroneCaseinfoApp
{
public string AsynchDroneCaseData([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model;
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var _count = db.Queryable<Sugar_Drone_caseinfo>().Where(c => c.Id == model.Id).Count();
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (_count > 0)
{
//已存在此数据,修改数据
db.Updateable(model).UpdateColumns(c => new
{
c.case_name,
c.case_description,
c.address,
c.lng,
c.lat,
c.typeid,
c.typename,
c.drone_no,
c.countyid,
c.countyname,
c.streetid,
c.streetname,
c.communityid,
c.communityname,
c.remark,
c.area,
c.pre_phase_time,
c.later_phase_time,
c.pre_phase_img,
c.later_phase_img,
}).ExecuteCommand();
}
else
{
model.handle_status_id = 0;
model.handle_status_name = "待核查";
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
//新增修改图斑
//先删除,后新增
// db.Deleteable<DroneShpData>().Where(c => c.relid == model.Id).ExecuteCommand();
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
}
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
//if (_count == 0)
//{
// //发送websocket消息
// SendWebSocketMessage(type: "newcase", caseid: model.Id);
// var userAccounts = db.Queryable<Sugar_Relevance>()
// .LeftJoin<Sugar_Users>((r, u) => r.FirstId == u.Id && r.Key == "UserOrg" && r.SecondId == model.communityid)
// .Where((r, u) => !string.IsNullOrEmpty(u.Account))
// .Select((r, u) => u.Account)
// .ToList();
// userAccounts = userAccounts.Distinct().ToList();
// _pushService.SendPushNotification(model.case_no, model.case_description, userAccounts);
//}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public async Task<string> AsynchDroneCaseDataNew([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
string result = "同步成功";
if (req.model.typename == "部级矿产卫片图斑" || req.model.typename == "省级矿产卫片图斑")
{
result = AsynchDroneCaseDataKC(req);
if (result != "同步成功")
{
return "同步失败";
}
var scode = _configuration.GetSection("AppSetting:DroneCaseInfoSatelliteSchemeCode").Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
}
return result;
}
else if (req.model.typename == "加工" || req.model.typename == "开采")
{
result = AsynchDroneCaseDataCK(req);
if (result != "同步成功")
{
return "同步失败";
}
var scode = _configuration.GetSection("AppSetting:DroneCaseInfoMineralsSchemeCode").Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
}
return result;
}
else if (req.model.typename == "重点问题1类")
{
result = AsynchDroneCaseDataZdwt1(req);
//if (result != "同步成功")
//{
// return "同步失败";
//}
//var scode = _configuration.GetSection("AppSetting:DroneCaseInfoZdwt1SchemeCode").Value;
//var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
//var schemeId = schemeInfo?.SchemeId;
//var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
//if (flag.Result)
//{
// var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
//}
return result;
}
else if (req.model.typename == "重点问题2类")
{
result = AsynchDroneCaseDataZdwt2(req);
//if (result != "同步成功")
//{
// return "同步失败";
//}
//var scode = _configuration.GetSection("AppSetting:DroneCaseInfoZdwt2SchemeCode").Value;
//var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
//var schemeId = schemeInfo?.SchemeId;
//var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
//if (flag.Result)
//{
// var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
//}
return result;
}
else if (req.model.typename == "巡察审计")
{
result = AsynchDroneCaseDataXcsj(req);
if (result != "同步成功")
{
return "同步失败";
}
var scode = _configuration.GetSection("AppSetting:DroneCaseInfoXcsjSchemeCode").Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
}
return result;
}
else if (req.model.typename == "生态修复图斑")
{
result = AsynchDroneCaseDataSTXFOld(req);
if (result != "同步成功")
{
return "同步失败";
}
var scode = _configuration.GetSection("AppSetting:DroneCaseInfoSTXFSchemeCode").Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
}
return result;
}
else if (req.model.typename == "生态保护红线")
{
result = AsynchDroneCaseDataSTHXOld(req);
if (result != "同步成功")
{
return "同步失败";
}
var scode = _configuration.GetSection("AppSetting:DroneCaseInfoSTHXSchemeCode").Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
}
return result;
}
else
{
result = AsynchDroneCaseDataWfyd(req);
if (result != "同步成功")
{
return "同步失败";
}
var scode = _configuration.GetSection("AppSetting:SchemeCode").Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(req.model.Id, scode, req.model.createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", null, null, null, 0, (req.model.case_description));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(req.model.Id, null, req.model.createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + req.model.Id + "\"}", (req.model.case_description));
}
return result;
}
}
/// <summary>
/// 同步违法用地
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataWfyd(AddOrUpdateAsyncDroneCaseDataReq req)
{
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoSingle>().Where(c => c.Id == req.model.Id).First();
if (oldinfo != null)
{
return "数据已存在";
}
//案件
var model = req.model.MapTo<DroneCaseInfoSingle>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = geomid.Substring(0, geomid.Length - 1);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
model.nongyongdi_area = req.model.nongyongdi_area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
model.gengdi_area = req.model.gengdi_area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? "0" : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
//已存在此数据,修改数据
db.Updateable(model).UpdateColumns(c => new
{
c.case_name,
c.case_description,
c.address,
c.lng,
c.lat,
c.typeid,
c.typename,
c.drone_no,
c.countyid,
c.countyname,
c.streetid,
c.streetname,
c.communityid,
c.communityname,
c.remark,
c.area,
c.nongyongdi_area,
c.gengdi_area,
c.yongjiujibennongtian_area,
c.zhongdianquyu_area,
c.shengtaibaohuhongxian_area,
c.guotukongjianguihua_area,
//c.pre_phase_time,
//c.later_phase_time,
//c.pre_phase_img,
//c.later_phase_img,
c.geomid,
c.casepic
}).ExecuteCommand();
}
else
{
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.is_illegal = 1;//默认为违法
model.original_case_no = req.model.case_no;
var prefix = db.Queryable<SysDataItemDetail>()
.Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.Queryable<DroneCaseInfoSingle>().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
//新增修改图斑
//先删除,后新增
//db.Deleteable<DroneShpData>().Where(c => c.relid == model.Id).ExecuteCommand();
//var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
//int _gid = int.Parse(_gidStr);
//for (int i = 0; i < shps.Count; i++)
//{
// var _item = shps[i];
// _item.gid = _gid + i;
//}
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataWfydNew(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSingle>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据根据orgcaseno判断如果有并且已经生成流程的禁止修改
var oldinfo = db.DroneCaseInfoSingle.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == model.case_no && a.SubjectKey == "Subject_WFYD");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
//model.synchronoustime = DateTime.Now;
#endregion
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.is_illegal = 1;//默认为违法
model.original_case_no = req.model.case_no;
//var prefix = db.SysDataItemDetail.AsQueryable().Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix ?? "FN";
//Random random = new Random();
//string caseno;
//bool isUnique;
//do
//{
// caseno = "FN" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
// var count = db.DroneCaseInfoSingle.AsQueryable().Where(c => c.case_no == caseno).Count();
// isUnique = count == 0;
//} while (!isUnique);
if (oldinfo != null)//如果是复提的案件,图斑不删除,只新增
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
db.DroneCaseInfoSingle.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_WFYD");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
model.case_no = "";
//model.case_no = caseno;
//新增数据
db.DroneCaseInfoSingle.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => { r.caseid = model.Id; });
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return model.Id;
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 同步矿产
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataKC(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSatellite>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoSatellite>().Where(c => c.Id == model.Id).First();
if (oldinfo != null)
{
return "数据已存在";
//if (!string.IsNullOrEmpty(oldinfo.geomid))
//{
// var geomids = new List<string>(oldinfo.geomid.Split(",")).ConvertAll(r => long.Parse(r));
// db.Deleteable<DroneShpData>().Where(c => geomids.Contains(c.gid)).ExecuteCommand();
//}
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = geomid.Substring(0, geomid.Length - 1);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
//已存在此数据,修改数据
db.Updateable(model).UpdateColumns(c => new
{
c.case_name,
c.case_description,
c.address,
c.lng,
c.lat,
c.typeid,
c.typename,
c.drone_no,
c.countyid,
c.countyname,
c.streetid,
c.streetname,
c.communityid,
c.communityname,
c.remark,
c.area,
c.nongyongdi_area,
c.gengdi_area,
c.yongjiujibennongtian_area,
c.zhongdianquyu_area,
c.shengtaibaohuhongxian_area,
c.guotukongjianguihua_area,
//c.pre_phase_time,
//c.later_phase_time,
//c.pre_phase_img,
//c.later_phase_img,
c.geomid,
c.casepic
}).ExecuteCommand();
}
else
{
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.is_illegal = 1;//默认为违法
model.original_case_no = req.model.case_no;
var prefix = db.Queryable<SysDataItemDetail>()
.Where(r => r.ItemName == req.model.typename).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.Queryable<DroneCaseInfoSatellite>().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
//新增修改图斑
//先删除,后新增
//db.Deleteable<DroneShpData>().Where(c => c.relid == model.Id).ExecuteCommand();
//var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
//int _gid = int.Parse(_gidStr);
//for (int i = 0; i < shps.Count; i++)
//{
// var _item = shps[i];
// _item.gid = _gid + i;
//}
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataKCNew(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSatellite>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoSatellite.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.is_illegal = 1;//默认为违法
model.original_case_no = req.model.case_no;
//var prefix = db.SysDataItemDetail.AsQueryable().Where(r => r.ItemName == req.model.typename).First()?.Prefix ?? "KC";
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = "FN" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoSatellite.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
if (oldinfo != null)//如果是复提的案件,图斑不删除,只新增
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
db.DroneCaseInfoSatellite.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
else
{
model.case_no = caseno;
//新增数据
db.DroneCaseInfoSatellite.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataCK(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model.MapTo<DroneCaseInfoMinerals>();
model.centerlng_base = req.model.lng.ToString();
model.centerlat_base = req.model.lat.ToString();
//model.weifaarea_base = req.model.area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
model.weifaarea_base = req.model.area;
model.gengdi_area = req.model.gengdi_area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
model.jbntarea_base = req.model.yongjiujibennongtian_area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.qianshixiang_base = req.model.pre_phase_img == null ? "" : req.model.pre_phase_img.ToString();
model.houshixiang_base = req.model.later_phase_img == null ? "" : req.model.later_phase_img.ToString();
model.stbhhxarea_base = req.model.shengtaibaohuhongxian_area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.original_case_no = req.model.case_no;
var mininfo = Newtonsoft.Json.JsonConvert.DeserializeObject<MineralsInfo>(req.model.mineralsinfo);
model.kaicaizhuti_kcfill = mininfo.kaicaizhuti_kcfill;
model.syear_base = mininfo.syear_base;
model.danweiname_jgzhg = mininfo.danweiname_jgzhg;
//model.zhongdianflag_base = mininfo.zhongdianflag_base;
//model.ziranbaohuflag_base = mininfo.ziranbaohuflag_base;
//model.ziranbaohuname_base = mininfo.ziranbaohuname_base;
//model.weifakaicaiarea_base = mininfo.weifakaicaiarea_base == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(mininfo.weifakaicaiarea_base)).ToString();
//model.cskfbjarea_base = mininfo.cskfbjarea_base == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(mininfo.cskfbjarea_base)).ToString();
//model.tudiliyongflag_base = mininfo.tudiliyongflag_base;
//model.shejichanneng_base = mininfo.shejichanneng_base;
//model.weifazhandiarea_base = mininfo.weifazhandiarea_base == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(mininfo.weifazhandiarea_base)).ToString();
//model.chulishixian_base = mininfo.chulishixian_base;
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoMinerals>().Where(c => c.Id == model.Id).First();
if (oldinfo != null)
{
return "数据已存在";
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = string.IsNullOrEmpty(geomid) ? "" : geomid.Substring(0, geomid.Length - 1);
model.xiafatime_base = DateTime.Now;
//图片
model.tubanpic_base = files != null ? string.Join(',', files.Select(r => r.path)) : null;
////平方米转化
//model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
//model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
}
else
{
//model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 1;
//model.handle_status_name = "待接收";
//model.is_illegal = 1;//默认为违法
//model.original_case_no = req.model.case_no;
var prefix = db.Queryable<SysDataItemDetail>()
.Where(r => r.ItemName == req.model.typename).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = (string.IsNullOrEmpty(prefix) ? "KC" : prefix) + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.Queryable<DroneCaseInfoMinerals>().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
//新增修改图斑
//先删除,后新增
//db.Deleteable<DroneShpData>().Where(c => c.relid == model.Id).ExecuteCommand();
//var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
//int _gid = int.Parse(_gidStr);
//for (int i = 0; i < shps.Count; i++)
//{
// var _item = shps[i];
// _item.gid = _gid + i;
//}
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
//需要放开
//AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 采矿
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataCKNew(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoMinerals>();
model.centerlng_base = req.model.lng.ToString();
model.centerlat_base = req.model.lat.ToString();
model.weifaarea_base = req.model.area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
// model.gengdi_area = req.model.gengdi_area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
// model.jbntarea_base = req.model.yongjiujibennongtian_area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.qianshixiang_base = req.model.pre_phase_img == null ? "" : req.model.pre_phase_img.ToString();
model.houshixiang_base = req.model.later_phase_img == null ? "" : req.model.later_phase_img.ToString();
//model.stbhhxarea_base = req.model.shengtaibaohuhongxian_area == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.original_case_no = req.model.case_no;
model.typename = null;
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
if (string.IsNullOrEmpty(gengdi_area?.ToString()))
{
model.gengdi_area = "0.00";
}
else
{
model.gengdi_area = ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
// model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString()) == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.extra_info["gengdi_area"].ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var jbntarea_base))
{
if (string.IsNullOrEmpty(jbntarea_base?.ToString()))
{
model.jbntarea_base = "0.00";
}
else
{
model.jbntarea_base = ConvertSquareMetersToMu(double.Parse(jbntarea_base.ToString())).ToString();
}
}
//if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
//{
// model.jbntarea_base = string.IsNullOrEmpty(nongyongdi_area?.ToString())
// ? "0.00"
// : ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
//}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var stbhhxarea_base))
{
if (string.IsNullOrEmpty(stbhhxarea_base?.ToString()))
{
model.stbhhxarea_base = "0.00";
}
else
{
model.stbhhxarea_base = ConvertSquareMetersToMu(double.Parse(stbhhxarea_base.ToString())).ToString();
}
//model.stbhhxarea_base = stbhhxarea_base == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.extra_info["stbhhxarea_base"].ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("kaicaizhuti_kcfill", out var kcfill))
{
model.kaicaizhuti_kcfill = kcfill == null ? null : kcfill.ToString();
}
if (req.model.extra_info.TryGetValue("syear_base", out var syearBase))
{
model.syear_base = syearBase == null ? DateTime.Now.Year.ToString() : syearBase.ToString();
}
if (req.model.extra_info.TryGetValue("danweiname_jgzhg", out var danweiName))
{
model.danweiname_jgzhg = danweiName == null ? null : danweiName.ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianflag_base", out var zhongdianFlag))
{
model.zhongdianflag_base = zhongdianFlag == null ? null : zhongdianFlag.ToString();
}
if (req.model.extra_info.TryGetValue("ziranbaohuflag_base", out var ziranbaohuFlag))
{
model.ziranbaohuflag_base = ziranbaohuFlag == null ? null : ziranbaohuFlag.ToString();
}
if (req.model.extra_info.TryGetValue("ziranbaohuname_base", out var ziranbaohuName))
{
model.ziranbaohuname_base = ziranbaohuName == null ? null : ziranbaohuName.ToString();
}
if (req.model.extra_info.TryGetValue("weifakaicaiarea_base", out var weifaKaicaiarea))
{
if (string.IsNullOrEmpty(weifaKaicaiarea?.ToString()))
{
model.weifakaicaiarea_base = "0.00";
}
else
{
model.weifakaicaiarea_base = ConvertSquareMetersToMu(double.Parse(weifaKaicaiarea.ToString())).ToString();
}
//model.weifakaicaiarea_base = weifaKaicaiarea == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.extra_info["weifakaicaiarea_base"].ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("cskfbjarea_base", out var cskfbjArea))
{
if (string.IsNullOrEmpty(cskfbjArea?.ToString()))
{
model.cskfbjarea_base = "0.00";
}
else
{
model.cskfbjarea_base = ConvertSquareMetersToMu(double.Parse(cskfbjArea.ToString())).ToString();
}
//model.cskfbjarea_base = cskfbjArea == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.extra_info["cskfbjarea_base"].ToString())).ToString(); ;
}
if (req.model.extra_info.TryGetValue("tudiliyongflag_base", out var tudiliyongFlag))
{
model.tudiliyongflag_base = tudiliyongFlag == null ? null : tudiliyongFlag.ToString();
}
if (req.model.extra_info.TryGetValue("shejichanneng_base", out var shejiChanneng))
{
model.shejichanneng_base = shejiChanneng == null ? null : decimal.Parse(req.model.extra_info["shejichanneng_base"].ToString());
}
if (req.model.extra_info.TryGetValue("weifazhandiarea_base", out var weifazhandiArea))
{
if (string.IsNullOrEmpty(weifazhandiArea?.ToString()))
{
model.weifazhandiarea_base = "0.00";
}
else
{
model.weifazhandiarea_base = ConvertSquareMetersToMu(double.Parse(weifazhandiArea.ToString())).ToString();
}
//model.weifazhandiarea_base = weifazhandiArea == null ? "0.00" : ConvertSquareMetersToMu(double.Parse(req.model.extra_info["weifazhandiarea_base"].ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("chulishixian_base", out var chulishiXian))
{
model.chulishixian_base = chulishiXian == null ? null : DateTime.Parse(req.model.extra_info["chulishixian_base"].ToString());
}
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoMinerals.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == model.case_no && a.SubjectKey == "Subject_FFCK");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
model.geomid = ProcessShps(shps);
model.xiafatime_base = DateTime.Now;
//图片
model.tubanpic_base = files != null ? string.Join(',', files.Select(r => r.path)) : null;
////平方米转化
//model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
//model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 1;
//model.handle_status_name = "待接收";
//model.is_illegal = 1;//默认为违法
//model.original_case_no = req.model.case_no;
// var prefix = db.SysDataItemDetail.AsQueryable().Where(r => r.ItemName == req.model.typename).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = "KC" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoMinerals.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
db.DroneCaseInfoMinerals.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_FFCK");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
//新增数据
db.DroneCaseInfoMinerals.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_user, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 重点问题1
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataZdwt1(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model.MapTo<DroneCaseInfoZdwt1>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoZdwt1>().Where(c => c.Id == model.Id).First();
if (oldinfo != null)
{
return "数据已存在";
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = geomid.Substring(0, geomid.Length - 1);
model.original_case_no = req.model.case_no;
model.synchronoustime = null;
//图片
//model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
////平方米转化
//model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
//model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
}
else
{
model.handle_status_id = 0;
model.handle_status_name = "待接收";
//var prefix = db.Queryable<SysDataItemDetail>()
// .Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = "WJ" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.Queryable<DroneCaseInfoZdwt1>().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataZdwt1New(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoZdwt1>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoZdwt1.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == model.case_no && a.SubjectKey == "Subject_ZDWT1");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.original_case_no = req.model.case_no;
model.typename = "重点问题Ⅰ类";
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = "WJ" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoZdwt1.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
//新增数据
db.DroneCaseInfoZdwt1.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_ZDWT1");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
//新增数据
db.DroneCaseInfoZdwt1.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 重点问题2
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataZdwt2(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model.MapTo<DroneCaseInfoZdwt2>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoZdwt2>().Where(c => c.Id == model.Id).First();
if (oldinfo != null)
{
return "数据已存在";
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = geomid.Substring(0, geomid.Length - 1);
model.original_case_no = req.model.case_no;
//图片
//model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
////平方米转化
//model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
}
else
{
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = "WJ" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.Queryable<DroneCaseInfoZdwt1>().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataZdwt2New(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoZdwt2>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoZdwt2.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == model.case_no && a.SubjectKey == "Subject_ZDWT2");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.original_case_no = req.model.case_no;
model.typename = "重点问题Ⅱ类";
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = "WJ" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoZdwt2.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
//新增数据
db.DroneCaseInfoZdwt2.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_ZDWT2");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
//新增数据
db.DroneCaseInfoZdwt2.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 巡察审计
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataXcsj(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model.MapTo<DroneCaseInfoXcsj>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoXcsj>().Where(c => c.Id == model.Id).First();
if (oldinfo != null)
{
return "数据已存在";
//if (!string.IsNullOrEmpty(oldinfo.geomid))
//{
// var geomids = new List<string>(oldinfo.geomid.Split(",")).ConvertAll(r => long.Parse(r));
// db.Deleteable<DroneShpData>().Where(c => geomids.Contains(c.gid)).ExecuteCommand();
//}
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = geomid.Substring(0, geomid.Length - 1);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
}
else
{
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.original_case_no = req.model.case_no;
model.case_no = req.model.case_no;
//var prefix = db.Queryable<SysDataItemDetail>()
// .Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix;
//Random random = new Random();
//string caseno;
//bool isUnique;
////string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
//do
//{
// caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
// var count = db.Queryable<DroneCaseInfoSingle>().Where(c => c.case_no == caseno).Count();
// isUnique = count == 0;
//} while (!isUnique);
//model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
//新增修改图斑
//先删除,后新增
//db.Deleteable<DroneShpData>().Where(c => c.relid == model.Id).ExecuteCommand();
//var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
//int _gid = int.Parse(_gidStr);
//for (int i = 0; i < shps.Count; i++)
//{
// var _item = shps[i];
// _item.gid = _gid + i;
//}
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataXcsjNew(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoXcsj>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoXcsj.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == model.case_no && a.SubjectKey == "Subject_XCSJ");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.typename = "巡察审计";
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
model.synchronoustime = DateTime.Now;
//model.tubanlaiyuan = string.IsNullOrEmpty(req.model.tubanlaiyuan) ? "全域巡查" : req.model.tubanlaiyuan;
#endregion
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.original_case_no = req.model.case_no;
//model.case_no = req.model.case_no;
//var prefix = db.Queryable<SysDataItemDetail>()
// .Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoXcsj.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
//新增数据
db.DroneCaseInfoXcsj.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_XCSJ");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
//新增数据
db.DroneCaseInfoXcsj.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataSTXFOld(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSTXF>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.original_case_no = req.model.case_no;
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area;
model.synchronoustime = DateTime.Now;
#endregion
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoSTXF.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.DroneCaseInfoSTXF.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; });
db.DroneFiles.InsertRange(files);
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 同步非粮化
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataFLH([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext().Db.CopyNew())
{
//案件
var model = req.model.MapTo<DroneCaseInfoFLH>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.Queryable<DroneCaseInfoFLH>().Where(c => c.Id == model.Id).First();
if (oldinfo != null)
{
if (!string.IsNullOrEmpty(oldinfo.geomid))
{
var geomids = new List<string>(oldinfo.geomid.Split(",")).ConvertAll(r => long.Parse(r));
db.Deleteable<DroneShpData>().Where(c => geomids.Contains(c.gid)).ExecuteCommand();
}
}
#region 案件资料处理
//图斑
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
string geomid = "";
for (int i = 0; i < shps.Count; i++)
{
var _item = shps[i];
_item.gid = _gid + i;
geomid += _item.gid + ",";
}
model.geomid = geomid.Substring(0, geomid.Length - 1);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
model.tubanlaiyuan = "全域巡查";
#endregion
//使用事务提交数据
var transFlag = db.UseTran(() =>
{
if (oldinfo != null)
{
//已存在此数据,修改数据
db.Updateable(model).UpdateColumns(c => new
{
c.case_name,
c.case_description,
c.address,
c.lng,
c.lat,
c.typeid,
c.typename,
c.drone_no,
c.countyid,
c.countyname,
c.streetid,
c.streetname,
c.communityid,
c.communityname,
c.remark,
c.area,
c.nongyongdi_area,
c.gengdi_area,
c.yongjiujibennongtian_area,
c.zhongdianquyu_area,
c.shengtaibaohuhongxian_area,
c.guotukongjianguihua_area,
//c.pre_phase_time,
//c.later_phase_time,
//c.pre_phase_img,
//c.later_phase_img,
c.geomid,
c.casepic
}).ExecuteCommand();
}
else
{
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.is_illegal = 1;//默认为违法
model.original_case_no = req.model.case_no;
var prefix = db.Queryable<SysDataItemDetail>()
.Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix;
Random random = new Random();
string caseno;
bool isUnique;
//string caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
do
{
caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.Queryable<DroneCaseInfoFLH>().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.Insertable(model).ExecuteCommand();
}
if (!string.IsNullOrEmpty(model.Id))
{
//新增修改图斑
//先删除,后新增
//db.Deleteable<DroneShpData>().Where(c => c.relid == model.Id).ExecuteCommand();
//var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
//int _gid = int.Parse(_gidStr);
//for (int i = 0; i < shps.Count; i++)
//{
// var _item = shps[i];
// _item.gid = _gid + i;
//}
db.Insertable(shps).ExecuteCommand();
//新增修改图片
//先删除,后新增
db.Deleteable<DroneFiles>().Where(c => c.relid == model.Id).ExecuteCommand();
db.Insertable(files).ExecuteCommand();
//关联案件
db.Deleteable<DroneCaseInfoRelation>().Where(c => c.caseid == model.Id).ExecuteCommand();
db.Insertable(relations).ExecuteCommand();
//案件标签
db.Deleteable<DroneCaseInfoTag>().Where(a => a.caseid == model.Id).ExecuteCommand();
db.Insertable(tags).ExecuteCommand();
}
});
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (transFlag.IsSuccess)
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataFLHNew([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoFLH>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoFLH.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == model.case_no && a.SubjectKey == "Subject_GDFLH");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
//model.nongyongdi_area = req.model.nongyongdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.nongyongdi_area)).ToString();
//model.gengdi_area = req.model.gengdi_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.gengdi_area)).ToString();
//model.yongjiujibennongtian_area = req.model.yongjiujibennongtian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.yongjiujibennongtian_area)).ToString();
//model.zhongdianquyu_area = req.model.zhongdianquyu_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.zhongdianquyu_area)).ToString();
//model.shengtaibaohuhongxian_area = req.model.shengtaibaohuhongxian_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.shengtaibaohuhongxian_area)).ToString();
//model.guotukongjianguihua_area = req.model.guotukongjianguihua_area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.guotukongjianguihua_area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
#endregion
model.address = model.countyname + " " + model.streetname + " " + model.communityname;
model.handle_status_id = 0;
model.handle_status_name = "待接收";
model.is_illegal = 1;//默认为违法
model.original_case_no = req.model.case_no;
model.synchronoustime = DateTime.Now;
//var prefix = db.SysDataItemDetail.AsQueryable().Where(r => r.ItemDetailId == req.model.typeid).First()?.Prefix ?? "FN";
//Random random = new Random();
//string caseno;
//bool isUnique;
//do
//{
// caseno = prefix + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
// var count = db.DroneCaseInfoFLH.AsQueryable().Where(c => c.case_no == caseno).Count();
// isUnique = count == 0;
//} while (!isUnique);
//model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
//新增数据
db.DroneCaseInfoFLH.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_GDFLH");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
model.case_no = "";
//新增数据
db.DroneCaseInfoFLH.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
public string AsynchDroneCaseDataSTHXOld(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSTHX>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.original_case_no = req.model.case_no;
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area;
model.synchronoustime = DateTime.Now;
#endregion
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = "STHX" + req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoSTHX.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
//新增数据
db.DroneCaseInfoSTHX.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
//files.ForEach(r => { r.relid = model.Id; });
//db.DroneFiles.InsertRange(files);
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 生态红线
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataSTHX(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSTHX>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoSTHX.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == req.model.case_no && a.SubjectKey == "Subject_STBHHXJG");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.original_case_no = req.model.case_no;
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
model.synchronoustime = DateTime.Now;
#endregion
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoSTHX.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
//新增数据
db.DroneCaseInfoSTHX.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_ZDWT2");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
//新增数据
db.DroneCaseInfoSTHX.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
/// <summary>
/// 生态修复
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public string AsynchDroneCaseDataSTXF(AddOrUpdateAsyncDroneCaseDataReq req)
{
using (var db = base.UnitWork.CreateContext())
{
//案件
var model = req.model.MapTo<DroneCaseInfoSTXF>();
//文件
var files = req.files;
//shp
var shps = req.shps;
//关联案件
var relations = req.relations;
//案件标签
var tags = req.tags;
//查询是否存在此数据
var oldinfo = db.DroneCaseInfoSTXF.AsQueryable().Where(c => c.original_case_no == model.case_no).First();
if (oldinfo != null && db.WFProcess.AsQueryable().Where(r => r.Id == oldinfo.Id).Count() > 0)
{
throw new Exception("数据已存在");
}
//存在旧数据并且复提表中没有复提数据,不允许复提
var resubmitInfo = db.ReSubmit.GetFirst(a => a.CaseNo == req.model.case_no && a.SubjectKey == "Subject_STXF");
if (oldinfo != null && resubmitInfo == null)
{
throw new Exception("未发现复提请求");
}
if (string.IsNullOrEmpty(req.model.tubanlaiyuan))
{
throw new Exception("图斑来源不能为空");
}
#region 案件资料处理
model.original_case_no = req.model.case_no;
//图斑
model.geomid = ProcessShps(shps);
//图片
model.casepic = files != null ? string.Join(',', files.Select(r => r.path)) : null;
//平方米转化
model.area = req.model.area == null ? null : ConvertSquareMetersToMu(double.Parse(req.model.area)).ToString();
if (req.model.extra_info.TryGetValue("nongyongdi_area", out var nongyongdi_area))
{
model.nongyongdi_area = string.IsNullOrEmpty(nongyongdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(nongyongdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("gengdi_area", out var gengdi_area))
{
model.gengdi_area = string.IsNullOrEmpty(gengdi_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(gengdi_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("yongjiujibennongtian_area", out var yongjiujibennongtian_area))
{
model.yongjiujibennongtian_area = string.IsNullOrEmpty(yongjiujibennongtian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(yongjiujibennongtian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("zhongdianquyu_area", out var zhongdianquyu_area))
{
model.zhongdianquyu_area = string.IsNullOrEmpty(zhongdianquyu_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(zhongdianquyu_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("shengtaibaohuhongxian_area", out var shengtaibaohuhongxian_area))
{
model.shengtaibaohuhongxian_area = string.IsNullOrEmpty(shengtaibaohuhongxian_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(shengtaibaohuhongxian_area.ToString())).ToString();
}
if (req.model.extra_info.TryGetValue("guotukongjianguihua_area", out var guotukongjianguihua_area))
{
model.guotukongjianguihua_area = string.IsNullOrEmpty(guotukongjianguihua_area?.ToString())
? "0.00"
: ConvertSquareMetersToMu(double.Parse(guotukongjianguihua_area.ToString())).ToString();
}
model.synchronoustime = DateTime.Now;
#endregion
model.handle_status_id = 0;
model.handle_status_name = "待接收";
Random random = new Random();
string caseno;
bool isUnique;
do
{
caseno = req.model.countyid + DateTime.Now.ToString("yyyyMMdd") + random.Next(1000, 9999).ToString();
var count = db.DroneCaseInfoSTXF.AsQueryable().Where(c => c.case_no == caseno).Count();
isUnique = count == 0;
} while (!isUnique);
model.case_no = caseno;
if (oldinfo != null)
{
model.Id = oldinfo.Id;
model.case_no = oldinfo.case_no;
//新增数据
db.DroneCaseInfoSTXF.Update(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
relations.ForEach(r => r.caseid = model.Id);
tags.ForEach(r => r.caseid = model.Id);
db.DroneShpData.Delete(c => c.relid == model.Id);
db.DroneShpData.InsertRange(shps);
//新增及删除图片
db.DroneFiles.Delete(r => r.relid == model.Id);
db.DroneFiles.InsertRange(files);
//关联案件
db.DroneCaseInfoRelation.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
db.DroneCaseInfoTag.Delete(r => r.caseid == model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
//删除复提数据
db.ReSubmit.Delete(r => r.CaseNo == model.original_case_no && r.SubjectKey == "Subject_ZDWT2");
}
}
else
{
model.Id = Guid.NewGuid().ToString();
//新增数据
db.DroneCaseInfoSTXF.Insert(model);
if (!string.IsNullOrEmpty(model.Id))
{
shps.ForEach(r => r.relid = model.Id);
db.DroneShpData.InsertRange(shps);
//新增修改图片
files.ForEach(r => { r.relid = model.Id; r.Id = Guid.NewGuid().ToString(); });
db.DroneFiles.InsertRange(files);
//关联案件
relations.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoRelation.InsertRange(relations);
//案件标签
tags.ForEach(r => r.caseid = model.Id);
db.DroneCaseInfoTag.InsertRange(tags);
}
}
AddDroneCaseLog(new DroneCaseOperationLog { request_data = Json.ToJson(req), description = "AsynchDroneCaseData", caseid = model.Id, createuserid = model.identification_userid, createusername = model.identification_user });
if (db.Commit())
{
return "同步成功";
}
else
throw new Exception("同步失败");
}
}
static double ConvertSquareMetersToMu(double squareMeters)
{
// 1 亩 = 666.6667 平方米
double mu = squareMeters * 0.0015;
// 四舍五入保留两位小数
return Math.Round(mu, 2);
}
private string ProcessShps(List<DroneShpData> shps)
{
var _gidStr = _commonDataManager.GetMaxKeyVal("gid", "drone_shp_data", 1);
int _gid = int.Parse(_gidStr);
var geomid = string.Join(",", shps.Select((item, index) =>
{
item.gid = _gid + index;
return item.gid.ToString();
}));
return geomid;
}
#region 查询未发起流程的案件信息
public Response<List<View_CaseNoProcess>> LoadNoProcess()
{
var caseList = client.Queryable<View_CaseNoProcess>().ToList();
return new Response<List<View_CaseNoProcess>>()
{
Code = 200,
Result = caseList
};
}
#endregion
#region 新版数据同步
public async Task<string> AsynchDroneCaseDataLast([FromBody] AddOrUpdateAsyncDroneCaseDataReq req)
{
string result = "同步成功";
string fail = "";
foreach (var s in req.subjects)
{
if (!string.IsNullOrEmpty(s.Key))
{
switch (s.Key)
{
case "Subject_WFYD":
//drone_caseinfo_single
var wfydid = AsynchDroneCaseDataWfydNew(req);
if (!string.IsNullOrEmpty(wfydid))
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:SchemeCode", wfydid, req.model.createusername, req.model.case_description))
{
fail += "违法用地专题,";
}
}
else
{
fail += "违法用地专题,";
}
break;
case "Subject_GDFLH":
//drone_caseinfo_gdflh
var flhid = AsynchDroneCaseDataFLHNew(req);
if (!string.IsNullOrEmpty(flhid))
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoNonFoodSchemeCode", flhid, req.model.createusername, req.model.case_description))
{
fail += "耕地非粮化专题,";
}
}
else
{
fail += "耕地非粮化专题,";
}
break;
case "Subject_FFCK":
//drone_caseinfo_minerals
var ffckid = AsynchDroneCaseDataCKNew(req);
if (!string.IsNullOrEmpty(ffckid))
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoMineralsSchemeCode", ffckid, req.model.createusername, req.model.case_description))
{
fail += "非法采矿专题,";
}
}
else
{
fail += "非法采矿专题,";
}
break;
case "Subject_XCSJ":
//drone_caseinfo_xcsj
var xcsjid = AsynchDroneCaseDataXcsjNew(req);
if (!string.IsNullOrEmpty(xcsjid))
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoXcsjSchemeCode", xcsjid, req.model.createusername, req.model.case_description))
{
fail += "巡察审计专题,";
}
}
else
{
fail += "巡察审计专题,";
}
break;
case "Subject_ZDWT1":
//drone_caseinfo_zdwt1
var zdwt1id = AsynchDroneCaseDataZdwt1New(req);
if (!string.IsNullOrEmpty(zdwt1id))
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoZdwt1SchemeCode", zdwt1id, req.model.createusername, req.model.case_description))
{
fail += "重点问题Ⅰ类专题,";
}
}
else
{
fail += "重点问题Ⅰ类专题,";
}
break;
case "Subject_ZDWT2":
//drone_caseinfo_zdwt2
var zdwt2id = AsynchDroneCaseDataZdwt2New(req);
if (!string.IsNullOrEmpty(zdwt2id))
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoZdwt2SchemeCode", zdwt2id, req.model.createusername, req.model.case_description))
{
fail += "重点问题Ⅱ类专题,";
}
}
else
{
fail += "重点问题Ⅱ类专题,";
}
break;
case "Subject_STBHHXJG":
//drone_caseinfo_sthx
if (AsynchDroneCaseDataSTHX(req) == "同步成功")
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoSTHXSchemeCode", req.model.Id, req.model.createusername, req.model.case_description))
{
fail += "生态保护红线专题,";
}
}
else
{
fail += "生态保护红线专题,";
}
break;
case "Subject_STXF":
//drone_caseinfo_stxf
if (AsynchDroneCaseDataSTXF(req) == "同步成功")
{
if (s.IsAutoProcess == true && !await CreateProcess("AppSetting:DroneCaseInfoSTXFSchemeCode", req.model.Id, req.model.createusername, req.model.case_description))
{
fail += "生态修复专题,";
}
}
else
{
fail += "生态修复专题,";
}
break;
}
}
}
// 如果 fail 不为空,返回失败信息,否则返回 "同步成功"
if (!string.IsNullOrEmpty(fail))
{
result = $"同步失败,以下专题失败: {fail.TrimEnd(',')}";
}
return result;
}
private async Task<bool> CreateProcess(string schemecode, string id, string createusername, string casedec)
{
var scode = _configuration.GetSection(schemecode).Value;
var schemeInfo = await client.Queryable<WFSchemeInfo>().FirstAsync(a => a.Code == scode);
var schemeId = schemeInfo?.SchemeId;
var flag = await _wfProcessApp.SaveDraftWithUser(id, scode, createusername, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + id + "\"}", null, null, null, 0, (casedec));
if (flag.Result)
{
var createFlag = await _wfProcessApp.CreateWithUser(id, null, createusername, null, "{\"schemeId\":\"" + schemeId + "\",\"pkey\":\"Id\",\"pkeyValue\":\"" + id + "\"}", (casedec));
if (createFlag.Result)
{
return true;
}
}
return false;
}
#endregion
}
}