From 9c634fd767aec36ef97c3a814bf7a29c67d20ee1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 29 三月 2024 10:57:35 +0800
Subject: [PATCH] 修改单据重复显示问题,增加工单源单id关联

---
 VueWebApi/DLL/DAL/AppPurchManagementDAL.cs |  184 +++++++++++++++++++++++++--------------------
 1 files changed, 101 insertions(+), 83 deletions(-)

diff --git a/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs b/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
index 5897eb7..bf933fb 100644
--- a/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
@@ -34,7 +34,7 @@
                     //dynamicParams.Add("@purchordercode", purchordercode);
                 }
                 //鏌ヨ鏈叧闂笖鏈叏閮ㄥ埌璐х殑閲囪喘璁㈠崟
-                sql = @"select distinct A.ordercode  from T_PurchaseOrder A
+                sql = @"select distinct A.orderid,A.ordercode  from T_PurchaseOrder A
                         inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
                         where (isnull(B.quantity,0)-isnull(B.countarrivalquantity,0)+isnull(B.countreturnquantity,0))>0 and A.status<>'CLOSED'" + search;
                 dynamicParams.Add("@purchordercode", purchordercode);
@@ -71,7 +71,7 @@
             try
             {
                 //鏍规嵁閲囪喘璁㈠崟鍙锋煡璇㈢墿鏂欎俊鎭紝渚涘簲鍟嗕俊鎭�
-                sql = @"select B.rownumber, B.materiel_code as partcode,M.partname,M.partspec,M.is_batchno,M.is_incheck,
+                sql = @"select B.rownumber,B.sbid, B.materiel_code as partcode,M.partname,M.partspec,M.is_batchno,M.is_incheck,
                         B.quantity,B.customercode,C.name as customername,A.departmentcode,T.org_name as departmentname,U.code as uomcode,U.name as uomname,
                         A.ordercode,B.countarrivalquantity,A.acceptdate  
                         from T_PurchaseOrder A
@@ -204,7 +204,7 @@
                                 hbillno = djwo,
                                 hbilltype = "1103", //閲囪喘鍒拌揣鍗曠被鍨�
                                 hbarcode = json[i].children[j].labcode,
-                                qualitystatus= json[i].hischeck=="Y"? "TS" : "CS",
+                                qualitystatus = json[i].hischeck == "Y" ? "TS" : "CS",
                                 hbarcodestatus = "Y",
                                 hbarcodetype = "P",
                                 hmaterialcode = json[i].children[j].partnumber,
@@ -349,26 +349,28 @@
         #endregion
 
         #region[閲囪喘鍏ュ簱鎵弿鏍囩鏉$爜甯﹀嚭鍒拌揣鍗曚俊鎭痌
-        public static ToMessage MesAppPurchInStorScanLabCode(string labcode, string ordercode)
+        public static ToMessage MesAppPurchInStorScanLabCode(string labcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
             try
             {
                 //鍒ゆ柇鏉$爜鐘舵��
-                mes = LabCodeStatusMessage.LabCodeStatus("2060", "1103", labcode);//鍔熻兘缂栧彿銆佸崟鎹被鍨嬬紪鐮併�佹爣绛剧紪鐮�
+                mes = LabCodeStatusMessage.LabCodeStatus("2060", "1103", labcode);//鍔熻兘缂栧彿(閲囪喘鍒拌揣)銆佸崟鎹被鍨嬬紪鐮�(閲囪喘鍒拌揣鍗�)銆佹爣绛剧紪鐮�
                 if (mes.code == "300")
                 {
                     return mes;
                 }
-                //鍒ゆ柇鎵弿鏍囩鏄惁涓哄綋鍓嶉�夋嫨閲囪喘璁㈠崟涓嬬殑鍒拌揣鍗曟墍鐢熸垚鏍囩
-                sql = @"select *   from T_BarCodeBill where hsourcebillno=@ordercode";
-                dynamicParams.Add("@ordercode", ordercode);
-                var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                if (data0.Rows.Count < 0)
+                //鍒ゆ柇鏍囩鐘舵��(鏄惁宸插叆搴�(涓嶈兘鍐嶅叆))
+                sql = @"select * from TK_WMS_Inwh_Sub  where labcode like '%'+@labcode+'%'";
+                dynamicParams.Add("@labcode", "labcode");
+                dynamicParams.Add("@labcode", labcode);
+                var dt = DapperHelper.selectdata(sql, dynamicParams);
+                if (dt.Rows.Count > 0)
                 {
                     mes.code = "300";
-                    mes.Message = "褰撳墠鏉$爜涓嶆槸閲囪喘璁㈠崟銆�" + ordercode + "銆戠敓鎴愭潯鐮�!";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠鏉$爜宸插叆搴�!";
                     mes.data = null;
                     return mes;
                 }
@@ -429,8 +431,8 @@
                 JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(incontent);
                 list.Clear();
                 //鍐欏叆鍏ュ簱璁板綍涓昏〃
-                sql = @"insert into  TK_WMS_Inwh_Main(docu_typecode,hbillno,hsoucenillno,status,hcustomer,hdempart,lm_user,lm_date) 
-                                values(@docu_typecode,@hbillno,@hsoucenillno,@status,@hcustomer,@hdempart,@lm_user,@lm_date)";
+                sql = @"insert into  TK_WMS_Inwh_Main(docu_typecode,hbillno,hsoucenillnoid,hsoucenillno,status,hcustomer,hdempart,lm_user,lm_date) 
+                                values(@docu_typecode,@hbillno,@hsoucenillnoid,@hsoucenillno,@status,@hcustomer,@hdempart,@lm_user,@lm_date)";
                 list.Add(new
                 {
                     str = sql,
@@ -438,6 +440,7 @@
                     {
                         docu_typecode = "1201",
                         hbillno = djwo,
+                        hsoucenillnoid= arra[0]["hsoucenillnoid"].ToString(),
                         hsoucenillno = ordercode,
                         status = "NEW",
                         hcustomer = arra[0]["customercode"].ToString(),
@@ -466,7 +469,7 @@
                     string labcode = "";//鏍囩淇℃伅
                     decimal suminqty = 0; //鍗曟爣绛惧叆搴撴�绘暟閲�
                     string batchno = ""; //鎵规鍙�
-                    
+
                     //鏌ヨ姹囨�绘爣绛句俊鎭�
                     for (int j = 0; j < arra[i]["labcont"].Count(); j++)//寰幆鑾峰彇鏍囩淇℃伅
                     {
@@ -495,10 +498,33 @@
                                 hinqty = decimal.Parse(arra[i]["labcont"][j]["qty"].ToString())
                             }
                         });
-                        labcode = labcode + arra[i]["labcont"][j]["labcode"].ToString() + ",";
+
+                        //鍐欏叆搴撳瓨琛�
+                        sql = @"insert into TK_WMS_Stock(labcode,materiel_code,batchno,storehouse_code,location_code,customercode,qty,lm_user,lm_date)
+                                values(@labcode,materiel_code,batchno,storehouse_code,location_code,customercode,qty,lm_user,lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                labcode = arra[i]["labcont"][j]["labcode"].ToString(),
+                                materiel_code = arra[i]["partcode"].ToString(),
+                                batchno = batchno,
+                                storehouse_code = arra[i]["storehousecode"].ToString(),
+                                location_code = arra[i]["warehousecode"].ToString(),
+                                customercode = arra[i]["customercode"].ToString(),
+                                qty = suminqty,
+                                lm_user = username,
+                                lm_date = datetime,
+                            }
+                        });
+
+
+                        //labcode = labcode + arra[i]["labcont"][j]["labcode"].ToString() + ",";
                         suminqty = suminqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
                         partlabqty = partlabqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
                         batchno = arra[i]["labcont"][j]["batch"].ToString();
+
                     }
 
                     //鏇存柊閲囪喘璁㈠崟瀛愯〃鍏ュ簱鏁伴噺
@@ -516,9 +542,9 @@
                     });
 
                     //鍐欏叆閲囪喘鍏ュ簱鍗曞瓙琛�
