From 6866dbd4b0b8703811872669179a68841eea803d Mon Sep 17 00:00:00 2001
From: yusijie <ysj@hz-kingdee.com>
Date: 星期二, 24 三月 2026 18:28:50 +0800
Subject: [PATCH] 合并

---
 WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs |  191 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 180 insertions(+), 11 deletions(-)

diff --git a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
index ea45580..c55dcbc 100644
--- a/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
+++ b/WebAPI/Controllers/CJGL/Cj_StationOutBillController.cs
@@ -1425,9 +1425,9 @@
                 decimal baseQtyPerPiece = Math.Floor(HQty / HPieceQty);
                 decimal remainderQty = HQty % HPieceQty;
 
-                // 璁$畻姣忓紶鏉$爜鐨勫熀纭�閲嶉噺锛堝噣閲嶅拰姣涢噸鐩稿悓锛�
-                decimal baseWeightPerPiece = Math.Floor(totalWeight / HPieceQty * 10000) / 10000; // 淇濈暀4浣嶅皬鏁�
-                decimal remainderWeight = totalWeight - (baseWeightPerPiece * HPieceQty);
+                /// 閲嶉噺鍧囧垎鍩虹鍊间笌浣欐暟
+                decimal baseWeightPerPiece = totalWeight / HPieceQty;
+                decimal remainderWeight = totalWeight % HPieceQty;
 
                 // 鏌ヨ鍘熷鍗曟嵁淇℃伅
                 ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HInterID='" + HInterID + "'", "Sc_StationOutBillMain");
