BourneCao 4 лет назад
Родитель
Сommit
97bfb5787f

+ 15 - 0
Common/DbOption/work/MeterWorkCarActualFirstService.cs

@@ -461,6 +461,21 @@ namespace Common
             return rm;
         }
 
+        public RESTfulResult<string> addEmergency(List<MeterWorkCarActualFirst> meterWorkCarActualFirsts)
+        {
+            DbHelper db = new DbHelper();
+
+            RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "/addEmergency", new object[] { meterWorkCarActualFirsts }, 1);
+            RESTfulResult<string> result = new RESTfulResult<string>();
+            result.Succeed = rm.Succeed;
+            result.Status = rm.Status;
+            result.Message = rm.Message;
+            result.ResultMessage = rm.ResultMessage;
+            result.Code = rm.Code;
+            result.Data = rm.Data;
+            return rm;
+        }
+
         #region JISCO特殊接口 By BourneCao 20220122
         /// <summary>
         /// 按车号查询状态为未使用或使用中的计量实绩数据

+ 28 - 1
Common/DbOption/work/MeterWorkCarActualService.cs

@@ -96,7 +96,7 @@ namespace Common
         {
             DbHelper db = new DbHelper();
             PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActual, MeterWorkPreLink, MeterMonitorNote> pbSomeModel = new PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActual, MeterWorkPreLink, MeterMonitorNote>();
-            pbSomeModel.one = secondDb;
+            pbSomeModel.one = secondDb; 
             pbSomeModel.two = netDb;
             pbSomeModel.sOne = saveTare;
             pbSomeModel.four = monitorNote;
@@ -167,6 +167,33 @@ namespace Common
             RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "doNetAddTwo", new object[] { pbSomeModel }, 1);
             return rm;
         }
+
+        /// <summary>
+        /// 双委托逻辑
+        /// </summary>
+        /// <param name="scale">List<PreTrackScale></param>
+        /// <param name="actualFirst">一次计量数据</param>
+        /// <param name="netDb">MeterWorkCarActual</param>
+        /// <param name="saveTare">0 不保存历史皮,1保存历史皮</param>
+        /// <returns></returns>
+        public RESTfulResult<string> doNetTermTare(MeterWorkCarActualFirst actualFirst, MeterWorkCarActual netDb,string saveTare)
+        {
+            DbHelper db = new DbHelper();
+            PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActual, PreTrackScale, PreTrackScale> pbSomeModel = new PbSomeModel<MeterWorkCarActualFirst, MeterWorkCarActual, PreTrackScale, PreTrackScale>();
+            pbSomeModel.one = actualFirst;
+            pbSomeModel.two = netDb;
+            pbSomeModel.sOne = saveTare;
+
+            if (actualFirst != null && string.IsNullOrEmpty(actualFirst.createManNo))
+            {
+                actualFirst.createManNo = actualFirst.baseSpotNo;
+                actualFirst.createManName = actualFirst.baseSpotName;
+            }
+
+            //RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "doAddNetInnerWf", new object[] { secondDb, netDb, saveTare }, 1);
+            RESTfulResult<string> rm = db.doOption<string>("meterworkcaractualfirsts", "doNetTermTare", new object[] { pbSomeModel }, 1);
+            return rm;
+        }
         #endregion
     }
 }

Разница между файлами не показана из-за своего большого размера
+ 419 - 434
FrmStandAloneMetering/FrmStandAloneMetering.Designer.cs


+ 227 - 37
FrmStandAloneMetering/FrmStandAloneMetering.cs

@@ -61,7 +61,7 @@ namespace FrmStandAloneMetering
         private bool blThreadFlag;//数据采集线程开关
         private StringBuilder weightLog = new StringBuilder(); //重量日志的文件
 
-        private MeterWorkCarActFirAlonService alonService = new MeterWorkCarActFirAlonService();
+        private MeterWorkCarActualFirstService actualFirstService = new MeterWorkCarActualFirstService();
 
         public FrmStandAloneMetering()
         {
@@ -86,6 +86,32 @@ namespace FrmStandAloneMetering
                 string[] strParams = strComPara.Split(new char[] { ',' });
                 cbChooseCom.Text = strParams[0];
             }
