From 65a9633ebcf5cf4c0871d1c857a743ec7694c157 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期三, 30 十月 2024 17:29:43 +0800
Subject: [PATCH] 1.生产入库功能接口 2.生产入库单报表接口

---
 VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs |  257 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 242 insertions(+), 15 deletions(-)

diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 1aa1222..17a2d83 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -130,7 +130,7 @@
         #endregion
 
         #region[ERP璁㈠崟涓嬭揪]
-        public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode,string deptcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string paystartdate, string payenddate, string clerkuser, User us)
+        public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode, string deptcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string paystartdate, string payenddate, string clerkuser, User us)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -212,7 +212,7 @@
                                 wo_code = wo,
                                 wotype = "PO",
                                 status = "NEW",
-                                dept_code=deptcode,
+                                dept_code = deptcode,
                                 wkshp_code = wkshopcode,
                                 plan_qty = cdqty,
                                 stck_code = warehousecode,
@@ -330,7 +330,7 @@
                                 wo_code = wo,
                                 wotype = "PO",
                                 status = "NEW",
-                                dept_code=model.deptcode,
+                                dept_code = model.deptcode,
                                 wkshp_code = model.wkshopcode,
                                 plan_qty = decimal.Parse(model.erpqty),  //璁㈠崟鏁伴噺
                                 stck_code = model.warehousecode,
@@ -1573,12 +1573,15 @@
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
                 sql = @"select A.id,A.status,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
-                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date
+                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date,
+                        E.sbid,B.m_po,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,K.code as stockcode,k.name as stockname
                         from TK_Wrk_Step A
                         left join TK_Wrk_Man B on A.wo_code=B.wo_code
                         left join TMateriel_Info M on B.materiel_code=M.partcode
                         left join TStep S on A.step_code=S.stepcode
                         left join TOrganization T on B.wkshp_code=T.torg_code
+                        left join TKimp_Ewo E on B.sourceid=E.id and B.m_po=E.wo
+                        left join TSecStck K on M.idwarehouse=K.code
                         where A.status in('ALLO','START') and S.flwtype='Z'  " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -1677,12 +1680,15 @@
                 sql = @"select A.id,A.status,B.dept_code,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                         S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,
                         (select isnull(sum(fqty),0) as fqty   from TK_Wrk_OutRecord where wo_code=A.wo_code and step_code=A.step_code and style='F') as fqty,
-                        A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date
+                        A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
+                        E.sbid,B.m_po,E.saleOrderCode,E.saleOrderDetailId,E.unitid,E.unitcode,E.unitname,K.code as stockcode,k.name as stockname
                         from TK_Wrk_Step A
                         left join TK_Wrk_Man B on A.wo_code=B.wo_code
                         left join TMateriel_Info M on B.materiel_code=M.partcode
                         left join TStep S on A.step_code=S.stepcode
                         left join TOrganization T on B.wkshp_code=T.torg_code
+                        left join TKimp_Ewo E on B.sourceid=E.id and B.m_po=E.wo
+                        left join TSecStck K on M.idwarehouse=K.code
                         where A.status in('ALLO','START') and S.flwtype='W'  " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -1927,7 +1933,7 @@
                         else //涓嶆寜搴忔敹鍙戞枡
                         {
                             mes = ScanStartReport.NoWXEncodingSeach(SelectType, wocode, stepcode);
-                        } 
+                        }
                         break;
                     default:
                         break;
@@ -3386,7 +3392,7 @@
                                     }
                                 }
                             }
-                        }  
+                        }
                     }
                 }
                 else //涓嶆寜搴�
@@ -3394,10 +3400,10 @@
                     //鎺у埗閫昏緫锛氬綋鍓嶅伐搴忔姤宸ヨ皟鏁�-> (鏈亾宸ュ簭褰撳墠璋冩暣鍚堟牸鏁�+鏈亾宸ュ簭闈炲綋鍓嶆姤宸ュ悎鏍兼�绘暟)<涓嬮亾宸ュ簭鎶ュ伐鎬绘暟(鍚堟牸+涓嶈壇+鎶ュ簾)   ==涓嶈兘灏忎簬涓嬮亾鎶ュ伐鎬绘暟
                     list.Clear();
                     //鍒ゆ柇褰撳墠宸ュ簭鏄嚜鍒跺伐搴忚繕鏄鍗忓伐搴�
