using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Web.Http;
|
using WebAPI;
|
using WebAPI.Models;
|
|
namespace WebAPI.Controllers
|
{
|
public class Sc_AssemblyBillController : ApiController
|
{
|
public Int64 HInterID; //本单ID
|
public string HBillNo; //本单单号
|
public string HBillType = "3727"; //单据类型
|
public WebServer webserver =new WebServer();
|
public DataSet ds =new DataSet();
|
string sBillNo = "";
|
Int64 sInterID = 0;
|
string sICMOBillNo = "";
|
string sCPBarCode = "";
|
Int64 sCPMaterID = 0;
|
string sCPMaterName = "";
|
private json objjson = new json();
|
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
|
|
//扫描成品条码
|
[Route("Assembly/Get_Assembly_CPBarCode_Json")]
|
[HttpGet]
|
public object Get_Assembly_CPBarCode_Json(string sBarCode,string sBillType)
|
{
|
try
|
{
|
DataTable dt_Main = new DataTable("Json");
|
dt_Main.Columns.Add("sICMOBillNo", typeof(string));
|
dt_Main.Columns.Add("sCPBarCode", typeof(string));
|
dt_Main.Columns.Add("sCPMaterID", typeof(Int64));
|
dt_Main.Columns.Add("sCPMaterName", typeof(string));
|
dt_Main.Columns.Add("sInterID", typeof(Int64));
|
dt_Main.Columns.Add("sBillNo", typeof(string));
|
|
|
|
if (webserver.Get_Assembly_CPBarCode(sBarCode, sBillType, ref sICMOBillNo, ref sCPBarCode, ref sCPMaterID, ref sCPMaterName, ref sBillNo, ref sInterID, ref DBUtility.ClsPub.sErrInfo))
|
{
|
//---------创建新行------------------------
|
DataRow dr_main = dt_Main.NewRow();//创建新行
|
dt_Main.Rows.Add(dr_main);//将新行加入到表中
|
dr_main["sICMOBillNo"] = DBUtility.ClsPub.isStrNull(sICMOBillNo);
|
dr_main["sCPBarCode"] = DBUtility.ClsPub.isStrNull(sCPBarCode);
|
dr_main["sCPMaterID"] = DBUtility.ClsPub.isLong(sCPMaterID);
|
dr_main["sCPMaterName"] = DBUtility.ClsPub.isStrNull(sCPMaterName);
|
dr_main["sInterID"] = DBUtility.ClsPub.isLong(sInterID);
|
dr_main["sBillNo"] = DBUtility.ClsPub.isStrNull(sBillNo);
|
|
objjson.code = "0";
|
objjson.count = 1;
|
objjson.Message = "获取成功";
|
objjson.data = dt_Main;
|
return objjson;
|
}
|
else
|
{
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
|
objjson.data = null;
|
return objjson;
|
}
|
}
|
catch (Exception e)
|
{
|
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "获取失败" + e.ToString();
|
objjson.data = null;
|
return objjson;
|
}
|
|
}
|
//扫描配件条码
|
[Route("Assembly/Get_Assembly_PJBarCode_Json")]
|
[HttpGet]
|
public object Get_Assembly_PJBarCode_Json(string sPJCode, string sCPCode, long sInterID, string sBillNo, string sMaker, long HWorkerID, string HSNNumber)
|
{
|
try
|
{
|
DataTable dt_Main = new DataTable("Json");
|
dt_Main.Columns.Add("sPJCode", typeof(string));
|
dt_Main.Columns.Add("sCPCode", typeof(string));
|
dt_Main.Columns.Add("sInterID", typeof(Int64));
|
dt_Main.Columns.Add("sBillNo", typeof(string));
|
dt_Main.Columns.Add("sMaker", typeof(string));
|
dt_Main.Columns.Add("HWorkerID", typeof(Int64));
|
dt_Main.Columns.Add("HSNNumber", typeof(string));
|
|
if (webserver.Get_Assembly_PJBarCode(sPJCode, sCPCode, sInterID, sBillNo, sMaker, HWorkerID, HSNNumber, ref DBUtility.ClsPub.sErrInfo))
|
{
|
//---------创建新行------------------------
|
DataRow dr_main = dt_Main.NewRow();//创建新行
|
dt_Main.Rows.Add(dr_main);//将新行加入到表中
|
dr_main["sPJCode"] = DBUtility.ClsPub.isStrNull(sPJCode);
|
dr_main["sCPCode"] = DBUtility.ClsPub.isStrNull(sCPCode);
|
dr_main["sInterID"] = DBUtility.ClsPub.isLong(sInterID);
|
dr_main["sBillNo"] = DBUtility.ClsPub.isStrNull(sBillNo);
|
dr_main["sMaker"] = DBUtility.ClsPub.isStrNull(sMaker);
|
dr_main["HWorkerID"] = DBUtility.ClsPub.isLong(HWorkerID);
|
dr_main["HSNNumber"] = DBUtility.ClsPub.isStrNull(HSNNumber);
|
|
objjson.code = "0";
|
objjson.count = 1;
|
objjson.Message = "获取成功";
|
objjson.data = dt_Main;
|
return objjson;
|
}
|
else
|
{
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
|
objjson.data = null;
|
return objjson;
|
}
|
}
|
catch (Exception e)
|
{
|
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "获取失败" + e.ToString();
|
objjson.data = null;
|
return objjson;
|
}
|
|
}
|
|
[Route("Assembly/DisBillEntryList_Mate_Webs_Json")]
|
[HttpGet]
|
public object DisBillEntryList_Mate_Webs_Json(long HInterID, string sBillType, string sWhere)
|
{
|
try
|
{
|
ds = webserver.GetSc_AssemblyBill(HInterID, sBillType, sWhere);
|
if (ds == null || ds.Tables[0].Rows.Count <= 0)
|
{
|
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "没有返回任何记录!";
|
objjson.data = null;
|
return objjson;
|
//DBUtility.ClsPub.MessageBeep((int)DBUtility.ClsPub.BeepType.Warning);
|
}
|
else
|
{
|
objjson.code = "0";
|
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;
|
}
|
}
|
|
|
#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)
|
{
|
string sErrMsg=string.Empty;
|
try
|
{
|
if (webserver.set_DelSc_AssemblyBill(sInterID, sBarCode,ref sErrMsg))
|
{
|
objjson.code = "0";
|
objjson.count = 1;
|
objjson.Message = "删除成功!";
|
objjson.data = null;
|
return objjson;
|
}
|
else
|
{
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "删除失败!";
|
objjson.data = null;
|
return objjson;
|
}
|
}
|
catch (Exception)
|
{
|
|
objjson.code = "0";
|
objjson.count = 0;
|
objjson.Message = "删除失败!";
|
objjson.data = null;
|
return objjson;
|
}
|
|
}
|
|
}
|
|
|
}
|