+
+            //物料下拉框赋值
+            DataTable dtMatterInfo = selectMatterInfo();
+            this.cbMatterName.DataSource = dtMatterInfo;
+            this.cbMatterName.DisplayMember = "name";
+            this.cbMatterName.ValueMember = "value";
+
+            //发货单位下拉框赋值
+            DataTable dtForwardingUnit = selectCustomerInfo();
+            this.cbForwardingUnitName.DataSource = dtForwardingUnit;
+            this.cbForwardingUnitName.DisplayMember = "name";
+            this.cbForwardingUnitName.ValueMember = "value";
+
+            //收货单位下拉框赋值
+            DataTable dtReceivingUint = selectCustomerInfo();
+            this.cbReceivingUintName.DataSource = dtReceivingUint;
+            this.cbReceivingUintName.DisplayMember = "name";
+            this.cbReceivingUintName.ValueMember = "value";
+
+            //计量点下拉框赋值
+            DataTable dtSpotInfo = selectSpotInfo();
+            this.cbBaseSpot.DataSource = dtSpotInfo;
+            this.cbBaseSpot.DisplayMember = "name";
+            this.cbBaseSpot.ValueMember = "value";
+
+
             //界面稳定时间赋值
             cbStableSchedule.Text = stableTime.ToString();
 