-                    if (json[0].flw_type.ToString() == "Z") 
+                    if (json[0].flw_type.ToString() == "Z")
                     {
-                        
-                       //鏌ヨ褰撳墠鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
+
+                        //鏌ヨ褰撳墠鎶ュ伐宸ュ簭闈炴娆℃姤宸ワ細鎬绘姤宸ユ暟閲忋�佹�讳笉鑹暟閲忋�佹�诲伐搴熸暟閲忋�佹�绘枡搴熸暟閲�
                         sql = @"select isnull(sum(good_qty),0) as good_qty,isnull(sum(ng_qty),0) as ng_qty,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty   
                                 from TK_Wrk_Record where wo_code=@wo_code and style='B' and id<>@id and step_code=@step_code";
                         dynamicParams.Add("@wo_code", json[0].wo_code);
@@ -3419,7 +3425,7 @@
                             return mes;
                         }
                     }
-                    if (json[0].flw_type.ToString() == "W") 
+                    if (json[0].flw_type.ToString() == "W")
                     {
                         //鑾峰彇褰撳墠宸ュ簭銆佷緵搴斿晢瀵瑰簲鐨勬�诲彂鏂欐暟閲�
                         sql = @"select isnull(sum(fqty),0) as fqty
@@ -3441,7 +3447,7 @@
                         decimal notthis_ngqty = decimal.Parse(dt.Rows[0]["ng_qty"].ToString());  //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ�绘暟
                         decimal notthis_laborbad_qty = decimal.Parse(dt.Rows[0]["laborbad_qty"].ToString());  //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ュ伐搴熸�绘暟
                         decimal notthis_materielbad_qty = decimal.Parse(dt.Rows[0]["materielbad_qty"].ToString());  //褰撳墠鏈亾宸ュ簭闈炴湰娆℃姤宸ユ枡搴熸�绘暟
-                       //鑾峰彇褰撳墠鏈亾宸ュ簭鏀舵枡鎬绘暟閲忥細鏈淇敼鏀舵枡鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟
+                                                                                                                    //鑾峰彇褰撳墠鏈亾宸ュ簭鏀舵枡鎬绘暟閲忥細鏈淇敼鏀舵枡鏁伴噺+鏈淇敼涓嶈壇鏁伴噺+鏈淇敼宸ュ簾鏁伴噺+鏈淇敼鎶ュ伐鏂欏簾鏁伴噺+褰撳墠宸ュ簭闈炴湰娆℃敹鏂欐�绘暟+褰撳墠宸ュ簭闈炴湰娆′笉鑹�绘暟+褰撳墠宸ュ簭闈炴湰娆″伐搴熸�绘暟+褰撳墠宸ュ簭闈炴湰娆℃枡搴熸�绘暟
                         decimal updatereportsumqty = this_reportqty + this_ngqty + this_laborbadqty + this_materielbadqty + notthis_reportqty + notthis_ngqty + notthis_laborbad_qty + notthis_materielbad_qty;
                         //鍒ゆ柇褰撳墠宸ュ簭渚涘簲鍟嗘敹鏂欐�绘暟>褰撳墠宸ュ簭渚涘簲鍟嗗搴斿彂鏂欐暟閲�
                         if (updatereportsumqty > decimal.Parse(dt_0.Rows[0]["fqty"].ToString()))
@@ -3489,7 +3495,7 @@
                             str = sql,
                             parm = new
                             {
-                                step_price=decimal.Parse(json[0].unprice),
+                                step_price = decimal.Parse(json[0].unprice),
                                 good_qty = decimal.Parse(json[0].report_dvalue),
                                 ng_qty = this_ng_dvalue,
                                 laborbad_qty = this_laborbad_dvalue,
@@ -3592,7 +3598,7 @@
                             str = sql,
                             parm = new
                             {
-                                step_price=decimal.Parse(json[0].unprice),
+                                step_price = decimal.Parse(json[0].unprice),
                                 good_qty = decimal.Parse(json[0].report_dvalue),
                                 ng_qty = this_ng_dvalue,
                                 laborbad_qty = this_laborbad_dvalue,
@@ -4085,10 +4091,231 @@
         }
         #endregion
 
-        #region[閫氭槗T8鐢熶骇鍏ュ簱鎻愪氦]
+        #region[鐢熶骇鍏ュ簱鑾峰彇閮ㄩ棬淇℃伅]
+        public static ToMessage DeptSelectData()
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                sql = @"select * from h_v_TFDepent";
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[閫氭槗T8鐢熶骇鍏ュ簱鎻愪氦-浠g爜鐗圿
         public static ToMessage ProductInHouseOrderSeave(InReptModel data, User us)
         {
             var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                list.Clear();
+                //鏌ヨ鍏ュ簱鍗曟槸鍚﹀凡瀛樺湪
+                sql = @"select *  from srv_lnk_TFT8.erp_t8_XKDCS.[dbo].[scm_in1] where sheet_no=@hbillno";
+                dynamicParams.Add("@hbillno", data.TableData[0].Rows[0]["hbillno"].ToString());
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data0.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鍏ュ簱鍗曞彿宸插瓨鍦�!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鍐欏叆鍏ュ簱鍗曚富琛�(MES)
+                sql = @"insert into TK_WMS_Inwh_Main(docu_typecode,hbillno,hbdate,deptno,storehouse_code,status,remark,create_user,create_date)
+                        values(@docu_typecode,@hbillno,@hbdate,@deptno,@storehouse_code,@status,@remark,@create_user,@create_date)";
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        docu_typecode = "WI",
+                        hbillno = data.TableData[0].Rows[0]["hbillno"].ToString(),
+                        hbdate = data.TableData[0].Rows[0]["hbdate"].ToString(),
+                        deptno = data.TableData[0].Rows[0]["deptno"].ToString(),
+                        storehouse_code = data.TableData[0].Rows[0]["storehouse_code"].ToString(),
+                        status = data.TableData[0].Rows[0]["status"].ToString(),
+                        remark = data.TableData[0].Rows[0]["remark"].ToString(),
+                        create_user = data.TableData[0].Rows[0]["create_user"].ToString(),
+                        create_date = data.TableData[0].Rows[0]["create_date"].ToString()
+                    }
+                });
+                //鍐欏叆鍏ュ簱鍗曚富琛�(T8)
+                sql = @"insert into srv_lnk_TFT8.erp_t8_XKDCS.[dbo].[scm_in1](sheet_type,sheet_no,sheet_sta,sheet_date,dept_no,st_no,sheet_amt,check_sta,create_date,create_user,add_flag)
+                        values(@sheet_type,@sheet_no,@sheet_sta,@sheet_date,@dept_no,@st_no,@sheet_amt,@check_sta,@create_date,@create_user,@add_flag)";
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        sheet_type = "WI",
+                        sheet_no = data.TableData[0].Rows[0]["hbillno"].ToString(),
+                        sheet_sta = data.TableData[0].Rows[0]["status"].ToString(),
+                        sheet_date = data.TableData[0].Rows[0]["hbdate"].ToString(),
+                        dept_no = data.TableData[0].Rows[0]["deptno"].ToString(),
+                        st_no = data.TableData[0].Rows[0]["storehouse_code"].ToString(),
+                        sheet_amt = "0",
+                        check_sta = "0",
+                        create_date = data.TableData[0].Rows[0]["create_date"].ToString(),
+                        create_user = data.TableData[0].Rows[0]["create_user"].ToString(),
+                        add_flag = "1"
+                    }
+                });
+
+                for (int i = 0; i < data.TableData[1].Rows.Count; i++)
+                {
+                    if (data.TableData[1].Rows[i]["style"].ToString() == "B")
+                    {
+                        //鏉′欢婊¤冻鏃舵墽琛岀殑鎿嶄綔(鍥炲啓鎶ュ伐璁板綍涓昏〃鐨勫叆搴撴暟閲�)
+                        sql = @"update TK_Wrk_Record set inhouseqty=inhouseqty+@qty where inbarcode=@inbarcode";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                qty = data.TableData[1].Rows[i]["qty"].ToString(),
+                                inbarcode = data.TableData[1].Rows[i]["inbarcode"].ToString()
+                            }
+                        });
+                    }
+                    if (data.TableData[1].Rows[i]["style"].ToString() == "S")
+                    {
+                        //鏉′欢婊¤冻鏃舵墽琛岀殑鎿嶄綔(鍥炲啓澶栧崗鏀舵枡璁板綍涓昏〃鐨勫叆搴撴暟閲�)
+                        sql = @"update TK_Wrk_OutRecord set inhouseqty=inhouseqty+@qty where inbarcode=@inbarcode";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                qty = data.TableData[1].Rows[i]["qty"].ToString(),
+                                inbarcode = data.TableData[1].Rows[i]["inbarcode"].ToString()
+                            }
+                        });
+                    }
+                    //鍥炲啓宸ュ崟宸ュ簭琛ㄦ湯閬撳伐搴忓凡鍏ュ簱鏁伴噺
+                    sql = @"update TK_Wrk_Step set inhouseqty=inhouseqty+@qty where wo_code=@wocode and step_code=@stepcode and isend='Y'";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            qty = data.TableData[1].Rows[i]["qty"].ToString(),
+                            wocode = data.TableData[1].Rows[i]["wocode"].ToString(),
+                            stepcode = data.TableData[1].Rows[i]["stepcode"].ToString()
+                        }
+                    });
+                    //鍐欏叆鍏ュ簱鍗曞瓙琛�(MES)
+                    sql = @"insert into TK_WMS_Inwh_Sub (hbillno,rownumber,inbarcode,mo_id,mo_no,wocode,partcode,unitcode,unit_rate,stockcode,qty,price,saleid,salecode,status,style)
+			               values(@hbillno,@rownumber,@inbarcode,@mo_id,@mo_no,@wocode,@partcode,@unitcode,@unit_rate,@stockcode,@qty,@price,@saleid,@salecode,@status,@style)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            hbillno = data.TableData[1].Rows[i]["hbillno"].ToString(),
+                            rownumber = data.TableData[1].Rows[i]["rownumber"].ToString(),
+                            inbarcode = data.TableData[1].Rows[i]["inbarcode"].ToString(),
+                            mo_id = data.TableData[1].Rows[i]["mo_id"].ToString(),
+                            mo_no = data.TableData[1].Rows[i]["mo_no"].ToString(),
+                            wocode = data.TableData[1].Rows[i]["wocode"].ToString(),
+                            partcode = data.TableData[1].Rows[i]["partcode"].ToString(),
+                            unitcode = data.TableData[1].Rows[i]["unitcode"].ToString(),
+                            unit_rate = data.TableData[1].Rows[i]["unit_rate"].ToString(),
+                            stockcode = data.TableData[1].Rows[i]["stockcode"].ToString(),
+                            qty = data.TableData[1].Rows[i]["qty"].ToString(),
+                            price = data.TableData[1].Rows[i]["price"].ToString(),
+                            saleid = data.TableData[1].Rows[i]["saleid"].ToString(),
+                            salecode = data.TableData[1].Rows[i]["salecode"].ToString(),
+                            status = data.TableData[1].Rows[i]["status"].ToString(),
+                            style = data.TableData[1].Rows[i]["style"].ToString()
+                        }
+                    });
+                    //鍐欏叆鍏ュ簱鍗曞瓙琛�(T8)
+                    sql = @"insert into srv_lnk_TFT8.erp_t8_XKDCS.[dbo].[scm_in2] (sheet_no,sheet_id,goods_no,unit_no,unit_rate,st_no,sheet_qty,mo_no,mo_id,sheet_pri,ord_no,ord_id,sheet_sta,add_flag)
+			               values(@sheet_no,@sheet_id,@goods_no,@unit_no,@unit_rate,@st_no,@sheet_qty,@mo_no,@mo_id,@sheet_pri,@ord_no,@ord_id,@sheet_sta,@add_flag)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            sheet_no = data.TableData[1].Rows[i]["hbillno"].ToString(),
+                            sheet_id = data.TableData[1].Rows[i]["rownumber"].ToString(),
+                            goods_no = data.TableData[1].Rows[i]["partcode"].ToString(),
+                            unit_no = data.TableData[1].Rows[i]["unitcode"].ToString(),
+                            unit_rate = "1",
+                            st_no = data.TableData[1].Rows[i]["stockcode"].ToString(),
+                            sheet_qty = data.TableData[1].Rows[i]["qty"].ToString(),
+                            mo_no = data.TableData[1].Rows[i]["mo_no"].ToString(),
+                            mo_id = data.TableData[1].Rows[i]["mo_id"].ToString(),
+                            sheet_pri = "1",
+                            ord_no = data.TableData[1].Rows[i]["salecode"].ToString(),
+                            ord_id = data.TableData[1].Rows[i]["saleid"].ToString(),
+                            sheet_sta = data.TableData[1].Rows[i]["status"].ToString(),
+                            add_flag = "1"
+                        }
+                    });
+                }
+                //鏇存柊鍏ュ簱鍗曟祦姘村彿
+                sql = @" update TCodeRules set value = @incbit, incbit = LEN(CAST(@incbit AS VARCHAR))  where menucode = @rightcode";
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        incbit = data.incbit,
+                        rightcode = data.rightcode
+                    }
+                });
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    //鍐欏叆鎿嶄綔璁板綍琛�
+                    LogHelper.DbOperateLog(us.usercode, "鍏ュ簱鍗曚繚瀛�", "鍏ュ簱鍗曞彿:" + data.TableData[0].Rows[0]["hbillno"].ToString(), us.usertype);
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[閫氭槗T8鐢熶骇鍏ュ簱鎻愪氦-瀛樺偍杩囩▼鐗�(閫傜敤鍚屼竴鍙版湇鍔″櫒锛屽悓涓�涓暟鎹簱)]
+        public static ToMessage ProductInHouseOrderSpSeave(InReptModel data, User us)
+        {
+            var sql = "";
             var dynamicParams = new DynamicParameters();
             try
             {

--
Gitblit v1.9.3