using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using System.Xml;
using DSWeb.SoftMng.BLL;
using DSWeb.SoftMng.DAL;
using DSWeb.SoftMng.Model;
using DSWeb.SoftMng.XmlHelper;
using DSWeb.TruckMng.Helper;
using DSWeb.TruckMng.Comm.Cookie;
using DSWeb.MvcShipping.DAL.MsSysBillNoSet;
using HcUtility.Comm;
using Newtonsoft.Json.Linq;
using DSWeb.Areas.MvcShipping.Comm;
using DSWeb.MvcShipping.DAL.MsOpApplyDAL;
using DSWeb.MvcShipping.Models.MsOpApply;
using DSWeb.MvcShipping.Models.MsOpApply_BOSH383;
using DSWeb.MvcShipping.Models.MsOpApply_BOSH385;
using DSWeb.Areas.MvcShipping.DB;
using System.Text.RegularExpressions;
using HcUtility.Core;
using DSWeb.MvcShipping.DAL.MsSysParamSet;
using Microsoft.Practices.EnterpriseLibrary.Data;
using DSWeb.MvcShipping.DAL.MsOpSeaiDAL;
using DSWeb.MvcShipping.DAL.MsCodeSgAuditRule;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.XPath;
using DSWeb.Areas.CommMng.DAL;
using DSWeb.Common.DB;
using DSWeb.Common.Helper;
using Terminal_CDMA;
using DSWeb.Areas.Mobile.DAL;
using DSWeb.MvcShipping.Models.MsCodeSgAuditRule;
namespace DSWeb.SoftMng.Controllers
{
public class ExportController : Controller
{
private readonly DecHeadBLL bll = new DecHeadBLL();
private readonly DecListBLL lbll = new DecListBLL();
private readonly ContainerBLL cbll = new ContainerBLL();
private readonly LicenseDocuBLL dbll = new LicenseDocuBLL();
private readonly DecFreeTxBLL tbll = new DecFreeTxBLL();
private readonly DecGoodsLimitBLL gbll = new DecGoodsLimitBLL();
private readonly DecGoodsLimitVinBLL vbll = new DecGoodsLimitVinBLL();
private readonly DecCopLimitBLL ebll = new DecCopLimitBLL();
private readonly DecRequestCertBLL rcbll = new DecRequestCertBLL();
private readonly DecCopLimitBLL clbll = new DecCopLimitBLL();
private readonly DecOtherPackBLL opbll = new DecOtherPackBLL();
#region View
///
/// 首页
///
///
//[ModuleAuthFilter(Name = "secRegist")]//过滤器
public ActionResult Index()
{
if (Session["CODENAME"] == null)
Response.Redirect("/login.aspx");
return View();
}
public ActionResult Single() {
DecModelBLL mbll = new DecModelBLL();
var model = mbll.GetModelList("type=0").FirstOrDefault();
if (model != null)
ViewData["AgentInfo"] = model.Model;
var pmodel = bll.GetModelList("PDate in (select min(pdate) from DecHead)").FirstOrDefault();
if (pmodel != null)
ViewData["FirstRecord"] = pmodel;
return View();
}
public ActionResult SingleAudit()
{
return View();
}
///
/// 模板管理
///
///
public ActionResult DecModel()
{
if (Session["CODENAME"] == null)
Response.Redirect("/login.aspx");
return View();
}
#endregion
#region Handler
///
/// 对应 单一窗口 暂存 上传 按钮
///
///
///
///
///
///
///
///
///
///
///
///
///
public JsonResult Save(string headData, string dataList, string containerList, string licensedocuList, string decfreeTx, string decGoodsLimitList, string decGoodsLimitVinList, string decRequestCert, string decCopLimit, string decOtherPack, string action)
{
try
{
JavaScriptSerializer json = new JavaScriptSerializer();
//DecHead
DecHead model = json.Deserialize(headData);
MsOpApply applyhead = MsOpApplyDAL.GetData("BSNO='" + model.BSNO + "'");
model.AgentStatus = action == "post" ? "已上传" : "暂存";
/* CopCode
* 录入单位代码
*/
model.CopCode = "";
/* CopCode
* 录入单位名称
*/
model.CopName = "";
/* IEFlag
* 进出口标志
* “I”:进口
* “E”:出口
*/
model.IEFlag = "E";
if (applyhead.BSTYPEREF.IndexOf("进口")>0) model.IEFlag = "I";
/* Type
* 报关单类型
前两位:一般报关单填空值;
ML:保税区进出境备案清单
SD: “属地申报,口岸验放”报关单
LY:两单一审备案清单;
CL:汇总征税报关单;
SS:”属地申报,属地验放”报关单
ZB:自主报税
SW:税单无纸化
SZ:水运中转普通报关单
SM:水运中转保税区进出境备案清单
SL:水运中转两单一审备案清单
Z:自报自缴
MF:公路舱单跨境快速通关报关单
MK: 公路舱单跨境快速通关备案清单
ZY:自报自缴,两单一审备案清单
ZC:自报自缴,汇总征税报关单
ZW:自报自缴,税单无纸化
ZF:自报自缴,公路舱单跨境快速通关
ZX:自报自缴,多项式联运
MT:多项式联运。
EX:低值快速货物报关单;
EC:低值快速货物汇总征税报关单;
EZ:低值快速货物自报自缴报关单;
ES:低值快速货物汇总征税、自报自缴报关单。
*/
//20210621 改为从"cusRemark": "{\\"cusRemark\\":\\"SW\\"}", 中解析出两个字母
//然后
//第三位:
//0 / 空:整合申报一次录入;
//1:概要申报;
//2:完整申报;
//3:两步申报一次录入,人工提交;如之前进行过辅助提交,该值表示取消辅助提交且调整为人工提交。
//4:两步申报一次录入,辅助提交;
//第四位:涉证标记0 - 否,1 - 是,概要申报必传。
//第五位:涉检标记0 - 否,1 - 是,概要申报必传。
//第六位:涉税标记0 - 否,1 - 是,概要申报必传
model.Type = "";
/* EdiId
* 报关标志
* 1:普通报关
* 3:北方转关提前
* 5:南方转关提前
* 6:普通报关,运输工具名称以‘◎’开头,南方H2000直转
*/
model.EdiId = "1";
/* PDate
* 打印日期
*/
model.PDate = DateTime.Now;
/* TypistNo
* 录入员IC卡号
*/
model.TypistNo = "";
/* InputerName
* 录入员名称
*/
model.InputerName = "";
/* PartenerID
* 申报人标识
*/
model.PartenerID = "";
/* DeclTrnRel
* 报关/转关关系标志
* 0:一般报关单
* 1:转关提前报关单
*/
model.DeclTrnRel = "0";
/* ChkSurety
* 担保验放标志
*/
model.ChkSurety = "";
/* CheckFlow
* 查验分流:
* 1:表示是查验分流
* 0:表示不是查验分流
*/
model.CheckFlow = "";
/* TaxAaminMark
* 税收征管标记:
* 0-无
* 1-有
*/
model.TaxAaminMark = "";
/*
* 入境口岸代码【货物从运输工具卸离的第一个境内口岸】
*/
model.EntyPortCode = model.DespPortCode;
/* BLNo
* 提货单号【本批货物的提货单或出库单号码】
*/
model.BLNo = "";
if (model.DDateStr!="")
model.DDate= DateTime.ParseExact(model.DDateStr, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture);
if (model.IEDateStr != "")
model.IEDate= DateTime.ParseExact(model.IEDateStr, "yyyy-MM-dd", System.Globalization.CultureInfo.CurrentCulture);
//20200109 需求编号SR2020010700004
//20200306 由于单一窗口和报关业务的关系已改为一对一 故此序列号改为使用报关业务的CUSTNO
if (string.IsNullOrWhiteSpace(model.ClientSeqNo))
{
//var ClientSeqNo = MsSysBillNoSetDAL.GetNewNo("报关业务", "委托编号", "0125", Session["COMPANYID"].ToString(), System.DateTime.Now.ToString("yyyy-MM-dd"));
//model.ClientSeqNo = ClientSeqNo;
model.ClientSeqNo = applyhead.CUSTNO;
}
if (string.IsNullOrEmpty(model.GID))
{
model.GID = Guid.NewGuid().ToString();
bll.Add(model);
}
else
bll.Update(model);
//decGoodsLimitList
List list3 = json.Deserialize>(decGoodsLimitList);
gbll.DeleteListWhere("PID in (select GID from DecList where PID ='" + model.GID + "')");
foreach (var item in list3)
gbll.Add(item);
//decGoodsLimitVinList
List list4 = json.Deserialize>(decGoodsLimitVinList);
vbll.DeleteListWhere("PID in (select GID from DecGoodsLimit where PID in (select GID from DecList where PID ='" + model.GID + "'))");
foreach (var item in list4)
vbll.Add(item);
//DecList
List list = json.Deserialize>(dataList);
lbll.DeleteListWhere("PID='" + model.GID + "'");
foreach (var item in list)
{
item.PID = model.GID;
lbll.Add(item);
}
//containerList
List list1 = json.Deserialize>(containerList);
cbll.DeleteListWhere("PID='" + model.GID + "'");
foreach (var item in list1)
{
item.PID = model.GID;
cbll.Add(item);
}
//licensedocuList
List list2 = json.Deserialize>(licensedocuList);
dbll.DeleteListWhere("PID='" + model.GID + "'");
foreach (var item in list2)
{
item.PID = model.GID;
dbll.Add(item);
}
//decfreeTx
tbll.DeleteListWhere("PID='" + model.GID + "'");
DecFreeTx tmodel = json.Deserialize(decfreeTx);
tmodel.GID = Guid.NewGuid().ToString();
tmodel.PID = model.GID;
tbll.Add(tmodel);
//decRequestCert
List list5 = json.Deserialize>(decRequestCert);
rcbll.DeleteListWhere("PID='" + model.GID + "'");
foreach (var item in list5)
{
item.PID = model.GID;
rcbll.Add(item);
}
//decOtherPack
List list6 = json.Deserialize>(decOtherPack);
opbll.DeleteListWhere("PID='" + model.GID + "'");
foreach (var item in list6)
{
item.PID = model.GID;
opbll.Add(item);
}
//decCopLimit
List list7 = json.Deserialize>(decCopLimit);
clbll.DeleteListWhere("PID='" + model.GID + "'");
foreach (var item in list7)
{
item.PID = model.GID;
clbll.Add(item);
}
if (action == "post")
{
model.EntyPortCode = model.DespPortCode;
//生成XML
XmlDocument doc = new XmlDocument();
XmlDeclaration ver = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(ver);
//根节点
XmlElement root = doc.CreateElement("DecMessage");
doc.AppendChild(root);
root.SetAttribute("xmlns", "http://www.chinaport.gov.cn/dec");
//报关单表头
XmlHelper.EntityToXml(doc, model, root, new ArrayList() { "Insp_cert", "AgentStatus" });
//报关单表体
XmlElement decLists = doc.CreateElement("DecLists");
root.AppendChild(decLists);
foreach (var item in list)
{
var decxmlItem = XmlHelper.EntityToXml(doc, item, decLists);
//产品许可证
XmlElement decGoodsLimits = doc.CreateElement("DecGoodsLimits");
decxmlItem.AppendChild(decGoodsLimits);
foreach (var item1 in list3.FindAll(p => p.PID == item.GID))
{
var limitxmlItem = XmlHelper.EntityToXml(doc, item1, decGoodsLimits);
var vinModel = list4.Find(p => p.PID == item1.GID);
if (vinModel != null)
//许可证VIN信息
XmlHelper.EntityToXml(doc, vinModel, limitxmlItem, new ArrayList() { "GoodsNoVin" });
}
}
//集装箱信息
var containerXml = XmlHelper.EntityToXml(doc, list1, "DecContainers");
root.AppendChild(containerXml);
//单证信息
var licenseDocuXml = XmlHelper.EntityToXml(doc, list2, "DecLicenseDocus");
root.AppendChild(licenseDocuXml);
//申报要素
var requestCertXml = XmlHelper.EntityToXml(doc, list5, "DecRequestCerts");
root.AppendChild(requestCertXml);
//其他包装
var otherPackXml = XmlHelper.EntityToXml(doc, list6, "DecOtherPacks");
root.AppendChild(otherPackXml);
//企业资质
var copLimitXml = XmlHelper.EntityToXml(doc, list7, "DecCopLimits");
root.AppendChild(copLimitXml);
//自由文本信息
XmlHelper.EntityToXml(doc, tmodel, root);
//报关单签名
var signmodel = new DecSignBLL().GetModelList("").FirstOrDefault();
//ClientSeqNo 客户端报关单编号 需求编号SR2020010700004
signmodel.ClientSeqNo = model.ClientSeqNo;
XmlHelper.EntityToXml(doc, signmodel, root);
var newPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "OutBox");
Directory.CreateDirectory(newPath);
doc.Save(Path.Combine(newPath, model.GID + ".xml"));
bll.UpdateBillState(model.GID, "L","");
}
return Json(new { success = true, gid = model.GID });
}
catch (Exception se)
{
return Json(new { success = false, message = se.Message + se.Source });
}
}
///
/// 对应 单一窗口 提交 按钮
///
///
///
///
public JsonResult Audit(string billGID, string billState,string reason="",string isaudit="0")
{
try
{
if (billState == "P"&& isaudit=="0") {
var AuditdataList = MsCodeSgAuditRuleDAL.GetDataList("", Convert.ToString(Session["COMPANYID"]));
var CodeSgAuditRuleGroupList = new List();
foreach (var audit in AuditdataList)
{ var newCodeSgAuditRuleGroup=CodeSgAuditRuleGroupList.Find(x => x.SGANO == audit.SGANO);
if (newCodeSgAuditRuleGroup == null)
{
var CodeSgAuditRuleGroup = new CodeSgAuditRuleGroup();
CodeSgAuditRuleGroup.SGANO = audit.SGANO;
var CodeSgAuditRuleList = new List();
CodeSgAuditRuleList.Add(audit);
CodeSgAuditRuleGroup.CodeSgAuditRuleList = CodeSgAuditRuleList;
CodeSgAuditRuleGroupList.Add(CodeSgAuditRuleGroup);
}
else {
newCodeSgAuditRuleGroup.CodeSgAuditRuleList.Add(audit);
}
}
var model = bll.GetModel(billGID);
var list = lbll.GetModelList(0, 100, "PID='" + billGID + "'", String.Format("{0} {1}", "", "GNo"));
var propArr = model.GetType().GetProperties();
var errorstr = "";
foreach (var CodeSgAuditRuleGroup in CodeSgAuditRuleGroupList) {
var billerrorstr = "";
var iserror = true;
foreach (var audit in CodeSgAuditRuleGroup.CodeSgAuditRuleList) {
if (!iserror)
{
}
else
{
if (audit.BSTYPE == "DecHead")
{
var prop = propArr.FirstOrDefault(p => p.Name.ToLower() == audit.FIELDNAME.ToLower());
if (audit.COMPARETYPE == "字段")
{
var newprop = propArr.FirstOrDefault(p => p.Name.ToLower() == audit.VALUE.ToLower());
if (prop != null && newprop != null)
{
if (audit.COMPARE == "包含")
{
if (prop.GetValue(model).ToString().IndexOf(newprop.GetValue(model).ToString()) > 0)
{
billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
iserror = true;
}
else
{
iserror = false;
}
}
else if (audit.COMPARE == "不包含")
{
if (prop.GetValue(model).ToString().IndexOf(newprop.GetValue(model).ToString()) <= 0)
{
billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
iserror = true;
}
else
{
iserror = false;
}
}
else if (audit.COMPARE == "大于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) > Convert.ToDecimal(newprop.GetValue(model)))
{
billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
}
else {
iserror = false;
}
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) > Convert.ToInt32(newprop.GetValue(model))) { billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; }
else {
iserror = false;
}
}
}
else if (audit.COMPARE == "小于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) < Convert.ToDecimal(newprop.GetValue(model)))
{ billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; }
else {
iserror = false;
}
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) < Convert.ToInt32(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
}
else if (audit.COMPARE == "大于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) >= Convert.ToDecimal(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) >= Convert.ToInt32(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
}
else if (audit.COMPARE == "小于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) <= Convert.ToDecimal(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) <= Convert.ToInt32(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
}
else if (audit.COMPARE == "等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) == Convert.ToDecimal(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) == Convert.ToInt32(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
else
{
if (prop.GetValue(model).ToString() == newprop.GetValue(model).ToString()) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
}
else if (audit.COMPARE == "不等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) != Convert.ToDecimal(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) != Convert.ToInt32(newprop.GetValue(model))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
else
{
if (prop.GetValue(model).ToString() != newprop.GetValue(model).ToString()) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF;
else iserror = false;
}
}
}
}
else
{
if (prop != null)
{
if (audit.COMPARE == "包含")
{
if (audit.VALUE.IndexOf(";") > 0)
{
var valuelist = audit.VALUE.Split(';');
var isnobh = false;
foreach (var valuestr in valuelist)
{
if (prop.GetValue(model).ToString().IndexOf(valuestr) > 0) isnobh = true;
}
if (isnobh) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else
{
if (prop.GetValue(model).ToString().IndexOf(audit.VALUE) > 0) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
}
else if (audit.COMPARE == "不包含")
{
if (audit.VALUE.IndexOf(";") > 0)
{
var valuelist = audit.VALUE.Split(';');
var isnobh = false;
foreach (var valuestr in valuelist)
{
if (prop.GetValue(model).ToString().IndexOf(valuestr) > 0) isnobh = true;
}
if (!isnobh) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else
if (prop.GetValue(model).ToString().IndexOf(audit.VALUE) <= 0) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (audit.COMPARE == "大于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) > Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) > Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
}
else if (audit.COMPARE == "小于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) < Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) < Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
}
else if (audit.COMPARE == "大于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) >= Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) >= Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
}
else if (audit.COMPARE == "小于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) <= Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) <= Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
}
else if (audit.COMPARE == "等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) == Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) == Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.GetValue(model).ToString() == audit.VALUE)
{
billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
}
else iserror = false;
}
else if (audit.COMPARE == "不等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(model)) != Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(model)) != Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (prop.GetValue(model).ToString() != audit.VALUE)
{ billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; }
else iserror = false;
}
}
}
}
if (audit.BSTYPE == "DecList")
{
foreach (var dec in list)
{
var decArr = dec.GetType().GetProperties();
var prop = decArr.FirstOrDefault(p => p.Name.ToLower() == audit.FIELDNAME.ToLower());
if (audit.COMPARETYPE == "字段")
{
var newprop = decArr.FirstOrDefault(p => p.Name.ToLower() == audit.VALUE.ToLower());
if (prop != null && newprop != null)
{
if (audit.COMPARE == "包含")
{
if (prop.GetValue(dec).ToString().IndexOf(newprop.GetValue(dec).ToString()) > 0) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (audit.COMPARE == "不包含")
{
if (prop.GetValue(dec).ToString().IndexOf(newprop.GetValue(dec).ToString()) <= 0) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (audit.COMPARE == "大于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) > Convert.ToDecimal(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) > Convert.ToInt32(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
}
else if (audit.COMPARE == "小于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) < Convert.ToDecimal(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) < Convert.ToInt32(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
}
else if (audit.COMPARE == "大于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) >= Convert.ToDecimal(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) >= Convert.ToInt32(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
}
else if (audit.COMPARE == "小于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) <= Convert.ToDecimal(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) <= Convert.ToInt32(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
}
else if (audit.COMPARE == "等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) == Convert.ToDecimal(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) == Convert.ToInt32(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.GetValue(dec).ToString() == newprop.GetValue(dec).ToString()) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (audit.COMPARE == "不等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) != Convert.ToDecimal(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) != Convert.ToInt32(newprop.GetValue(dec))) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
else if (prop.GetValue(dec).ToString() != newprop.GetValue(dec).ToString()) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUEREF; else iserror = false;
}
}
}
else
{
if (prop != null)
{
if (audit.COMPARE == "包含")
{
if (audit.VALUE.IndexOf(";") > 0)
{
var valuelist = audit.VALUE.Split(';');
var isnobh = false;
foreach (var valuestr in valuelist)
{
if (prop.GetValue(dec).ToString().IndexOf(valuestr) > 0) isnobh = true;
}
if (isnobh) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.GetValue(dec).ToString().IndexOf(audit.VALUE) > 0) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (audit.COMPARE == "不包含")
{
if (audit.VALUE.IndexOf(";") > 0)
{
var valuelist = audit.VALUE.Split(';');
var isnobh = false;
foreach (var valuestr in valuelist)
{
if (prop.GetValue(dec).ToString().IndexOf(valuestr) > 0) isnobh = true;
}
if (!isnobh) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.GetValue(dec).ToString().IndexOf(audit.VALUE) <= 0) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (audit.COMPARE == "大于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) > Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) > Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
}
else if (audit.COMPARE == "小于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) < Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) < Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
}
else if (audit.COMPARE == "大于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) >= Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) >= Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
}
else if (audit.COMPARE == "小于等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) <= Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) <= Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
}
else if (audit.COMPARE == "等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) == Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) == Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.GetValue(dec).ToString() == audit.VALUE)
billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
else if (audit.COMPARE == "不等于")
{
if (prop.PropertyType == typeof(decimal?))
{
if (Convert.ToDecimal(prop.GetValue(dec)) != Convert.ToDecimal(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.PropertyType == typeof(int?))
{
if (Convert.ToInt32(prop.GetValue(dec)) != Convert.ToInt32(audit.VALUE)) billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE; else iserror = false;
}
else if (prop.GetValue(dec).ToString() != audit.VALUE)
billerrorstr = billerrorstr + Environment.NewLine + audit.FIELDNAMEREF + "[" + audit.COMPARE + "]" + audit.VALUE;
else iserror = false;
}
}
}
}
}
}
}
if (iserror) {
errorstr= errorstr+ Environment.NewLine+"序号:"+ CodeSgAuditRuleGroup.SGANO+"("+billerrorstr+")";
}
}
if (errorstr != "") {
return Json(new { success = false, message ="审核条件不通过:"+errorstr});
}
}
if (billState == "S" || billState == "P" || billState == "R") {
Database db = DatabaseFactory.CreateDatabase();
using (var conn = db.CreateConnection())
{
conn.Open();
var tran = conn.BeginTransaction();
try
{
var cmdupdateStatus =
db.GetSqlStringCommand(
@"insert op_status (ST_ID,BSNO,STATUS,ISCOMP,COMPTIME,COMPOP,INPUTTIME,STTYPE,REMARK)
Select NEWID(),BSNO,@STATUS,@ISCOMP,@COMPTIME,@COMPOP,@INPUTTIME,'1',@REMARK FROM DecHead WHERE GID IN ('" + billGID + "') ");
var statusstr ="报关单待复核";
if (billState == "P") statusstr = "报关单可正式申报";
if (billState == "R") statusstr = "报关单复核驳回";
cmdupdateStatus.Parameters.Clear();
db.AddInParameter(cmdupdateStatus, "@STATUS", DbType.String,statusstr);
db.AddInParameter(cmdupdateStatus, "@ISCOMP", DbType.Boolean, true);
db.AddInParameter(cmdupdateStatus, "@COMPTIME", DbType.DateTime, DateTime.Now);
db.AddInParameter(cmdupdateStatus, "@COMPOP", DbType.String, Convert.ToString(Session["SHOWNAME"]));
db.AddInParameter(cmdupdateStatus, "@INPUTTIME", DbType.DateTime, DateTime.Now);
db.AddInParameter(cmdupdateStatus, "@REMARK", DbType.String, reason);
db.ExecuteNonQuery(cmdupdateStatus, tran);
tran.Commit();
}
catch (Exception)
{
}
}
}
if (bll.UpdateBillState(billGID, billState,reason) > 0)
{
return Json(new { success = true });
}
else
{
return Json(new { success = true });
}
}
catch (Exception se)
{
return Json(new { success = false, message = se.Message + se.Source });
}
}
public JsonResult GetHead(string gid)
{
var model = bll.GetModel(gid);
var tmodel = tbll.GetModelList("PID='" + gid + "'").FirstOrDefault();
var rclist = rcbll.GetModelList("PID='" + gid + "'");
var oplist = opbll.GetModelList("PID='" + gid + "'");
var cllist = clbll.GetModelList("PID='" + gid + "'");
var goodsLimit = gbll.GetModelList("PID in (SELECT GID FROM DecList WHERE PID ='" + gid + "')").OrderBy(p => p.GoodsNo).ToList();
var goodsLimitVin = vbll.GetModelList("PID in (SELECT GID FROM DecGoodsLimit WHERE PID IN(SELECT GID FROM DecList WHERE PID ='" + gid + "'))").OrderBy(p => p.GoodsNoVin).ToList();
return Json(new { success = true, model, tmodel, rclist, oplist, cllist, goodsLimit, goodsLimitVin });
}
///
/// 报文列表
///
///
///
///
///
///
public JsonResult GetList(int startIndex, int limit, string sortOrder, string sortName, string pId)
{
var list = lbll.GetModelList(startIndex, limit, "PID='" + pId + "'", String.Format("{0} {1}", sortName, sortOrder));
var count = lbll.GetRecordCount("PID='" + pId + "'");
return Json(new { total = count, rows = list });
}
///
/// 集装箱列表
///
///
public JsonResult GetList1(string pId)
{
var list = cbll.GetModelList("PID='" + pId + "'");
return Json(list);
}
///
/// 获取单证
///
///
public JsonResult GetList2(string pId)
{
var list = dbll.GetModelList("PID='" + pId + "'");
return Json(list);
}
///
/// 产品许可证列表
///
///
public JsonResult GetList3(string pId)
{
var list = gbll.GetModelList("PID='" + pId + "'").OrderBy(p => p.GoodsNo).ToList();
return Json(list);
}
///
/// 许可证VIN列表
///
///
public JsonResult GetList4(string pId)
{
var list = vbll.GetModelList("PID='" + pId + "'").OrderBy(p => p.GoodsNoVin).ToList();
return Json(list);
}
///
/// 企业资质列表
///
///
public JsonResult GetList5(string pId)
{
var list = ebll.GetModelList("PID='" + pId + "'");
return Json(list);
}
///
/// 按类别获取下拉列表
///
///
///
///
///
public JsonResult GetSelection(int pageIndex, int pageSize, string query, string type)
{
sys_EnumerationBLL bll = new sys_EnumerationBLL();
StringBuilder where = new StringBuilder();
where.Append("Type='" + type + "'");
if (!String.IsNullOrEmpty(query))
where.Append(string.Format("And ([Value] LIKE '%{0}%' OR Name LIKE '%{0}%')", query));
var total = bll.GetRecordCount(where.ToString());
var list = bll.GetModelList(pageIndex, pageSize, where.ToString(), "[Value] collate Chinese_PRC_CS_AS_KS_WS");
var result = from p in list
select new
{
id = p.Value,
text = p.Value + " - " + p.Name
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
///
/// 获取指运港
///
///
///
///
///
public JsonResult GetPort(int pageIndex, int pageSize, string query)
{
sys_b_PortBLL bll = new sys_b_PortBLL();
StringBuilder where = new StringBuilder();
where.Append("1=1");
if (!String.IsNullOrEmpty(query))
where.Append(string.Format(" And ([Value] LIKE '%{0}%' OR Name LIKE '%{0}%')", query));
var total = bll.GetRecordCount(where.ToString());
var list = bll.GetModelList(pageIndex, pageSize, where.ToString(), "[Value] collate Chinese_PRC_CS_AS_KS_WS");
var result = from p in list
select new
{
id = p.Value,
text = p.Value + " - " + p.Name
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
#region 导入XML文件生成报关和单一窗口数据
[HttpPost]
public ContentResult ImportXmlBs()
{
var jsonRespose = new JsonResponse { Success = false, Message = "" };
if (Request.Files.Count != 1)
{
jsonRespose.Success = false;
jsonRespose.Message = "请选择上传的文件";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
var file = Request.Files["LoadXml"];
if (file == null)
{
jsonRespose.Success = false;
jsonRespose.Message = "上传文件发生未知错误,请重新上传";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
var path = Server.MapPath(OPAPPLYFilePath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
var size = file.ContentLength;
var name = Path.GetFileName(file.FileName);
var bsno = Request.Form["bsno"];
var usercode = CookieConfig.GetCookie_UserCode(Request);
string filename = path + "\\" + usercode + DateTime.Now.ToString("yyyyMMddHHmmssfff") + name;
if (System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
}
file.SaveAs(filename);
if (!System.IO.File.Exists(filename))
{
var json = JsonConvert.Serialize(new { success = false, Message = "上传文件发生未知错误,请重新上传" });
return new ContentResult() { Content = json };
}
string ext = Path.GetExtension(file.FileName).ToLower();
if (ext == ".asp" || ext == ".aspx")
{
jsonRespose.Success = false;
jsonRespose.Message = "不允许上传ASP货ASPX文件";
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
var result = DecHeadDAL.Deal381XML(filename, Session["USERID"].ToString(), Session["SHOWNAME"].ToString(), Session["COMPANYID"].ToString());
//try
//{
// XmlSerializer serializer = new XmlSerializer(typeof(SHIPMENT_CDF_INBOUND_V2));
// using (FileStream fs = new FileStream(filename, FileMode.Open))
// {
// SHIPMENT_CDF_INBOUND_V2 SHIPMENTLIST = (SHIPMENT_CDF_INBOUND_V2)serializer.Deserialize(fs);
// result = ImportXmlBs(SHIPMENTLIST,Session["USERID"].ToString(), Session["SHOWNAME"].ToString(), Session["COMPANYID"].ToString());
// }
// var json = JsonConvert.Serialize(new { success = result.Success, Message = result.Message });
// return new ContentResult() { Content = json };
//}
//catch (Exception e)
//{
// jsonRespose.Success = false;
// jsonRespose.Message = "读取文件出错,请确认文件正确性" + e.Message;
// return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
//}
var json2 = JsonConvert.Serialize(new { success = result.Success, Message = result.Message });
return new ContentResult() { Content = json2 };
}
[HttpGet]
public ContentResult ImportXmlBs(string fullname,string USERID,string SHOWNAME,string COMPANYID) {
var result = DecHeadDAL.Deal381XML(fullname, USERID, SHOWNAME, COMPANYID);
var json2 = JsonConvert.Serialize(new { success = result.Success, Message = result.Message });
return new ContentResult() { Content = json2 };
}
//移动到DAL层 以方便被调用
public DBResult Deal381XML(string filename) {
var result = new DBResult();
try
{
XmlSerializer serializer = new XmlSerializer(typeof(SHIPMENT_CDF_INBOUND_V2));
using (FileStream fs = new FileStream(filename, FileMode.Open))
{
SHIPMENT_CDF_INBOUND_V2 SHIPMENTLIST = (SHIPMENT_CDF_INBOUND_V2)serializer.Deserialize(fs);
result = DecHeadDAL.ImportXmlBs(SHIPMENTLIST, Session["USERID"].ToString(), Session["SHOWNAME"].ToString(), Session["COMPANYID"].ToString());
}
}
catch (Exception e)
{
result.SetErrorInfo("读取文件出错,请确认文件正确性:" + e.Message);
}
return result;
}
public static bool TryToInt32(object value, out int result)
{
if (value == null)
{
result = 0;
return false;
}
return int.TryParse(value.ToString(), out result);
}
public static bool TryToDecimal(object value, out Decimal result)
{
if (value == null)
{
result = 0;
return false;
}
return Decimal.TryParse(value.ToString(), out result);
}
public static string GetTextByCode(EnumerableRowCollection emlistQuery, string emtype, string emcode)
{
var result = "";
var emlists =
emlistQuery.Where(p => p.Field("type") == emtype && p.Field("Value") == emcode);
foreach (DataRow em in emlists)
{
result = em.Field("Name");
}
return result;
}
public static string GetCodeByText(EnumerableRowCollection emlistQuery, string emtype, string emname)
{
var result = "";
var emlists =
emlistQuery.Where(p => p.Field("type") == emtype && p.Field("Name") == emname);
foreach (DataRow em in emlists)
{
result = em.Field("Value");
}
return result;
}
private const string OPAPPLYFilePath= "../../UploadFiles/OpApply";
private const string LOGICNAME_381 = "381HEAD";
//移动到DAL层
public DBResult ImportXmlBs(SHIPMENT_CDF_INBOUND_V2 SHIPMENT, string userid, string showname, string companyid)
{
var result = new DBResult();
int blcount = 0;
var CCS_HEADERLIST = SHIPMENT.CCS_HEADER;
foreach (var items in CCS_HEADERLIST)
{
var OPAPPLY = MsOpApplyDAL.GetData(" CUSTOMNO='" + items.CCS_NUMBER + "'");
var needinsert = false;//需要新建 还是更新信息
if (string.IsNullOrWhiteSpace(OPAPPLY.CUSTOMNO))
{
needinsert = true;
}
#region 报关信息
OPAPPLY.CUSTOMNO = items.CCS_NUMBER;
//根据报关单号 结尾0出口 结尾1进口
OPAPPLY.setbstype();
OPAPPLY.BSSTATUS = false;
OPAPPLY.FEESTATUS = false;
OPAPPLY.BSDATE = DateTime.Now;
OPAPPLY.CUSTOMDATE = items.DECLARATION_DATE;//报关日期=申报日期
OPAPPLY.OPDATE = items.IMPORT_EXPORT_DATE;//业务日期=申报日期
OPAPPLY.MBLNO = items.BL_NUMBER;//20210610 从BLNo改为使用 BL_NUMBER
OPAPPLY.INPUTBY = showname;
OPAPPLY.CORPID = companyid;
OPAPPLY.CONTRACTNO = items.CONTRACT_NUMBER;
OPAPPLY.ACCDATE = DateTime.Now.ToString("yyyy-MM");
if (needinsert)
{
OPAPPLY.DbOperationType = DbOperationType.DbotIns;
OPAPPLY.ModelUIStatus = "I";
OPAPPLY.BSNO = Guid.NewGuid().ToString();
OPAPPLY.MASTERNO = OPAPPLY.BSNO;
var _r = MsOpApplyDAL.getCUSTNO(OPAPPLY, userid, showname, companyid);
if (_r.Success)
{
OPAPPLY.CUSTNO = _r.Data.ToString();
}
}
else
{
OPAPPLY.DbOperationType = DbOperationType.DbotUpd;
OPAPPLY.ModelUIStatus = "E";
}
//OPAPPLY.CUSTNO = items.INTERNAL_CCS;
OPAPPLY.CUSTOMNO = items.CCS_NUMBER;//20210609 经过比对确认这个字段是博世写报关单号的字段
OPAPPLY.BOOKNO = items.HANDBOOK_NUMBER;
OPAPPLY.BYCUSTOM = items.DECLARATION_PORT;
OPAPPLY.EXPCUSTOMTYPE = items.IMPORT_EXPORT_PORT;
OPAPPLY.ETD = items.IMPORT_EXPORT_DATE;
OPAPPLY.BSTYPE = items.TRANSPORTATION_METHOD;
OPAPPLY.VESSEL = items.TRAF_NAME;
OPAPPLY.VOYNO = items.VOYAGE_NUMBER;
if (string.IsNullOrEmpty(OPAPPLY.ENTERP))
OPAPPLY.ENTERP = items.CUSTOMS_BROKER_NAME;
OPAPPLY.ENTERPID = items.CUSTOMS_BROKER_CODE;
OPAPPLY.TRADETERM = items.TRADE_MODE;
OPAPPLY.PORTDISCHARGE = items.DESTINATION_PORT;
OPAPPLY.PKGS = Convert.ToDecimal(items.PIECES);
OPAPPLY.KGS = Convert.ToDecimal(items.GROSS_WEIGHT);
OPAPPLY.NETWEIGHT = Convert.ToDecimal(items.NET_WEIGHT);
OPAPPLY.ARCOUNTRY = items.COUNTRY;
#endregion
#region 20210610邓羽 记录381头部信息
var HeadDic = new Dictionary();
HeadDic.Add("ACTION", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.ACTION);
HeadDic.Add("COMPANY_CODE", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.COMPANY_CODE);
HeadDic.Add("ORG_CODE", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.ORG_CODE);
HeadDic.Add("PRIORITY", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.PRIORITY.ToString());
HeadDic.Add("MESSAGE_TYPE", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.MESSAGE_TYPE);
HeadDic.Add("USERID", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.USERID);
HeadDic.Add("RECEIVER", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.RECEIVER);
HeadDic.Add("SENDER", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.SENDER);
HeadDic.Add("BATCH_ID", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.BATCH_ID);
//HeadDic.Add("ORG_CODE", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.BUS_KEY.ORG_CODE);
HeadDic.Add("SHIPMENT_NUMBER", SHIPMENT.INTEGRATION_MESSAGE_CONTROL.BUS_KEY.SHIPMENT_NUMBER);
HeadDic.Add("INCOMING_STATUS", items.INCOMING_STATUS);
HeadDic.Add("INTERNAL_CCS", items.INTERNAL_CCS);
BasicDataRefDAL.SaveLogicInfo(OPAPPLY.BSNO, LOGICNAME_381, HeadDic);
#endregion
#region 单一窗口
SoftMng.BLL.sys_EnumerationBLL bllEM = new SoftMng.BLL.sys_EnumerationBLL();
var emlistdataset = bllEM.GetList("");
var emlisttable = emlistdataset.Tables[0];
var emlistQuery =
from emlist in emlisttable.AsEnumerable()
select emlist;
DecHead model = new DecHead();
model.AgentStatus = "暂存";
model.BSNO = OPAPPLY.BSNO;
model.GID = Guid.NewGuid().ToString();
model.EntryType = items.CCS_TYPE;
if (model.EntryType == "M") model.EntryType_Text = "无纸化通关";
if (model.EntryType == "O") model.EntryType_Text = "普通报关单";
if (model.EntryType == "L") model.EntryType_Text = "为带报关单清单的报关单";
if (model.EntryType == "W") model.EntryType_Text = "无纸报关类型";
if (model.EntryType == "D") model.EntryType_Text = "既是清单又是无纸报关的情况";
model.EntryId = items.CCS_NUMBER;
model.ManualNo = items.HANDBOOK_NUMBER;
model.CustomMaster = items.DECLARATION_PORT;
model.CustomMaster_Text = GetTextByCode(emlistQuery, "关区代码", model.CustomMaster);
model.IEPort = items.IMPORT_EXPORT_PORT;
model.IEPort_Text = GetTextByCode(emlistQuery, "关区代码", model.IEPort);
model.ContrNo = items.CONTRACT_NUMBER;
if (!string.IsNullOrEmpty(items.IMPORT_EXPORT_DATE))
model.IEDate = Convert.ToDateTime(items.IMPORT_EXPORT_DATE);
model.BillNo = items.BL_NUMBER;
model.TrafMode = items.TRANSPORTATION_METHOD;
model.TrafMode_Text = GetTextByCode(emlistQuery, "运输方式", model.TrafMode);
model.TrafName = items.TRAF_NAME;
model.NativeVoyageNo = items.VOYAGE_NUMBER;
model.TradeCode = items.TRADING_COMPANY_CODE;
model.TradeName = items.TRADING_COMPANY_NAME;
model.OwnerCode = items.RECEIVER_COMPANY_CODE;
model.OwnerName = items.RECEIVER_COMPANY_NAME;
model.AgentCode = items.CUSTOMS_BROKER_CODE;
model.AgentName = items.CUSTOMS_BROKER_NAME;
model.TradeCountry = items.COUNTRY;
model.TradeCountry_Text = GetTextByCode(emlistQuery, "国别地区", model.TradeCountry);
model.TradeMode = items.TRADE_MODE;
model.TradeMode_Text = GetTextByCode(emlistQuery, "监管方式", model.TradeMode);
model.TransMode = items.TRANSACTION_METHOD;
model.TransMode_Text = GetTextByCode(emlistQuery, "成交方式", model.TransMode);
model.CutMode = items.TAX_OPTION;
model.CutMode_Text = GetTextByCode(emlistQuery, "征免性质", model.CutMode);
model.FeeMark = items.FREIGHT_COST_BASIS;
decimal feerate = 0;
TryToDecimal(items.FREIGHT_RATE, out feerate);
model.FeeRate = feerate;
model.FeeCurr = items.FREIGHT_CURRENCY;
model.FeeCurr_Text = GetTextByCode(emlistQuery, "币别", model.FeeCurr);
model.LicenseNo = items.PERMIT;
model.InsurMark = items.INSURANCE_FEE_BASIS;
decimal InsurRate = 0;
TryToDecimal(items.INSURANCE_RATE, out InsurRate);
model.InsurRate = InsurRate;
model.FeeRate = feerate;
model.InsurCurr = items.INSURANCE_CURRENCY;
model.InsurCurr_Text = GetTextByCode(emlistQuery, "币别", model.InsurCurr);
model.ApprNo = items.MOFCOM_APPROVAL_NUMBER;
model.OtherMark = items.MISCELLANEOUS_EXPENSE_BASIS;
decimal OtherRate = 0;
TryToDecimal(items.MISCELLANEOUS_EXPENSE_RATE, out OtherRate);
model.OtherRate = OtherRate;
model.OtherCurr = items.MISCELLANEOUS_EXPENSE_CURRENCY;
model.OtherCurr_Text = GetTextByCode(emlistQuery, "币别", model.OtherCurr);
model.WrapType = items.PACKAGING_TYPE;
model.WrapType_Text = GetTextByCode(emlistQuery, "包装种类", model.WrapType);
Int32 PackNo = 0;
TryToInt32(items.PIECES, out PackNo);
model.PackNo = PackNo;
decimal NetWt = 0;
TryToDecimal(items.NET_WEIGHT, out NetWt);
model.NetWt = NetWt;
decimal GrossWet = 0;
TryToDecimal(items.GROSS_WEIGHT, out GrossWet);
model.GrossWet = GrossWet;
model.NoteS = items.REMARK;
model.SeqNo = items.E_PORT_DECLARATION_ID;
model.ChkSurety = items.ChkSurety;
model.BillType = items.BillType;
model.AgentCodeScc = items.AgentCodeScc;
model.OwnerCodeScc = items.OwnerCodeScc;
model.TradeCoScc = items.TradeCodeScc;
model.CopCodeScc = items.CopCodeScc;
model.PromiseItmes = items.PromiseItmes;
model.TradeAreaCode = items.TradeAreaCode;
// model.TrnHead = items.TradeCodeScc;
model.PreEntryId = items.PreEntryId;
model.Type = items.Type;
model.OverseasConsignorCode = items.OverseasConsignorCode;
model.OverseasConsignorCname = items.OverseasConsignorCname;
model.OverseasConsignorEname = items.OverseasConsignorEname;
model.OverseasConsignorAddr = items.OverseasConsignorAddr;
model.OverseasConsigneeCode = items.OverseasConsigneeCode;
model.OverseasConsigneeEname = items.OverseasConsigneeEname;
model.GoodsPlace = items.GoodsPlace;
model.MarkNo = items.MarkNo;
model.DespPortCode = items.DespPortCode;
model.EntyPortCode = items.EntyPortCode;
model.DeclareName = items.DeclareName;
model.NoOtherPack = items.NoOtherPack;
model.DeclTrnRel = items.DeclTrnRel;
model.EdiId = items.EdiId;
model.CheckFlow = items.CheckFlow;
model.TaxAaminMark = items.TaxAaminMark;
model.BLNo = items.BLNo;
model.InspOrgCode = items.InspOrgCode;
model.SpecDeclFlag = items.SpecDeclFlag;
model.PurpOrgCode = items.PurpOrgCode;
if (!string.IsNullOrEmpty(items.DespDate))
model.DespDate = DateTime.ParseExact(items.DespDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
if (!string.IsNullOrEmpty(items.CmplDschrgDt))
model.CmplDschrgDt = DateTime.ParseExact(items.CmplDschrgDt, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
model.CorrelationReasonFlag = items.CorrelationReasonFlag;
model.VsaOrgCode = items.VsaOrgCode;
model.OrigBoxFlag = items.OrigBoxFlag;
model.CorrelationNo = items.CorrelationNo;
model.EdiRemark = items.EdiRemark;
model.EdiRemark2 = items.EdiRemark2;
model.TradeCiqCode = items.TradeCiqCode;
model.OwnerCiqCode = items.OwnerCiqCode;
model.DeclCiqCode = items.DeclCiqCode;
model.OrgCode = items.OrgCode;
bll.Add(model);
#endregion
List list3 = new List();
decimal TOTAL_AMOUNT = 0;
if (items.CCS_DETAIL != null)
foreach (var GOOD in items.CCS_DETAIL)
{
OPAPPLY.CURRENCY = GOOD.CURRENCY;
TOTAL_AMOUNT = TOTAL_AMOUNT + GOOD.TOTAL_AMOUNT;
var Dec = new DecList();
Dec.PID = model.GID;
Dec.GID = Guid.NewGuid().ToString();
Dec.GNo = GOOD.SEQUENCE_NUMBER;
Dec.ContrItem = GOOD.CUSTOMS_ITEM_NUMBER;
Dec.ExgVersion = GOOD.PRODUCT_VERSION_NUMBER;
Dec.CodeTS = GOOD.HS_CODE;
Dec.GName = GOOD.CHINESE_DESCRIPTION;
Dec.GModel = GOOD.MODEL;
Dec.GQty = GOOD.DECLARATION_QTY;
Dec.GUnit = GOOD.CUSTOMS_UM;
Dec.GUnit_Text = GetTextByCode(emlistQuery, "成交计量单位", Dec.GUnit);
Dec.FirstQty = GOOD.CUSTOMS_QUANTITY;
Dec.FirstUnit = GOOD.FIRST_CUSTOMS_UM;
Dec.FirstUnit_Text = GetTextByCode(emlistQuery, "成交计量单位", Dec.FirstUnit);
decimal SecondQty = 0;
TryToDecimal(GOOD.SECOND_CUSTOMS_QUANTITY, out SecondQty);
Dec.SecondQty = SecondQty;
Dec.SecondUnit = GOOD.SECOND_CUSTOMS_UM;
Dec.SecondUnit_Text = GetTextByCode(emlistQuery, "成交计量单位", Dec.SecondUnit);
decimal DeclPrice = 0;
TryToDecimal(GOOD.UNIT_PRICE, out DeclPrice);
Dec.DeclPrice = DeclPrice;
Dec.DeclTotal = GOOD.TOTAL_AMOUNT;
Dec.TradeCurr = GOOD.CURRENCY;
Dec.TradeCurr_Text = GetTextByCode(emlistQuery, "币别", Dec.TradeCurr);
Dec.OriginCountry = GOOD.COUNTRY;
Dec.OriginCountry_Text = GetTextByCode(emlistQuery, "国别地区", Dec.OriginCountry);
Dec.DutyMode = GOOD.TAX_OPTION;
Dec.DutyMode_Text = GetTextByCode(emlistQuery, "征免方式", Dec.DutyMode);
Dec.DestinationCountry = GOOD.DestinationCountry;
Dec.DestinationCountry_Text = GetTextByCode(emlistQuery, "征免方式", Dec.DestinationCountry);
Dec.CiqCode = GOOD.CiqCode;
Dec.DistrictCode = GOOD.DistrictCode;
Dec.DestCode = GOOD.DESTINATION_DISTRICT;
//Dec.Factor = GOOD.Factor;
//Dec.DeclGoodsEname = GOOD.DeclGoodsEname;
//Dec.OrigPlaceCode = GOOD.OrigPlaceCode;
Dec.Purpose = GOOD.Purpose;
Dec.Purpose_Text = GetTextByCode(emlistQuery, "用途", Dec.Purpose);
if (!string.IsNullOrEmpty(GOOD.ProdValidDt))
Dec.ProdValidDt = DateTime.ParseExact(GOOD.ProdValidDt, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture); ;
Int32 ProdQgp = 0;
TryToInt32(GOOD.ProdQgp, out ProdQgp);
Dec.ProdQgp = ProdQgp;
Dec.GoodsAttr = GOOD.GoodsAttr;
Dec.GoodsAttr_Text = GetTextByCode(emlistQuery, "货物属性", Dec.GoodsAttr);
Dec.Stuff = GOOD.Stuff;
Dec.Uncode = GOOD.Uncode;
Dec.DangName = GOOD.DangName;
Int32 DangPackType = 0;
TryToInt32(GOOD.DangPackType, out DangPackType);
Dec.ProdQgp = DangPackType;
Dec.DangPackSpec = GOOD.DangPackSpec;
Dec.DangPackSpec_Text = GetTextByCode(emlistQuery, "危包规格", Dec.DangPackSpec);
Dec.EngManEntCnm = GOOD.EngManEntCnm;
Int32 NoDangFlag = 0;
TryToInt32(GOOD.NoDangFlag, out NoDangFlag);
Dec.NoDangFlag = NoDangFlag;
Dec.GoodsSpec = GOOD.GoodsSpec;
Dec.GoodsModel = GOOD.GoodsModel;
Dec.GoodsBrand = GOOD.GoodsBrand;
Dec.ProduceDate = GOOD.ProduceDate;
Dec.ProdBatchNo = GOOD.ProdBatchNo;
lbll.Add(Dec);
//Dec.CiqName = GOOD.CiqName;
//Dec.MnufctrRegno = GOOD.MnufctrRegno;
//Dec.MnufctrRegName = GOOD.MnufctrRegName;
if (GOOD.DecGoodsLimits!=null)
foreach (var GOODLIMIT in GOOD.DecGoodsLimits)
{
var DecGood = new DecGoodsLimit();
DecGood.PID = Dec.GID;
DecGood.GID = Guid.NewGuid().ToString();
DecGood.GoodsNo = GOODLIMIT.GoodsNo;
DecGood.LicTypeCode = GOODLIMIT.LicTypeCode;
DecGood.LicTypeCode_Text = GetTextByCode(emlistQuery, "许可证类别", DecGood.LicTypeCode);
DecGood.LicenceNo = GOODLIMIT.LicenceNo;
DecGood.LicWrtofDetailNo = GOODLIMIT.LicWrtofDetailNo;
DecGood.LicWrtofQty = Convert.ToInt32(GOODLIMIT.LicWrtofQty);
gbll.Add(DecGood);
if (GOODLIMIT.DecGoodsLimitVin != null)
foreach (var GOODLIMITVIN in GOODLIMIT.DecGoodsLimitVin)
{
var DecGoodvin = new DecGoodsLimitVin();
DecGoodvin.PID = DecGood.GID;
DecGoodvin.GID = Guid.NewGuid().ToString();
////DecGoodvin.LicenceNo = GOODLIMITVIN.LicenceNo;
//DecGoodvin.LicTypeCode = GOODLIMITVIN.LicTypeCode;
DecGoodvin.VinNo = GOODLIMITVIN.VinNo;
if (!string.IsNullOrEmpty(GOODLIMITVIN.BillLadDate))
DecGoodvin.BillLadDate = DateTime.ParseExact(GOODLIMITVIN.BillLadDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
DecGoodvin.QualityQgp = GOODLIMITVIN.QualityQgp;
DecGoodvin.MotorNo = GOODLIMITVIN.MotorNo;
DecGoodvin.VinCode = GOODLIMITVIN.VinCode;
DecGoodvin.ChassisNo = GOODLIMITVIN.ChassisNo;
Int32 InvoiceNum = 0;
TryToInt32(GOODLIMITVIN.InvoiceNum, out InvoiceNum);
DecGoodvin.InvoiceNum = InvoiceNum;
DecGoodvin.ProdCnnm = GOODLIMITVIN.ProdCnnm;
DecGoodvin.ProdEnnm = GOODLIMITVIN.ProdEnnm;
DecGoodvin.ModelEn = GOODLIMITVIN.ModelEn;
decimal PricePerUnit = 0;
TryToDecimal(GOODLIMITVIN.PricePerUnit, out PricePerUnit);
DecGoodvin.PricePerUnit = PricePerUnit;
DecGoodvin.InvoiceNo = GOODLIMITVIN.InvoiceNo;
vbll.Add(DecGoodvin);
}
}
}
OPAPPLY.CARGOVALUE = TOTAL_AMOUNT.ToString();
//var modb = new ModelObjectDB();
// var tempresult = modb.Save(OPAPPLY);
var bodyList = new List();
if (items.CONTAINER_DETAIL != null)
foreach (var ctn in items.CONTAINER_DETAIL)
{
var opctn = new MsOpCtn();
opctn.BSNO ="*";
opctn.CNTRNO = ctn.CONTAINER_NUMBER;
opctn.CTNALL = ctn.CONTAINER_TYPE;
opctn.KGS = Convert.ToDecimal(ctn.GoodsContaWt);
Container ctnitem = new Container();
ctnitem.PID = model.GID;
ctnitem.GID = Guid.NewGuid().ToString();
ctnitem.ContainerId = ctn.CONTAINER_NUMBER;
ctnitem.ContainerMd = ctn.CONTAINER_TYPE;
decimal ContainerWt = 0;
TryToDecimal(ctn.CONTAINER_TARE_WEIGHT, out ContainerWt);
ctnitem.ContainerWt = ContainerWt;
ctnitem.GoodsNo = ctn.GoodsNo;
decimal GoodsContaWt = 0;
TryToDecimal(ctn.GoodsContaWt, out GoodsContaWt);
ctnitem.GoodsContaWt = GoodsContaWt;
cbll.Add(ctnitem);
}
if (items.ATTACHED_DOCUMENT_DETAIL != null)
foreach (var DOC in items.ATTACHED_DOCUMENT_DETAIL)
{
LicenseDocu docitem = new LicenseDocu();
docitem.PID = model.GID;
docitem.GID = Guid.NewGuid().ToString();
docitem.DocuCode = DOC.DOCUMENT_TYPE;
docitem.DocuCode_Text = GetTextByCode(emlistQuery, "随附单证代码", docitem.DocuCode);
docitem.CertCode = DOC.DOCUMENT_NUMBER;
dbll.Add(docitem);
}
if (items.DecOtherPack != null)
foreach (var OTHERPACK in items.DecOtherPack)
{
DecOtherPack otheritem = new DecOtherPack();
otheritem.PID = model.GID;
otheritem.GID = Guid.NewGuid().ToString();
otheritem.PackQty = OTHERPACK.PackQty;
otheritem.PackType = OTHERPACK.PackType;
opbll.Add(otheritem);
}
if (items.DecCopLimits != null)
foreach (var COPLIMITLIST in items.DecCopLimits)
{
DecCopLimit otheritem = new DecCopLimit();
otheritem.PID = model.GID;
otheritem.GID = Guid.NewGuid().ToString();
otheritem.EntQualifNo = COPLIMITLIST.EntQualifNo;
otheritem.EntQualifTypeCode = COPLIMITLIST.EntQualifTypeCode;
otheritem.EntQualifTypeCode_Text = GetTextByCode(emlistQuery, "企业资质类别", otheritem.EntQualifTypeCode);
clbll.Add(otheritem);
}
var modb = new ModelObjectDB();
result = modb.Save(OPAPPLY);
if (result.Success)
{
MsOpApplyDAL.SaveCtnDetail(OPAPPLY.BSNO, bodyList, userid, true);
}
blcount = blcount + 1;
}
result.Message=""+blcount+"票业务";
return result;
}
///
/// 20210603 百特凯瑞 根据报关业务信息 生成两个xml文件 代号383 385
/// 参数为报关单号 返回值为两个文件名 ,用;;隔开
///
///
///
///
///
///
///
[HttpPost]
public ContentResult GetCreateXmlBs(string CUSTOMNOs) {
var result = new DBResult();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
try
{
result = DoCreateXmlBs(CUSTOMNOs);
var json = JsonConvert.Serialize(new { Success = result.Success, Message = result.Message,data=result.Data });
return new ContentResult() { Content = json };
}
catch (Exception e)
{
jsonRespose.Success = false;
jsonRespose.Message = "生成报文出错:" + e.Message;
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
private DBResult DoCreateXmlBs(string CUSTOMNOs)//, string userid, string showname, string companyid
{
var CUSTOMNOList = CUSTOMNOs.Split(',').ToList();
//var SHIPMENT = Get383Xml(CUSTOMNOList);
//XmlSerializer XML_1 = new XmlSerializer(SHIPMENT.GetType());
//var path = Server.MapPath("../../UploadFiles/OpApply");
//if (!Directory.Exists(path))
//{
// Directory.CreateDirectory(path);
//}
//var usercode = CookieConfig.GetCookie_UserCode(Request);
//string filename = path + "\\" + usercode + "_383.xml";
//if (System.IO.File.Exists(Path.GetFullPath(filename)))
//{
// System.IO.File.Delete(Path.GetFullPath(filename));
//}
//var tw = new StreamWriter(filename);
//XML_1.Serialize(tw, SHIPMENT);
//tw.Close();
var Filename383 = Get383XmlFile(CUSTOMNOList);
var Filename385 = Get385XmlFile(CUSTOMNOList);
var filename = Filename383 + ";;" + Filename385;
var result = new DBResult(true,"", filename);
result.Message = "";
return result;
}
private string Get383XmlFile(List CUSTOMNOList) {
var SHIPMENT = Get383Xml(CUSTOMNOList);
if (SHIPMENT == null) return "";
XmlSerializer XML_1 = new XmlSerializer(SHIPMENT.GetType());
var path = Server.MapPath(OPAPPLYFilePath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
var usercode = CookieConfig.GetCookie_UserCode(Request);
string filename = path + "\\" + usercode + "_383.xml";
if (System.IO.File.Exists(Path.GetFullPath(filename)))
{
System.IO.File.Delete(Path.GetFullPath(filename));
}
var tw = new StreamWriter(filename);
XML_1.Serialize(tw, SHIPMENT);
tw.Close();
var result = OPAPPLYFilePath +"/"+usercode + "_383.xml";
return result;
}
private SHIPMENT_CDF_OUTBOUND_V2 Get383Xml(List CUSTOMNOList) {
var SHIPMENT = new SHIPMENT_CDF_OUTBOUND_V2();
var CCS_HEADERLIST = new MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPE[CUSTOMNOList.Count()];
var CCS_HEADERLIST_COUNT = 0;
var headinfo = new DSWeb.MvcShipping.Models.MsOpApply_BOSH383.SHIPMENT_CDF_OUTBOUND_V2INTEGRATION_MESSAGE_CONTROL();
foreach (var CUSTOMNO in CUSTOMNOList) {
var OPAPPLY = MsOpApplyDAL.GetData(" CUSTOMNO='" + CUSTOMNO + "'");
#region 20210610 获取逻辑信息表的数据 如无信息则返回空
var HeadDic = BasicDataRefDAL.GetLogicInfo(OPAPPLY.BSNO, LOGICNAME_381);
if (HeadDic == null || HeadDic.Count() == 0) return SHIPMENT;
headinfo.ACTION = HeadDic["ACTION"];
headinfo.COMPANY_CODE = HeadDic["COMPANY_CODE"];
headinfo.ORG_CODE = HeadDic["ORG_CODE"];
var _t = decimal.Parse(HeadDic["PRIORITY"]);
if (HeadDic["PRIORITY"] == "")
{
headinfo.PRIORITY = null;
}
else {
headinfo.PRIORITY = _t;
}
headinfo.MESSAGE_TYPE = HeadDic["MESSAGE_TYPE"];
headinfo.USERID = HeadDic["USERID"];
headinfo.RECEIVER = HeadDic["RECEIVER"];
headinfo.SENDER = HeadDic["SENDER"];
headinfo.BATCH_ID = HeadDic["BATCH_ID"];
headinfo.SOURCE_SYSTEM_TOKEN = "";
headinfo.BUS_KEY = new SHIPMENT_CDF_OUTBOUND_V2INTEGRATION_MESSAGE_CONTROLBUS_KEY();
headinfo.BUS_KEY.ORG_CODE= HeadDic["ORG_CODE"];
headinfo.BUS_KEY.SHIPMENT_NUMBER = HeadDic["SHIPMENT_NUMBER"];
SHIPMENT.INTEGRATION_MESSAGE_CONTROL = headinfo;
#endregion
var items = new DSWeb.MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPE();
var bll = new DecHeadBLL();
var model = bll.GetModelList("BSNO='" + OPAPPLY.BSNO + "'")[0];
DecListBLL lbll = new DecListBLL();
var DecList = lbll.GetModelList("PID='" + model.GID + "'").ToList();
#region 报关信息
//20210610 增加三个节点
items.SHIPMENT_NUMBER = HeadDic["SHIPMENT_NUMBER"];
items.INTERNAL_SHIPMENT_NUMBER = "";
items.INCOMING_STATUS = HeadDic["INCOMING_STATUS"];
items.CCS_NUMBER= "";
//根据报关单号 结尾0出口 结尾1进口
//OPAPPLY.setbstype();
//OPAPPLY.BSSTATUS = false;
//OPAPPLY.FEESTATUS = false;
//OPAPPLY.BSDATE = DateTime.Now;
//items.DECLARATION_DATE = OPAPPLY.CUSTOMDATE; //报关日期=申报日期 在上传时 此字段改为使用单一窗口的申报日期 DDate
items.DECLARATION_DATE = model.DDateStr;//报关日期=申报日期 在上传时 此字段改为使用单一窗口的申报日期 DDate
items.IMPORT_EXPORT_DATE = OPAPPLY.OPDATE ;//业务日期=申报日期
items.BLNo = OPAPPLY.MBLNO ;
//OPAPPLY.INPUTBY = showname;
//OPAPPLY.CORPID = companyid;
items.CONTRACT_NUMBER=OPAPPLY.CONTRACTNO ;
//OPAPPLY.ACCDATE = DateTime.Now.ToString("yyyy-MM");
//if (needinsert)
//{
// OPAPPLY.DbOperationType = DbOperationType.DbotIns;
// OPAPPLY.ModelUIStatus = "I";
// OPAPPLY.BSNO = Guid.NewGuid().ToString();
// OPAPPLY.MASTERNO = OPAPPLY.BSNO;
// var _r = MsOpApplyDAL.getCUSTNO(OPAPPLY, userid, showname, companyid);
// if (_r.Success)
// {
// OPAPPLY.CUSTNO = _r.Data.ToString();
// }
//}
//else
//{
// OPAPPLY.DbOperationType = DbOperationType.DbotUpd;
// OPAPPLY.ModelUIStatus = "E";
//}
items.INTERNAL_CCS = HeadDic["INTERNAL_CCS"] ;
items.CCS_NUMBER = OPAPPLY.CUSTOMNO;
items.HANDBOOK_NUMBER=OPAPPLY.BOOKNO ;
items.DECLARATION_PORT=OPAPPLY.BYCUSTOM ;
items.IMPORT_EXPORT_PORT=OPAPPLY.EXPCUSTOMTYPE ;
items.IMPORT_EXPORT_DATE=OPAPPLY.ETD ;
items.TRANSPORTATION_METHOD=OPAPPLY.BSTYPE ;
items.TRAF_NAME=OPAPPLY.VESSEL ;
items.VOYAGE_NUMBER=OPAPPLY.VOYNO ;
items.CUSTOMS_BROKER_NAME=OPAPPLY.ENTERP ;
items.CUSTOMS_BROKER_CODE=OPAPPLY.ENTERPID ;
items.TRADE_MODE=OPAPPLY.TRADETERM ;
items.DESTINATION_PORT=OPAPPLY.PORTDISCHARGE ;
items.PIECES =OPAPPLY.PKGS.ToString();
items.GROSS_WEIGHT=OPAPPLY.KGS.ToString();
items.NET_WEIGHT =OPAPPLY.NETWEIGHT.ToString();
items.COUNTRY=OPAPPLY.ARCOUNTRY ;
#endregion
#region 单一窗口
SoftMng.BLL.sys_EnumerationBLL bllEM = new SoftMng.BLL.sys_EnumerationBLL();
var emlistdataset = bllEM.GetList("");
var emlisttable = emlistdataset.Tables[0];
var emlistQuery =
from emlist in emlisttable.AsEnumerable()
select emlist;
//DecHead model = new DecHead();
//model.AgentStatus = "暂存";
//model.BSNO = OPAPPLY.BSNO;
//model.GID = Guid.NewGuid().ToString();
//model.EntryType = items.CCS_TYPE;
//if (model.EntryType == "M") model.EntryType_Text = "无纸化通关";
//if (model.EntryType == "O") model.EntryType_Text = "普通报关单";
//if (model.EntryType == "L") model.EntryType_Text = "为带报关单清单的报关单";
//if (model.EntryType == "W") model.EntryType_Text = "无纸报关类型";
//if (model.EntryType == "D") model.EntryType_Text = "既是清单又是无纸报关的情况";
items.CCS_NUMBER = model.EntryId ;
items.HANDBOOK_NUMBER= model.ManualNo ;
items.DECLARATION_PORT=model.CustomMaster ;
//model.CustomMaster_Text = GetTextByCode(emlistQuery, "关区代码", model.CustomMaster);
items.IMPORT_EXPORT_PORT =model.IEPort ;
//.IEPort_Text = GetTextByCode(emlistQuery, "关区代码", model.IEPort);
items.CONTRACT_NUMBER=model.ContrNo ;
//if (!string.IsNullOrEmpty(items.IMPORT_EXPORT_DATE))
// model.IEDate = Convert.ToDateTime(items.IMPORT_EXPORT_DATE);
if (model.IEDate != null)
items.IMPORT_EXPORT_DATE = ((DateTime)model.IEDate).ToString("yyyy-MM-dd");
items.BL_NUMBER=model.BillNo ;
items.TRANSPORTATION_METHOD=model.TrafMode ;
//model.TrafMode_Text = GetTextByCode(emlistQuery, "运输方式", model.TrafMode);
items.TRAF_NAME=model.TrafName ;
items.VOYAGE_NUMBER=model.NativeVoyageNo ;
items.TRADING_COMPANY_CODE=model.TradeCode ;
items.TRADING_COMPANY_NAME=model.TradeName ;
items.RECEIVER_COMPANY_CODE=model.OwnerCode ;
items.RECEIVER_COMPANY_NAME=model.OwnerName ;
items.CUSTOMS_BROKER_CODE=model.AgentCode ;
items.CUSTOMS_BROKER_NAME=model.AgentName ;
items.COUNTRY= model.TradeCountry ;
//model.TradeCountry_Text = GetTextByCode(emlistQuery, "国别地区", model.TradeCountry);
items.TRADE_MODE=model.TradeMode ;
//model.TradeMode_Text = GetTextByCode(emlistQuery, "监管方式", model.TradeMode);
items.TRANSACTION_METHOD=model.TransMode ;
//model.TransMode_Text = GetTextByCode(emlistQuery, "成交方式", model.TransMode);
items.TAX_OPTION=model.CutMode ;
//model.CutMode_Text = GetTextByCode(emlistQuery, "征免性质", model.CutMode);
items.FREIGHT_COST_BASIS=model.FeeMark ;
//decimal feerate = 0;
//TryToDecimal(items.FREIGHT_RATE, out feerate);
//model.FeeRate = feerate;
items.FREIGHT_RATE = model.FeeRate.ToString();
items.FREIGHT_CURRENCY=model.FeeCurr ;
//model.FeeCurr_Text = GetTextByCode(emlistQuery, "币别", model.FeeCurr);
items.PERMIT=model.LicenseNo ;
items.INSURANCE_FEE_BASIS=model.InsurMark ;
//decimal InsurRate = 0;
//TryToDecimal(items.INSURANCE_RATE, out InsurRate);
//model.InsurRate = InsurRate;
items.INSURANCE_RATE = model.InsurRate.ToString();
//model.FeeRate = feerate;
items.INSURANCE_CURRENCY=model.InsurCurr ;
//model.InsurCurr_Text = GetTextByCode(emlistQuery, "币别", model.InsurCurr);
items.MOFCOM_APPROVAL_NUMBER=model.ApprNo ;
items.MISCELLANEOUS_EXPENSE_BASIS=model.OtherMark ;
//decimal OtherRate = 0;
//TryToDecimal(items.MISCELLANEOUS_EXPENSE_RATE, out OtherRate);
//model.OtherRate = OtherRate;
items.MISCELLANEOUS_EXPENSE_RATE = model.OtherRate.ToString();
items.MISCELLANEOUS_EXPENSE_CURRENCY=model.OtherCurr ;
//model.OtherCurr_Text = GetTextByCode(emlistQuery, "币别", model.OtherCurr);
items.PACKAGING_TYPE=model.WrapType ;
//model.WrapType_Text = GetTextByCode(emlistQuery, "包装种类", model.WrapType);
//Int32 PackNo = 0;
//TryToInt32(items.PIECES, out PackNo);
//model.PackNo = PackNo;
items.PIECES = model.PackNo.ToString();
//decimal NetWt = 0;
//TryToDecimal(items.NET_WEIGHT, out NetWt);
//model.NetWt = NetWt;
items.NET_WEIGHT = model.NetWt.ToString();
//decimal GrossWet = 0;
//TryToDecimal(items.GROSS_WEIGHT, out GrossWet);
//model.GrossWet = GrossWet;
items.GROSS_WEIGHT = model.GrossWet.ToString();
items.REMARK=model.NoteS ;
items.E_PORT_DECLARATION_ID=model.SeqNo ;
items.ChkSurety=model.ChkSurety ;
items.BillType=model.BillType ;
items.AgentCodeScc=model.AgentCodeScc ;
items.OwnerCodeScc=model.OwnerCodeScc ;
items.TradeCodeScc=model.TradeCoScc ;
items.CopCodeScc=model.CopCodeScc ;
items.PromiseItmes=model.PromiseItmes ;
items.TradeAreaCode=model.TradeAreaCode ;
// model.TrnHead = items.TradeCodeScc;
items.PreEntryId=model.PreEntryId ;
items.Type=model.Type ;
items.OverseasConsignorCode=model.OverseasConsignorCode ;
items.OverseasConsignorCname=model.OverseasConsignorCname ;
items.OverseasConsignorEname=model.OverseasConsignorEname ;
items.OverseasConsignorAddr=model.OverseasConsignorAddr ;
items.OverseasConsigneeCode=model.OverseasConsigneeCode ;
items.OverseasConsigneeEname=model.OverseasConsigneeEname ;
items.GoodsPlace=model.GoodsPlace ;
items.MarkNo=model.MarkNo ;
items.DespPortCode=model.DespPortCode ;
items.EntyPortCode=model.EntyPortCode ;
items.DeclareName= model.DeclareName ;
items.NoOtherPack=model.NoOtherPack ;
items.DeclTrnRel=model.DeclTrnRel ;
items.EdiId=model.EdiId ;
items.CheckFlow=model.CheckFlow ;
items.TaxAaminMark=model.TaxAaminMark ;
items.BLNo=model.BLNo ;
items.InspOrgCode=model.InspOrgCode ;
items.SpecDeclFlag=model.SpecDeclFlag ;
items.PurpOrgCode=model.PurpOrgCode ;
//if (!string.IsNullOrEmpty(items.DespDate))
// model.DespDate = DateTime.ParseExact(items.DespDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
//if (!string.IsNullOrEmpty(items.CmplDschrgDt))
// model.CmplDschrgDt = DateTime.ParseExact(items.CmplDschrgDt, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
if(model.DespDate!=null)
items.DespDate = ((DateTime)model.DespDate).ToString("yyyyMMdd");
if(model.CmplDschrgDt!=null)
items.CmplDschrgDt = ((DateTime)model.CmplDschrgDt).ToString("yyyyMMdd");
items.CorrelationReasonFlag=model.CorrelationReasonFlag ;
items.VsaOrgCode=model.VsaOrgCode ;
items.OrigBoxFlag=model.OrigBoxFlag ;
items.CorrelationNo=model.CorrelationNo ;
items.EdiRemark=model.EdiRemark ;
items.EdiRemark2=model.EdiRemark2 ;
items.TradeCiqCode=model.TradeCiqCode ;
items.OwnerCiqCode=model.OwnerCiqCode ;
items.DeclCiqCode=model.DeclCiqCode ;
//items.OrgCode=model.OrgCode ;//20210610 删去此节点
//bll.Add(model);
#endregion
var DecListLength = DecList.Count();
var CCS_DETAILList = new MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPECCS_DETAIL[DecListLength];
var CCS_DETAILList_COUNT = 0;
foreach (var Dec in DecList) {
var CCS_DETAIL = new DSWeb.MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPECCS_DETAIL();
CCS_DETAIL.CURRENCY=OPAPPLY.CURRENCY ;
//TOTAL_AMOUNT = TOTAL_AMOUNT + CCS_DETAIL.TOTAL_AMOUNT;
//var Dec = new DecList();
//Dec.PID = model.GID;
//Dec.GID = Guid.NewGuid().ToString();
CCS_DETAIL.SEQUENCE_NUMBER=Dec.GNo ;
CCS_DETAIL.CUSTOMS_ITEM_NUMBER=Dec.ContrItem ;
CCS_DETAIL.PRODUCT_VERSION_NUMBER=Dec.ExgVersion ;
CCS_DETAIL.HS_CODE=Dec.CodeTS ;
CCS_DETAIL.CHINESE_DESCRIPTION=Dec.GName ;
CCS_DETAIL.MODEL=Dec.GModel ;
CCS_DETAIL.DECLARATION_QTY=Dec.GQty==null?0: (decimal)Dec.GQty;
CCS_DETAIL.CUSTOMS_UM=Dec.GUnit ;
//Dec.GUnit_Text = GetTextByCode(emlistQuery, "成交计量单位", Dec.GUnit);
CCS_DETAIL.CUSTOMS_QUANTITY= Dec.FirstQty==null?0:(decimal)Dec.FirstQty ;
CCS_DETAIL.FIRST_CUSTOMS_UM=Dec.FirstUnit ;
//Dec.FirstUnit_Text = GetTextByCode(emlistQuery, "成交计量单位", Dec.FirstUnit);
//decimal SecondQty = 0;
//TryToDecimal(CCS_DETAIL.SECOND_CUSTOMS_QUANTITY, out SecondQty);
//Dec.SecondQty = SecondQty;
CCS_DETAIL.SECOND_CUSTOMS_QUANTITY = Dec.SecondQty.ToString();
CCS_DETAIL.SECOND_CUSTOMS_UM=Dec.SecondUnit ;
//Dec.SecondUnit_Text = GetTextByCode(emlistQuery, "成交计量单位", Dec.SecondUnit);
//decimal DeclPrice = 0;
//TryToDecimal(CCS_DETAIL.UNIT_PRICE, out DeclPrice);
//Dec.DeclPrice = DeclPrice;
CCS_DETAIL.UNIT_PRICE = Dec.DeclPrice.ToString();
CCS_DETAIL.TOTAL_AMOUNT=Dec.DeclTotal==null?0: (decimal)Dec.DeclTotal ;
CCS_DETAIL.CURRENCY=Dec.TradeCurr ;
//Dec.TradeCurr_Text = GetTextByCode(emlistQuery, "币别", Dec.TradeCurr);
CCS_DETAIL.COUNTRY=Dec.OriginCountry ;
//Dec.OriginCountry_Text = GetTextByCode(emlistQuery, "国别地区", Dec.OriginCountry);
CCS_DETAIL.TAX_OPTION=Dec.DutyMode ;
//Dec.DutyMode_Text = GetTextByCode(emlistQuery, "征免方式", Dec.DutyMode);
CCS_DETAIL.DestinationCountry=Dec.DestinationCountry ;
//Dec.DestinationCountry_Text = GetTextByCode(emlistQuery, "征免方式", Dec.DestinationCountry);
CCS_DETAIL.CiqCode=Dec.CiqCode ;
CCS_DETAIL.DistrictCode=Dec.DistrictCode ;
CCS_DETAIL.DESTINATION_DISTRICT=Dec.DestCode ;
//Dec.Factor = CCS_DETAIL.Factor;
//Dec.DeclGoodsEname = CCS_DETAIL.DeclGoodsEname;
//Dec.OrigPlaceCode = CCS_DETAIL.OrigPlaceCode;
CCS_DETAIL.Purpose=Dec.Purpose ;
//Dec.Purpose_Text = GetTextByCode(emlistQuery, "用途", Dec.Purpose);
//if (!string.IsNullOrEmpty(CCS_DETAIL.ProdValidDt))
// Dec.ProdValidDt = DateTime.ParseExact(CCS_DETAIL.ProdValidDt, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture); ;
if(Dec.ProdValidDt!=null)
CCS_DETAIL.ProdValidDt = ((DateTime)Dec.ProdValidDt).ToString("yyyyMMdd");
//Int32 ProdQgp = 0;
//TryToInt32(CCS_DETAIL.ProdQgp, out ProdQgp);
//Dec.ProdQgp = ProdQgp;
CCS_DETAIL.ProdQgp = Dec.ProdQgp.ToString();
CCS_DETAIL.GoodsAttr=Dec.GoodsAttr ;
//Dec.GoodsAttr_Text = GetTextByCode(emlistQuery, "货物属性", Dec.GoodsAttr);
CCS_DETAIL.Stuff=Dec.Stuff ;
CCS_DETAIL.Uncode=Dec.Uncode ;
CCS_DETAIL.DangName=Dec.DangName ;
//Int32 DangPackType = 0;
//TryToInt32(CCS_DETAIL.DangPackType, out DangPackType);
//Dec.ProdQgp = DangPackType;
//CCS_DETAIL.DangPackTyp = Dec.ProdQgp.ToString();
CCS_DETAIL.DangPackSpec=Dec.DangPackSpec ;
//Dec.DangPackSpec_Text = GetTextByCode(emlistQuery, "危包规格", Dec.DangPackSpec);
CCS_DETAIL.EngManEntCnm=Dec.EngManEntCnm ;
//Int32 NoDangFlag = 0;
//TryToInt32(CCS_DETAIL.NoDangFlag, out NoDangFlag);
//Dec.NoDangFlag = NoDangFlag;
CCS_DETAIL.NoDangFlag = Dec.NoDangFlag.ToString();
CCS_DETAIL.GoodsSpec=Dec.GoodsSpec ;
CCS_DETAIL.GoodsModel=Dec.GoodsModel ;
CCS_DETAIL.GoodsBrand=Dec.GoodsBrand ;
CCS_DETAIL.ProduceDate=Dec.ProduceDate ;
CCS_DETAIL.ProdBatchNo=Dec.ProdBatchNo ;
DecGoodsLimitBLL gbll = new DecGoodsLimitBLL();
var DecGoodsLimitList = gbll.GetModelList("PID='" + Dec.GID + "'").ToList();
if (DecGoodsLimitList.Count == 0) { }
else
{
var DecGoodsLimitList_COUNT = 0;
var GOODLIMITList = new MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPECCS_DETAILDecGoodsLimit[DecGoodsLimitList.Count()];
foreach (var DecGood in DecGoodsLimitList)
{
var GOODLIMIT = new MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPECCS_DETAILDecGoodsLimit();
//DecGood.PID = Dec.GID;
//DecGood.GID = Guid.NewGuid().ToString();
GOODLIMIT.GoodsNo = DecGood.GoodsNo;
GOODLIMIT.LicTypeCode = DecGood.LicTypeCode;
//DecGood.LicTypeCode_Text = GetTextByCode(emlistQuery, "许可证类别", DecGood.LicTypeCode);
GOODLIMIT.LicenceNo = DecGood.LicenceNo;
GOODLIMIT.LicWrtofDetailNo = DecGood.LicWrtofDetailNo;
//DecGood.LicWrtofQty = Convert.ToInt32(GOODLIMIT.LicWrtofQty);
GOODLIMIT.LicWrtofQty = DecGood.LicWrtofQty.ToString();
var glvbll = new DecGoodsLimitVinBLL();
var DecGoodsLimitVinList = glvbll.GetModelList("PID='" + DecGood.GID + "'").ToList();
if (DecGoodsLimitVinList.Count == 0)
{}
else
{
var DecGoodsLimitVin_XMLArray= new MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPECCS_DETAILDecGoodsLimitDecGoodsLimitVin[DecGoodsLimitVinList.Count()];
var DecGoodsLimitVinList_COUNT = 0;
foreach (var DecGoodvin in DecGoodsLimitVinList) {
var GOODLIMITVIN = new MvcShipping.Models.MsOpApply_BOSH383.CCS_HEADER_TYPECCS_DETAILDecGoodsLimitDecGoodsLimitVin();
//DecGoodvin.PID = DecGood.GID;
//DecGoodvin.GID = Guid.NewGuid().ToString();
////DecGoodvin.LicenceNo = GOODLIMITVIN.LicenceNo;
//DecGoodvin.LicTypeCode = GOODLIMITVIN.LicTypeCode;
GOODLIMITVIN.VinNo=DecGoodvin.VinNo ;
//if (!string.IsNullOrEmpty(GOODLIMITVIN.BillLadDate))
// DecGoodvin.BillLadDate = DateTime.ParseExact(GOODLIMITVIN.BillLadDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
if (DecGoodvin.BillLadDate != null)
GOODLIMITVIN.BillLadDate = ((DateTime)DecGoodvin.BillLadDate).ToString("yyyyMMdd");
GOODLIMITVIN.QualityQgp=DecGoodvin.QualityQgp ;
GOODLIMITVIN.MotorNo=DecGoodvin.MotorNo ;
GOODLIMITVIN.VinCode=DecGoodvin.VinCode ;
GOODLIMITVIN.ChassisNo=DecGoodvin.ChassisNo ;
//Int32 InvoiceNum = 0;
//TryToInt32(GOODLIMITVIN.InvoiceNum, out InvoiceNum);
//DecGoodvin.InvoiceNum = InvoiceNum;
GOODLIMITVIN.InvoiceNum = DecGoodvin.InvoiceNum.ToString();
GOODLIMITVIN.ProdCnnm=DecGoodvin.ProdCnnm ;
GOODLIMITVIN.ProdEnnm=DecGoodvin.ProdEnnm ;
GOODLIMITVIN.ModelEn=DecGoodvin.ModelEn ;
//decimal PricePerUnit = 0;
//TryToDecimal(GOODLIMITVIN.PricePerUnit, out PricePerUnit);
//DecGoodvin.PricePerUnit = PricePerUnit;
GOODLIMITVIN.PricePerUnit = DecGoodvin.PricePerUnit.ToString();
GOODLIMITVIN.InvoiceNo = DecGoodvin.InvoiceNo ;
DecGoodsLimitVin_XMLArray[DecGoodsLimitVinList_COUNT] = GOODLIMITVIN;
DecGoodsLimitVinList_COUNT++;
}
GOODLIMIT.DecGoodsLimitVin = DecGoodsLimitVin_XMLArray;
}
GOODLIMITList[DecGoodsLimitList_COUNT] = GOODLIMIT;
DecGoodsLimitList_COUNT++;
}
}
CCS_DETAILList[CCS_DETAILList_COUNT] = CCS_DETAIL;
CCS_DETAILList_COUNT++;
}
items.CCS_DETAIL = CCS_DETAILList;
CCS_HEADERLIST[CCS_HEADERLIST_COUNT] = items;
CCS_HEADERLIST_COUNT++;
}
SHIPMENT.CCS_HEADER = CCS_HEADERLIST;
SHIPMENT.INTEGRATION_MESSAGE_CONTROL = headinfo;
return SHIPMENT;
}
private string Get385XmlFile(List CUSTOMNOList)
{
var SHIPMENT = Get385Xml(CUSTOMNOList);
XmlSerializer XML_1 = new XmlSerializer(SHIPMENT.GetType());
var path = Server.MapPath(OPAPPLYFilePath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
var usercode = CookieConfig.GetCookie_UserCode(Request);
string filename = path + "\\" + usercode + "_385.xml";
if (System.IO.File.Exists(Path.GetFullPath(filename)))
{
System.IO.File.Delete(Path.GetFullPath(filename));
}
var tw = new StreamWriter(filename);
XML_1.Serialize(tw, SHIPMENT);
tw.Close();
var result = OPAPPLYFilePath+"/" + usercode + "_385.xml";
return result;
}
private SHIPMENT_STATUS_OUTBOUND_V2 Get385Xml(List CUSTOMNOList) {
var SHIPMENT = new SHIPMENT_STATUS_OUTBOUND_V2();
var headinfo = new DSWeb.MvcShipping.Models.MsOpApply_BOSH385.SHIPMENT_STATUS_OUTBOUND_V2INTEGRATION_MESSAGE_CONTROL();
foreach (var CUSTOMNO in CUSTOMNOList)
{
var OPAPPLY = MsOpApplyDAL.GetData(" CUSTOMNO='" + CUSTOMNO + "'");
#region 20210610 获取逻辑信息表的数据 如无信息则返回空
var HeadDic = BasicDataRefDAL.GetLogicInfo(OPAPPLY.BSNO, LOGICNAME_381);
if (HeadDic == null || HeadDic.Count() == 0) return SHIPMENT;
headinfo.ACTION = HeadDic["ACTION"];
headinfo.COMPANY_CODE = HeadDic["COMPANY_CODE"];
headinfo.ORG_CODE = HeadDic["ORG_CODE"];
var _t = decimal.Parse(HeadDic["PRIORITY"]);
if (HeadDic["PRIORITY"] == "")
{
headinfo.PRIORITY = null;
}
else
{
headinfo.PRIORITY = _t;
}
headinfo.MESSAGE_TYPE = HeadDic["MESSAGE_TYPE"];
headinfo.USERID = HeadDic["USERID"];
headinfo.RECEIVER = HeadDic["RECEIVER"];
headinfo.SENDER = HeadDic["SENDER"];
headinfo.BATCH_ID = HeadDic["BATCH_ID"];
headinfo.SOURCE_SYSTEM_TOKEN = "";
headinfo.BUS_KEY = new DSWeb.MvcShipping.Models.MsOpApply_BOSH385.SHIPMENT_STATUS_OUTBOUND_V2INTEGRATION_MESSAGE_CONTROLBUS_KEY();
headinfo.BUS_KEY.ORG_CODE = HeadDic["ORG_CODE"];
headinfo.BUS_KEY.SHIPMENT_NUMBER = HeadDic["SHIPMENT_NUMBER"];
SHIPMENT.INTEGRATION_MESSAGE_CONTROL = headinfo;
#endregion
var bll = new DecHeadBLL();
var model = bll.GetModelList("BSNO='" + OPAPPLY.BSNO + "'")[0];
//var message = new SHIPMENT_STATUS_OUTBOUND_V2INTEGRATION_MESSAGE_CONTROL();
//message.BATCH_ID = OPAPPLY.BSNO;
//message.BUS_KEY = new SHIPMENT_STATUS_OUTBOUND_V2INTEGRATION_MESSAGE_CONTROLBUS_KEY();
//message.BUS_KEY.SHIPMENT_NUMBER = OPAPPLY.BSNO;
SHIPMENT.INTEGRATION_MESSAGE_CONTROL = headinfo;
var header = new SHIPMENT_STATUS_HEADER_TYPE();
//SHIPMENT.SHIPMENT_STATUS_HEADER
header.SHIPMENT_NUMBER = HeadDic["SHIPMENT_NUMBER"];
header.HWB = OPAPPLY.HBLNO;
header.MWB = OPAPPLY.MBLNO;
header.INTERNAL_SHIPMENT_NUMBER = "";
var ies = "E";
if (OPAPPLY.BSTYPEREF.IndexOf("进口") >= 0)
{
ies = "I";
}
header.INCOMING_STATUS = ies;
header.INTERNAL_CCS = OPAPPLY.CUSTOMNO;
header.CCS_NUMBER = model.EntryId;
var DetailList = new SHIPMENT_STATUS_DETAIL_TYPE[3];
DetailList[0] = new SHIPMENT_STATUS_DETAIL_TYPE();
DetailList[0].STATUS_TYPE = "0";
DetailList[0].STATUS_CODE = "54";//海关系统申报日 //取单一窗口申报日期
DetailList[0].STATUS_TIME = string.IsNullOrWhiteSpace( model.DDateStr)?"": model.DDateStr + " 00:00:00";
DetailList[1] = new SHIPMENT_STATUS_DETAIL_TYPE();
DetailList[1].STATUS_TYPE = "0";
DetailList[1].STATUS_CODE = "16";//海关放行日期 //取单一窗口进出口日期
DetailList[1].STATUS_TIME = string.IsNullOrWhiteSpace(model.IEDateStr) ? "" : model.IEDateStr + " 00:00:00";
DetailList[2] = new SHIPMENT_STATUS_DETAIL_TYPE();
DetailList[2].STATUS_TYPE = "0";
DetailList[2].STATUS_CODE = "55";//海关查验日 //取报关业务的通关日期
DetailList[2].STATUS_TIME = string.IsNullOrWhiteSpace(OPAPPLY.CUSTOMDATE) ? "" : OPAPPLY.CUSTOMDATE + " 00:00:00";
header.SHIPMENT_STATUS_DETAIL = DetailList;
SHIPMENT.SHIPMENT_STATUS_HEADER = header;
}
return SHIPMENT;
}
[HttpPost]
public ContentResult UploadXmlBs(string CUSTOMNOs) {
var result = new DBResult();
var jsonRespose = new JsonResponse { Success = false, Message = "" };
BasicDataRefDAL.SaveLog("", "", "博世上传", "开始");
try
{
result = DoUploadXmlBs(CUSTOMNOs);
var json = JsonConvert.Serialize(new { Success = result.Success, Message = result.Message, data = result.Data });
return new ContentResult() { Content = json };
}
catch (Exception e)
{
BasicDataRefDAL.SaveLog(e.Message, "", "博世上传", "错误");
jsonRespose.Success = false;
jsonRespose.Message = "生成报文出错:" + e.Message;
return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) };
}
}
public DBResult DoUploadXmlBs(string CUSTOMNOs) {
var result = new DBResult();
var mark = 0;
try
{
mark = 1;
var CUSTOMNOList = CUSTOMNOs.Split(',').ToList();
//寻找ftp信息
CommonDataContext cdc = new CommonDataContext();
var ftpinfo = new code_FtpSet_md();
var ftpinfoList = cdc.code_FtpSet.Where(x => x.EDINAME.StartsWith("BOSCH")).ToList();
if (ftpinfoList == null || ftpinfoList.Count == 0)
{
result.SetErrorInfo("没有找到BOSCH的FTP信息");
return result;
}
else
{
ftpinfo = ftpinfoList[0];
}
mark = 2;
//制作两个xml文件
var Filename383 = Get383XmlFile(CUSTOMNOList);
if (Filename383 == "") {
result.SetErrorInfo("没有找到导入的原始报文信息!");
}
mark = 3;
var Filename385 = Get385XmlFile(CUSTOMNOList);
mark = 4;
var path = Server.MapPath(OPAPPLYFilePath);
Filename383 = Filename383.Replace(OPAPPLYFilePath, path);
mark = 5;
Filename385 = Filename385.Replace(OPAPPLYFilePath, path);
mark = 6;
var targetfullpath_383 = (ftpinfo.FOLDERNAME.Replace(@"\", "/").EndsWith("/") ? ftpinfo.FOLDERNAME : ftpinfo.FOLDERNAME + "/") + CUSTOMNOList[0] + "_383.XML";
mark = 7;
var targetfullpath_385 = (ftpinfo.FOLDERNAME2.Replace(@"\", "/").EndsWith("/") ? ftpinfo.FOLDERNAME2 : ftpinfo.FOLDERNAME2 + "/") + CUSTOMNOList[0] + "_385.XML";
mark = 8;
//然后登陆ftp 把这两个文件放上去
SFTPHelper FTPDA = new SFTPHelper(ftpinfo);
mark = 9;
FTPDA.Connect();
mark = 10;
using (var file = System.IO.File.OpenRead(Filename383))
{
FTPDA.sftp.UploadFile(file, targetfullpath_383);
}
mark = 11;
using (var file = System.IO.File.OpenRead(Filename385))
{
FTPDA.sftp.UploadFile(file, targetfullpath_385);
}
mark = 12;
FTPDA.Disconnect();
}
catch (Exception ex) {
BasicDataRefDAL.SaveLog(mark.ToString()+"_"+ ex.Message, "", "博世上传", "");
}
result.setMessage(true, "发送成功");
return result;
}
#endregion
///
/// 获取HS检验检疫名称
///
///
///
///
///
public JsonResult GetHsQua(int pageIndex, int pageSize, string query, string type)
{
Dec_HsQuaBLL bll = new Dec_HsQuaBLL();
StringBuilder where = new StringBuilder();
where.Append("HSCode='" + type + "'");
if (!String.IsNullOrEmpty(query))
where.Append(string.Format(" And ([Value] LIKE '%{0}%' OR Name LIKE '%{0}%')", query));
var total = bll.GetRecordCount(where.ToString());
var list = bll.GetModelList(pageIndex, pageSize, where.ToString(), "[Value] collate Chinese_PRC_CS_AS_KS_WS");
var result = from p in list
select new
{
id = p.Value,
text = p.Value + " - " + p.Name
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
///
/// 获取模板
///
///
///
///
///
public JsonResult GetDecModel(int pageIndex, int pageSize, string query, string type)
{
DecModelBLL bll = new DecModelBLL();
StringBuilder where = new StringBuilder();
where.Append("[Type]=" + type);
if (!String.IsNullOrEmpty(query))
where.Append(string.Format(" And [Value] LIKE '%{0}%'", query));
var total = bll.GetRecordCount(where.ToString());
var list = bll.GetModelList(pageIndex, pageSize, where.ToString(), "[Value] collate Chinese_PRC_CS_AS_KS_WS");
var result = from p in list
select new
{
id = p.Value,
text = p.Value,
model = p.Model
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
///
/// 获取产地代码
///
///
///
///
///
public JsonResult GetOriginCode(int pageIndex, int pageSize, string query)
{
sys_b_OriginCodeBLL bll = new sys_b_OriginCodeBLL();
StringBuilder where = new StringBuilder();
where.Append("1=1");
if (!String.IsNullOrEmpty(query))
where.Append(string.Format("And ([Value] LIKE '%{0}%' OR Name LIKE '%{0}%')", query));
var total = bll.GetRecordCount(where.ToString());
var list = bll.GetModelList(pageIndex, pageSize, where.ToString(), "[Value] collate Chinese_PRC_CS_AS_KS_WS");
var result = from p in list
select new
{
id = p.Value,
text = p.Value + " - " + p.Name
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
///
/// 获取商品编码
///
///
///
///
///
public JsonResult GetProductCode(int pageIndex, int pageSize, string query)
{
sys_EnumerationBLL ebll = new sys_EnumerationBLL();
Dec_ProductBLL bll = new Dec_ProductBLL();
StringBuilder where = new StringBuilder();
where.Append("1=1");
if (!String.IsNullOrEmpty(query))
where.Append(string.Format("And ([HSCODE] LIKE '%{0}%' OR Name LIKE '%{0}%')", query));
var total = bll.GetRecordCount(where.ToString());
var list = bll.GetModelList(pageIndex, pageSize, where.ToString(), "[HSCODE] collate Chinese_PRC_CS_AS_KS_WS");
var result = from p in list
select new
{
id = p.HSCODE,
text = p.HSCODE,
name = p.NAME,
unit = p.UNIT,
code1 = ebll.GetModelList("NAME ='" + p.UNIT.Split('/')[0] + "'").FirstOrDefault(),
code2 = p.UNIT.Split('/').Length > 1 ? ebll.GetModelList("NAME ='" + p.UNIT.Split('/')[1] + "'").FirstOrDefault() : null
};
return Json(new { data = result, total }, JsonRequestBehavior.AllowGet);
}
///
/// 获取模板列表
///
///
public JsonResult GetModelList(int startIndex, int limit, string sortOrder, string sortName, string search)
{
DecModelBLL mbll = new DecModelBLL();
StringBuilder where = new StringBuilder();
if (!String.IsNullOrEmpty(search))
where.Append(string.Format("[Value] LIKE '%{0}%'", search));
var list = mbll.GetModelList(startIndex, limit, where.ToString(), String.Format("{0} {1}", sortName, sortOrder));
var count = mbll.GetRecordCount(where.ToString());
return Json(new { total = count, rows = list });
}
///
/// 保存模板
///
///
public JsonResult SaveModel(DecModel dmodel)
{
DecModelBLL mbll = new DecModelBLL();
bool result;
var pmodel = mbll.GetModelList("Value='" + dmodel.Value + "' and type=" + dmodel.Type).FirstOrDefault();
if (pmodel == null)
{
dmodel.GID = Guid.NewGuid().ToString();
result = mbll.Add(dmodel) > 0;
} //新增
else
{
//类反射
Type type = typeof(DecModel);
PropertyInfo[] piArr = type.GetProperties();
foreach (var pi in piArr)
{
if (Array.IndexOf(Request.Params.AllKeys, pi.Name) < 0)
pi.SetValue(dmodel, pi.GetValue(pmodel, null), null);
}
result = mbll.Update(dmodel) > 0;
} //修改
return Json(new { success = result, message = result ? "操作成功" : "操作失败" });
}
///
/// 删除模板
///
///
public JsonResult DelModel(string ids)
{
DecModelBLL mbll = new DecModelBLL();
bool result = mbll.DeleteListWhere(string.Format("GID in({0})", ids)) > 0;
return Json(new { success = result, message = result ? "操作成功" : "操作失败" });
}
///
/// 删除单一窗口信息
///
///
///
public JsonResult Delete(string gid)
{
try
{
//删除主单
bll.Delete(gid);
gbll.DeleteListWhere("PID in (select GID from DecList where PID ='" + gid + "')");
vbll.DeleteListWhere("PID in (select GID from DecGoodsLimit where PID in (select GID from DecList where PID ='" + gid + "'))");
lbll.DeleteListWhere("PID='" + gid + "'");
cbll.DeleteListWhere("PID='" + gid + "'");
dbll.DeleteListWhere("PID='" + gid + "'");
tbll.DeleteListWhere("PID='" + gid + "'");
clbll.DeleteListWhere("PID='" + gid + "'");
opbll.DeleteListWhere("PID='" + gid + "'");
rcbll.DeleteListWhere("PID='" + gid + "'");
return Json(new { success = true });
}
catch (Exception se)
{
return Json(new { success = false, message = se.Message });
}
}
///
/// 获取申报要素
///
///
///
public JsonResult GetGmodel(string hscode)
{
string code = hscode.Substring(0, 3);
var ds = DBUtility.DbHelperSQL.Query("select distinct [CODE] from [Dec_ProductStandard] where [CODE] LIKE'" + code + "%' ");
if (ds.Tables.Count > 0)
{
var dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
foreach (DataRow item in dt.Rows)
{
var rowcode = item[0].ToString();
if (rowcode.Length > code.Length && hscode.Contains(rowcode))
{
code = rowcode;
}
}
}
}
Dec_ProductStandardBLL bll = new Dec_ProductStandardBLL();
var list = bll.GetModelList("[CODE] = '" + code + "'").OrderBy(p => p.SORT).ToList();
return Json(list);
}
///
/// 获取单一窗口列表
///
///
///
public JsonResult GetSingleList(string bsno)
{
var list = bll.GetModelList("BSNO='" + bsno + "'");
// op_applyBLL opbll = new op_applyBLL();
// var model = opbll.GetModelList("BSNO='" + bsno + "'").FirstOrDefault();
var model = MsOpApplyDAL.GetData("BSNO='"+bsno+"'");
return Json(new { list, model });
}
#region 单一窗口审核
///
/// 单一窗口列表信息
public ContentResult GetDataList(int start, int limit, string sort, string condition)
{
int count = 0;
var dataList = DecHeadDAL.GetDataList(condition, start, limit, CookieConfig.GetCookie_UserId(Request), Convert.ToString(Session["SHOWNAME"]), Convert.ToString(Session["COMPANYID"]), out count, sort);
var timeStamp = DateTime.Now.ToShortDateString();
var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = count, data = dataList.ToList(), timeStamp = timeStamp });
return new ContentResult() { Content = json };
}
#endregion
#region 读取单一窗口信息(读取接口)带附件
public const string _IURL = "http://47.104.90.170:9000/sw/download";
public const string _IURL_Nodoc= "http://47.104.90.170:9000/sw/merge/detail";
private string getPortStr(string starttime = "", string endtime = "", string CUSTOMNO = "", string MBLNO = "", string ies = "", string clearance = "0", string yardid = "sw",string unicode="",string etps_category="A",int cdntype=0, bool withdoc=true) {
string rtn = "";
var t_str = "";
var swcn = MsSysParamSetDAL.GetSysParamValue("OpApplySingle_User");
var swpw = MsSysParamSetDAL.GetSysParamValue("OpApplySingle_Pwd");
if (withdoc)
{
JObject reqObj = new JObject();
/*网站代号(sw)
卡号
密码(md5加密后)
报关单号
进出口标志(只有两个值) I(大写i): 进口, E: 出口
是否结关(只有两个值) 1:是,0:否
string swcn = "2020030084935", string swpw = "8a5889ea8e53b257e2a3ba053979ee64"
*/
reqObj.Add("yardid", yardid);
reqObj.Add("swcn", swcn);
reqObj.Add("swpw", swpw);
reqObj.Add("cdn", CUSTOMNO);
reqObj.Add("billno", MBLNO);
reqObj.Add("unicode", unicode);
reqObj.Add("ies", ies);
reqObj.Add("clearance", clearance);//未结关
reqObj.Add("cdnType", cdntype);//单据类型
reqObj.Add("starttime", starttime);//
reqObj.Add("endtime", endtime);//
reqObj.Add("etps_category", etps_category);//
//reqObj.Add("billno", "KMTCSIN2287541");
//reqObj.Add("ies", "I");
//reqObj.Add("clearance", "0");
t_str = reqObj.ToString(Newtonsoft.Json.Formatting.None);
rtn = DSWeb.Areas.MvcShipping.Comm.WebRequestHelper.DoPost(_IURL, t_str, 180000);
BasicDataRefDAL.SaveLog("_IURL=" + _IURL + ";t_str=" + t_str + ";rtn=" + rtn, "单一窗口", "读取单一窗口", "一次业务");
}
if (!withdoc) {
JObject reqObj = new JObject();
/*网站代号(sw)
卡号
密码(md5加密后)
报关单号
进出口标志(只有两个值) I(大写i): 进口, E: 出口
是否结关(只有两个值) 1:是,0:否
string swcn = "2020030084935", string swpw = "8a5889ea8e53b257e2a3ba053979ee64"
*/
reqObj.Add("card", swcn);
reqObj.Add("pwd", swpw);
reqObj.Add("ies", ies);
reqObj.Add("clear", clearance);//未结关
reqObj.Add("cdnType", cdntype);//单据类型
reqObj.Add("cdn", CUSTOMNO);
reqObj.Add("bill", MBLNO);
reqObj.Add("unicode", unicode);
reqObj.Add("start", starttime);//
reqObj.Add("end", endtime);//
reqObj.Add("startNumber", "0");//
reqObj.Add("endNumber", "1");//
reqObj.Add("etps_category", etps_category);//
reqObj.ToString(Newtonsoft.Json.Formatting.None);
t_str = reqObj.ToString(Newtonsoft.Json.Formatting.None);
rtn = DSWeb.Areas.MvcShipping.Comm.WebRequestHelper.DoPost(_IURL_Nodoc, t_str, 180000);
BasicDataRefDAL.SaveLog("_IURL=" + _IURL_Nodoc + ";t_str=" + t_str + ";rtn=" + rtn, "单一窗口", "读取单一窗口", "一次业务");
}
return rtn;
}
//二步申报业务的读取
public const string _IURL_2 = "http://47.104.90.170:9000/sw/ts/downloads";
public const string _IURL_2_Nodoc = "http://47.104.90.170:9000/sw/ts/details";
///
/// 二步申报 读取
///
///
///
///
///
///
///
///
///
private string getPortStr_2( string CUSTOMNO = "", string MBLNO = "", string SeqNo = "", string etps_category = "A", int cdntype = 0, bool withdoc = true)
{
string rtn = "";
JObject reqObj = new JObject();
/*
### 单一窗口两步申报总数据详情和pdf查询 API
#### 请求的数据:
请求方式:POST
url定义:http://47.104.90.170:9000/sw/ts/downloads
请求参数:formdata
| 参数 | 类型 | 是否必须传 | 描述 |
| :---------: | :----: | :--------: | :--------------------------: |
| card | 字符串 | 是 | 卡号 |
| pwd | 字符串 | 是 | 密码 |
| cdn | 字符串 | 否 | 报关单号 |
| bill | 字符串 | 否 | 提单号 |
| unicode | 字符串 | 否 | 统一编号 |
| start | 字符串 | 否 | 查询开始日期 (2020-06-09) |
| end | 字符串 | 否 | 查询结束日期 (2020-06-09) |
| startNumber | 数值 | 否 | 查询数据开始数,如:1,11,21 |
| endNumber | 数值 | 否 | 查询数据结束数,如:10,20,30 |
*/
var swcn = MsSysParamSetDAL.GetSysParamValue("OpApplySingle_User");
var swpw = MsSysParamSetDAL.GetSysParamValue("OpApplySingle_Pwd");
reqObj.Add("card", swcn);
reqObj.Add("pwd", swpw);
reqObj.Add("cdnType", cdntype);//单据类型
reqObj.Add("cdn", CUSTOMNO);
reqObj.Add("bill", MBLNO);
reqObj.Add("unicode", SeqNo);
reqObj.Add("start", "");
reqObj.Add("end", "");
reqObj.Add("startNumber", "1");
reqObj.Add("endNumber", "10");
reqObj.Add("etps_category", etps_category);//
var t_str = reqObj.ToString(Newtonsoft.Json.Formatting.None);
if (withdoc)
rtn = DSWeb.Areas.MvcShipping.Comm.WebRequestHelper.DoPost(_IURL_2, t_str, 180000);
if (!withdoc)
rtn = DSWeb.Areas.MvcShipping.Comm.WebRequestHelper.DoPost(_IURL_2_Nodoc, t_str, 180000);
BasicDataRefDAL.SaveLog("_IURL=" + _IURL + ";t_str=" + t_str + ";rtn=" + rtn, "单一窗口", "读取单一窗口", "二步申报");
return rtn;
}
///
/// 读取单一窗口数据 指定报关单号/提单号/统一编号 读取
///
///
///
public JsonResult GetDecHead_Port(string bsno,bool withdoc=true)
{
var DecHead_Local = bll.GetModelList("BSNO='" + bsno + "'").FirstOrDefault();
var opapplyhead = MsOpApplyDAL.GetData("BSNO='" + bsno + "'");
//var billno = opapplyhead.MBLNO;
var CUSTOMNO = "";
var MBLNO = "";
var SeqNo = "";
CUSTOMNO = opapplyhead.CUSTOMNO;
if (string.IsNullOrWhiteSpace(CUSTOMNO)) {
}
MBLNO = opapplyhead.MBLNO;
var updateseai = false;
var opseaihead = MsOpSeaiDAL.GetData("MBLNO='" + MBLNO + "'");
if (opseaihead.MBLNO == MBLNO&&!opseaihead.BSSTATUS) updateseai = true;
SeqNo = opapplyhead.CUSCIQNO;
var needinsert = false;
var needupd = false;
if (DecHead_Local == null)
{
DecHead_Local = new DecHead();
needinsert = true;
}
else needupd = true;
///从接口读取信息
string rtn = "";
var result = new DBResult();
result.Success = true;
var ies = "E";
if (opapplyhead.BSTYPEREF.IndexOf("进口") >= 0)
{
ies = "I";
}
var clearance = opapplyhead.ISCLEAR;
//20210706 增加参数 opapply. ETPS_CATEGORY 取值范围 A C D 存储于枚举类型96100
var etps_category = opapplyhead.ETPS_CATEGORY;
var cdntype = opapplyhead.CDNTYPE;
if (string.IsNullOrWhiteSpace(etps_category)) etps_category = "A";
if (DecHead_Local.ApplyType == 1 || DecHead_Local.ApplyType == null)
rtn = getPortStr("", "", CUSTOMNO, MBLNO, ies, clearance,"sw", SeqNo, etps_category, cdntype, withdoc);
else
rtn = getPortStr_2(CUSTOMNO, MBLNO, SeqNo, etps_category, cdntype, withdoc);
var _status = "0";
var portresultstatus = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn);
_status = portresultstatus.status;
var PortReturn = new DecHead_WebModel();
if (_status == "1")
{
//rtn = getPortStr(CUSTOMNO, MBLNO, ies, "0");
//rtn = formatresult(rtn);
PortReturn = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn);
}
else {
var _r = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn);
return Json(new { status = false, message = _r.message });
}
//if (DecHead_Local.ApplyType == 1 || DecHead_Local.ApplyType == null)
//{
// rtn = getPortStr("", "", CUSTOMNO, MBLNO, ies, "1");
// //rtn = formatresult(rtn);
// PortReturn = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn);
//}
opapplyhead.ISDY = "1";
opapplyhead.ModelUIStatus="E";
//PortReturn.Message= JsonConvert.Deserialize(PortReturn.message[0]);
//PortReturn.Message.Data = JsonConvert.Deserialize(PortReturn.Message.data);
//PortReturn.Message.Data.PreDecHeadVo = JsonConvert.Deserialize(PortReturn.Message.Data.preDecHeadVo);
//var preDecHeadVo = PortReturn.Message.Data.PreDecHeadVo;
foreach (var head in PortReturn.message) {
var preDecHeadVo = head.data.getdata();
var trueinfo = true;
//if (!string.IsNullOrWhiteSpace(CUSTOMNO)|| !string.IsNullOrWhiteSpace(MBLNO) || !string.IsNullOrWhiteSpace(SeqNo))
//{
// trueinfo = true;
//}
//else
//{
// //解析之后判断是否存在 提单号billNo 监管方式supvModeCdde 这两个字段正确的信息
// if (!string.IsNullOrWhiteSpace(preDecHeadVo.billNo) && !string.IsNullOrWhiteSpace(preDecHeadVo.supvModeCdde))
// {
// if (DecHead_Local.BillNo == preDecHeadVo.billNo && DecHead_Local.TradeMode == preDecHeadVo.supvModeCdde)
// {
// trueinfo = true;
// }
// }
//}
if (updateseai) {
if (!string.IsNullOrWhiteSpace(preDecHeadVo.trafName))
opseaihead.VESSEL = preDecHeadVo.trafName;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.cusVoyageNo))
opseaihead.VOYNO = preDecHeadVo.cusVoyageNo;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.iEDate))
opseaihead.ETD = DateTime.ParseExact(preDecHeadVo.iEDate, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-MM-dd") ;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.distinatePortName))
opseaihead.PORTLOAD = preDecHeadVo.distinatePortName;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.customMasterName))
opseaihead.MaTou = preDecHeadVo.customMasterName;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.consigneeCname))
opseaihead.ENTERP = preDecHeadVo.consigneeCname;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.supvModeCddeName))
opseaihead.TRADETYPE = preDecHeadVo.supvModeCddeName;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.contrNo))
opseaihead.CONTRACTNO = preDecHeadVo.contrNo;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.dDate))
opseaihead.CUSTOMDATE = preDecHeadVo.dDate;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.entryId))
opseaihead.CUSTOMNO = preDecHeadVo.entryId;
//opseaihead.GOODSNAME
if (!string.IsNullOrWhiteSpace(preDecHeadVo.packNo ))
opseaihead.PKGS = Convert.ToInt32(preDecHeadVo.packNo);
if (!string.IsNullOrWhiteSpace(preDecHeadVo.wrapTypeName))
opseaihead.KINDPKGS = preDecHeadVo.wrapTypeName;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.grossWt))
opseaihead.KGS = Convert.ToDecimal(preDecHeadVo.grossWt);
if (!string.IsNullOrWhiteSpace(preDecHeadVo.netWt ))
opseaihead.NETWEIGHT = Convert.ToDecimal(preDecHeadVo.netWt);
if (!string.IsNullOrWhiteSpace(preDecHeadVo.transMode))
opseaihead.TRADETERM = preDecHeadVo.transMode;
if (!string.IsNullOrWhiteSpace(preDecHeadVo.dDate))
opseaihead.UPDATETIME = preDecHeadVo.dDate;
//opseaihead.CUSTOMDATE=
}
opapplyhead.VESSEL = preDecHeadVo.trafName;
opapplyhead.VOYNO = preDecHeadVo.cusVoyageNo;
opapplyhead.PORTDISCHARGE = preDecHeadVo.distinatePortName;
if (string.IsNullOrEmpty(opapplyhead.ENTERP.Trim()))
opapplyhead.ENTERP = preDecHeadVo.consigneeCname;
if (string.IsNullOrEmpty(opapplyhead.MBLNO.Trim()))
opapplyhead.MBLNO = preDecHeadVo.billNo;
if (string.IsNullOrEmpty(opapplyhead.CUSTOMNO.Trim()))
opapplyhead.CUSTOMNO = preDecHeadVo.entryId;
//opseaihead.GOODSNAME
opapplyhead.PKGS = Convert.ToInt32(preDecHeadVo.packNo);
opapplyhead.KGS = Convert.ToDecimal(preDecHeadVo.grossWt);
opapplyhead.NETWEIGHT = Convert.ToDecimal(preDecHeadVo.netWt);
opapplyhead.CONTRACTNO = DecHead_Local.ContrNo;
if (opapplyhead.ENTERP == null || string.IsNullOrEmpty(opapplyhead.ENTERP.Trim()))
opapplyhead.ENTERP = DecHead_Local.TradeName;
//opapplyhead.RelId
if (trueinfo)
{
if (needupd)
{
preDecHeadVo.setvalue(DecHead_Local);
bll.Update(DecHead_Local);
}
else {
DecHead_Local.BillNo = opapplyhead.MBLNO;
DecHead_Local.TradeMode = opapplyhead.TRADETYPE;
DecHead_Local.GID = Guid.NewGuid().ToString();
DecHead_Local.BSNO = bsno;
preDecHeadVo.setvalue(DecHead_Local);
bll.Add(DecHead_Local);
}
opapplyhead.CUSCIQNO = DecHead_Local.SeqNo;
//!string.IsNullOrWhiteSpace(cnsnTradeScc) ? cnsnTradeScc : rcvgdTradeScc;
//20210709 经营单位改为存储TradeName
//20210803 改为如果经营单位为空 才填
if(string.IsNullOrWhiteSpace(opapplyhead.ENTERP))
opapplyhead.ENTERP = DecHead_Local.TradeName;
//20210708 合同协议号 DecHead.ContrNo 填入 OPAPPLY.CONTRACTNO
opapplyhead.CONTRACTNO = DecHead_Local.ContrNo;
#region 电子文档信息
ReceiptContext receiptContext = new ReceiptContext();
if (head.pdfFile != null)
{
foreach (var pdf in head.pdfFile)
{
Receipt_Doc receipt = receiptContext.ReceiptDocs.FirstOrDefault(o => o.BSNO == bsno && o.URL == pdf.filename);
if (receipt == null)
{
receipt = new Receipt_Doc();
receipt.GID = Guid.NewGuid().ToString();
receipt.BSNO = bsno;
receipt.URL = pdf.filename;
receipt.Driect_URL = pdf.path;
receipt.MODIFIEDUSER = Session["USERID"].ToString();
receipt.MODIFIEDTIME = System.DateTime.Now;
receiptContext.ReceiptDocs.Add(receipt);
}
else
{
receipt.URL = pdf.filename;
receipt.Driect_URL = pdf.path;
receipt.MODIFIEDUSER = Session["USERID"].ToString();
receipt.MODIFIEDTIME = System.DateTime.Now;
}
var _r = receiptContext.SaveChanges();
}
}
#endregion
#region 集装箱信息
var containerlist = cbll.GetModelList("PID='" + DecHead_Local.GID + "'");
var portContainerlist = preDecHeadVo.getpreDecContainerVo();
if (portContainerlist.Count > 0)
{
foreach (var portContainer in portContainerlist)
{
var upd = false;
foreach (var container in containerlist)
{
if (container.ContainerId.Trim() == portContainer.containerNo.Trim())
{
upd = true;
var updcontainer = portContainer.getContainerValue(container);
cbll.Update(updcontainer);
}
}
if (!upd)
{
var updcontainer = new Container();
updcontainer = portContainer.getContainerValue(updcontainer);
updcontainer.GID = Guid.NewGuid().ToString();
updcontainer.PID = DecHead_Local.GID;
cbll.Add(updcontainer);
}
}
//20210628 增加报关业务的箱信息
//20210630 客户又取消此逻辑 部分原因是读入的箱信息的箱型无法对应
/*
CommonDataContext cdc = new CommonDataContext();
//WEIGHKGS称重重量=ContainerWt
//CNTRNO = ContainerId
var ctncode = 0;
var op_ctnList = cdc.OP_CTN.Where(x => x.BSNO == opapplyhead.BSNO).ToList();
foreach (var item in portContainerlist)
{
var needinsert_ctn = true;
if (op_ctnList != null && op_ctnList.Count > 0)
{
if (op_ctnList.Exists(x => x.CNTRNO == item.containerNo))
{
var upditem = op_ctnList.First(x => x.CNTRNO == item.containerNo);
upditem.WEIGHKGS = decimal.Parse(item.containerWt);
needinsert_ctn = false;
}
}
if (needinsert_ctn)
{
ctncode++;
var insertitem = new op_ctn_md();
insertitem.CTN_ID = Guid.NewGuid().ToString();
insertitem.BSNO = opapplyhead.BSNO;
insertitem.CNTRNO = item.containerNo;
insertitem.WEIGHKGS = (string.IsNullOrWhiteSpace( item.containerWt))?0: decimal.Parse(item.containerWt);
insertitem.vgmconncom = "";
insertitem.CTNNUM = 1;
insertitem.TEU = 2;
insertitem.CTNALL = "40GP";
insertitem.CTNCODE= string.Format("{0:d2}", ctncode);
cdc.OP_CTN.Add(insertitem);
}
}
cdc.SaveChangesAsync();
*/
}
containerlist = cbll.GetModelList("PID='" + DecHead_Local.GID + "'");
#endregion
#region 项信息
var declist_List = lbll.GetModelList(0, 99, "PID='" + DecHead_Local.GID + "'", String.Format("{0}", "gNo", ""));
var port_decMergeListVoList = preDecHeadVo.getdecMergeListVo();
var goodstr = "";
decimal goodsvalue = 0;
if (port_decMergeListVoList.Count > 0)
foreach (var port_decMergeListVo in port_decMergeListVoList)
{
var upd = false;
foreach (var declist in declist_List)
{
if (declist.GNo.Trim() == port_decMergeListVo.gNo.Trim())
{
upd = true;
var upddeclist = port_decMergeListVo.getDecListValue(declist);
lbll.Update(upddeclist);
}
}
if (!upd)
{
var upddeclist = new DecList();
upddeclist = port_decMergeListVo.getDecListValue(upddeclist);
upddeclist.GID = Guid.NewGuid().ToString();
upddeclist.PID = DecHead_Local.GID;
lbll.Add(upddeclist);
}
if (updateseai)
{
if (port_decMergeListVo.gName!="")
opseaihead.GOODSNAME = port_decMergeListVo.gName;
if (port_decMergeListVo.cusOriginCountryName != "")
opseaihead.COUNTRYOFORIGIN = port_decMergeListVo.cusOriginCountryName;
if (!string.IsNullOrWhiteSpace(port_decMergeListVo.declTotal))
goodsvalue = goodsvalue + Convert.ToDecimal(port_decMergeListVo.declTotal);
if (!string.IsNullOrWhiteSpace(port_decMergeListVo.declPrice))
opseaihead.UNITPRICE = Convert.ToDecimal(port_decMergeListVo.declPrice);
if (port_decMergeListVo.tradeCurrName != "")
opseaihead.CURRENCY = port_decMergeListVo.tradeCurrName;
goodstr = goodstr + port_decMergeListVo.codeTs + " " + port_decMergeListVo.gModel + " " + port_decMergeListVo.gName + " " + port_decMergeListVo.hsCodeDesc;
}
opapplyhead.ARCOUNTRY = port_decMergeListVo.cusOriginCountryName;
}
if (updateseai)
{
opseaihead.IMPORTVALUE = goodsvalue;
opseaihead.REMARK2 = goodstr;
var modb2 = new ModelObjectDB();
modb2.Save(opseaihead);
}
var modb3 = new ModelObjectDB();
modb3.Save(opapplyhead);
var Declist = lbll.GetModelList(0, 99, "PID='" + DecHead_Local.GID + "'", String.Format("{0}", "gNo", ""));
var count = lbll.GetRecordCount("PID='" + DecHead_Local.GID + "'");
#endregion
#region 单证信息
var preDecDocVoList = preDecHeadVo.getpreDecDocVo();
var currList= dbll.GetModelList(" PID='"+ DecHead_Local.GID + "' ");
if (preDecDocVoList!=null && preDecDocVoList.Count > 0){
foreach (var item in preDecDocVoList) {
LicenseDocu docitem = new LicenseDocu();
docitem.PID = DecHead_Local.GID;
docitem.GID = Guid.NewGuid().ToString();
//docitem.DocuCode = item.attFmtTypeCode;
docitem.DocuCode_Text = item.attFmtTypeCode;
docitem.CertCode = item.attEdocNo;
if (currList.Exists(x => x.CertCode == docitem.CertCode)) {
continue;
}
dbll.Add(docitem);
}
}
var cusLicenseListVoList = preDecHeadVo.getcusLicenseListVo();
if (cusLicenseListVoList != null && cusLicenseListVoList.Count > 0)
{
foreach (var item in cusLicenseListVoList)
{
LicenseDocu docitem = new LicenseDocu();
docitem.PID = DecHead_Local.GID;
docitem.GID = Guid.NewGuid().ToString();
//docitem.DocuCode = item.attFmtTypeCode;
docitem.DocuCode_Text = item.acmpFormCode;
docitem.CertCode = item.acmpFormNo;
if (currList.Exists(x => x.CertCode == docitem.CertCode))
{
continue;
}
dbll.Add(docitem);
}
}
#endregion
#region 右下角关联信息
List currDFTList = tbll.GetModelList(" PID='" + DecHead_Local.GID + "' ");
var tmodel = new DecFreeTx();
if (currDFTList != null && currDFTList.Count() > 0)
{
tmodel = currDFTList[0];
tmodel.RelId = preDecHeadVo.relativeId;
tbll.Update(tmodel);
}
else {
tmodel.GID = Guid.NewGuid().ToString();
tmodel.PID = DecHead_Local.GID;
tmodel.RelId = preDecHeadVo.relativeId;
tbll.Add(tmodel);
}
#endregion
return Json(new { DecHead_Local, containerlist, total = count, rows = Declist });
}
}
if (updateseai)
{
var modb2 = new ModelObjectDB();
modb2.Save(opseaihead);
}
var modb = new ModelObjectDB();
modb.Save(opapplyhead);
//如无 则不进行操作
//如有 则看是需要更新还是新增
return Json(new { PortReturn });
}
public JsonResult GetDecHead_Port_NoDoc(string bsno)
{
return GetDecHead_Port(bsno, false);
}
public class timeclass {
public string starttime;
public string endtime;
public timeclass(string starttime, string endtime) {
this.starttime= starttime;
this.endtime = endtime;
}
}
///
/// 批量读取单一窗口信息 依据时间段
///
///
///
public JsonResult GetDecHead_Port_Time(string endtime = "", string starttime = "", string ies="E"
, string cdnType = "0", string clearance="0", string isSecondApply = "0", string withPdf = "0")///
{
if (endtime == "")
{
endtime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
if (starttime == "")
{
starttime = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
}
}
else
{
if (starttime == "")
{
starttime = Convert.ToDateTime(endtime).AddDays(-1).ToString("yyyy-MM-dd");
}
}
List lt = new List();
starttime = Convert.ToDateTime(starttime).AddDays(0).ToString("yyyy-MM-dd");
var CUSTOMDATE = starttime;
endtime = Convert.ToDateTime(endtime).AddDays(0).ToString("yyyy-MM-dd");
if (Convert.ToDateTime(starttime).AddDays(2) < Convert.ToDateTime(endtime)) {
string Message = "时间跨度不能超过3天";
return Json(new { Message });
}
//如果日期起止不相同 则将其改为一个日期列表(每天)
/*
if (Convert.ToDateTime(starttime) != Convert.ToDateTime(endtime))
{
while (Convert.ToDateTime( starttime) <= Convert.ToDateTime(endtime))
{
var tc = new timeclass(starttime, starttime);
starttime = Convert.ToDateTime(starttime).AddDays(1).ToString("yyyy-MM-dd");
lt.Add(tc);
}
}
else {
lt.Add(new timeclass(starttime, endtime));
}
if (lt.Count > 0)
{
}
else {
return Json(new {});
}*/
//var ies = "E";
//var clearance = "0";
SingleCondition sc = new SingleCondition(starttime,endtime,ies, cdnType, clearance,isSecondApply,withPdf,Session["USERID"].ToString(), Session["SHOWNAME"].ToString(), Session["COMPANYID"].ToString());
var sc1 = sc.copy();
sc1.change(starttime,endtime, ies, clearance);
readDAL_2.getPortInfo_thread(sc1);
//////////20201019 改为前台传入查询条件
//foreach (var tc in lt)
//{
// var sc1 = sc.copy();
// sc1.change(tc.starttime,tc.endtime,"E", "0");
// readDAL.getPortInfo_thread(sc1);
// var sc2 = sc.copy();
// sc2.change(tc.starttime, tc.endtime, "E", "1");
// readDAL.getPortInfo_thread(sc2);
// var sc3 = sc.copy();
// sc3.change(tc.starttime, tc.endtime, "I", "0");
// readDAL.getPortInfo_thread(sc3);
// var sc4 = sc.copy();
// sc4.change(tc.starttime, tc.endtime, "I", "1");
// readDAL.getPortInfo_thread(sc4);
//}
//////
//Dealrtn(PortReturn1);
//Dealrtn(PortReturn2);
//readDAL.Dealrtn(PortReturn3,Session["USERID"].ToString(),Session["SHOWNAME"].ToString(),Session["COMPANYID"].ToString());
//Dealrtn(PortReturn4);
return Json(new { });
}
public DecHead_WebModel getrtn(string starttime, string endtime, string ies, string clearance) {
var rtn = getPortStr(starttime, endtime, "", "", ies, clearance);
var _status = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn).status;
var result = new DecHead_WebModel();
if (_status == "1")
{
result = Newtonsoft.Json.JsonConvert.DeserializeObject(rtn);
}
return result;
}
public void Dealrtn(DecHead_WebModel PortReturn)
{
foreach (var head in PortReturn.message)
{
var preDecHeadVo = head.data.getdata();
if (string.IsNullOrWhiteSpace(preDecHeadVo.entryId)) {
continue;//没有报关单号的不做处理
}
var currCUSTOMNO = preDecHeadVo.entryId;
//本地是否存在该业务 以报关单号为准
//根据报关单号寻找报关业务 看是否存在
var OPAPPLY = MsOpApplyDAL.GetData(" CUSTOMNO='" + currCUSTOMNO.Trim() + "'");
var needinsert = false;//需要新建 还是更新信息
if (string.IsNullOrWhiteSpace(OPAPPLY.CUSTOMNO)) {
needinsert = true;
}
var bsno = "";
var decheadGID = "";
if (needinsert)
{
//新建 op_apply
saveinfo("insert", head, OPAPPLY);
}
else
{
saveinfo("edit", head, OPAPPLY);
}
}
}
public void saveinfo(string dealtype, MessageModel head, MsOpApply OPAPPLY) {
if (dealtype == "insert")
{
OPAPPLY.DbOperationType = DbOperationType.DbotIns;
OPAPPLY.ModelUIStatus = "I";
OPAPPLY.BSNO = Guid.NewGuid().ToString();
OPAPPLY.MASTERNO = OPAPPLY.BSNO;
OPAPPLY.CUSTNO = MsSysBillNoSetDAL.GetNewNo("报关业务", "委托编号", Session["COMPANYID"].ToString(), System.DateTime.Now.ToString("yyyy-MM-dd"));
}
else {
OPAPPLY.DbOperationType = DbOperationType.DbotUpd;
OPAPPLY.ModelUIStatus = "E";
}
var bsno = OPAPPLY.BSNO;
var preDecHeadVo = head.data.getdata();
OPAPPLY.CUSTOMNO = preDecHeadVo.entryId;
//根据报关单号 结尾0出口 结尾1进口
OPAPPLY.setbstype();
OPAPPLY.BSSTATUS = false;
OPAPPLY.FEESTATUS = false;
OPAPPLY.BSDATE = Convert.ToDateTime( preDecHeadVo.dDate);
OPAPPLY.CUSTOMDATE = preDecHeadVo.dDate;//报关日期=申报日期
OPAPPLY.OPDATE = preDecHeadVo.dDate;//业务日期=申报日期
OPAPPLY.MBLNO = preDecHeadVo.billNo;
//OPAPPLY.PORTLOAD = preDecHeadVo.despPortCode
OPAPPLY.INPUTBY = Session["SHOWNAME"].ToString();
OPAPPLY.CORPID = Session["COMPANYID"].ToString();
OPAPPLY.TRADETYPE = preDecHeadVo.supvModeCddeName;
var modb = new ModelObjectDB();
var tempresult = modb.Save(OPAPPLY);
var dealtype_detail = "edit";
var DecHead_Local = bll.GetModelList("BSNO='" + OPAPPLY.BSNO + "'").FirstOrDefault();
if (DecHead_Local == null)
{
DecHead_Local = new DecHead();
dealtype_detail = "insert";
}
if (dealtype_detail == "insert")
{
DecHead_Local.GID = Guid.NewGuid().ToString();
DecHead_Local.BSNO = OPAPPLY.BSNO;
preDecHeadVo.setvalue(DecHead_Local);
bll.Add(DecHead_Local);
}
else
{
preDecHeadVo.setvalue(DecHead_Local);
bll.Update(DecHead_Local);
}
#region 电子文档信息
ReceiptContext receiptContext = new ReceiptContext();
foreach (var pdf in head.pdfFile)
{
Receipt_Doc receipt = receiptContext.ReceiptDocs.FirstOrDefault(o => o.BSNO == bsno && o.URL == pdf.filename);
if (receipt == null)
{
receipt = new Receipt_Doc();
receipt.GID = Guid.NewGuid().ToString();
receipt.BSNO = bsno;
receipt.URL = pdf.filename;
receipt.Driect_URL = pdf.path;
receipt.MODIFIEDUSER = Session["USERID"].ToString();
receipt.MODIFIEDTIME = System.DateTime.Now;
receiptContext.ReceiptDocs.Add(receipt);
}
else
{
receipt.URL = pdf.filename;
receipt.Driect_URL = pdf.path;
receipt.MODIFIEDUSER = Session["USERID"].ToString();
receipt.MODIFIEDTIME = System.DateTime.Now;
}
var _r = receiptContext.SaveChanges();
}
#endregion
#region 集装箱信息
var containerlist = cbll.GetModelList("PID='" + DecHead_Local.GID + "'");
var portContainerlist = preDecHeadVo.getpreDecContainerVo();
if (portContainerlist.Count > 0)
foreach (var portContainer in portContainerlist)
{
var upd = false;
foreach (var container in containerlist)
{
if (container.ContainerId.Trim() == portContainer.containerNo.Trim())
{
upd = true;
var updcontainer = portContainer.getContainerValue(container);
cbll.Update(updcontainer);
}
}
if (!upd)
{
var updcontainer = new Container();
updcontainer = portContainer.getContainerValue(updcontainer);
updcontainer.GID = Guid.NewGuid().ToString();
updcontainer.PID = DecHead_Local.GID;
cbll.Add(updcontainer);
}
}
containerlist = cbll.GetModelList("PID='" + DecHead_Local.GID + "'");
#endregion
#region 项信息
var declist_List = lbll.GetModelList(0, 99, "PID='" + DecHead_Local.GID + "'", String.Format("{0}", "gNo", ""));
var port_decMergeListVoList = preDecHeadVo.getdecMergeListVo();
if (port_decMergeListVoList.Count > 0)
foreach (var port_decMergeListVo in port_decMergeListVoList)
{
var upd = false;
foreach (var declist in declist_List)
{
if (declist.GNo.Trim() == port_decMergeListVo.gNo.Trim())
{
upd = true;
var upddeclist = port_decMergeListVo.getDecListValue(declist);
lbll.Update(upddeclist);
}
}
if (!upd)
{
var upddeclist = new DecList();
upddeclist = port_decMergeListVo.getDecListValue(upddeclist);
upddeclist.GID = Guid.NewGuid().ToString();
upddeclist.PID = DecHead_Local.GID;
lbll.Add(upddeclist);
}
}
var Declist = lbll.GetModelList(0, 99, "PID='" + DecHead_Local.GID + "'", String.Format("{0}", "gNo", ""));
var count = lbll.GetRecordCount("PID='" + DecHead_Local.GID + "'");
#endregion
}
}
#endregion
#endregion
}