@@ -130,7 +156,6 @@ namespace FrmStandAloneMetering
         private void btnDownloadData_Click(object sender, EventArgs e)
         {
             
-
             // 删除CSV文件
             Utils.FileUtil.DeleteFile(AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseMatterInfo.csv");
 
@@ -158,6 +183,19 @@ namespace FrmStandAloneMetering
 
             // 重新保存CSV文件
             saveCustomerInfo(rmx2);
+
+            // 删除CSV文件
+            Utils.FileUtil.DeleteFile(AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseSpotInfo.csv");
+
+            // 获取客商信息
+            MeterBaseSpotInfoService service3 = new MeterBaseSpotInfoService();//物料服务
+            MeterBaseSpotInfo customerInfo2 = new MeterBaseSpotInfo();
+
+            customerInfo2.validFlag = "1";
+            RESTfulResult<List<MeterBaseSpotInfo>> rmx3 = service3.doQueryWf(customerInfo2);
+
+            // 重新保存CSV文件
+            saveSpotInfo(rmx3);
         }
 
         /// <summary>
@@ -392,17 +430,17 @@ namespace FrmStandAloneMetering
             MeterWorkCarActualFirst actualFirst = new MeterWorkCarActualFirst(); //一次计量实体
             actualFirst.actualFirstNo = "CAR" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); //主键
             actualFirst.carNo = tbCarNo.Text.Trim();//车号
-            actualFirst.baseSpotName = cbBaseSpot.Text.Trim();//计量点
-            actualFirst.meterTypeName = cbMeterTypeName.Text.Trim();//业务类型
-            actualFirst.contractNo = cbContractNo.Text.Trim();//合同号
-            actualFirst.batchNo = tbBatchNo.Text.Trim();//批次号
-            actualFirst.heatNo = tbHeatNo.Text.Trim();//炉号
-            actualFirst.shipmentNum = Convert.ToInt32(string.IsNullOrEmpty(tbShipmentNum.Text.Trim()) ? "0" : tbShipmentNum.Text.Trim());//包数/数量
-            actualFirst.matterName = cbMatterName.Text.Trim();//物资名称
-            actualFirst.receivingUintName = cbReceivingUintName.Text.Trim();//收货单位
-            actualFirst.forwardingUnitName = cbForwardingUnitName.Text.Trim();//发货单位
-            actualFirst.customerSupplierName = cbCustomerSupplierName.Text.Trim();//供应商
-            actualFirst.loadPointName = cbLoadPointName.Text.Trim();//卸货地点
+            actualFirst.baseSpotNo = cbBaseSpot.SelectedValue.ToString().Trim();//计量点
+            //actualFirst.meterTypeName = cbMeterTypeName.Text.Trim();//业务类型
+            //actualFirst.contractNo = cbContractNo.Text.Trim();//合同号
+            //actualFirst.batchNo = tbBatchNo.Text.Trim();//批次号
+            //actualFirst.heatNo = tbHeatNo.Text.Trim();//炉号
+            //actualFirst.shipmentNum = Convert.ToInt32(string.IsNullOrEmpty(tbShipmentNum.Text.Trim()) ? "0" : tbShipmentNum.Text.Trim());//包数/数量
+            actualFirst.matterNo = cbMatterName.SelectedValue.ToString().Trim();//物资名称
+            actualFirst.receivingUintNo = cbReceivingUintName.SelectedValue.ToString().Trim();//收货单位
+            actualFirst.forwardingUnitNo = cbForwardingUnitName.SelectedValue.ToString().Trim();//发货单位
+            //actualFirst.customerSupplierName = cbCustomerSupplierName.Text.Trim();//供应商
+            //actualFirst.loadPointName = cbLoadPointName.Text.Trim();//卸货地点
             actualFirst.memo = tbMemo.Text.Trim();//备注
             actualFirst.weightType = strWeightType;//重量类型
             actualFirst.meterWeight = ucStorageWeightT1.getWgt() * 1000;
@@ -415,17 +453,17 @@ namespace FrmStandAloneMetering
                 actualFirstLogHead.Append("createTime,");//若第一行默认为当前时间则第一行多个逗号
                 actualFirstLogHead.Append("actualFirstNo,");
                 actualFirstLogHead.Append("carNo,");
-                actualFirstLogHead.Append("baseSpotName,");
-                actualFirstLogHead.Append("meterTypeName,");
-                actualFirstLogHead.Append("contractNo,");
-                actualFirstLogHead.Append("batchNo,");
-                actualFirstLogHead.Append("heatNo,");
-                actualFirstLogHead.Append("shipmentNum,");
-                actualFirstLogHead.Append("matterName,");
-                actualFirstLogHead.Append("receivingUintName,");
-                actualFirstLogHead.Append("forwardingUnitName,");
-                actualFirstLogHead.Append("customerSupplierName,");
-                actualFirstLogHead.Append("loadPointName,");
+                actualFirstLogHead.Append("baseSpotNo,");
+                //actualFirstLogHead.Append("meterTypeName,");
+                //actualFirstLogHead.Append("contractNo,");
+                //actualFirstLogHead.Append("batchNo,");
+                //actualFirstLogHead.Append("heatNo,");
+                //actualFirstLogHead.Append("shipmentNum,");
+                actualFirstLogHead.Append("matterNo,");
+                actualFirstLogHead.Append("receivingUintNo,");
+                actualFirstLogHead.Append("forwardingUnitNo,");
+                //actualFirstLogHead.Append("customerSupplierName,");
+                //actualFirstLogHead.Append("loadPointName,");
                 actualFirstLogHead.Append("memo,");
                 actualFirstLogHead.Append("weightType,"); //最后一行不要逗号
                 actualFirstLogHead.Append("meterWeight");
@@ -436,17 +474,17 @@ namespace FrmStandAloneMetering
             actualFirstLog.Append(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ",");
             actualFirstLog.Append(actualFirst.actualFirstNo.ToString() + ",");
             actualFirstLog.Append(actualFirst.carNo.ToString() + ",");
-            actualFirstLog.Append(actualFirst.baseSpotName.ToString() + ",");
-            actualFirstLog.Append(actualFirst.meterTypeName.ToString() + ",");
-            actualFirstLog.Append(actualFirst.contractNo.ToString() + ",");
-            actualFirstLog.Append(actualFirst.batchNo.ToString() + ",");
-            actualFirstLog.Append(actualFirst.heatNo.ToString() + ",");
-            actualFirstLog.Append(actualFirst.shipmentNum.ToString() + ",");
-            actualFirstLog.Append(actualFirst.matterName.ToString() + ",");
-            actualFirstLog.Append(actualFirst.receivingUintName.ToString() + ",");
-            actualFirstLog.Append(actualFirst.forwardingUnitName.ToString() + ",");
-            actualFirstLog.Append(actualFirst.customerSupplierName.ToString() + ",");
-            actualFirstLog.Append(actualFirst.loadPointName.ToString() + ",");
+            actualFirstLog.Append(actualFirst.baseSpotNo.ToString() + ",");
+           // actualFirstLog.Append(actualFirst.meterTypeName.ToString() + ",");
+            //actualFirstLog.Append(actualFirst.contractNo.ToString() + ",");
+            //actualFirstLog.Append(actualFirst.batchNo.ToString() + ",");
+            //actualFirstLog.Append(actualFirst.heatNo.ToString() + ",");
+            //actualFirstLog.Append(actualFirst.shipmentNum.ToString() + ",");
+            actualFirstLog.Append(actualFirst.matterNo.ToString() + ",");
+            actualFirstLog.Append(actualFirst.receivingUintNo.ToString() + ",");
+            actualFirstLog.Append(actualFirst.forwardingUnitNo.ToString() + ",");
+            //actualFirstLog.Append(actualFirst.customerSupplierName.ToString() + ",");
+            //actualFirstLog.Append(actualFirst.loadPointName.ToString() + ",");
             actualFirstLog.Append(actualFirst.memo.ToString() + ",");
             actualFirstLog.Append(actualFirst.weightType.ToString() + ",");
             actualFirstLog.Append(actualFirst.meterWeight.ToString());
@@ -470,13 +508,14 @@ namespace FrmStandAloneMetering
                 int rowCount = csvDataTable.Rows.Count;
                 if (csvDataTable != null && csvDataTable.Rows.Count > 0)
                 {
-                    List<MeterWorkCarActFirAlon> lp = csvDataTable.TableToDataList<MeterWorkCarActFirAlon>();
+                    List<MeterWorkCarActualFirst> lp = csvDataTable.TableToDataList<MeterWorkCarActualFirst>();
                     DialogResult dr = MessageBox.Show("共 " + lp.Count + " 条计量数据,是否继续上传?", "提示", MessageBoxButtons.OKCancel);
                     if (dr != DialogResult.OK)
                     {
                         return;
                     }
-                    RESTfulResult<string> rES = alonService.batchInsertAlonData(lp);
+                    //操作日志
+                    RESTfulResult<string> rES = actualFirstService.addEmergency(lp);
                     if (rES.Succeed)
                     {
                         MessageBox.Show("数据上传成功!");
@@ -644,6 +683,10 @@ namespace FrmStandAloneMetering
             }
         }
 
+        /// <summary>
+        /// 保存物料信息到csv文件
+        /// </summary>
+        /// <param name="result"></param>
         private void saveMatterInfo(RESTfulResult<List<MeterBaseMatterInfo>> result)
         {
             StringBuilder materInfoHead = new StringBuilder(); // 物料头
@@ -669,6 +712,10 @@ namespace FrmStandAloneMetering
             }
         }
 