-                    sql = @"insert into  TK_WMS_Inwh_Sub(hbillno,labcode,rownumber,materiel_code,storehouse_code,location_code,qty,batchno) 
-                                values(@hbillno,@labcode,@rownumber,@materiel_code,@storehouse_code,@location_code,@qty,@batchno)";
-                    labcode = string.Format("'{0}'", labcode.Substring(0, labcode.Length - 1).Replace(",", "','"));
+                    sql = @"insert into  TK_WMS_Inwh_Sub(hbillno,rownumber,materiel_code,storehouse_code,location_code,qty,batchno) 
+                                values(@hbillno,@rownumber,@materiel_code,@storehouse_code,@location_code,@qty,@batchno)";
+                    //labcode = string.Format("'{0}'", labcode.Substring(0, labcode.Length - 1).Replace(",", "','"));
                     list.Add(new
                     {
                         str = sql,
@@ -534,44 +560,7 @@
                             batchno = batchno
                         }
                     });
-                    //鍐欏叆搴撳瓨琛ㄥ墠鏌ヨ褰撳墠鐗╂枡鍦ㄥ簱瀛樿〃涓槸鍚﹀瓨鍦�,鍐欏叆鎴栨洿鏂板簱瀛樿〃
-                    sql = @"select *  from TK_WMS_Stock where materiel_code=@materiel_code";
-                    dynamicParams.Add("@materiel_code", arra[i]["partcode"].ToString());
-                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data1.Rows.Count > 0)
-                    {
-                        sql = @"update TK_WMS_Stock set qty=qty+@suminqty 
-                                where materiel_code=@materiel_code";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                materiel_code = arra[i]["partcode"].ToString(),
-                                suminqty = suminqty
-                            }
-                        });
-                    }
-                    else 
-                    {
-                        sql = @"insert into TK_WMS_Stock(materiel_code,batchno,storehouse_code,location_code,customercode,qty,lm_user,lm_date)
-                                values(materiel_code,batchno,storehouse_code,location_code,customercode,qty,lm_user,lm_date)";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                materiel_code = arra[i]["partcode"].ToString(),
-                                batchno = batchno,
-                                storehouse_code= arra[i]["storehousecode"].ToString(),
-                                location_code= arra[i]["warehousecode"].ToString(),
-                                customercode= arra[i]["customercode"].ToString(),
-                                qty= suminqty,
-                                lm_user=username,
-                                lm_date= datetime,
-                            }
-                        });
-                    }
+
                     /*鍐欏叆ERP閲囪喘鍏ュ簱鍗�************
                      * ***********************
                      * **********************
@@ -697,6 +686,25 @@
             var dynamicParams = new DynamicParameters();
             try
             {
+                //鍒ゆ柇鏉$爜鐘舵��
+                mes = LabCodeStatusMessage.LabCodeStatus("2060", "1103", labcode);//鍔熻兘缂栧彿(閲囪喘鍒拌揣)銆佸崟鎹被鍨嬬紪鐮�(閲囪喘鍒拌揣鍗�)銆佹爣绛剧紪鐮�
+                if (mes.code == "300")
+                {
+                    return mes;
+                }
+                //鍒ゆ柇鏍囩鐘舵��(鏄惁宸插叆搴�(涓嶈兘閫�璐�))
+                sql = @"select * from TK_WMS_Inwh_Sub  where labcode like '%'+@labcode+'%'";
+                dynamicParams.Add("@labcode", "labcode");
+                dynamicParams.Add("@labcode", labcode);
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data0.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠鏉$爜宸插叆搴�!";
+                    mes.data = null;
+                    return mes;
+                }
                 //鏍规嵁閲囪喘璁㈠崟鍙枫�佺墿鏂欑紪鐮併�佹爣绛炬潯鐮佹煡鎵炬爣绛句俊鎭�
                 sql = @"select A.hbarcode,A.hcustomercode,C.name as hcustomercode,
                        A.hbatchno,A.qualitystatus,A.location_code,L.name as location_name,A.hqty  
@@ -768,15 +776,15 @@
                     str = sql,
                     parm = new
                     {
-                        orderdate= datetime,
-                        ordercode= djwo,
-                        status="NEW",
-                        departmentcode= arra[0]["departmentcode"].ToString(),
-                        customercode= arra[0]["customercode"].ToString(),
-                        saleorderid= orderid,
-                        saleordercode=ordercode,
-                        lm_user= username,
-                        lm_date= datetime
+                        orderdate = datetime,
+                        ordercode = djwo,
+                        status = "NEW",
+                        departmentcode = arra[0]["departmentcode"].ToString(),
+                        customercode = arra[0]["customercode"].ToString(),
+                        saleorderid = orderid,
+                        saleordercode = ordercode,
+                        lm_user = username,
+                        lm_date = datetime
                     }
                 });
                 //鏍规嵁婧愬崟+鐗╂枡鏌ヨ閲囪喘璁㈠崟鍒拌揣鎬绘暟銆佸叆搴撴�绘暟
@@ -804,6 +812,18 @@
                     //鏌ヨ姹囨�绘爣绛句俊鎭�
                     for (int j = 0; j < arra[i]["labcont"].Count(); j++)//寰幆鑾峰彇鏍囩淇℃伅
                     {
+                        //鏇存柊鏉$爜鐘舵��
+                        sql = @"update T_BarCodeBill set hbarcodestatus=@hbarcodestatus where hsourcebillno=@hsourcebillno and hbarcode=@hbarcode";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                hbarcodestatus = "N",
+                                hsourcebillno = ordercode,
+                                hbarcode = arra[i]["labcont"][j]["labcode"].ToString()
+                            }
+                        });
                         //鏇存柊鍒拌揣鍗曞瓙琛ㄩ��璐ф暟閲�
                         sql = @"update T_PurchaseArrivalOrder_sub set hreturnqty=isnull(hreturnqty,0)+@inqty where hbillno=@hbillno and hpartcode=@hpartcode";
                         list.Add(new
@@ -816,6 +836,21 @@
                                 hinqty = decimal.Parse(arra[i]["labcont"][j]["qty"].ToString())
                             }
                         });
+
+                        //鏇存柊搴撳瓨琛�
+                        sql = @"update TK_WMS_Stock set qty=qty-@inqty 
+                                where materiel_code=@materiel_code and labcode=@labcode";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                labcode = arra[i]["labcont"][j]["labcode"].ToString(),
+                                materiel_code = arra[i]["partcode"].ToString(),
+                                inqty = decimal.Parse(arra[i]["labcont"][j]["qty"].ToString())
+                            }
+                        });
+
                         labcode = labcode + arra[i]["labcont"][j]["labcode"].ToString() + ",";
                         suminqty = suminqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
                         partlabqty = partlabqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
@@ -855,24 +890,6 @@
                             batchno = batchno
                         }
                     });
-                    //鍐欏叆搴撳瓨琛ㄥ墠鏌ヨ褰撳墠鐗╂枡鍦ㄥ簱瀛樿〃涓槸鍚﹀瓨鍦�,鍐欏叆鎴栨洿鏂板簱瀛樿〃
-                    sql = @"select *  from TK_WMS_Stock where materiel_code=@materiel_code";
-                    dynamicParams.Add("@materiel_code", arra[i]["partcode"].ToString());
-                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data1.Rows.Count > 0)
-                    {
-                        sql = @"update TK_WMS_Stock set qty=qty-@suminqty 
-                                where materiel_code=@materiel_code";
-                        list.Add(new
-                        {
-                            str = sql,
-                            parm = new
-                            {
-                                materiel_code = arra[i]["partcode"].ToString(),
-                                suminqty = suminqty
-                            }
-                        });
-                    }
                     /*鍐欏叆ERP閲囪喘閫�璐у崟************
                      * ***********************
                      * **********************
@@ -905,5 +922,6 @@
             return mes;
         }
         #endregion
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3