From c43a4dfbc7a80d6be6e9823cdd0e182898fc2562 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期四, 05 九月 2024 14:06:58 +0800
Subject: [PATCH] 1.生产报工根据工单、工序获取设备/外协供应商信息

---
 VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs |  183 ++++++++++++++++++++++++++++++++++-----------
 1 files changed, 139 insertions(+), 44 deletions(-)

diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 5478ff5..35dce96 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -626,7 +626,8 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.route_code,R.name as route_name,A.plan_qty,A.wkshp_code,C.torg_name as wkshp_name,
-                            A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources,A.isstep,A.clerkuser
+                            A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,
+                            A.data_sources,A.isstep,A.clerkuser,A.bom_id,M.version
                             from TK_Wrk_Man A
                             left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code and A.sbid=W.sbid
                             left join TMateriel_Info B on A.materiel_code=B.partcode
@@ -635,6 +636,7 @@
                             left join TUser U on A.lm_user=U.usercode 
                             left join TOrganization L on  C.parent_id=L.id
                             left join TFlw_Rout R on A.route_code=R.code
+                            left join TBom_Main M on A.bom_id=M.id
                             where A.is_delete<>'1' " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -867,6 +869,31 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鏂板缂栬緫鏃�,鏍规嵁浜у搧鑾峰彇Bom鐗╂枡娓呭崟]
+        public static ToMessage MesOrderAddUpdateBomVison(string partnumber)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @" select id,version  from TBom_Main where materiel_code=@partnumber and status='Y' order by version desc ";
+                dynamicParams.Add("@partnumber", partnumber);
+                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[MES宸ュ崟鏂板銆佺紪杈戞彁浜
         public static ToMessage AddUpdateMesOrder(string operType, WorkList json, User us)
         {
@@ -892,41 +919,24 @@
                         }
                         if (operType == "Add")
                         {
-                            //鍐欏叆宸ュ崟琛�
-                            sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
-                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
-                            list.Add(new
-                            {
-                                str = sql,
-                                parm = new
-                                {
-                                    wo_code = json.wocode,
-                                    wotype = json.wotype,
-                                    status = json.wostatus,
-                                    wkshp_code = json.wkshopcode,
-                                    plan_qty = json.woqty,
-                                    lm_user = us.usercode,
-                                    lm_date = DateTime.Now.ToString(),
-                                    materiel_code = json.partcode,
-                                    route_code = route_code,
-                                    sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
-                                    m_po = json.sourcewo,
-                                    saleOrderDeliveryDate = json.deliverydate,
-                                    plan_startdate = json.paystartdate,
-                                    plan_enddate = json.payenddate,
-                                    orderlev = "3",//浼樺厛绾э細鐗圭骇锛�1锛� 绱ф�ワ紙2锛� 姝e父锛�3锛�
-                                    isaps = "N", //鏄惁鎺掍骇,榛樿N  Y=鏄�   N=鍚�
-                                    data_sources = json.data_sources,
-                                    isstep = json.isstep  //鏄惁鍏宠仈宸ュ簭
-                                }
-                            });
                             // 鍋囪浣犲凡缁忔湁浜嗘彃鍏ヤ富琛ㄥ拰瀛愯〃鐨凷QL璇彞  
-                            string workSql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
-                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
+                            //鍐欏叆宸ュ崟琛�
+                            string workSql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep,bom_id)
+                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep,@bom_id)";
+                            //鍐欏叆宸ュ崟宸ュ簭琛�
                             string masterInsertSql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,route_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
                                 values(@wo_code,@seq,@step_code,@route_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date); SELECT CAST(SCOPE_IDENTITY() AS INT)";
+                            //鍐欏叆宸ュ崟宸ュ簭璁惧琛�
                             string detailInsertSql = @"insert into TK_Wrk_StepEqp(m_id,eqp_code,eqpprice) 
                             values(@m_id,@eqp_code,@eqpprice)";
+                            //鍐欏叆宸ュ崟鐢ㄦ枡琛�
+                            string workall = @"insert into TK_Wrk_Allo(wo_code,seq,materiel_code,qty,status,bom_id,stck_code,stopfeed,base_quantity,total_quantity,m_quantity,loss_quantity)                             
+                            select @wocode,A.seq,A.materiel_code,(convert(decimal(18, 0), @woqty)*A.Base_Quantity*(1+A.LOSS_QUANTITY/100))/C.quantity,
+                            'NEW',A.m_id,'','N',A.base_quantity,A.total_quantity,C.quantity,A.loss_quantity  
+                            from TBom_Deta A  
+                            left join  TBom_Main C on A.m_Id=C.id 
+                            left join TMateriel_Info B on A.materiel_code = B.partcode
+                            where A.m_id=@bom_id";
 
                             // 鎻掑叆宸ュ崟琛�
                             var workParam = new DynamicParameters();
@@ -948,6 +958,7 @@
                             workParam.Add("@isaps", "N");//鏄惁鎺掍骇,榛樿N  Y=鏄�   N=鍚�
                             workParam.Add("@data_sources", json.data_sources);
                             workParam.Add("@isstep", json.isstep);//鏄惁鍏宠仈宸ュ簭