+        /// <summary>
+        /// 保存收发货单位信息到csv文件
+        /// </summary>
+        /// <param name="result"></param>
         private void saveCustomerInfo(RESTfulResult<List<MeterBaseCustomerSupplier>> result)
         {
             StringBuilder customerInfoHead = new StringBuilder(); // 客商头
@@ -696,5 +743,148 @@ namespace FrmStandAloneMetering
                 }
             }
         }
+
+        /// <summary>
+        /// 保存计量点信息到csv文件
+        /// </summary>
+        /// <param name="result"></param>
+        private void saveSpotInfo(RESTfulResult<List<MeterBaseSpotInfo>> result)
+        {
+            StringBuilder spotInfoHead = new StringBuilder(); // 客商头
+            spotInfoHead.Append("spotNo,");//若第一行默认为当前时间则第一行多个逗号
+            spotInfoHead.Append("spotName"); 
+
+            logCsv.WriteBaseData("MeterBaseSpotInfo", spotInfoHead.ToString());
+
+            if (result.Succeed)
+            {
+                StringBuilder spotInfo = new StringBuilder(); // 物料体
+
+                List<MeterBaseSpotInfo> list = result.Data;
+
+                if (result.Data != null)
+                {
+                    foreach (MeterBaseSpotInfo info in list)
+                    {
+                        spotInfo.Clear();
+                        spotInfo.Append(info.baseSpotNo + ",");
+                        spotInfo.Append(info.baseSpotName + ",");
+
+                        logCsv.WriteBaseData("MeterBaseSpotInfo", spotInfo.ToString());
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// 从csv文件读取物料信息
+        /// </summary>
+        /// <returns></returns>
+        private DataTable selectMatterInfo()
+        {
+            if (System.IO.Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "baseData") == true
+               && System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseMatterInfo.csv") == true)
+            {
+                string path = AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseMatterInfo.csv";
+                DataTable csvDataTable = OpenCSV(path);
+                int rowCount = csvDataTable.Rows.Count;
+                if (csvDataTable != null && csvDataTable.Rows.Count > 0)
+                {
+                    DataTable newCsvDataTable = new DataTable();
+                    newCsvDataTable.Columns.Add("name");
+                    newCsvDataTable.Columns.Add("value");
+                    for (int i = 1; i < csvDataTable.Rows.Count; i++)
+                    {
+                        DataRow dr = newCsvDataTable.NewRow();
+                        dr[0] = "[" + csvDataTable.Rows[i]["matterNo"].ToString() + "]" + csvDataTable.Rows[i]["matterName"].ToString();
+                        dr[1] = csvDataTable.Rows[i]["matterNo"].ToString();
+                        newCsvDataTable.Rows.Add(dr);
+                    }
+                    return newCsvDataTable;
+                }
+                else
+                {
+                    return null;
+                }
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// 从csv文件读取收发货单位信息
+        /// </summary>
+        /// <returns></returns>
+        private DataTable selectCustomerInfo()
+        {
+            if (System.IO.Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "baseData") == true
+               && System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseCustomerSupplier.csv") == true)
+            {
+                string path = AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseCustomerSupplier.csv";
+                DataTable csvDataTable = OpenCSV(path);
+                int rowCount = csvDataTable.Rows.Count;
+                if (csvDataTable != null && csvDataTable.Rows.Count > 0)
+                {
+                    DataTable newCsvDataTable = new DataTable();
+                    newCsvDataTable.Columns.Add("name");
+                    newCsvDataTable.Columns.Add("value");
+                    for (int i = 1; i < csvDataTable.Rows.Count; i++)
+                    {
+                        DataRow dr = newCsvDataTable.NewRow();
+                        dr[0] = "[" + csvDataTable.Rows[i]["customerSupplierNo"].ToString() + "]" + csvDataTable.Rows[i]["customerSupplierName"].ToString();
+                        dr[1] = csvDataTable.Rows[i]["customerSupplierNo"].ToString();
+                        newCsvDataTable.Rows.Add(dr);
+                    }
+                    return newCsvDataTable;
+                }
+                else
+                {
+                    return null;
+                }
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// 从csv文件读取计量点信息
+        /// </summary>
+        /// <returns></returns>
+        private DataTable selectSpotInfo()
+        {
+            if (System.IO.Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + "baseData") == true
+               && System.IO.File.Exists(AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseSpotInfo.csv") == true)
+            {
+                string path = AppDomain.CurrentDomain.BaseDirectory + "baseData\\MeterBaseSpotInfo.csv";
+                DataTable csvDataTable = OpenCSV(path);
+                int rowCount = csvDataTable.Rows.Count;
+                if (csvDataTable != null && csvDataTable.Rows.Count > 0)
+                {
+                    DataTable newCsvDataTable = new DataTable();
+                    newCsvDataTable.Columns.Add("name");
+                    newCsvDataTable.Columns.Add("value");
+                    for (int i = 1; i < csvDataTable.Rows.Count; i++)
+                    {
+                        DataRow dr = newCsvDataTable.NewRow();
+                        dr[0] = "[" + csvDataTable.Rows[i]["spotNo"].ToString() + "]" + csvDataTable.Rows[i]["spotName"].ToString();
+                        dr[1] = csvDataTable.Rows[i]["spotNo"].ToString();
+                        newCsvDataTable.Rows.Add(dr);
+                    }
+                    return newCsvDataTable;
+                }
+                else
+                {
+                    return null;
+                }
+            }
+            else
+            {
+                return null;
+            }
+        }
     }
 }

+ 3 - 0
FrmStandAloneMetering/FrmStandAloneMetering.csproj

@@ -119,5 +119,8 @@
       <Name>Common</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <Folder Include="backup\" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
 </Project>

+ 52 - 3
FrmStandAloneMetering/Utils/logCsv.cs

@@ -161,6 +161,50 @@ namespace FrmStandAloneMetering
             }
         }
 
+
+        public string LogPathBase
+        {
+            get
+            {
+                if (this.logPath == null || this.logPath == string.Empty)
+                {
+                    //Application.StartupPath
+                    this.logPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
+                }
+                return this.logPath;
+            }
+            set
+            {
+                this.logPath = value;
+                if (this.logPath == null || this.logPath == string.Empty)
+                {
+                    //Application.StartupPath
+                    this.logPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
+                }
+                else
+                {
+                    try
+                    {
+                        // 判断是否不是绝对路径(绝对路径里还有":")
+                        if (this.logPath.IndexOf(Path.VolumeSeparatorChar) >= 0)
+                        { /* 绝对路径 */}
+                        else
+                        {
+                            // 相对路径
+                            this.logPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory + this.logPath);
+                        }
+                        if (!Directory.Exists(this.logPath))
+                            Directory.CreateDirectory(this.logPath);
+                    }
+                    catch
+                    {
+                        this.logPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
+                    }
+                    if (!this.logPath.EndsWith(@"\"))
+                        this.logPath += @"\";
+                }
+            }
+        }
         /// <summary>
         /// Log 文件扩展名
         /// </summary>
@@ -234,12 +278,17 @@ namespace FrmStandAloneMetering
             {
                 try
                 {
-                    string basePath = AppDomain.CurrentDomain.BaseDirectory;
+                    this.LogPathBase = "baseData";
                     logFileName = string.Format("{0}{1}.{2}",
-                                               //this.LogPath,
-                                               basePath + "baseData//",
+                                                this.LogPathBase, //文件夹带年月日时分秒
                                                 logFile,
                                                 this.logFileExtName);
+                    //string basePath = AppDomain.CurrentDomain.BaseDirectory;
+                    //logFileName = string.Format("{0}{1}.{2}",
+                    //                           //this.LogPath,
+                    //                           basePath + "baseData//",
+                    //                            logFile,
+                    //                            this.logFileExtName);
                     using (StreamWriter sw = new StreamWriter(logFileName, true, logFileEncoding))
                     {
                         sw.WriteLine(msg);

+ 100 - 76
MeterSceneLibrary/JISCO/InnerCarJISCO.cs

@@ -96,26 +96,26 @@ namespace MeterSceneLibrary
                     {
                         // 重量类型为期限皮重
                         if (list[0].weightTypeNo == "001033003")
-                    {
-                        // 判断这个车是否有留存期限皮重的权限
-                        MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
-                        RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
-
-                        if (tareCarResult.Succeed)
                         {
-                            // 没有期限皮重权限
-                            if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
-                            {
-                                rt = saveMethod.doError("该车辆没有期限皮重权限,请联系计量大厅");
-                            }
-                            // 有期限皮重权限 
-                            else if (tareCarResult.Data.Count >= 1)
+                            // 判断这个车是否有留存期限皮重的权限
+                            MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
+                            RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
+
+                            if (tareCarResult.Succeed)
                             {
-                                // 正常保存期限皮重
-                                rt = saveMethod.doTermTareData();
+                                // 没有期限皮重权限
+                                if (tareCarResult.Data == null || tareCarResult.Data.Count == 0)
+                                {
+                                    rt = saveMethod.doError("该车辆没有期限皮重权限,请联系计量大厅");
+                                }
+                                // 有期限皮重权限 
+                                else if (tareCarResult.Data.Count >= 1)
+                                {
+                                    // 正常保存期限皮重
+                                    rt = saveMethod.doTermTareData();
+                                }
                             }
                         }
-                    }
                         // 重量类型为普通毛重/皮重
                         else if (list[0].weightTypeNo == "001033001" || list[0].weightTypeNo == "001033002")
                         {
@@ -130,72 +130,77 @@ namespace MeterSceneLibrary
                                 if (firstList == null || firstList.Count == 0)
                                 {
                                 
-                                        // 历史皮重验证
-                                        rt = saveMethod.validHisTare();
+                                    // 历史皮重验证
+                                    rt = saveMethod.validHisTare();
 
-                                        // 重量类型为皮重且在皮重误差内
-                                        if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == true)
-                                        {
-                                            /*
-                                             * a. 正常保存重量匹配委托
-                                             * b. 提示称重完成
-                                             */
-                                            rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
-                                        }
-                                        // 重量类型为皮重且在皮重误差内
-                                        else if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == false)
-                                        {
-                                            rt = saveMethod.doError(PbCache.ResultMessage);
-                                        }
-                                        // 重量类型为毛重,在皮重误差内
-                                        else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == true)
-                                        {
-                                            rt = saveMethod.doError("当次重量类型为毛重,在皮重误差内");
-                                        }
-                                        // 重量类型为毛重,不在皮重误差内
-                                        else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == false)
-                                        {
-                                            // 判断车辆是否具有期限皮重权限
-                                            MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
-                                            RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
+                                    // 重量类型为皮重且在皮重误差内
+                                    if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == true)
+                                    {
+                                        /*sds
+                                        * a. 正常保存重量匹配委托
+                                        * b. 提示称重完成
+                                        */
+                                        rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                    }
+                                    // 重量类型为皮重且在皮重误差外
+                                    else if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == false)
+                                    {
+                                        rt = saveMethod.doError(PbCache.ResultMessage);
+                                    }
+                                    // 重量类型为毛重,在皮重误差内
+                                    else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == true)
+                                    {
+                                        rt = saveMethod.doError("当次重量类型为毛重,在皮重误差内");
+                                    }
+                                    // 重量类型为毛重,不在皮重误差内
+                                    else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == false)
+                                    {
+                                        // 判断车辆是否具有期限皮重权限
+                                        MeterBaseTermTareCarService meterBaseTermTareCarService = new MeterBaseTermTareCarService();
+                                        RESTfulResult<List<MeterBaseTermTareCar>> tareCarResult = meterBaseTermTareCarService.doQueryWf(new MeterBaseTermTareCar { carNo = PbCache.lockCarNo, valueFlag = "0" });
 
-                                            if (tareCarResult.Succeed)
+                                        if (tareCarResult.Succeed)
+                                        {
+                                            // 没有期限皮重权限
+                                            if (tareCarResult.Data.Count == 0)
                                             {
-                                                // 没有期限皮重权限
-                                                if (tareCarResult.Data.Count == 0)
-                                                {
-                                                    rt = saveMethod.doError("该车辆没有期限皮重权限,请联系计量大厅");
-                                                }
-                                                // 有期限皮重权限 
-                                                else if (tareCarResult.Data.Count >= 1)
+                                                rt = saveMethod.doError("该车辆没有期限皮重权限,请联系计量大厅");
+                                            }
+                                            // 有期限皮重权限 
+                                            else if (tareCarResult.Data.Count >= 1)
+                                            {
+                                                //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
+                                                string sqls = @"select t.matter_no id, t.matter_name text
+                                                from meter_base_matter_info t,meter_base_metertype_conf t2
+                                                where t.allowed_tare_weight = '1'
+                                                and t.valid_flag = '1'
+                                                and t.matter_no='" + rmScale.Data[0].matterNo + @"'
+                                                and t2.is_allow_term_tare = '1' and  t2.meter_type_no = '" + rmScale.Data[0].meterTypeNo + @"'";
+
+                                                PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
+                                                RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
+                                                if (rmT.Succeed)
                                                 {
-                                                    //查下当前拖的物料是否可用期限皮;验证业务类型是否允许使用期限皮重
-                                                    string sqls = @"select t.matter_no id, t.matter_name text
-                                                  from meter_base_matter_info t,meter_base_metertype_conf t2
-                                                 where t.allowed_tare_weight = '1'
-                                                   and t.valid_flag = '1'
-                                                   and t.matter_no='" + rmScale.Data[0].matterNo + @"'
-                                                   and t2.is_allow_term_tare = '1' and  t2.meter_type_no = '" + rmScale.Data[0].meterTypeNo + @"'";
-
-                                                    PbModelDbService<List<PbModelDb>> pbp = new PbModelDbService<List<PbModelDb>>();
-                                                    RESTfulResult<List<PbModelDb>> rmT = pbp.executeSqlDataWf(sqls);
-                                                    if (rmT.Succeed)
+                                                    if (rmT.Data != null && rmT.Data.Count > 0)
                                                     {
-                                                        if (rmT.Data != null && rmT.Data.Count > 0)
-                                                        {
-                                                            // 正常保存期限皮重,同时保存一次计量数据
-                                                            rt = saveMethod.doTermTareData();
-                                                            rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
-                                                        }
-                                                        else
-                                                        {
-                                                            // 只保存一次计量数据
-                                                            rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
-                                                        }
+                                                        // 存在使用期限皮重权限,并使用期限皮重洁净
+
+                                                        //给一次数据匹配委托
+                                                        EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
+                                                        mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
+                                                        mwaf.isPreScale = "1";
+
+                                                        rt = saveMethod.doNetTermTare(rmScale.Data[0], mwaf);
+                                                    }
+                                                    else
+                                                    {
+                                                        // 只保存一次计量数据
+                                                        rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
                                                     }
                                                 }
                                             }
                                         }
+                                    }
                                 }
                                 // 只存在一条有效的一次计量数据
                                 else if (firstList == null || firstList.Count == 1)
@@ -230,6 +235,12 @@ namespace MeterSceneLibrary
                                         if (list[0].weightTypeNo == "001033002" && PbCache.monitorResult.valid_wgt == true)
                                         {
                                             // 正常结净
+
+                                            //给一次数据匹配委托
+                                            EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
+                                            mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
+                                            mwaf.isPreScale = "1";
+
                                             rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
                                         }
                                         // 重量类型为皮重且不在皮重误差内
@@ -240,8 +251,21 @@ namespace MeterSceneLibrary
                                         // 重量类型为毛重,不在皮重误差内,正常结净
                                         else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == false)
                                         {
-                                            // 正常结净
-                                            rt = saveMethod.doNet(scale, firstList[0], mwaf);
+                                            if (firstList[0].weightType == "0")
+                                            {
+                                                rt = saveMethod.doAddFirst(rmScale.Data[0], mwaf);
+                                            }
+                                            else
+                                            {
+                                                // 正常结净
+                                                //给一次数据匹配委托
+                                                EntityBase<PreTrackScale> entityBase1 = new EntityBase<PreTrackScale>();
+                                                mwaf = entityBase1.format<MeterWorkCarActualFirst>(rmScale.Data[0], mwaf);
+                                                mwaf.isPreScale = "1";
+
+                                                rt = saveMethod.doNet(rmScale.Data[0], firstList[0], mwaf);
+                                            }
+                                            
                                         }
                                         // 重量类型为毛重,在皮重误差内
                                         else if (list[0].weightTypeNo == "001033001" && PbCache.monitorResult.valid_wgt == true)
@@ -260,7 +284,7 @@ namespace MeterSceneLibrary
                                     /* a. 程序报警a
                                      * b. 自动进行语音求助
                                      */
-                                    rt = saveMethod.doError("存在多条有效的一次计量数据,请联系计量大厅");
+                                     rt = saveMethod.doError("存在多条有效的一次计量数据,请联系计量大厅");
                                 }
                             }
                         }

