yl
2024-10-30 65a9633ebcf5cf4c0871d1c857a743ec7694c157
VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -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";
@@ -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生产入库提交-代码版]
        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
            {