+                            workParam.Add("@bom_id", string.IsNullOrEmpty(json.bomid) ? null : json.bomid);// 鐗╂枡璇峰崟Bomid
                             conn.Execute(workSql, workParam, transaction);
 
                             //鍐欏叆宸ュ崟宸ュ簭琛�
@@ -978,6 +989,15 @@
                                     detailParam.Add("@eqpprice", detail.unprice);
                                     conn.Execute(detailInsertSql, detailParam, transaction);
                                 }
+                            }
+                            //鍐欏叆宸ュ崟鐢ㄦ枡琛�(瀛愪欢)
+                            if (json.bomid != "" && json != null)
+                            {
+                                var workallParam = new DynamicParameters();
+                                workallParam.Add("@wocode", json.wocode);
+                                workallParam.Add("@woqty", json.woqty);
+                                workallParam.Add("@bom_id", json.bomid);
+                                conn.Execute(workall, workallParam, transaction);
                             }
 
                             // 鎵�鏈夋彃鍏ユ垚鍔燂紝鎻愪氦浜嬪姟  
@@ -995,18 +1015,35 @@
                             sql = @"select *  from TK_Wrk_Step where wo_code=@wo_code";
                             dynamicParams.Add("@wo_code", json.wocode);
                             var data = DapperHelper.selectdata(sql, dynamicParams);
-                           
+
                             // 鍋囪浣犲凡缁忔湁浜嗘彃鍏ヤ富琛ㄥ拰瀛愯〃鐨凷QL璇彞  
+                            //淇敼宸ュ崟琛�
                             string workSql = @"update TK_Wrk_Man set wotype=@wotype,wkshp_code=@wkshp_code,plan_qty=@plan_qty,lm_user=@lm_user,lm_date=@lm_date,
-                            materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
+                            materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep,bom_id=@bom_id
                             where wo_code=@wo_code";
+                            //鍒犻櫎宸ュ崟宸ュ簭璁惧琛�
                             string deleteWrkStepEqp = @"delete TK_Wrk_StepEqp where m_id=@m_id";
+                            //鍒犻櫎宸ュ崟宸ュ簭琛�
                             string deleteWrkStep = @"delete TK_Wrk_Step where wo_code=@wo_code";
+                            //鍒犻櫎宸ュ崟鐢ㄦ枡琛�
+                            string deleteWrkALL = @"delete TK_Wrk_Allo where wo_code=@wo_code";
+                            //鍐欏叆宸ュ崟宸ュ簭琛�
                             string masterInsertSql = @"insert into TK_Wrk_Step(wo_code,seq,step_code,route_code,stepprice,plan_qty,status,isbott,isend,lm_user,lm_date)
                                 values(@wo_code,@seq,@step_code,@route_code,@stepprice,@plan_qty,@status,@isbott,@isend,@lm_user,@lm_date); SELECT CAST(SCOPE_IDENTITY() AS INT)";
+                            //鍐欏叆宸ュ崟宸ュ簭璁惧琛�
                             string detailInsertSql = @"insert into TK_Wrk_StepEqp(m_id,eqp_code,eqpprice) 
                             values(@m_id,@eqp_code,@eqpprice)";
+                            //鍐欏叆宸ュ崟鐢ㄦ枡琛�
+                            string InsertWorkALL = @"insert into TK_Wrk_Allo(wo_code,seq,materiel_code,qty,status,bom_id,stck_code,stopfeed,base_quantity,total_quantity,m_quantity,loss_quantity)                             
+                            select @wocode,A.seq,A.materiel_code,(convert(decimal(18, 0), @woqty)*A.Base_Quantity*(1+A.LOSS_QUANTITY/100))/C.quantity,
+                            'NEW',A.m_id,'','N',A.base_quantity,A.total_quantity,C.quantity,A.loss_quantity  
+                            from TBom_Deta A  
+                            left join  TBom_Main C on A.m_Id=C.id 
+                            left join TMateriel_Info B on A.materiel_code = B.partcode
+                            where A.m_id=@bom_id";
+                            //淇敼鐢熶骇璁㈠崟琛ㄧ姸鎬併�佸凡涓嬭揪鏁伴噺
                             string EwoStatusSql = @"update TKimp_Ewo set status=@status,relse_qty=@relse_qty where id=@sourceid and wo=@sourcewo";
+
 
                             // 淇敼宸ュ崟琛�
                             var workParam = new DynamicParameters();
@@ -1024,6 +1061,7 @@
                             workParam.Add("@plan_startdate", json.paystartdate);
                             workParam.Add("@plan_enddate", json.payenddate);
                             workParam.Add("@isstep", json.isstep);//鏄惁鍏宠仈宸ュ簭
+                            workParam.Add("@bom_id", string.IsNullOrEmpty(json.bomid) ? null : json.bomid);//鐗╂枡娓呭崟BOMid
                             conn.Execute(workSql, workParam, transaction);
 
                             //鍒犻櫎宸ュ崟宸ュ簭璁惧琛�
