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

3329 lines
164 KiB
C#
Raw Normal View History

2026-02-03 16:00:02 +08:00
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
}
}