3329 lines
164 KiB
C#
3329 lines
164 KiB
C#
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
|
||
|
||
}
|
||
}
|