yl
2023-02-07 5ac69a2a0e5a0f1433b4497bc5273bdae656221c
VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
@@ -5,6 +5,7 @@
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using VueWebApi.Models;
using VueWebApi.Tools;
namespace VueWebApi.DLL.DAL
@@ -69,14 +70,15 @@
            try
            {
                //根据采购订单号查询物料信息,供应商信息
                sql = @"select B.materiel_code as partcode,M.partname,M.partspec,M.is_batchno,
                        B.quantity,B.customercode,C.name as customername,U.code as uomcode,U.name as uomname,
                        A.ordercode,B.countarrivalquantity
                sql = @"select B.rownumber, B.materiel_code as partcode,M.partname,M.partspec,M.is_batchno,
                        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
                        inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
                        left  join TMateriel_Info M on B.materiel_code=M.partcode
                        left  join TUom U on M.uom_code=U.code
                        left  join TCustomer C on B.customercode=C.code
                        left  join TOrganization T on A.departmentcode=T.org_code
                        where A.ordercode=@purchordercode";
                dynamicParams.Add("@purchordercode", purchordercode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
@@ -111,5 +113,159 @@
            return mes;
        }
        #endregion
        #region[采购到货:提交]
        public static ToMessage MesAppPurchOrderSave(string purordercode, string orderstaus, string username, List<AppPurchOrderSave> json)
        {
            var sql = "";
            string djwo = "", numvalue = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                mes = SeachEncode.EncodingSeach("2060");  //APP端采购到货生成单号
                if (mes.code == "300")
                {
                    return mes;
                }
                else
                {
                    List<string> wo = (List<string>)mes.data;
                    djwo = wo[0].ToString(); //获取单号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                if (json == null || json.Count <= 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "物料信息不能为空!";
                    mes.data = null;
                    return mes;
                }
                //Lambda表达式过滤获取预计到货日期、部门、供应商
                string hacceptdate = json.Select(p => p.hacceptdate).ToList().Distinct().ToString(); //预计到货日期
                string dpartment = json.Select(p => p.hdepartmentcode).ToList().Distinct().ToString(); //部门
                string customercode = json.Select(p => p.hcustomercode).ToList().Distinct().ToString(); //供应商
                //写入采购到货单主表
                sql = @"insert into T_PurchaseArrivalOrder(hbillno,hdate,hacceptdate,hbillstaus,hdepartmentcode,hcustomercode,hsourcebillno,lm_user,lm_date)
                        values(@hbillno,@hdate,@hacceptdate,@hbillstaus,@hdepartmentcode,@hcustomercode,@hsourcebillno,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        hbillno = djwo,
                        hdate = DateTime.Now.ToString(),
                        hacceptdate = Convert.ToDateTime(hacceptdate),
                        hbillstaus = orderstaus,
                        hdepartmentcode = dpartment,
                        hcustomercode = customercode,
                        hsourcebillno = purordercode,
                        lm_user = username,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //循环获取物信息
                for (int i = 0; i < json.Count; i++)
                {
                    //写入采购到货单子表
                    sql = @"insert into T_PurchaseArrivalOrder_sub(hbillno,hpartcode,hplanqty,hqty,hacceptdate,hischeck,hbatchno)
                        values(@hbillno,@hpartcode,@hplanqty,@hqty,@hacceptdate,@hischeck,@hbatchno)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            hbillno = djwo,
                            hpartcode = json[i].hpartcode,
                            hplanqty = decimal.Parse(json[i].hplanqty),
                            hqty = decimal.Parse(json[i].hqty),
                            hacceptdate = Convert.ToDateTime(hacceptdate),
                            hischeck = json[i].hischeck,
                            hbatchno = json[i].hbatchno
                        }
                    });
                    //循环获取物料生成标签信息
                    for (int j = 0; j < json[i].children.Count; j++)
                    {
                        //写入条码档案表
                        sql = @"insert into T_BarCodeBill(rightcode,hbillno,hbilltype,hbarcode,hbarcodestatus,hbarcodetype,hmaterialcode,hqty,hbatchno,hcustomercode,hdeptcode,hsourcebillno,hsourcebilltype,lm_user,lm_date)
                        values(@rightcode,hbillno,@hbilltype,@hbarcode,@hbarcodestatus,@hbarcodetype,@hmaterialcode,@hqty,@hbatchno,@hcustomercode,@hdeptcode,@hsourcebillno,@hsourcebilltype,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                rightcode = "2060",
                                hbillno = djwo,
                                hbilltype = "1103", //采购到货单类型
                                hbarcode = json[i].children[j].labcode,
                                hbarcodestatus = "Y",
                                hbarcodetype = "P",
                                hmaterialcode = json[i].children[j].partnumber,
                                hqty = decimal.Parse(json[i].children[j].labqty),
                                hbatchno = json[i].hbatchno,
                                hcustomercode = customercode,
                                hdeptcode = dpartment,
                                hsourcebillno = purordercode,
                                hsourcebilltype = "1102",
                                lm_user = username,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    //更新采购订单子表:累计到货数量
                    sql = @"update T_PurchaseOrder_sub set countarrivalquantity=countarrivalquantity+@hqty where ordercode=@purordercode and materiel_code=@materiel_code and rownumber=@rownumber";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            purordercode = purordercode,
                            materiel_code = json[i].hpartcode,
                            rownumber=json[i].rownumber,
                            hqty=decimal.Parse(json[i].hqty)
                        }
                    });
                }
                //更新采购订单主表:订单状态
                sql = @"update T_PurchaseOrder set status=@status where ordercode=@purordercode";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        status = orderstaus,
                        ordercode = purordercode
                    }
                });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    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
    }
}