|  |  |  | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using Newtonsoft.Json; | 
|---|
|  |  |  | using Newtonsoft.Json.Linq; | 
|---|
|  |  |  | using System; | 
|---|
|  |  |  | using System.Collections.Generic; | 
|---|
|  |  |  | using System.Data; | 
|---|
|  |  |  | using System.Linq; | 
|---|
|  |  |  | 
|---|
|  |  |  | Int64 sCPMaterID = 0; | 
|---|
|  |  |  | string sCPMaterName = ""; | 
|---|
|  |  |  | private json objjson = new json(); | 
|---|
|  |  |  | SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //扫描成品条码 | 
|---|
|  |  |  | [Route("Assembly/Get_Assembly_CPBarCode_Json")] | 
|---|
|  |  |  | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region  产线组装追溯单 | 
|---|
|  |  |  | [Route("Sc_AssemblyBill/HBardCodeList")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public object HBardCodeList(string HBarCode, string user,string HICMOBillNo) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //查看权限 | 
|---|
|  |  |  | if (!DBUtility.ClsPub.Security_Log("Sc_AssemblyBill_Edit", 1, false, user)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "无保存权限!"; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (HICMOBillNo == "" || HICMOBillNo == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ds = oCN.RunProcReturn(@"select  bard.HSourceInterID,bard.HSourceEntryID,b.FMUSTQTY,a.FMOBILLNO,FERPCLSID,t5.FNAME HMaterName_z,t5.FSPECIFICATION HMaterModel_z ,m.HItemID,b.FMATERIALID,m.HName HMaterName,m.HNumber HMaterNumber,m.HModel HMaterModel,m1.HItemID HMaterID | 
|---|
|  |  |  | from AIS20210811135644..T_PRD_PPBOM a | 
|---|
|  |  |  | join AIS20210811135644..T_PRD_PPBOMENTRY b on a.FID = b.FID | 
|---|
|  |  |  | join AIS20210811135644..T_BD_MATERIAL t3 on a.FMATERIALID = t3.FMATERIALID | 
|---|
|  |  |  | join AIS20210811135644..T_BD_MATERIAL t31 on b.FMATERIALID = t31.FMATERIALID | 
|---|
|  |  |  | join AIS20210811135644..T_BD_MATERIAL_L t5 on b.FMATERIALID = t5.FMATERIALID and FLOCALEID=2052 | 
|---|
|  |  |  | join AIS20210811135644..t_BD_MaterialBase t4 on t5.FMATERIALID = t4.FMATERIALID | 
|---|
|  |  |  | join Gy_BarCodeBill bard on a.FMOBILLNO=bard.HSourceBillNo | 
|---|
|  |  |  | join Gy_Material m on bard.HMaterID=m.HItemID and t3.FNUMBER=m.HNumber | 
|---|
|  |  |  | join Gy_Material m1 on t31.FNUMBER=m1.HNumber and t31.FUSEORGID=m1.HUSEORGID | 
|---|
|  |  |  | where bard.HBarCode='" + HBarCode + "'  AND t4.FERPCLSID in ('1', '3')", "Gy_BarCodeBill"); | 
|---|
|  |  |  | if (ds.Tables[0].Rows.Count == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "请先扫产品条码!"; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objjson.code = "1"; | 
|---|
|  |  |  | objjson.count = 1; | 
|---|
|  |  |  | objjson.Message = ""; | 
|---|
|  |  |  | objjson.data = ds.Tables[0]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ds = oCN.RunProcReturn(@"select  a.FMOBILLNO,FERPCLSID ,t4.FMATERIALID, a.FMATERIALID from AIS20210811135644..T_PRD_PPBOM a | 
|---|
|  |  |  | join AIS20210811135644..T_PRD_PPBOMENTRY b on a.FID=b.FID | 
|---|
|  |  |  | JOIN AIS20210811135644..T_BD_MATERIAL T6 ON b.FMATERIALID = T6.FMATERIALID | 
|---|
|  |  |  | join AIS20210811135644..t_BD_MaterialBase t4 on b.FMATERIALID = t4.FMATERIALID | 
|---|
|  |  |  | left join Gy_Material m on t6.FNUMBER=m.HNumber and m.HUSEORGID=a.FPRDORGID | 
|---|
|  |  |  | where a.FMOBILLNO ='" + HICMOBillNo + "' and m.HItemID=(select HMaterID from Gy_BarCodeBill where HBarCode = '" + HBarCode + "' )", "ds2"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (ds.Tables[0].Rows.Count == 0) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "配件不属于该生产订单!"; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ds = oCN.RunProcReturn(@"select  HQty,HSourceBillNo,m.HName HMaterName,m.HItemID HMaterID from Gy_BarCodeBill bard | 
|---|
|  |  |  | join Gy_Material m on bard.HMaterID=m.HItemID | 
|---|
|  |  |  | where  HBarCode='" + HBarCode + "'", "ds3"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objjson.code = "1"; | 
|---|
|  |  |  | objjson.count = 1; | 
|---|
|  |  |  | objjson.Message = ""; | 
|---|
|  |  |  | objjson.data = ds.Tables[0]; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "没有返回任何记录!" + e.ToString(); | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 产线组装追溯单保存 | 
|---|
|  |  |  | [Route("Sc_AssemblyBill/AddBill")] | 
|---|
|  |  |  | [HttpPost] | 
|---|
|  |  |  | public object AddBill([FromBody] JObject sMainSub) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var _value = sMainSub["sMainSub"].ToString(); | 
|---|
|  |  |  | string msg1 = _value.ToString(); | 
|---|
|  |  |  | oCN.BeginTran(); | 
|---|
|  |  |  | //保存主表 | 
|---|
|  |  |  | objjson = AddBillMain(msg1); | 
|---|
|  |  |  | if (objjson.code == "0") | 
|---|
|  |  |  | { | 
|---|
|  |  |  | oCN.RollBack(); | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = objjson.Message; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | oCN.Commit(); | 
|---|
|  |  |  | objjson.code = "1"; | 
|---|
|  |  |  | objjson.count = 1; | 
|---|
|  |  |  | objjson.Message = "新增单据成功!"; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Models.ClsSc_AssemblyBillMain omodel = new Models.ClsSc_AssemblyBillMain();//基本资料 | 
|---|
|  |  |  | public json AddBillMain(string msg1) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); | 
|---|
|  |  |  | string msg2 = sArray[0].ToString(); | 
|---|
|  |  |  | string msg3 = sArray[1].ToString(); | 
|---|
|  |  |  | int OperationType = int.Parse(sArray[2].ToString());//类型 | 
|---|
|  |  |  | string user = sArray[3].ToString();//用户名 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //判断是否有编辑权限 | 
|---|
|  |  |  | if (!DBUtility.ClsPub.Security_Log("Sc_AssemblyBill_Edit", 1, false, user)) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "无权限编辑!"; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | omodel = Newtonsoft.Json.JsonConvert.DeserializeObject<ClsSc_AssemblyBillMain>(msg2); | 
|---|
|  |  |  | //JSON序列化转换字典集合 | 
|---|
|  |  |  | List<Dictionary<string, string>> list = new List<Dictionary<string, string>>(); | 
|---|
|  |  |  | List<object> jb = JsonConvert.DeserializeObject<List<object>>(msg3); | 
|---|
|  |  |  | foreach (JObject item in jb) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dictionary<string, string> dic = new Dictionary<string, string>(); | 
|---|
|  |  |  | foreach (var itm in item.Properties()) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | dic.Add(itm.Name, itm.Value.ToString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | list.Add(dic); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (OperationType == 1)//新增临时表源单表 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | for (int i = 0; i < list.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //临时配件表 | 
|---|
|  |  |  | oCN.RunProc("Insert Into Sc_AssemblyBill_BindSourceTemp   " + | 
|---|
|  |  |  | "(HInterID,HEntryID,HBillNo_bak,HSourceBillNo,HSourceInterID,HMaterID" + | 
|---|
|  |  |  | ",HQtyMust,HProdOrgID,HSourceEntryID,HSourceBillType,HAuxPropID,HProcID,HQty,HBatchNo,HMTONo,HPlanMode) " + | 
|---|
|  |  |  | " values(" + omodel.HInterID.ToString() + "," + (i+1) + ",'" + omodel.HBillNo.ToString() + "','" + omodel.HICMOBillNo.ToString() + "',0," + list[i]["HMaterID"].ToString() + | 
|---|
|  |  |  | ",'" + list[i]["HQty"].ToString() + "','" + list[i]["HPRDORGID"].ToString() + "',0,'',0,0,0,'','','') "); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (OperationType == 2)//新增配件扫码表 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | for (int i = 0; i < list.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (list[i]["HBarCode"].ToString() != "") | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ds = oCN.RunProcReturn("select * from Sc_AssemblyBill_BindBarCodeTemp where HSourceBillNo='" + omodel.HICMOBillNo.ToString() + "' and HBarCode='" + list[i]["HBarCode"].ToString() + "' and HBillNo_bak='" + omodel.HBillNo.ToString() + "'", "Sc_AssemblyBill_BindBarCodeTemp"); | 
|---|
|  |  |  | if (ds.Tables[0].Rows.Count > 0) { | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message ="该条码已扫入,无须再扫!"; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //临时记录表 | 
|---|
|  |  |  | oCN.RunProc("Insert Into Sc_AssemblyBill_BindBarCodeTemp   " + | 
|---|
|  |  |  | "(HInterID,HEntryID,HBillNo_bak,HSourceBillNo,HSourceInterID,HMaterID" + | 
|---|
|  |  |  | ",HBarCode,HQty,HProdOrgID,HSourceEntryID,HSourceBillType,HAuxPropID,HProcID,HBatchNo,HMTONo,HPlanMode) " + | 
|---|
|  |  |  | " values(" + omodel.HInterID.ToString() + "," + (i + 1) + ",'" + omodel.HBillNo.ToString() + "','" + omodel.HICMOBillNo.ToString() + "',0," + list[i]["HMaterID"].ToString() + | 
|---|
|  |  |  | ",'" + list[i]["HBarCode"].ToString() + "','" + list[i]["HEQty"].ToString() + "','" + list[i]["HPRDORGID"].ToString() + "',0,'',0,0,'','','') "); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else if (OperationType == 3)//新增主子表 | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //保存生产组装单主表 | 
|---|
|  |  |  | string sql = $@"Insert Into Sc_AssemblyBillMain(HYear,HPeriod,HBillType,HBillSubType,HInterID,HDate | 
|---|
|  |  |  | ,HBillNo,HBillStatus,HMaker,HMakeDate,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillNo | 
|---|
|  |  |  | ,HICMOInterID,HICMOBillNo,HBarCode_P,HMaterID,HUnitID,HAssemblyStatus,HProdOrgID) | 
|---|
|  |  |  | values('{DateTime.Now.Year}','{DateTime.Now.Month}','3727','3727',{omodel.HInterID.ToString()},getdate() | 
|---|
|  |  |  | ,'{omodel.HBillNo.ToString()}','1','{user}',getdate(),{omodel.HICMOInterID.ToString()},{omodel.HICMOEntryID.ToString()},'{omodel.HICMOBillNo.ToString()}' | 
|---|
|  |  |  | ,{omodel.HICMOInterID.ToString()},'{omodel.HICMOBillNo.ToString()}','{omodel.HBarCode_P.ToString()}',{omodel.HMaterID},0,'{omodel.HAssemblyStatus}',{omodel.HProdOrgID})"; | 
|---|
|  |  |  | oCN.RunProc(sql); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ds = oCN.RunProcReturn("select * from Sc_AssemblyBill_BindBarCodeTemp where HSourceBillNo='" + omodel.HICMOBillNo.ToString() + "' and HInterID='" + omodel.HInterID + "' and HBillNo_bak='" + omodel.HBillNo.ToString() + "'", "Sc_AssemblyBill_BindBarCodeTemp"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < ds.Tables[0].Rows.Count; i++) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | int HMaterID = int.Parse(ds.Tables[0].Rows[i]["HMaterID"].ToString()); | 
|---|
|  |  |  | double HQty = double.Parse(ds.Tables[0].Rows[i]["HQty"].ToString()); | 
|---|
|  |  |  | string HBarCode = ds.Tables[0].Rows[i]["HBarCode"].ToString(); | 
|---|
|  |  |  | string sq2 = $@"Insert Into Sc_AssemblyBillSub(HInterID,HBillNo_bak,HEntryID,HSourceInterID,HSourceEntryID,HSourceBillNo | 
|---|
|  |  |  | ,HSourceBillType,HMaterID,HSourceID,HEquipID,HUnitID,HQty | 
|---|
|  |  |  | ,HGroupID,HWorkerID,HScanDate,HBarCode,HBarCode_P,HSNNumber) | 
|---|
|  |  |  | values({omodel.HInterID},'{omodel.HBillNo}',{(i + 1)},0,0,'' | 
|---|
|  |  |  | ,'',{HMaterID},0,0,0,{HQty} | 
|---|
|  |  |  | ,0,0,getdate(),'{HBarCode}','{omodel.HBarCode_P}','') "; | 
|---|
|  |  |  | oCN.RunProc(sq2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objjson.code = "1"; | 
|---|
|  |  |  | objjson.count = 1; | 
|---|
|  |  |  | objjson.Message = null; | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "Exception!" + e.ToString(); | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | #region 产线组装追溯单 查询 | 
|---|
|  |  |  | [Route("Sc_AssemblyBill/Sc_AssemblyBillAddList")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public object Sc_AssemblyBillAddList(string sWhere) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | try | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ds = oCN.RunProcReturn(@"select * from  h_v_Sc_AssemblyBillList where 1=1  " + sWhere, "h_v_Sc_AssemblyBillList"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objjson.code = "1"; | 
|---|
|  |  |  | objjson.count = 1; | 
|---|
|  |  |  | objjson.Message = ""; | 
|---|
|  |  |  | objjson.data = ds.Tables[0]; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception e) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | objjson.code = "0"; | 
|---|
|  |  |  | objjson.count = 0; | 
|---|
|  |  |  | objjson.Message = "没有返回任何记录!" + e.ToString(); | 
|---|
|  |  |  | objjson.data = null; | 
|---|
|  |  |  | return objjson; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | #endregion | 
|---|
|  |  |  |  | 
|---|
|  |  |  | [Route("Assembly/Delete_Json")] | 
|---|
|  |  |  | [HttpGet] | 
|---|
|  |  |  | public object Delete_Json(long sInterID,string sBarCode) | 
|---|