@@ -1439,18 +1439,36 @@
                     // 寰幆鐢熸垚鏉$爜
                     for (int i = 0; i < barcodeCount; i++)
                     {
-                        // 璁$畻褰撳墠鏉$爜鐨勬暟閲�
-                        decimal currentQty = baseQtyPerPiece;
-                        if (i < remainderQty)  // 濡傛灉鏈変綑鏁帮紝鍓峃寮犳潯鐮佸悇鍔�1
+                        // ====================== 淇鏁伴噺璁$畻 ======================
+                        decimal currentQty;
+                        if (barcodeCount == 1)
                         {
-                            currentQty += 1;
+                            // 鍙湁1浠舵椂锛岀洿鎺ヤ娇鐢ㄦ�绘暟閲忥紝涓嶅仛鍙栨暣鎷嗗垎
+                            currentQty = HQty;
+                        }
+                        else
+                        {
+                            currentQty = baseQtyPerPiece;
+                            // 鏈変綑鏁板垯鍓峃鏉″悇鍔�1锛堝彧閽堝鏁存暟浣欐暟鍦烘櫙锛�
+                            if (i < remainderQty)
+                            {
+                                currentQty += 1;
+                            }
                         }
 
-                        // 璁$畻褰撳墠鏉$爜鐨勯噸閲忥紙鍑�閲嶅拰姣涢噸鐩稿悓锛�
-                        decimal currentWeight = baseWeightPerPiece;
-                        if (i < Math.Ceiling(remainderWeight / baseWeightPerPiece) && remainderWeight > 0)
+                        // ====================== 淇閲嶉噺璁$畻 ======================
+                        decimal currentWeight;
+                        if (barcodeCount == 1)
                         {
-                            currentWeight += baseWeightPerPiece; // 閲嶉噺浣欐暟涔熷垎鎽婂埌鍓嶅嚑寮犳潯鐮�
+                            currentWeight = totalWeight;
+                        }
+                        else
+                        {
+                            currentWeight = baseWeightPerPiece;
+                            if (i < remainderWeight)
+                            {
+                                currentWeight += baseWeightPerPiece;
+                            }
                         }
 
                         // 鐢熸垚鏉$爜鍙�
@@ -4861,6 +4879,157 @@
 
         #endregion
 
+        //瀹℃牳锛屽甫缂栬緫鍔熻兘
+        [Route("Cj_StationOutBill/setOtherProperty")]
+        [HttpPost]
+        public object setOtherProperty([FromBody] JObject oMain)
+        {
+            try
+            {
+                var _value = oMain["oMain"].ToString();
+                string msg1 = _value.ToString();
+                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
+                string msg2 = "[" + sArray[0].ToString() + "]";
+                string user = sArray[1].ToString();
+                ////鍒ゆ柇鏄惁鏈夌紪杈戞潈闄�
+                if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Edit", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鏃犵紪杈戞潈闄�!";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                //瀹℃牳鏉冮檺
+                if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Check", 1, false, user))
+                {
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "瀹℃牳澶辫触锛佹棤鏉冮檺锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+                List<StationBill> list1 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg2);
+                long HInterID = list1[0].HInterID;
+                double HQty = list1[0].HQty;
+                double HBadCount = list1[0].HBadCount;
+                double HWasterQty = list1[0].HWasterQty;
+                long HSourceID = list1[0].HSourceID;
+                string HSourceName = list1[0].HSourceName;
+                long HCenterID = list1[0].HCenterID;
+                long HGroupID = list1[0].HGroupID;
+                long HEmpID = list1[0].HEmpID;
 
+                oCN.BeginTran();
+
+                DataSet ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HInterID=" + HInterID, "Sc_StationOutBillMain");
+
+                if (ds.Tables.Count > 0 && ds.Tables[0].Rows[0]["HChecker"].ToString() == "")
+                {
+                    string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
+                    //瀹℃牳鍓嶆帶鍒�================================================================================
+                    string sql = "exec h_p_Sc_StationOutBill_BeforeCheckCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'";
+                    ds = oCN.RunProcReturn(sql, "h_p_Sc_StationOutBill_BeforeCheckCtrl");
+                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:瀹℃牳鍓嶅垽鏂け璐ワ紝璇蜂笌缃戠粶绠$悊浜哄憳鑱旂郴";
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+
+                    if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
+                    {
+                        objJsonResult.code = "0";
+                        objJsonResult.count = 1;
+                        objJsonResult.Message = "瀹℃牳澶辫触!鍘熷洜:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
+                        objJsonResult.data = null;
+                        return objJsonResult;
+                    }
+                    //================================================================================
+
+                    if (HQty > 0)
+                    {
+
+                        oCN.RunProc($"update Sc_StationOutBillMain set HBillStatus = 2, HQty={HQty},HBadCount='{HBadCount}',HWasterQty='{HWasterQty}',HSourceID='{HSourceID}',HCenterID='{HCenterID}',HGroupID={HGroupID},HEmpID={HEmpID},HChecker='{user}',HCheckDate=getdate() where HInterID={HInterID} ");
+
+                    }
+                    string sReturn = "";
+                    //鑾峰彇绯荤粺鍙傛暟
+                    oSystemParameter.ShowBill(ref sReturn);
+                    //鍒ゆ柇瀹㈡埛涓哄ぉ鎿� 鍚屾閲戣澏宸ュ簭姹囨姤鍗�
+                    if (oSystemParameter.omodel.WMS_CampanyName == "澶╂搸")
+                    {
+                        //鍚屾鍓嶆帶鍒�=========================================
+                        ds = oCN.RunProcReturn("Exec  h_p_Sc_StationOutBill_BeforeSyncCtrl  " + HInterID.ToString() + ", '" + HBillNo + "','" + user + "'", " h_p_Sc_StationOutBill_BeforeSyncCtrl ");
+                        if (ds == null)
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "[0000-2-012]淇濆瓨鍓嶅垽鏂け璐ワ紒";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0")
+                        {
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = "[0000-1-051]鍚屾澶辫触锛�" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        //=========================================================
+                        if (oWebs.set_SaveStationOutBill_CLD(HInterID, HBillNo, user, ref DBUtility.ClsPub.sErrInfo))
+                        {
+                            oCN.Commit();
+                            objJsonResult.code = "1";
+                            objJsonResult.count = 1;
+                            objJsonResult.Message = "鎴愬姛";
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+                        else
+                        {
+                            oCN.RollBack();
+                            objJsonResult.code = "0";
+                            objJsonResult.count = 0;
+                            objJsonResult.Message = DBUtility.ClsPub.sErrInfo;
+                            objJsonResult.data = null;
+                            return objJsonResult;
+                        }
+
+                    }
+                    oCN.Commit();
+                    objJsonResult.code = "1";
+                    objJsonResult.count = 1;
+                    objJsonResult.Message = "瀹℃牳淇敼鎴愬姛锛�";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+
+
+
+                }
+                else
+                {
+                    oCN.Commit();
+                    objJsonResult.code = "0";
+                    objJsonResult.count = 0;
+                    objJsonResult.Message = "鍗曟嵁涓嶅瓨鍦ㄦ垨宸插鏍革紒";
+                    objJsonResult.data = null;
+                    return objJsonResult;
+                }
+
+            }
+            catch (Exception e)
+            {
+                oCN.RollBack();
+                objJsonResult.code = "0";
+                objJsonResult.count = 0;
+                objJsonResult.Message = "瀹℃牳澶辫触锛�" + e.ToString();
+                objJsonResult.data = null;
+                return objJsonResult;
+            }
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1