@@ -1039,6 +1077,11 @@
                             var workStepParam = new DynamicParameters();
                             workStepParam.Add("@wo_code", json.wocode);
                             conn.Execute(deleteWrkStep, workStepParam, transaction);
+
+                            //鍒犻櫎宸ュ崟鐢ㄦ枡琛�
+                            var deleteWrkALLParam = new DynamicParameters();
+                            deleteWrkALLParam.Add("@wo_code", json.wocode);
+                            conn.Execute(deleteWrkALL, deleteWrkALLParam, transaction);
 
                             //鍐欏叆宸ュ崟宸ュ簭琛�
                             for (int i = 0; i < json.WorkListSub.Count; i++)
@@ -1068,6 +1111,15 @@
                                     detailParam.Add("@eqpprice", detail.unprice);
                                     conn.Execute(detailInsertSql, detailParam, transaction);
                                 }
+                            }
+                            //鍐欏叆宸ュ崟鐢ㄦ枡琛�
+                            if (json.bomid != "" && json.bomid != null)
+                            {
+                                var InsertWorkALLParam = new DynamicParameters();
+                                InsertWorkALLParam.Add("@wocode", json.wocode);
+                                InsertWorkALLParam.Add("@woqty", json.woqty);
+                                InsertWorkALLParam.Add("@bom_id", json.bomid);
+                                conn.Execute(InsertWorkALL, InsertWorkALLParam, transaction);
                             }
                             //鍒ゆ柇婧愬ご鍗曟嵁鏄惁鏉ユ簮ERP
                             if (json.data_sources == "ERP")
@@ -1176,8 +1228,8 @@
                     list.Add(new { str = sql, parm = new { wocode = wocode } });
 
                     //鍒犻櫎鍔犲伐鍗曠敤鏂欒〃(瀛愪欢)
-                    //sql = @"delete TK_Wrk_Allo  where wo_code=@wocode";
-                    //list.Add(new { str = sql, parm = new { wocode = wocode } });
+                    sql = @"delete TK_Wrk_Allo  where wo_code=@wocode";
+                    list.Add(new { str = sql, parm = new { wocode = wocode } });
 
                     //鍒犻櫎宸ュ崟琛�
                     sql = @"delete TK_Wrk_Man   where wo_code=@wocode";
@@ -2085,6 +2137,51 @@
         }
         #endregion
 
+        #region [鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃惰幏鍙栬澶�/澶栧崗渚涘簲鍟嗘暟鎹繑鍥炴帴鍙
+        public static ToMessage MesOrderStepDeviceCusstomer(string operType, string wocode, string stepcode, User us)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (operType == "ZZ")
+                {
+                    sql = @"select E.eqp_code as code,D.name,E.eqpprice   from TK_Wrk_Step S
+                            inner join TK_Wrk_StepEqp E on S.id=E.m_id
+                            left  join TEqpInfo D on E.eqp_code=D.code
+                            where S.wo_code=@wocode and S.step_code=@stepcode and D.enable='Y'";
+                    dynamicParams.Add("@wocode", wocode);
+                    dynamicParams.Add("@stepcode", stepcode);
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    mes.code = "200";
+                    mes.message = "鏌ヨ鎴愬姛!";
+                    mes.data = data;
+                }
+                if (operType == "WX")
+                {
+                    sql = @"select E.eqp_code as code,C.name,E.eqpprice   from TK_Wrk_Step S
+                            inner join TK_Wrk_StepEqp E on S.id=E.m_id
+                            inner  join TCustomer C on E.eqp_code=C.code
+                            where S.wo_code=@wocode and S.step_code=@stepcode ";
+                    dynamicParams.Add("@wocode", wocode);
+                    dynamicParams.Add("@stepcode", stepcode);
+                    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[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
         public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode, string stepprice, string eqpcode, string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, List<ReportDefectList> defectobjs, string remarks, User us)
         {
@@ -2260,8 +2357,6 @@
                         }
                     }
                 }
-
-
                 //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
                 sql = @"update TK_Wrk_Step set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode and step_code=@stepcode";
                 list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, reportqty = reportqty, ngqty = ngqty } });
@@ -2383,7 +2478,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦]
-        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, User us)
+        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode,string stepprice, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, User us)
         {
             var sql = "";
             string[] arra1 = new string[] { };
@@ -2471,9 +2566,9 @@
                     sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
                     var dt = DapperHelper.selecttable(sql);
                     //鍐欏叆澶栧崗璁板綍涓昏〃
-                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode) 
-                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
-                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,step_price,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode) 
+                                values(@mesordercode,@stepseq,@stepcode,@step_price,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode,step_price=stepprice, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
 
                     //鍐欏叆澶栧崗璁板綍瀛愯〃
                     sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date) 
@@ -2498,9 +2593,9 @@
                     sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
                     var dt = DapperHelper.selecttable(sql);
                     //鍐欏叆澶栧崗璁板綍涓昏〃
-                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode) 
-                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
-                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,step_price,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode) 
+                                values(@mesordercode,@stepseq,@stepcode,@step_price,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
 
                     //鍐欏叆澶栧崗璁板綍瀛愯〃
                     sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date) 

--
Gitblit v1.9.3