+ 0 - 1
MeterSceneLibrary/JISCO/OuterCarJISCO.cs

@@ -396,7 +396,6 @@ namespace MeterSceneLibrary
                                      * b. 提示司机存在一条使用中的委托,请联系计量大厅进行确认
                                      * c. 自动进行语音求助
                                      */
-
                                     rt = saveMethod.doError("存在一条使用中的委托,请联系计量大厅进行确认");
                                 }
                                 // 只存在一条未使用的委托数据

+ 59 - 4
MeterSceneLibrary/JISCO/private/SaveMethod.cs

@@ -117,7 +117,7 @@ namespace MeterSceneLibrary.JISCO
             netDb.grossManName = actualFirst.createManName;
             netDb.grossClass = actualFirst.meterClass;
             netDb.grossGroup = actualFirst.meterGroup;
-            netDb.valueFlag = "2";
+            netDb.valueFlag = "1";
             netDb.isPreScale = "1";
 
             netDb.netTime = DateTime.Now;
@@ -131,8 +131,7 @@ namespace MeterSceneLibrary.JISCO
             //净重=毛-皮-附加重量
             netDb.netWeight = netDb.grossWeight - netDb.tareWeight - netDb.addWeight;
             netDb.netMode = "1"; //1:正常结净;2:匹配结净
