yangle
2023-03-10 85d8c8056694645f34e2a346f1efbb63314a6ef3
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
14个文件已修改
1个文件已添加
757 ■■■■■ 已修改文件
DAL/基础资料/公用基础资料/ClsGy_TaxMIX_Ctl.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/基础资料/基础资料/ClsGy_COMMONCONTACT_Model.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/销售管理/ClsXs_SeOutStockBillMain.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Model/销售管理/ClsXs_SeOutStockBillSub.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/CustomerCls/ClsXt_SystemParameter.cs 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/BaseSet/Gy_CustomerController.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs 253 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/Sc_ProcessMangementController.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/WebAPIController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_TaxMIXController.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/ListModels.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DAL/»ù´¡×ÊÁÏ/¹«Óûù´¡×ÊÁÏ/ClsGy_TaxMIX_Ctl.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using System.Data;
using DBUtility;
namespace DAL
{
@@ -27,13 +28,31 @@
                    "," + oModel.HLevel.ToString() + "," + Convert.ToString(oModel.HEndFlag ? 1 : 0) + "," + Convert.ToString(oModel.HStopflag ? 1 : 0) + ",'" + oModel.HRemark +
                    "','" + oModel.HUseFlag + "'," + oModel.HUSEORGID + "," + oModel.HCREATEORGID + ",'" + oModel.HMakeEmp + "','" + System.DateTime.Now + "','" + oModel.HCheckEmp + "','" + oModel.HModifyEmp + "','" + oModel.HStopEmp +  "'" + ")", ref DBUtility.ClsPub.sExeReturnInfo);
                //获取数据
                DataSet Ds;
                Int64 ItemID = 0;
                Ds = oCn.RunProcReturn("select MAX(HItemID) HItemID from Gy_TaxMIXMain" , "Gy_TaxMIXMain");
                if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HItemID"].ToString()) != 0)
                {
                    ItemID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HItemID"].ToString());
                }
                //插入子表
                foreach (Model.ClsGy_TaxMIXSub_Model oSub in DetailColl)
                {
                     DataSet Cs;
                    Int64 EntryID = 0;
                    Cs = oCn.RunProcReturn("select MAX(HEntryID) HEntryID from Gy_TaxMIXSub", "Gy_TaxMIXSub");
                    if (Cs.Tables[0].Rows.Count != 0 && ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString()) != 0)
                    {
                        EntryID = ClsPub.isLong(Cs.Tables[0].Rows[0]["HEntryID"].ToString()) + 1;
                    }
                    oCn.RunProc("Insert into Gy_TaxMIXSub " +
                      " (HTAXBENCHMARK,FTAXRATEID,FTAXBENCHMARKCORRVALUE,HTaxMixID" +
                      " (HTAXBENCHMARK,FTAXRATEID,FTAXBENCHMARKCORRVALUE,HTaxMixID,HEntryID" +
                      ") values("
                      + "'" + oSub.HTAXBENCHMARK + "'," + oSub.FTAXRATEID + ",'" + oSub.FTAXBENCHMARKCORRVALUE + "'," + oModel.HItemID +
                      + "'" + oSub.HTAXBENCHMARK + "'," + oSub.FTAXRATEID + ",'" + oSub.FTAXBENCHMARKCORRVALUE + "'," + ItemID + "," + EntryID +
                      ") ");
                }
Model/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/ClsGy_COMMONCONTACT_Model.cs
@@ -16,5 +16,6 @@
        public string HStopEmp { get; set; }
        public int HUSEORGID { get; set; }
        public int HCREATEORGID { get; set; }
        public int HCUSTID { get; set; }
    }
}
Model/ÏúÊÛ¹ÜÀí/ClsXs_SeOutStockBillMain.cs
@@ -32,5 +32,18 @@
        public Int64 HERPInterID;
        public string HERPBillType;
        public Int64 HSTOCKERGROUPID;
        public Int64 HSALEGROUPID;
        public Int64 HSALEDEPTID;
        public string HBUSINESSTYPE;
        public Int64 HCARRIERID;
        public Int64 HRECEIVERID;
        public Int64 HSETTLEID;
        public Int64 HPAYERID;
        public Int64 HHEADLOCID;
        public Int64 HRECCONTACTID;
        public Int64 HRECEIPTCONDITIONID;
        public Int64 HCORRESPONDORGID;
        public string HCARRIAGENO;
    }
}
Model/ÏúÊÛ¹ÜÀí/ClsXs_SeOutStockBillSub.cs
@@ -21,7 +21,7 @@
        public Int64 HSPID;
        public Int64 HOWNERID;
        public string HOWNERTYPEID;
        public Int64 HSETTLEORGID;
        public string HSETTLEORGID;
        public double HMoveStockQty;
        public Int64 HAuxPropID;
        public string HBatchNO;