-            netDb.valueFlag = "0"; //0=有效,1=作废
-            netDb.uploadFlag = "0"; //0=待审核;1:待上传;2=已上传
+            netDb.uploadFlag = "1"; //0=待审核;1:待上传;2=已上传
             netDb.dataSource = "1";//1 = 智能终端,2 = 本地计量,3 = 应急计量,4 = 手动录入(计量票据录入)
                                   //要判断下当前是否勾选了不验证皮重
 
@@ -149,7 +148,7 @@ namespace MeterSceneLibrary.JISCO
             // 保存结净记录,后续改成统一提交模式  BourneCao
 
             MeterWorkCarActualService actualService = new MeterWorkCarActualService();
-            RESTfulResult<string> rmI = actualService.doAddNet(actualFirst, actualFirst2, netDb, monitorNote, "0");
+            RESTfulResult<string> rmI = actualService.doAddNet(actualFirst, actualFirst2, netDb, monitorNote, "1");
 
             if (rmI.Succeed)
             {
@@ -368,6 +367,62 @@ namespace MeterSceneLibrary.JISCO
             return rt;
         }
 
+        /// <summary>
+        /// 期限皮重保存洁净
+        /// </summary>
+        /// <param name="scale"></param>
+        /// <param name="actualFirst"></param>
+        public rtInfo doNetTermTare(PreTrackScale scale, MeterWorkCarActualFirst actualFirst)
+        {
+            // 构造结净数据
+            MeterWorkCarActual netDb = new MeterWorkCarActual();
+
+            if (scale != null)
+            {
+                EntityBase<PreTrackScale> entityBase = new EntityBase<PreTrackScale>();
+                netDb = entityBase.format<MeterWorkCarActual>(scale, netDb);
+            }
+
+            netDb.actualFirst1No = actualFirst.actualFirstNo;
+
+            netDb.tareTime = DateTime.Now;
+            netDb.baseSpot2No = PbCache.sportInfo.baseSpotNo;
+            netDb.baseSpot2Name = PbCache.sportInfo.baseSpotName;
+            netDb.tareMode = "2";//1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
+
+            netDb.grossTime = actualFirst.createTime;
+            netDb.grossWeight = actualFirst.meterWeight.Value; // 谁大谁是毛 BourneCao
+            netDb.baseSpot1No = actualFirst.baseSpotNo;
+            netDb.baseSpot1Name = actualFirst.baseSpotName;
+            netDb.grossMode = "2"; // 1:远程计量;2:智能计量;3:手工录入;4:放行智能计量;5:滞后匹配
+            netDb.grossManNo = actualFirst.createManNo;
+            netDb.grossManName = actualFirst.createManName;
+            netDb.grossClass = actualFirst.meterClass;
+            netDb.grossGroup = actualFirst.meterGroup;
+
+            netDb.netTime = DateTime.Now;
+
+            //netDb.netManNo = appUser.userid; //净重计量员编码 
+            //netDb.netManName = appUser.username; //净重计量员名称
+            netDb.netSpot3No = PbCache.sportInfo.baseSpotNo; //净重计量点编号
+            netDb.netSpot3Name = PbCache.sportInfo.baseSpotName; //净重计量点
+
+            netDb.addWeight = (actualFirst.addWeight == null ? 0 : actualFirst.addWeight.Value);
+            //净重=毛-皮-附加重量
+            netDb.netMode = "2"; //1:正常结净;2:匹配结净
+            netDb.valueFlag = "1"; //0=有效,1=作废
+            netDb.uploadFlag = "1"; //0=待审核;1:待上传;2=已上传
+            netDb.dataSource = "1"; //1 = 智能终端,2 = 本地计量,3 = 应急计量,4 = 手动录入(计量票据录入)
+            netDb.isPreScale = "1";//是否匹配委托,0未匹配,1已匹配
+                                    //要判断下当前是否勾选了不验证皮重
+
+            // 保存结净记录,后续改成统一提交模式  BourneCao
+
+            MeterWorkCarActualService actualService = new MeterWorkCarActualService();
+            actualService.doNetTermTare(actualFirst, netDb,"1");
+            return rt;
+        }
+
         /// <summary>
         /// 一车多卸
         /// a. 取第一条委托正常洁净产生一条净重记录

Некоторые файлы не были показаны из-за большого количества измененных файлов