@@ -29,5 +29,39 @@
        public Int64 HERPInterID;
        public Int64 HERPEntryID;
        public string HSeORderBillNo;
        public string HCUSTMATID;
        public Int64 HBASEUNITID;
        public string HBFLOWID;
        public Int64 HOUTCONTROL;
        public Int64 HSTOCKUNITID;
        public string HROWTYPE;
        public string HROWID;
        public string HPARENTROWID;
        public Int64 HPARENTMATID;
        public Int64 HTAXCOMBINATION;
        public double HPRICECOEFFICIENT;
        public double HSYSPRICE;
        public double HLIMITDOWNPRICE;
        public Int64 HPRICEUNITID;
        public double HTAXPRICE;
        public double HTAXRATE;
        public double HTAXNETPRICE;
        public double HDISCOUNTRATE;
        public Int64 HISFREE;
        public Int64 HLOCALCURRID;
        public Int64 HSETTLECURRID;
        public Int64 HEXCHANGETYPEID;
        public Int64 HSETTLETYPEID;
        public Int64 HRECEIPTCONDITIONID;
        public double HEXCHANGERATE;
        public Int64 HISINCLUDEDTAX;
        public Int64 HISPRICEEXCLUDETAX;
        public Int64 HTAXRATEID;
        public double HTaxRate_TAX;
        public double HCOSTPERCENT;
        public Int64 HVAT;
        public Int64 HSELLERWITHHOLDING;
        public Int64 HBUYERWITHHOLDING;
    }
}
Pub_Class/CustomerCls/ClsXt_SystemParameter.cs
@@ -1313,7 +1313,19 @@
                    {
                        omodel.MES_StationInBill_LineBindCtl = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //进站接收单是否自动匹配对应流水号
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationInBill_AutoFindSNO")
                    {
                        omodel.MES_StationInBill_AutoFindSNO = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //进站接收单只显示用户对应工序
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationInBill_ShowUSERProcess")
                    {
                        omodel.MES_StationInBill_ShowUSERProcess = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //===============出站单
                    //出站数量不能大于本道进站汇总数
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_QtyCtl")
@@ -1330,6 +1342,39 @@
                    {
                        omodel.MES_StationOutBill_DeleteCtl = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //首道工序出站后自动生成ERP生产汇报单
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_FstAutoICMOReport")
                    {
                        omodel.MES_StationOutBill_FstAutoICMOReport = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //末道工序出站后自动生成ERP生产汇报单
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_LastAutoICMOReport")
                    {
                        omodel.MES_StationOutBill_LastAutoICMOReport = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //末道工序出站后自动生成ERP生产入库单
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_AutoStockIn")
                    {
                        omodel.MES_StationOutBill_AutoStockIn = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //末道工序自动入库时仓库取值类型(物料、工序、工艺路线)
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_InStockType")
                    {
                        omodel.MES_StationOutBill_InStockType = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //出站汇报单是否自动匹配对应流水号
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_AutoFindSNO")
                    {
                        omodel.MES_StationOutBill_AutoFindSNO = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //出站汇报单只显示用户对应工序
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationOutBill_ShowUSERProcess")
                    {
                        omodel.MES_StationOutBill_ShowUSERProcess = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=====不良评审单
                    //不良品数不能大于出站单报废数量
@@ -1494,12 +1539,19 @@
                        omodel.Sc_MESProceReportWorkBill_AutoCheck = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    //=========工序进站单
                    //自动匹配流水号
                    if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationBill_ProcNo")
                    {
                        omodel.MES_StationBill_ProcNo = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    }
                    ////=========工序进站单
                    ////自动匹配流水号
                    //if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationBill_ProcNo")
                    //{
                    //    omodel.MES_StationBill_ProcNo = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    //}
                    ////=========工序进出站
                    ////只显示用户对应工序
                    //if (ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HKey"]) == "MES_StationBill_ProcNoByUser")
                    //{
                    //    omodel.MES_StationBill_ProcNoByUser = ClsPub.isStrNull(DsSub.Tables[0].Rows[i]["HValue"]);
                    //}
                }
                sReturn = "显示单据成功!";
                return true;
Pub_Class/CustomerCls/ClsXt_SystemParameterMain.cs
@@ -10,7 +10,7 @@
        //生产汇报单
        public string Sc_ICMOReportBill_AutoCheck;              //是否自动审核
        public string Sc_ICMOReportBill_ERPMode;                //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Sc_ICMOReportBill_ERPMode;                //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Sc_ICMOReportBill_MustQtyCtl;             //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Sc_ICMOReportBill_MulSourceBill;          //多源单模式
        public string Sc_ICMOReportBill_BillTypeOneScan;        //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -21,15 +21,16 @@
        public string Sc_ICMOReportBill_SourceWHSPCtl;          //是否取源单中仓库仓位('Y'为是)
        public string Sc_ICMOReportBill_UpdateSourceInterID;    //上传后回填条码档案源单信息
        public string Sc_ICMOReportBill_MESFlag;                //生产汇报单同步MES标记,Y为同步
        public string Sc_ICMOReportBill_FirstCheckOut;          //必须首件检验通过才能保存单据
        //收料通知单(送货单、到货确认)
        public string Cg_POInStockBill_AutoCheck;       //是否自动审核
        public string Cg_POInStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Cg_POInStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Cg_POInStockBill_BarCodeCtl;                 //到货确认必须扫码箱条码
        //采购入库
        public string Kf_POStockInBill_AutoCheck;       //是否自动审核
        public string Kf_POStockInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_POStockInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_POStockInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_POStockInBill_MulSourceBill;   //多源单模式
        public string Kf_POStockInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -42,7 +43,7 @@
        //产品入库
        public string Kf_ProductInBill_AutoCheck;       //是否自动审核
        public string Kf_ProductInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_ProductInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_ProductInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_ProductInBill_MulSourceBill;   //多源单模式
        public string Kf_ProductInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -55,7 +56,7 @@
        //其他入库
        public string Kf_OtherInBill_AutoCheck;       //是否自动审核
        public string Kf_OtherInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_OtherInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_OtherInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_OtherInBill_MulSourceBill;   //多源单模式
        public string Kf_OtherInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -71,7 +72,7 @@
        //委外入库
        public string Kf_EntrustInBill_AutoCheck;       //是否自动审核
        public string Kf_EntrustInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_EntrustInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_EntrustInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_EntrustInBill_MulSourceBill;   //多源单模式
        public string Kf_EntrustInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -83,7 +84,7 @@
        //生产领料
        public string Kf_MateOutBill_AutoCheck;         //是否自动审核
        public string Kf_MateOutBill_ERPMode;           //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_MateOutBill_ERPMode;           //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_MateOutBill_MustQtyCtl;        //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_MateOutBill_MulSourceBill;     //多源单模式
        public string Kf_MateOutBill_BillTypeOneScan;   //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -102,7 +103,7 @@
        //销售出库
        public string Kf_SellOutBill_AutoCheck;             //是否自动审核
        public string Kf_SellOutBill_ERPMode;               //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_SellOutBill_ERPMode;               //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_SellOutBill_MustQtyCtl;            //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_SellOutBill_MulSourceBill;         //多源单模式
        public string Kf_SellOutBill_BillTypeOneScan;       //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -122,7 +123,7 @@
        //其他出库
        public string Kf_OtherOutBill_AutoCheck;       //是否自动审核
        public string Kf_OtherOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_OtherOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_OtherOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_OtherOutBill_MulSourceBill;   //多源单模式
        public string Kf_OtherOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -139,7 +140,7 @@
        //委外出库
        public string Kf_EntrustOutBill_AutoCheck;       //是否自动审核
        public string Kf_EntrustOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_EntrustOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_EntrustOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_EntrustOutBill_MulSourceBill;   //多源单模式
        public string Kf_EntrustOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -157,7 +158,7 @@
        //生产补料
        public string Kf_MateReplenishOutBill_AutoCheck;       //是否自动审核
        public string Kf_MateReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_MateReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_MateReplenishOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_MateReplenishOutBill_MulSourceBill;   //多源单模式
        public string Kf_MateReplenishOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -172,7 +173,7 @@
        //委外补料
        public string Kf_EntrustReplenishOutBill_AutoCheck;       //是否自动审核
        public string Kf_EntrustReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_EntrustReplenishOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_EntrustReplenishOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_EntrustReplenishOutBill_MulSourceBill;   //多源单模式
        public string Kf_EntrustReplenishOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -187,7 +188,7 @@
        //直接调拨
        public string Kf_MoveStockBill_AutoCheck;       //是否自动审核
        public string Kf_MoveStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_MoveStockBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_MoveStockBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_MoveStockBill_MulSourceBill;   //多源单模式
        public string Kf_MoveStockBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -205,7 +206,7 @@
        //分步式调出单
        public string Kf_MoveStockStepOutBill_AutoCheck;       //是否自动审核
        public string Kf_MoveStockStepOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_MoveStockStepOutBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_MoveStockStepOutBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_MoveStockStepOutBill_MulSourceBill;   //多源单模式
        public string Kf_MoveStockStepOutBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -218,7 +219,7 @@
        //分步式调入单
        public string Kf_MoveStockStepInBill_AutoCheck;       //是否自动审核
        public string Kf_MoveStockStepInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_MoveStockStepInBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_MoveStockStepInBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_MoveStockStepInBill_MulSourceBill;   //多源单模式
        public string Kf_MoveStockStepInBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -232,7 +233,7 @@
        //采购退料
        public string Kf_POStockInBackBill_AutoCheck;       //是否自动审核
        public string Kf_POStockInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_POStockInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_POStockInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_POStockInBackBill_MulSourceBill;   //多源单模式
        public string Kf_POStockInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -243,7 +244,7 @@
        //产品退库
        public string Kf_ProductInBackBill_AutoCheck;       //是否自动审核
        public string Kf_ProductInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_ProductInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_ProductInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_ProductInBackBill_MulSourceBill;   //多源单模式
        public string Kf_ProductInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -254,7 +255,7 @@
        //其他入库红字
        public string Kf_OtherInBackBill_AutoCheck;       //是否自动审核
        public string Kf_OtherInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_OtherInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_OtherInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_OtherInBackBill_MulSourceBill;   //多源单模式
        public string Kf_OtherInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -265,7 +266,7 @@
        //委外退库
        public string Kf_EntrustInBackBill_AutoCheck;       //是否自动审核
        public string Kf_EntrustInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_EntrustInBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_EntrustInBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_EntrustInBackBill_MulSourceBill;   //多源单模式
        public string Kf_EntrustInBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -276,7 +277,7 @@
        //生产退料
        public string Kf_MateOutBackBill_AutoCheck;       //是否自动审核
        public string Kf_MateOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_MateOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_MateOutBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_MateOutBackBill_MulSourceBill;   //多源单模式
        public string Kf_MateOutBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -288,7 +289,7 @@
        //销售退库
        public string Kf_SellOutBackBill_AutoCheck;                 //是否自动审核
        public string Kf_SellOutBackBill_ERPMode;                   //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_SellOutBackBill_ERPMode;                   //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_SellOutBackBill_MustQtyCtl;                //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_SellOutBackBill_MulSourceBill;             //多源单模式
        public string Kf_SellOutBackBill_BillTypeOneScan;           //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -300,7 +301,7 @@
        //其他出库红字
        public string Kf_OtherOutBackBill_AutoCheck;       //是否自动审核
        public string Kf_OtherOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_OtherOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_OtherOutBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_OtherOutBackBill_MulSourceBill;   //多源单模式
        public string Kf_OtherOutBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -311,7 +312,7 @@
        //委外退料
        public string Kf_EntrustOutBackBill_AutoCheck;       //是否自动审核
        public string Kf_EntrustOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD)
        public string Kf_EntrustOutBackBill_ERPMode;         //WMS系统同步至ERP的类型(WISE、CLOUD、无)
        public string Kf_EntrustOutBackBill_MustQtyCtl;      //应收数量控制(小于等于应收、完全等于应收、不控制)
        public string Kf_EntrustOutBackBill_MulSourceBill;   //多源单模式
        public string Kf_EntrustOutBackBill_BillTypeOneScan; //本单据类型内只允许一次扫码(唯一码,含缓存列表)
@@ -346,7 +347,7 @@
        public string BarCode_UpdatePrintQtyCtl;//条码打印次数更新(打印条码时,是否更新条码打印次数,Y æ›´æ–°)
        //进站单
        //工序进站接收单
        public string MES_StationInBill_FIFOCtl;                //工站或工序先进先出(本生产资源 æœ‰å•据没有出站则,不能进站其他单据)
        public string MES_StationInBill_FullMoveCtl;             //上道完全出站控制(本道进站时,上道的报废+合格必须等于上道进站数量
        public string MES_StationInBill_QtyCtl;                 //进站数量不能大于上道出站汇总合格数
@@ -355,28 +356,38 @@
        public string MES_StationInBill_ProcessCheckCtl;        //进站单当前工序的上道工序是否做工序检验
        public string MES_StationInBill_DeleteCtl;              //删除单据时制单人与删除人必须一致
        public string MES_StationInBill_LineBindCtl;              //进站接收时是否绑定该工序的配件清单
        //出站单
        public string MES_StationInBill_AutoFindSNO;             //进站接收单是否自动匹配对应流水号
        public string MES_StationInBill_ShowUSERProcess;         //进站接收单只显示用户对应工序
        public string MES_StationInBill_SaveAutoAddnew;         //保存后变为新增状态
        //工序出站汇报单
        public string MES_StationOutBill_QtyCtl;                //出站数量不能大于本道进站汇总数
        public string MES_StationOutBill_ProcessCheckOut;          //必须工序检验通过才能保存单据
        public string MES_StationOutBill_FirstCheckOut;       //出战单判断本道工序是否做首件检验 
        public string MES_StationOutBill_DeleteCtl;             //删除单据时制单人与删除人必须一致
        public string MES_StationOutBill_FstAutoICMOReport;         //首道工序出站后自动生成ERP生产汇报单
        public string MES_StationOutBill_LastAutoICMOReport;        //末道工序出站后自动生成ERP生产汇报单
        public string MES_StationOutBill_AutoStockIn;               //末道工序出站后自动生成ERP生产入库单
        public string MES_StationOutBill_InStockType;               //末道工序自动入库时仓库取值类型(物料、工序、工艺路线)
        public string MES_StationOutBill_AutoFindSNO;             //出站汇报单是否自动匹配对应流水号
        public string MES_StationOutBill_ShowUSERProcess;         //出站汇报单只显示用户对应工序
        public string MES_StationOutBill_SaveAutoAddnew;            //保存后变为新增状态
        //不良品评审单
        public string QC_NoPassProdCheckBill_QtyCtl;            //不良品数不能大于出站单报废数量
        public string QC_NoPassProdCheckBill_BadReasonQtyCtrl;  //不良品评审单不良数量和不良原因总数必须一致
        public string QC_NoPassProdCheckBill_DeleteCtl;         //删除单据时制单人与删除人必须一致
        //委外发出
        //工序委外发出单
        public string MES_StationEntrustInBill_FIFOCtl;         //工站或工序先进先出(同上)
        public string MES_StationEntrustInBill_FullMoveCtl;     //上道完全出站控制(同上)
        public string MES_StationEntrustInBill_QtyCtl;          //进站数量不能大于上道出站汇总合格数(同上)
        public string MES_StationEntrustInBill_OneCtl;          //一张流转卡只允许一次委外发出
        public string MES_StationEntrustInBill_DeleteCtl;       //删除单据时制单人与删除人必须一致
        //委外接收
        public string MES_StationEntrustInBill_SaveAutoAddnew; //保存后变为新增状态
        //工序委外接收单
        public string MES_StationEntrustOutBill_QtyCtl;         //出站数量不能大于本道进站汇总数
        public string MES_StationEntrustOutBill_DeleteCtl;      //删除单据时制单人与删除人必须一致
        public string MES_StationEntrustOutBill_SaveAutoAddnew; //保存后变为新增状态
        //生产汇报单
        public string Sc_ICMOReportBill_FirstCheckOut;          //必须首件检验通过才能保存单据
        public string MES_StationOutBill_InStockType;           //工序末道入库仓库取值类型
        //JIT
@@ -405,15 +416,8 @@
        //QMS
        //首件检验单
        public string QC_FirstPieceCheckBill_AutoCheck; //自动审核
        //工序进站接收单
        public string MES_StationInBill_SaveAutoAddnew; //自动新增
        //工序出站汇报单
        public string MES_StationOutBill_SaveAutoAddnew; //自动新增
        //工序委外发出单
        public string MES_StationEntrustInBill_SaveAutoAddnew; //自动新增
        //工序委外接收单
        public string MES_StationEntrustOutBill_SaveAutoAddnew; //自动新增
        public string QC_FirstPieceCheckBill_AutoCheck; //保存后变为新增状态
        //EAM
@@ -427,9 +431,11 @@
        //工艺路线
        public string Gy_RoutingBill_SaveAutoLastProc; //保存到数据库时自动加上转工序
        //工序进站单
        public string MES_StationBill_ProcNo; //自动匹配流水号
        ////工序进站单
        //public string MES_StationBill_ProcNo; //自动匹配流水号
        //public string MES_StationBill_ProcNoByUser; //只显示用户对应工序
    }
         
WebAPI/Controllers/BaseSet/Gy_CustomerController.cs
@@ -326,10 +326,12 @@
            {
                var model = oMain["model"].ToString();
                var custLocationModel = oMain["model"]["HCustLocationEntry"].ToString();
                var custContactModel = oMain["model"]["HCustContactEntry"].ToString();
                //反序列化
                model = "[" + model + "]";
                List<Customer> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Customer>>(model);
                List<Model.ClsGy_CustLocation_Model> custLocationls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_CustLocation_Model>>(custLocationModel);
                List<Model.ClsGy_COMMONCONTACT_Model> custContactls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_COMMONCONTACT_Model>>(custContactModel);
                string sql = string.Empty;
                oCN.BeginTran();
                sql = $"delete gy_Customer where HItemID = {lsmain[0].HItemID}";
@@ -379,10 +381,30 @@
                }
                sql = "set identity_insert Gy_CustLocation off";
                oCN.RunProc(sql);
                //客户_收货方联系人
                sql = $"delete Gy_COMMONCONTACT where HCUSTID = {lsmain[0].HItemID}";
                oCN.RunProc(sql);
                sql = "set identity_insert Gy_COMMONCONTACT on";
                oCN.RunProc(sql);
                foreach (var item in custContactls)
                {
                    sql = $@"insert into Gy_COMMONCONTACT(HItemID,HCUSTID,HNumber,HName,HShortNumber,HParentID,HLevel,HEndFlag,HStopflag,
                    HRemark,HHelpCode,HUseFlag,HMakeTime,HMakeEmp,HCheckEmp,HCheckTime,HModifyEmp,HModifyTime,HStopEmp,HStopTime,
                    HUSEORGID,HCREATEORGID)
                  values({item.HItemID},{item.HCUSTID},'{item.HNumber}','{item.HName}','{item.HShortNumber}',{item.HParentID},{item.HLevel}
           ,{Convert.ToString(item.HEndFlag ? 1 : 0)},{Convert.ToString(item.HStopflag ? 1 : 0) },'{item.HRemark}','{item.HHelpCode}','{item.HUseFlag}'
            ,'{item.HMakeTime}','{item.HMakeEmp}','{item.HCheckEmp}','{item.HCheckTime}','{item.HModifyEmp}'
            ,'{item.HModifyTime}','{item.HStopEmp}','{item.HStopTime}',{item.HUSEORGID},{item.HCREATEORGID})";
                    oCN.RunProc(sql);
                }
                sql = "set identity_insert Gy_COMMONCONTACT off";
                oCN.RunProc(sql);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增单据成功!";
                objJsonResult.Message = "新增基础资料成功!";
                //objJsonResult.data = null;
                return objJsonResult;
            }
WebAPI/Controllers/CJGL/Cj_StationEntrustInBillController.cs
@@ -141,10 +141,131 @@
        }
        #endregion
        #region å§”外工序发出单流水号回车获取条码信息2(委外工序接收、工序进站接收通用)
        [Route("Cj_StationBill/txtHBarCode_KeyDown2")]
        [HttpGet]
        public object txtHBarCode_KeyDown2(string HBarCode,string HInterID,string UserID)
        {
            try
            {
                if (HBarCode == null || HBarCode.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "空白码,条形码不能为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //拆分条形码
                string sBillBarCode = HBarCode.Trim();
                string[] NewBarCode;
                if (sBillBarCode.CompareTo("#") > 0)
                {
                    NewBarCode = sBillBarCode.Split(Convert.ToChar("#"));
                    sBillBarCode = NewBarCode[0];
                }
                string sBillNo = sBillBarCode;
                //截取条码类型
                string BillNoType = sBillNo.Substring(0, Math.Min(3, sBillNo.Length));
                //截取内码
                string BillNo = sBillNo.Substring(3, Math.Min(sBillNo.Length - 3,sBillNo.Length));
                switch (BillNoType)
                //得到信息
                {
                    case "HCX"://生产资源码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_SourceList  where æ¡ç ç¼–号 = '" + BillNo + "'", "h_v_Gy_SourceList");
                        break;
                    case "SBM"://设备码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_EquipMentList  where HItemID = '" + BillNo + "'", "h_v_Gy_EquipMentList");
                        break;
                    case "JYM"://员工码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_StaffList  where HItemID = '" + BillNo + "'", "h_v_Gy_StaffList");
                        break;
                    case "GRM"://员工码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_StaffList  where HItemID = '" + BillNo + "'", "h_v_Gy_StaffList");
                        break;
                    case "CGM"://员工码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_StaffList  where HItemID = '" + BillNo + "'", "h_v_Gy_StaffList");
                        break;
                    case "HWH"://仓库码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_WareHouseList  where æ¡ç ç¼–号 = '" + HBarCode + "'", "h_v_Gy_WareHouseList");
                        break;
                    case "HSP"://仓位码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_StockPlaceList  where æ¡ç ç¼–号 = '" + HBarCode + "'", "h_v_Gy_StockPlaceList");
                        break;
                    case "WKM"://工作中心码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_WorkCenterList  where HItemID = '" + BillNo + "'", "h_v_Gy_WorkCenterList");
                        break;
                    case "BZM"://班组码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_GroupList  where æ¡ç ç¼–号 = '" + BillNo + "'", "h_v_Gy_GroupList");
                        break;
                    case "PRO"://工序码
                        string sReturn = "";
                        if (oSystemParameter.ShowBill(ref sReturn) == true)
                        {
                            //系统参数是否为只显示当前登录用户关联的工序信息,N为否,Y为是
                            if (oSystemParameter.omodel.MES_StationBill_ProcNoByUser == "Y")
                            {
                                ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNoByUser  where HItemID = '" + BillNo + "' and HInterID = '" + HInterID + "' and ç”¨æˆ·ç¼–码 = '" + UserID + "'", "h_v_Gy_ProcessList_GetProcNoByUser");
                            }
                            else
                            {
                                ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList_GetProcNo  where HItemID = '" + BillNo + "' and HInterID = '" +
                                  HInterID + "'", "h_v_Gy_ProcessList_GetProcNo");
                            }
                        }
                        break;
                    case "WLM"://物料码
                        ds = oCN.RunProcReturn("select * from h_v_Gy_MaterialList  where HItemID = '" + BillNo + "'", "h_v_Gy_MaterialList");
                        break;
                    case "GXL"://流转卡
                        ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList  where å•据号= '" + sBillNo + "'", "h_v_Sc_ProcessExchangeBillList");
                        break;
                }
                //写入信息
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到条码信息!";
                    objJsonResult.data = null;
                    if(BillNoType == "PRO")
                    {
                        ds = oCN.RunProcReturn("select * from h_v_Gy_ProcessList where HItemID = '" + BillNo + "'", "h_v_Gy_ProcessList");
                        if (ds == null || ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.Message = "未查询到条码信息!";
                        }
                        else
                        {
                            objJsonResult.Message = "用户未关联相关工序或流转卡无此工序,如有需要请维护";
                        }
                    }
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ ¹æ®ç™»å½•用户获取工序
        [Route("Sc_StationInBill/autoGetProcNo")]
        [HttpGet]
        public object autoGetProcNo(string HUserName,string HInterID)
        public object autoGetProcNo(string HUserID, string HInterID)
        {
            string sReturn = "";
            if (oSystemParameter.ShowBill(ref sReturn) == true)
@@ -154,16 +275,16 @@
                {
                    try
                    {
                        if (HUserName == null || HUserName.Equals(""))
                        if (HUserID == null || HUserID.Equals(""))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "用户名不能为空!";
                            objJsonResult.Message = "用户编码不能为空!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //得到信息
                        ds = oCN.RunProcReturn("select  * from h_v_Sc_StationBill_autoGetProcNo  where HInterID = '" + HInterID + "' and ç”¨æˆ·åç§° ='" + HUserName + "'", "h_v_Sc_StationBill_autoGetProcNo");
                        ds = oCN.RunProcReturn("select  * from h_v_Sc_StationBill_autoGetProcNo  where HInterID = '" + HInterID + "' and ç”¨æˆ·ç¼–码 ='" + HUserID + "'", "h_v_Sc_StationBill_autoGetProcNo");
                        //写入信息
                        if (ds == null || ds.Tables[0].Rows.Count == 0)
                        {
WebAPI/Controllers/CJGL/Sc_ProcessSendWorkController.cs
New file
@@ -0,0 +1,253 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
    public class Sc_ProcessSendWorkController : ApiController
    {
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        #region å·¥åºæ´¾å·¥å• åˆ—表
        /// <summary>
        /// å·¥åºæ´¾å·¥å•列表
        /// </summary>
        /// <returns></returns>
        [Route("Sc_ProcessSendWork/Sc_ProcessSendWorkList")]
        [HttpGet]
        public object Sc_ProcessSendWorkList(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessSendWorkList where 1=1 " + sWhere, "h_v_Sc_ProcessSendWorkList");
                //添加列名
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    Type dataType = col.DataType;
                    string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
                    columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "返回记录成功!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥åºæ´¾å·¥å• ä¿å­˜/编辑
        /// <summary>
        /// å·¥åºæ´¾å·¥å• ä¿å­˜
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("Sc_ProcessSendWork/SaveProcessSendWork")]
        [HttpPost]
        public object SaveProcessSendWork([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string msg4 = sArray[2].ToString();
            string UserName = "";
            ListModels oListModels = new ListModels();
            try
            {
                DAL.ClsSc_ProcessSendWork oBill = new DAL.ClsSc_ProcessSendWork();
                List<Model.ClsSc_ProcessSendWorkMain> lsmain = new List<Model.ClsSc_ProcessSendWorkMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_ClsSc_ProcessSendWorkMain(msg2);
                foreach (Model.ClsSc_ProcessSendWorkMain oItem in lsmain)
                {
                    //oItem.HMaker = "";
                    UserName = oItem.HMaker;  //制单人
                    oItem.HBillType = "3712";
                    oItem.HBillSubType = "3712";
                    oItem.HBillStatus = 1;
                    DBUtility.ClsPub.CurUserName = UserName;
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    oBill.omodel = oItem;
                }
                //表体数据
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                //msg2 = msg2.Replace("'", "’");
                List<Model.ClsSc_ProcessSendWorkSub> ls = new List<Model.ClsSc_ProcessSendWorkSub>();
                ls = oListModels.getObjectByJson_ClsSc_ProcessSendWorkSub(msg3);
                int i = 0;
                foreach (Model.ClsSc_ProcessSendWorkSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    //oItemSub.HCloseMan = "";       //行关闭
                    oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    oItemSub.HCloseType = false;   //关闭类型
                    //oItemSub.HRemark = "";         //备注
                    oItemSub.HSourceInterID = 0;     // æºå•主内码
                    oItemSub.HSourceEntryID = 0;   //源单子内码
                    //oItemSub.HSourceBillNo = "";  //源单单号
                    //oItemSub.HSourceBillType = ""; //源单类型
                    oItemSub.HRelationQty = 0;     //关联数量
                                                   //oItemSub.HRelationMoney = 0;   //关联金额
                                                   //HMaterID = "";//配件代码
                                                   //HUnitID = "";//单位代码
                                                   //HQty = "";//实际用量
                                                   //HQtyMust = "";//单位用量
                                                   //HRemark = "";//备注
                    oBill.DetailColl.Add(oItemSub);
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HInterID == 0)
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥åºæ´¾å·¥å• åˆ é™¤
        /// <summary>
        /// å·¥åºæ´¾å·¥å•删除
        /// </summary>
        /// <returns></returns>
        [Route("Sc_ProcessSendWork/DelProcessSendWork")]
        [HttpGet]
        public object DelProcessSendWork(string HInterID, string user)
        {
            Int64 lngBillKey = 0;
            lngBillKey = DBUtility.ClsPub.isLong(HInterID);
            if (lngBillKey == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据ID为空!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            DAL.ClsSc_ProcessSendWork oBill = new DAL.ClsSc_ProcessSendWork();
            if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
            {
                ds = oCN.RunProcReturn("select * from Sc_ProcessSendWorkMain where HInterID=" + lngBillKey, "Sc_ProcessSendWorkMain");
                if (int.Parse(ds.Tables[0].Rows[0]["HBillStatus"].ToString()) > 1)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据当前处于不能删除状态,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (ds.Tables[0].Rows[0]["HChecker"].ToString() != "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据已经审核,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                bool IsDete = oBill.DeleteBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo);
                if (IsDete)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据未找到";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -410,6 +410,14 @@
                string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
                //根据工序汇报单主ID获取工序汇报入库单的数据
                DataSet ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc where HInterID=" + InterID, "h_v_MES_StationOutBillList_LastProc");
                if(ds.Tables[0].Rows.Count <= 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "生成生产汇报单过程中没有查询到出站单";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DataRow dr = ds.Tables[0].Rows[0];
                
                //保存
WebAPI/Controllers/WebAPIController.cs
@@ -4049,12 +4049,12 @@
        /// <returns></returns>
        [Route("Web/GetProcNoList")]
        [HttpGet]
        public object GetProcNoList(int HInterID,string sWhere)
        public object GetProcNoList(int HInterID,string sWhere,string UserID)
        {
            List<object> columnNameList = new List<object>();
            try
            {
                ds = oCN.RunProcReturn("exec h_p_Sc_ProcNoList '" + HInterID + "','" + sWhere + "'", "h_p_Sc_ProcNoList");
                ds = oCN.RunProcReturn("exec h_p_Sc_ProcNoList '" + HInterID + "','" + sWhere + "','" + UserID + "'" , "h_p_Sc_ProcNoList");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
WebAPI/Controllers/XSGL/Xs_SeOutStockBillController.cs
@@ -383,6 +383,89 @@
        #endregion
        #region [同步插件]
        [Route("Xs_SeOutStockBill/Xs_SeOutStockBillSaveApi")]
        [HttpPost]
        public object Xs_SeOutStockBillSaveApi([FromBody] JObject sMainSub)
        {
            try
            {
                //LogService.Write("发货通知单同步,保存方法执行完成异常:" + sMainSub.ToString());
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                List<ClsXs_SeOutStockBillMain> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsXs_SeOutStockBillMain>>(model);
                List<ClsXs_SeOutStockBillSub> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsXs_SeOutStockBillSub>>(entry);
                string sql = string.Empty;
                oCN.BeginTran();
                sql = $"delete Xs_SeOutStockBillMain where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                sql = $"delete Xs_SeOutStockBillSub where HinterID = {mainList[0].HInterID}";
                oCN.RunProc(sql);
                //主表
                oCN.RunProc(@"Insert Into Xs_SeOutStockBillMain
                        (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate,HBillNo,HBillStatus
                        ,HCusID,HManagerID,HDeptID,HRemark,HAddress,HSSID,HCurID,HWHID,HExRate
                        ,HEmpID,HExplanation,HInnerBillNo,HSALEORGID,HDELIVERYORGID,HOWNERID
                        ,HOWNERTYPEID,HERPInterID,HERPBillType,HMaker,HMakeDate,HChecker,HCheckDate
                        ,HCloseMan,HCloseDate,HSTOCKERGROUPID,HSALEGROUPID,HSALEDEPTID,HBUSINESSTYPE
                        ,HCARRIERID,HRECEIVERID,HSETTLEID,HPAYERID,HHEADLOCID,HRECCONTACTID
                        ,HRECEIPTCONDITIONID,HCORRESPONDORGID,HCARRIAGENO)
                        values(" + mainList[0].HInterID + "," + DateTime.Now.Year + "," + DateTime.Now.Month + ",'" + 1402 + "','" +
                    mainList[0].HBillSubType + "','" + mainList[0].HDate + "','" + mainList[0].HBillNo + "','" + mainList[0].HBillStatus + "'," + mainList[0].HCusID +
                    "," + mainList[0].HManagerID + "," + mainList[0].HDeptID + ",'" + mainList[0].HRemark + "','" + mainList[0].HAddress + "'," + mainList[0].HSSID +
                    "," + mainList[0].HCurID + "," + mainList[0].HWHID + "," + mainList[0].HExRate + "," + mainList[0].HEmpID + ",'" + mainList[0].HExplanation + "','"  + mainList[0].HInnerBillNo + "'," + mainList[0].HSALEORGID + "," + mainList[0].HDELIVERYORGID + "," + mainList[0].HOWNERID + ",'" +
                    mainList[0].HOWNERTYPEID + "'," + mainList[0].HERPInterID + ",'" + mainList[0].HERPBillType + "','" + mainList[0].HMaker + "','" + mainList[0].HMakeDate + "','"
                    + mainList[0].HChecker + "','" + mainList[0].HCheckDate + "','" + mainList[0].HCloseMan + "','" + mainList[0].HCloseDate + "'," + mainList[0].HSTOCKERGROUPID + ","
                    + mainList[0].HSALEGROUPID + "," + mainList[0].HSALEDEPTID + ",'" + mainList[0].HBUSINESSTYPE + "'," + mainList[0].HCARRIERID + "," + mainList[0].HRECEIVERID + "," + mainList[0].HSETTLEID + "," + mainList[0].HPAYERID + "," + mainList[0].HHEADLOCID + "," + mainList[0].HRECCONTACTID + "," + mainList[0].HRECEIPTCONDITIONID + "," + mainList[0].HCORRESPONDORGID + ",'" + mainList[0].HCARRIAGENO + "'" + ")");
                //保存主表
                foreach (var oSub in subList)
                {
                    sql = $@"
Insert into Xs_SeOutStockBillSub
(HInterID,HEntryID,HMaterID,HUnitID,HQty,HPrice,HMoney,HWHID,HSPID,HRemark,
HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HSeOrderInterID,
HSeOrderEntryID,HSeORderBillNo,HOWNERID,HOWNERTYPEID,HSETTLEORGID,HMoveStockQty,
HRelationQty,HAuxPropID,HBatchNO,HMTONo,HERPInterID,HERPEntryID,HCUSTMATID,
HBASEUNITID,HBFLOWID,HOUTCONTROL,HSTOCKUNITID,HROWTYPE,HROWID,HPARENTROWID,
HPARENTMATID,HTAXCOMBINATION,HPRICECOEFFICIENT,HSYSPRICE,HLIMITDOWNPRICE,
HPRICEUNITID,HTAXPRICE,HTAXRATE,HTAXNETPRICE,HDISCOUNTRATE,HISFREE,HLOCALCURRID,
HSETTLECURRID,HEXCHANGETYPEID,HSETTLETYPEID,HRECEIPTCONDITIONID,HEXCHANGERATE,
HISINCLUDEDTAX,HISPRICEEXCLUDETAX,HTAXRATEID,HTaxRate_TAX,HCOSTPERCENT,HVAT,
HSELLERWITHHOLDING,HBUYERWITHHOLDING)
values('{oSub.HInterID}','{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}','{oSub.HPrice}','{oSub.HMoney}','{oSub.HWHID}','{oSub.HSPID}','{oSub.HRemark}','{oSub.HSourceInterID}',
'{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}','{oSub.HSeOrderInterID}','{oSub.HSeOrderEntryID}','{oSub.HSeORderBillNo}','{oSub.HOWNERID}','{oSub.HOWNERTYPEID}','{oSub.HSETTLEORGID}','{oSub.HMoveStockQty}',
'{oSub.HRelationQty}','{oSub.HAuxPropID}','{oSub.HBatchNO}','{oSub.HMTONo}','{oSub.HERPInterID}',
'{oSub.HERPEntryID}','{oSub.HCUSTMATID}','{oSub.HBASEUNITID}','{oSub.HBFLOWID}','{oSub.HOUTCONTROL}','{oSub.HSTOCKUNITID}','{oSub.HROWTYPE}',
'{oSub.HROWID}','{oSub.HPARENTROWID}',
'{oSub.HPARENTMATID}','{oSub.HTAXCOMBINATION}','{oSub.HPRICECOEFFICIENT}','{oSub.HSYSPRICE}','{oSub.HLIMITDOWNPRICE}','{oSub.HPRICEUNITID}','{oSub.HTAXPRICE}','{oSub.HTAXRATE}','{oSub.HTAXNETPRICE}','{oSub.HDISCOUNTRATE}','{oSub.HISFREE}',
'{oSub.HLOCALCURRID}','{oSub.HSETTLECURRID}','{oSub.HEXCHANGETYPEID}','{oSub.HSETTLETYPEID}','{oSub.HRECEIPTCONDITIONID}','{oSub.HEXCHANGERATE}','{oSub.HISINCLUDEDTAX}','{oSub.HISPRICEEXCLUDETAX}','{oSub.HTAXRATEID}',
'{oSub.HTaxRate_TAX}','{oSub.HCOSTPERCENT}','{oSub.HVAT}','{oSub.HSELLERWITHHOLDING}','{oSub.HBUYERWITHHOLDING}')";
                    oCN.RunProc(sql);
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "单据保存成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                LogService.Write("发货通知单同步异常,保存方法执行完成异常:" + e.Message.ToString());
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region [同步单据]
        [Route("Xs_SeOutStockBill/Xs_SeOutStockBillViewApi")]
        [HttpGet]
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_TaxMIXController.cs
@@ -110,6 +110,9 @@
            {
                DAL.ClsGy_TaxMIX_Ctl oBill = new DAL.ClsGy_TaxMIX_Ctl();
                List<Model.ClsGy_TaxMIXMain_Model> lsmain = new List<Model.ClsGy_TaxMIXMain_Model>();
                //List<Model.ClsGy_TaxMIXSub_Model> lssub = new List<Model.ClsGy_TaxMIXSub_Model>();
                List<Model.ClsGy_TaxMIXSub_Model> lssub = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsGy_TaxMIXSub_Model>>(msg2);
                msg1 = msg1.Replace("\\", "");
                msg1 = msg1.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Gy_TaxMIXMain(msg1);
@@ -241,6 +244,10 @@
                    oItem.HLevel = 1; //等级 DBUtility.ClsPub.GetLevel(oItem.HNumber.Trim())
                    oBill.oModel = oItem;
                }
                foreach (Model.ClsGy_TaxMIXSub_Model oItemSub in lssub)
                {
                    oBill.DetailColl.Add(oItemSub);
                }
                //保存
                //保存完毕后处理
                bool bResult;
@@ -329,7 +336,7 @@
                }
                oCN.RunProc("delete from Gy_TaxMIXMain where HItemID=" + HItemID);
                oCN.RunProc("delete from Gy_TaxMIXSub where HTaxMixID=" + HItemID);
                oCN.RunProc("delete from Gy_TaxMIXSub where HItemID=" + HItemID);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
WebAPI/ListModels.cs
@@ -1538,6 +1538,24 @@
            return list;
        }
        ///工序派工单 ä¸»è¡¨
        ///ClsSc_ProcExchWorkBackBillMain
        public List<Model.ClsSc_ProcessSendWorkMain> getObjectByJson_ClsSc_ProcessSendWorkMain(string jsonString)
        {
            jsonString = "[" + jsonString.ToString() + "]";
            List<Model.ClsSc_ProcessSendWorkMain> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessSendWorkMain>>(jsonString);
            return list;
        }
        ///工序派工单 å­è¡¨
        ///ClsSc_ProcExchWorkBackBillMain
        public List<Model.ClsSc_ProcessSendWorkSub> getObjectByJson_ClsSc_ProcessSendWorkSub(string jsonString)
        {
            jsonString = "[" + jsonString.ToString() + "]";
            List<Model.ClsSc_ProcessSendWorkSub> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsSc_ProcessSendWorkSub>>(jsonString);
            return list;
        }
        ///设备投产检验验收单 å­è¡¨
        ///ClsSb_EquipWorkBeforeCheckBillSub
        public List<Model.ClsSb_EquipWorkBeforeCheckBillSub> getObjectByJson_ClsSb_EquipWorkBeforeCheckBillSub(string jsonString)
WebAPI/WebAPI.csproj
@@ -403,6 +403,7 @@
    <Compile Include="Controllers\CJGL\Cj_StationInBillController.cs" />
    <Compile Include="Controllers\CJGL\Cj_StationEntrustOutBillController.cs" />
    <Compile Include="Controllers\CJGL\Sc_ProcExchRecordBackBillController.cs" />
    <Compile Include="Controllers\CJGL\Sc_ProcessSendWorkController.cs" />
    <Compile Include="Controllers\CJGL\Sc_ProcExchWorkBackBillController.cs" />
    <Compile Include="Controllers\CJGL\Sc_WorkBillAutoSortBillMainController.cs" />
    <Compile Include="Controllers\Gy_MateMouldController.cs" />
@@ -998,6 +999,7 @@
    <Folder Include="Views\Sc_MouldStatusChangeBill\" />
    <Folder Include="Views\Sc_ProcessExchangeIssueBill\" />
    <Folder Include="Views\Sc_ProcExchRecordBackBill\" />
    <Folder Include="Views\Sc_ProcessSendWork\" />
    <Folder Include="Views\Sc_WorkBillAutoSortBillMain\" />
    <Folder Include="Views\Sc_WorkBillSortBill\" />
    <Folder Include="Views\Sc_WorkDemandPlanBill\" />