zzr99
2021-12-09 711d7d357f595956e38bba3a5488651fc7682ee6
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
1个文件已修改
5个文件已添加
1601 ■■■■■ 已修改文件
WebAPI/Controllers/博日自动扫码线/ScanlineAPIController.cs 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/生产管理/报工台工序/Sc_MaterToSourceStepBillController.cs 770 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/生产管理/报工台工序/Sc_QualityReportStepBillController.cs 690 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/ScanLineCode.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/jsonScanline.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/²©ÈÕ×Ô¶¯É¨ÂëÏß/ScanlineAPIController.cs
New file
@@ -0,0 +1,100 @@
using DBUtility;
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 System.Web.Script.Serialization;
using WebAPI.Models;
namespace WebAPI.Controllers.博日自动扫码线
{
    public class ScanlineAPIController : ApiController
    {
        private jsonScanline objJsonResult = new jsonScanline();
        public DataSet ds = new DataSet();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        #region ç”Ÿæˆç®±ç æŽ¥å£
        [Route("packagebarcode/create")]
        [HttpGet]
        public object create(int num)
        {
            try
            {
                objJsonResult.data = new List<barcode>();
                for (int i = 0; i < num; i++)
                {
                    barcode jsn = new barcode();
                    //string prefix = "ZM";
                    //string date = DateTime.Now.ToString("yyMMddhh");
                    //string custom = "12";
                    //int nm = i;
                    //string result = prefix + date + custom + nm.ToString().PadLeft(4, '0');
                    //条码前缀 = ç®±ç å‰ç¼€ + å¹´ + æœˆ + æ—¥
                    string sDate = DateTime.Now.ToString("yyyy-MM-dd");
                    string sYear = ClsPub.isDate(sDate).Year.ToString().Substring(2, 2);
                    string sPeriod = "0" + ClsPub.isDate(sDate).Month.ToString();
                    sPeriod = sPeriod.Substring(sPeriod.Length - 2, 2);
                    string sDay = "0" + ClsPub.isDate(sDate).Day.ToString();
                    sDay = sDay.Substring(sDay.Length - 2, 2);
                    string  sTMNumber ="ZX"+ sYear + sPeriod + sDay;
                    ds = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                    int LSH = ClsPub.isInt(ds.Tables[0].Rows[0][0])+1;  //流水号加1
                    string TM = sTMNumber + LSH;
                    jsn.packagebarcode = TM;
                    oCN.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                    objJsonResult.data.Add(jsn);
                }
                objJsonResult.status = 0;
                objJsonResult.msg = "查询数据成功!";
                objJsonResult.data =objJsonResult.data;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.status =-1;
                objJsonResult.msg = "生成箱条码失败!";
                objJsonResult.data =null;
                return objJsonResult;
            }
        }
        #endregion
        #region æŠ¥å·¥å¹³å°å¼€å·¥å•保存/编辑
        /// <summary>
        /// å¼€å·¥å•
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("packagebarcode/pack")]
        [HttpPost]
        public object pack([FromBody] JObject msg)
        {
            try
            {
                JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
                ScanLineCode list = js.Deserialize<ScanLineCode>(msg.ToString());    //将json数据转化为对象类型并赋值给list
                objJsonResult.status = 0;
                objJsonResult.msg = "success";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.status =-1;
                objJsonResult.msg = "success";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/Éú²ú¹ÜÀí/±¨¹¤Ì¨¹¤Ðò/Sc_MaterToSourceStepBillController.cs
New file
@@ -0,0 +1,770 @@
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
    //生产上料单Controller
    public class Sc_MaterToSourceStepBill : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DAL.ClsSc_MESMaterToSourceBill BillNew = new DAL.ClsSc_MESMaterToSourceBill();   //对应单据类
        public DAL.ClsSc_MESMaterToSourceBill BillOld = new DAL.ClsSc_MESMaterToSourceBill();   //对应单据类
        #region ä¸Šæ–™æ”¾é”™å•Web列表查询
        /// <summary>
        /// è¿”回生产上料单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Sc_MaterToSourceStepBill/list")]
        [HttpGet]
        public object list(string sWhere)
        {
            try
            {
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Sc_MaterToSourceBillMain " + sWhere, "h_v_Sc_MaterToSourceBillMain");
                }
                else
                {
                    string sql1 = "select * from h_v_Sc_MaterToSourceBillMain where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillMain");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有返回任何记录!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "查询数据成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region ä¸Šæ–™é˜²é”™å•编辑时获取表头数据
        [Route("Sc_MaterToSourceStepBill/Sc_MaterToSourceBillListCheckDetai")]
        [HttpGet]
        public ApiResult<DataSet> Sc_MaterToSourceBillListCheckDetai(string HID)
        {
            if (string.IsNullOrEmpty(HID))
                return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" };
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            var dataSet = oCN.RunProcReturn("select top 1 * from h_v_Sc_MaterToSourceBillMain  where hmainid= " + HID + " ", "h_v_Sc_MaterToSourceBillMain");
            if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
                return new ApiResult<DataSet> { code = -1, msg = "不存在上料防错单数据" };
            return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet };
        }
        #endregion
        #region ä¸Šæ–™é˜²é”™å•编辑时获取表体数据(配料记录、治具记录)
        [Route("Sc_MaterToSourceStepBill/Sc_MaterToSourceBillListProjectDetai")]
        [HttpGet]
        public object Sc_MaterToSourceBillListProjectDetai(string HInterID)
        {
            DataSet ds, ds1;
            List<object> list = new List<object>();
            string Swhere = "";
            try
            {
                if (HInterID != "" || HInterID != null)
                {
                    Swhere = " and hmainid='" + HInterID + "'";
                }
                else
                {
                    Swhere = HInterID;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                //获取配料记录编辑数据
                string sql = "select æ¡å½¢ç  HBarCode,HMaterID,物料代码 HNumber,物料名称 HName,规格型号 HModel,HUnitID,计量单位名称 HUnitName,数量 HQty   from h_v_Sc_MaterToSourceBillSub where 1 = 1 " + Swhere + "";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_MaterToSourceBillSub");
                //获取治具记录编辑数据
                //string sql1 = "select HMaterID, é…ä»¶ä»£ç  HMaterNumber,配件名称 HMaterName,规格型号 HMaterSpec,HUnitID,单位代码 HUnitNumber,单位名称 HUnitName,实际用量 HQty,标准用量 HQtyMust,HManagerID,负责人代码 HManagerNumber,负责人 HManagerName,表体备注 HRemark  from h_v_Sc_MouldMaintainBillList where 1 = 1 " + Swhere + "";
                //ds1 = oCN.RunProcReturn(sql1, "h_v_Sc_MouldMaintainBillList");
                list.Add(ds.Tables[0]);
                //list.Add(ds1.Tables[0]);
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取信息成功!";
                objJsonResult.list = list;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
            }
            return objJsonResult;
        }
        #endregion
        #region [上料防错单删除功能]
        /// <summary>
        /// å¼€å·¥å•删除功能
        /// </summary>
        /// <returns></returns>
        [Route("Sc_MaterToSourceStepBill/DeltetMaterToSourceBill")]
        [HttpGet]
        public object DeltetMaterToSourceBill(string HInterID, string UserName)
        {
            DBUtility.ClsPub.CurUserName = UserName;
            //编辑权限
            //if (!DBUtility.ClsPub.Security_Log("MES_MaterToSourceBill_Delete", 1, true, DBUtility.ClsPub.CurUserName))
            //{
            //    objJsonResult.code = "0";
            //    objJsonResult.count = 0;
            //    objJsonResult.Message = "无删除权限!";
            //    objJsonResult.data = null;
            //    return objJsonResult;
            //}
            Int64 lngBillKey = 0;
            lngBillKey = DBUtility.ClsPub.isLong(HInterID);
            if (lngBillKey == 0)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据ID为空!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill();
            if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
            {
                if (oBill.omodel.HBillStatus > 1)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据当前处于不能删除状态,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (oBill.omodel.HChecker != "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据已经审核,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                if (IsDete)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "单据未找到";
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region  æŠ¥å·¥å¹³å°ä¸Šæ–™é˜²é”™å•弹窗查找数据
        [Route("Sc_MaterToSourceStepBill/GetMESMaterToSourceFrom")]
        [HttpGet]
        public object GetMESMaterToSourceFrom(string HSourceInterID, string HSourceEntryID, string HSourceBillNo, string HSourceBillType)
        {
            try
            {
                //根据选择资源ID获取当前生产工单、责任人
                ds = oCN.RunProcReturn("exec h_p_JIT_GetInfoByICMOStatusInterID @HSourceInterID=" + HSourceInterID + ",@HSourceEntryID=" + HSourceEntryID + ",@HSourceBillNo='" + HSourceBillNo + "',@HSourceBillType='" + HSourceBillType + "'", "h_p_JIT_GetInfoByICMOStatusInterID");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "获取资源绑定数据成功!";
                    objJsonResult.data = ds;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "暂无资源绑定!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.Message.ToString();
                objJsonResult.data = null;
            }
            return objJsonResult;
        }
        #endregion
        #region æŠ¥å·¥å¹³å°ä¸Šæ–™é˜²é”™ä¸€é”®æ‰«ç æ–¹æ³•
        [Route("Sc_MaterToSourceStepBill/get_CheckTypeByBarCode_Json")]
        [HttpGet]
        public object get_CheckTypeByBarCode_Json(string HBarCode,string HSourceID,string HICMOInterID,string HICMOEntryID)
        {
            //根据递入的条码前三位,判断条码类型(生产资源、物料条码)
            ds = oCN.RunProcReturn(" select HSourceName,BarCodeType from Xt_BarCodeType where HSourceNumber= '" + HBarCode.Substring(0, 3) + "'", "Xt_BarCodeType");
            //无返回数据则为物料条码
            if (ds == null || ds.Tables[0].Rows.Count == 0)
            {
                //1.查询条形码在条码档案表中是否存在
                DataSet ds0 = oCN.RunProcReturn(" select HMaterID from Gy_BarCodeBill where HBarCode= '" + HBarCode + "'", "Gy_BarCodeBill");
                if (ds0 == null || ds0.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "条码档案中不存在此物料条码,条码无效!";
                    return objJsonResult;
                }
                else
                {
                    //2.匹配用料清单的物料编码是否一致
                    string sql = @"select '{0}' HBarCode,b.HMaterID,m.HNumber,m.HName,m.HModel,a.HQty HMQty, b.HQty,b.HUnitID,u.HName HUnitName   from sc_PPbomBillMain a
                                                 inner join Sc_PPBomBillSub b on a.HInterID = b.HInterID
                                                 left join Gy_Material m on b.HMaterID = m.HItemID
                                                 left join Gy_Unit u on b.HUnitID = u.HItemID
                                                 where a.HICMOInterID = '{1}' and a.HICMOEntryID = '{2}'";
                    sql = string.Format(sql,HBarCode, HICMOInterID, HICMOEntryID);
                    ds = oCN.RunProcReturn(sql, "Sc_PPBomBillSub");
                    if (ds.Tables[0].Rows.Count > 0) //有用料清单记录
                    {
                        //var dt0 = ds.Tables[0].AsEnumerable().Where<DataRow>(C => C["HMaterID"].ToString() == "133927").CopyToDataTable();
                        DataTable dt = ds.Tables[0].AsEnumerable().Where<DataRow>(W => W["HMaterID"].ToString() == ds0.Tables[0].Rows[0]["HMaterID"].ToString()).CopyToDataTable(); //判断当前数据(一条或多条)中最终判定是否有合格
                        if (dt == null || dt.Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "条码无效,不存在于用料清单中!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "1";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "获取用料清单数据成功!";
                            objJsonResult.Verify = "用料清单物料条码";
                            objJsonResult.data = dt;
                            return objJsonResult;
                        }
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "当前生产订单无用料清单记录!";
                        return objJsonResult;
                    }
                }
            }
            else
            {
                string sBarBillName = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HSourceName"]);
                string sBarBillType = Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0]["BarCodeType"]);
                //判断条码类型为 åŸºç¡€èµ„料条码 æˆ– æºå•条码
                if (sBarBillType == "基础资料条码")
                {
                    //部门条码
                    if (sBarBillName == "生产资源")
                    {
                        //DAL.ClsGy_Source_View dal = new DAL.ClsGy_Source_View();
                        //将递入的条码去掉前三位后转化成整形
                        int ID;
                        if (int.TryParse(HBarCode.Remove(0, 3), out ID))
                        {
                            if (int.Parse(HSourceID)!= ID)
                            {
                                objJsonResult.code = "0";
                                objJsonResult.count = 0;
                                objJsonResult.Message = "生产资源条码与生产订单绑定资源不匹配!";
                                return objJsonResult;
                            }
                            else
                            {
                                ds = oCN.RunProcReturn("Select * from Gy_Source Where HItemID='" + ID + "'", "Gy_Source");
                                if(ds.Tables[0].Rows.Count>0)    //if (dal.GetInfoByID(ID))
                                {
                                    objJsonResult.code = "1";
                                    objJsonResult.count = 1;
                                    objJsonResult.Message = "获取资源绑定数据成功!";
                                    objJsonResult.Verify = "资源条码";
                                    objJsonResult.data = ds;
                                    return objJsonResult;
                                }
                                else
                                {
                                    objJsonResult.code = "0";
                                    objJsonResult.count = 0;
                                    objJsonResult.Message = "无效资源条码!";
                                    return objJsonResult;
                                }
                            }
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "错误的资源条码!";
                            return objJsonResult;
                        }
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "无效基础资料条码!";
                        return objJsonResult;
                    }
                }
                //源单条码
                else if (sBarBillType == "源单条码")
                {
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无效条码类型!";
                    return objJsonResult;
                }
            }
            return objJsonResult;
        }
        #endregion
        #region æŠ¥å·¥å°ä¸Šæ–™é˜²é”™ä¿å­˜
        /// <summary>
        /// ä¿å­˜æ¨¡å…·ç»´ä¿®å•
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("Sc_MaterToSourceStepBill/SaveGetMaterToSourceFrom")]
        [HttpPost]
        public object SaveGetMaterToSourceFrom([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string refSav = sArray[2].ToString();
            //保存权限
            //if (!DBUtility.ClsPub.Security_Log("MES_MaterToSourceBill_Edit", 1, true, DBUtility.ClsPub.CurUserName))
            //{
            //    objJsonResult.code = "0";
            //    objJsonResult.count = 0;
            //    objJsonResult.Message = "无保存权限!";
            //    objJsonResult.data = null;
            //    return objJsonResult;
            //}
            //判断会计期是否合理
            string s = "";
            int sYear = 0;
            int sPeriod = 0;
            if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = s;
                objJsonResult.data = null;
                return objJsonResult;
            }
            string UserName = "";
            ListModels oListModels = new ListModels();
            try
            {
                //表头数据实例化
                DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill();
                List<Model.ClsSc_MaterToSourceBillMain> lsmain = new List<Model.ClsSc_MaterToSourceBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Sc_MaterToSourceBillMain(msg2);
                //配料记录表体数据实例化
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                //msg2 = msg2.Replace("'", "’");
                List<Model.ClsSc_MaterToSourceBillSub> ls = new List<Model.ClsSc_MaterToSourceBillSub>();
                ls = oListModels.getObjectByJson_Sc_MaterToSourceBillSub(msg3);
                //配件项表体数据实例化
                foreach (Model.ClsSc_MaterToSourceBillMain oItem in lsmain)
                {
                    if (refSav == "Add")
                    {
                        //单据号是否重复
                        if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据号重复!不允许保存!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    if (refSav == "Update")
                    {
                        if (BillOld.ShowBill(oItem.HInterID, ref s) == false)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据有误!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        //判断是否可编辑
                        if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据已经被审核,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (BillOld.omodel.HBillStatus > 1)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = s + ",不允许修改";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    UserName = oItem.HMaker;  //制单人
                    DBUtility.ClsPub.CurUserName = UserName;
                    oItem.HBillType = "3786";
                    oItem.HBillSubType = "3786";
                    oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));//  --日期
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
                    oItem.HProcExchBillNo = ""; //流转卡号
                    oItem.HProcExchInterID = 0; //流转卡主内码
                    oItem.HProcExchEntryID = 0; //流转卡子内码
                    oItem.HProcID = 0;          //工序ID
                    oItem.HMainSourceBillNo =oItem.HSourceBillNo;
                    oItem.HMainSourceBillType = oItem.HSourceBillType;
                    oItem.HMainSourceInterID = oItem.HSourceInterID;
                    oItem.HMainSourceEntryID = oItem.HSourceEntryID;
                    if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //循环配料信息子表
                    int i = 0;
                    foreach (Model.ClsSc_MaterToSourceBillSub oItemSub in ls)
                    {
                        i++;
                        oItemSub.HEntryID = i;
                        //oItemSub.HCloseMan = "";       //行关闭
                        oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                        oItemSub.HCloseType = false;   //关闭类型
                                                       //oItemSub.HRemark = "";         //备注
                        oItemSub.HSourceInterID = 0;     // æºå•主内码
                        oItemSub.HSourceEntryID = 0;   //源单子内码
                                                       //oItemSub.HSourceBillNo = "";  //源单单号
                                                       //oItemSub.HSourceBillType = ""; //源单类型
                        oItemSub.HRelationQty = 0;     //关联数量
                        oItemSub.HScanDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//  --扫码时间
                        oItemSub.HSourceBillNo = oItem.HSourceBillNo;
                        oItemSub.HSourceBillType = oItem.HSourceBillType;
                        oItemSub.HSourceInterID = oItem.HSourceInterID;
                        oItemSub.HSourceEntryID = oItem.HSourceEntryID;
                        oBill.DetailColl.Add(oItemSub);
                    }
                    oBill.omodel = oItem;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HInterID == 0)
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    if (bResult)
                    {
                        objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
                        //系统参数  è‡ªåŠ¨å®¡æ ¸
                        string sReturn = "";
                        if (oSystemParameter.ShowBill(ref sReturn) == true)
                        {
                            if (oSystemParameter.omodel.Sc_MaterToSourceBill_AutoCheck == "Y") //系统参数  è‡ªåŠ¨å®¡æ ¸
                            {
                                objJsonResult.Verify = "Y";
                            }
                            else
                            {
                                objJsonResult.Verify = "N";
                            }
                        }
                    }
                }
                else
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                    objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
                    objJsonResult.Verify = "N";
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
        #region [报工平台上料防错单审核、反审核]
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Sc_MaterToSourceStepBill/AuditProcessReportList")]
        [HttpGet]
        public object AuditProcessReportList(int HInterID, int IsAudit, string CurUserName)
        {
            string ModRightNameCheck = "MES_MaterToSourceBill_Check";
            DBUtility.ClsPub.CurUserName = CurUserName;
            try
            {
                //审核权限
                //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, CurUserName))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "审核失败!无权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                if (HInterID <= 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HInterID小于0!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                Int64 lngBillKey = 0;
                lngBillKey = DBUtility.ClsPub.isLong(HInterID);
                DAL.ClsSc_MESMaterToSourceBill oBill = new DAL.ClsSc_MESMaterToSourceBill();
                //查看是否已审核,关闭,作废
                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    if (oBill.omodel.HCloseMan.Trim() != "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已关闭!不能再次审核!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (oBill.omodel.HDeleteMan.Trim() != "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已作废!不能再次审核!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (IsAudit == 0)  //审核判断
                    {
                        if (oBill.omodel.HChecker.Trim() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    if (IsAudit == 1) //反审核判断
                    {
                        if (oBill.omodel.HChecker.Trim() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未审核!不需要反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (IsAudit == 0) //审核提交
                {
                    //审核提交
                    if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "审核成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                if (IsAudit == 1) //反审核提交
                {
                    //反审核提交AbandonCheck
                    if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "反审核成功";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    else
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/Éú²ú¹ÜÀí/±¨¹¤Ì¨¹¤Ðò/Sc_QualityReportStepBillController.cs
New file
@@ -0,0 +1,690 @@
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
    //质量汇报单Controller
    //数据库主表Sc_QualityReportBillMain
    //数据库子表Sc_QualityReportBillSub
    public class Sc_QualityReportStepBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        private json objJsonResultReturn = new json();
         SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        DataSet ds;
        #region è¿”回生产质量汇报单列表
        [Route("Sc_QualityReportStepBill/list")]
        [HttpGet]
        public object list(string sWhere)
        {
            try
            {
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Sc_QualityReportBillListDetail " + sWhere, "h_v_Sc_QualityReportBillListDetail");
                }
                else
                {
                    string sql1 = "select * from h_v_Sc_QualityReportBillListDetail where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_Sc_QualityReportBillListDetail");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "false!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è´¨é‡æ±‡æŠ¥å•根据源单类型获取信息-源单为生产状态临时表(3722)
        [Route("Sc_QualityReportStepBill/get_ICMOBillStatus_Tmp")]
        [HttpGet]
        public object get_ICMOBillStatus_Tmp(int HInterID, int HEntryID, string HBillType)
        {
            try
            {
                if (HInterID == 0 || HBillType.Equals(""))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "参数不全,获取源单信息失败!HInterID:" + HInterID + ";HEntryID:" + HEntryID + ";HBillType:" + HBillType + ";";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    ds = oCN.RunProcReturn
                        ("select a.HInterID,a.HBillType,a.HICMOBillNo,a.HICMOInterID,a.HMaterID" +
                        ",m.HNumber HMaterNumber,m.HName HMaterName,m.HModel HMaterModel,a.HICMOEntryID " +
                        " from Sc_ICMOBillStatus_Tmp a " +
                        " left join Gy_Material m on a.HMaterID=m.HItemID " +
                        " Where a.HInterID=" + HInterID + " and a.HBillType="+ HBillType, "Sc_ICMOBillStatus_Tmp");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "查询数据异常,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "返回记录成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è´¨é‡æ±‡æŠ¥å•扫不良条码保存信息
        [Route("Sc_QualityReportStepBill/set_SaveBarCode")]
        [HttpPost]
        public object set_SaveBarCode([FromBody] JObject oMain)
        {
            var msg1 = oMain["oMain"].ToString();
            //保存单据
            return objJsonResult = AddBillTmp(msg1);
        }
        public json AddBillTmp(string msg1)
        {
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg = sArray[0].ToString();
            string OperationType = sArray[1].ToString().Trim();
            bool bResult = false;
            try
            {
                msg = "[" + msg.ToString() + "]";
                List<Sc_ICMOBillQualityStatus_Tmp> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Sc_ICMOBillQualityStatus_Tmp>>(msg);
                //判断会计期是否合理
                string s = "";
                int sYear = 0;
                int sPeriod = 0;
                DateTime HDate = mainList[0].HMakeDate;
                if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(HDate, ref sYear, ref sPeriod, ref s) == false)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = s;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //保存完毕后处理
                if (OperationType.Equals("1") || OperationType.Equals("2"))
                {
                    //是否保存
                    bResult = AddBillTmpSQL(mainList, ref ClsPub.sExeReturnInfo);
                }
                else if (OperationType.Equals("3"))
                {
                    //bResult = BillNew.ModifyBill(BillNew.omodel.HInterID, ref ClsPub.sExeReturnInfo);
                }
                else
                {
                    ClsPub.sExeReturnInfo = "无效的操作类型!";
                    bResult = false;
                }
                //是否保存
                if (bResult == true)
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "扫码保存成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!原因:" + ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        //新增单据
        public bool AddBillTmpSQL(List<Sc_ICMOBillQualityStatus_Tmp> mainList, ref string sReturn)
        {
            try
            {
                Sc_ICMOBillQualityStatus_Tmp BillNew = new Sc_ICMOBillQualityStatus_Tmp();
                //固定赋值=================================
                BillNew.HInterID = mainList[0].HInterID;//递入type得到的单据ID
                BillNew.HBillNo = mainList[0].HBillNo;
                BillNew.HBillType = mainList[0].HBillType;
                BillNew.HDate = mainList[0].HDate;
                BillNew.HICMOBillNo = mainList[0].HICMOBillNo;
                BillNew.HICMOInterID = mainList[0].HICMOInterID;
                BillNew.HICMOEntryID = mainList[0].HICMOEntryID;
                BillNew.HProcExchBillNo = mainList[0].HProcExchBillNo;
                BillNew.HProcExchInterID = mainList[0].HProcExchInterID;
                BillNew.HProcExchEntryID = mainList[0].HProcExchEntryID;
                BillNew.HProcID = mainList[0].HProcID;
                BillNew.HMaterID = mainList[0].HMaterID;
                BillNew.HSourceID = mainList[0].HSourceID;
                BillNew.HGroupID = mainList[0].HGroupID;
                BillNew.HCheckManID = mainList[0].HCheckManID;
                BillNew.HBadReasonID = mainList[0].HBadReasonID;
                BillNew.HBarCode = mainList[0].HBarCode;
                BillNew.HMaker = mainList[0].HMaker;
                BillNew.HMakeDate = mainList[0].HMakeDate;
                BillNew.HReportType = mainList[0].HReportType;
                BillNew.HSourceBillNo = mainList[0].HICMOBillNo;
                BillNew.HSourceInterID = mainList[0].HICMOInterID;
                BillNew.HSourceBillType = mainList[0].HSourceBillType;
                oCN.BeginTran();
                //临时表
                oCN.RunProc("Insert Into Sc_ICMOBillQualityStatus_Tmp " +
                    " (HInterID,HBillNo,HDate,HICMOBillNo,HICMOInterID" +
                    ",HProcExchBillNo,HProcExchInterID,HProcExchEntryID,HProcID,HMaterID" +
                    ",HSourceID,HGroupID,HCheckManID,HBadReasonID,HBarCode" +
                    ",HMaker,HMakeDate,HBillType,HReportType,HSourceBillNo" +
                    ",HSourceInterID,HSourceBillType,HICMOEntryID,HSourceEntryID" +
                ") " +
                " values(" + BillNew.HInterID + ",'" + BillNew.HBillNo + "','" + BillNew.HDate + "','" + BillNew.HICMOBillNo + "'," + BillNew.HICMOInterID +
                ",'" + BillNew.HProcExchBillNo + "'," + BillNew.HProcExchInterID + "," + BillNew.HProcExchEntryID + "," + BillNew.HProcID + "," + BillNew.HMaterID +
                "," + BillNew.HSourceID + "," + BillNew.HGroupID + "," + BillNew.HCheckManID + "," + BillNew.HBadReasonID + ",'" + BillNew.HBarCode + "'" +
                ",'" + BillNew.HMaker + "','" + BillNew.HMakeDate + "','" + BillNew.HBillType + "','" + +BillNew.HReportType + "','" +BillNew.HSourceBillNo + "'" +
                "," + BillNew.HSourceInterID + ",'" + BillNew.HSourceBillType + "'," + BillNew.HICMOEntryID + "," + BillNew.HICMOEntryID +
                ") ");
                sReturn = "扫码成功!";
                oCN.Commit();
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                oCN.RollBack();
                throw (e);
            }
        }
        #endregion
        #region è´¨é‡æ±‡æŠ¥å•列表删除按钮
        [Route("Sc_QualityReportStepBill/DeltetSc_QualityReportBill")]
        [HttpGet]
        public object DeltetSc_QualityReportBill(long HItemID)
        {
            DataSet ds;
            DataSet ds1;
            try
            {
                //删除权限
                //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, CurUserName))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "审核失败!无权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (HItemID == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HItemID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();//开始事务
                ds = oCN.RunProcReturn("select * from Sc_QualityReportBillMain where hmainid=" + HItemID, "Sc_QualityReportBillMain");
                ds1 = oCN.RunProcReturn("select * from Sc_QualityReportBillSub where hmainid=" + HItemID, "Sc_QualityReportBillSub");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有数据,无法删除!";
                    objJsonResult.data = null;
                    return objJsonResult; ;
                }
                //var HStopflag = Convert.ToBoolean(ds.Tables[0].Rows[0]["HStopflag"]);
                //if (HStopflag)
                //{
                //    oCN.RollBack();//回滚事务
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "数据已删除无法再次删除!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //ds1 = oCN.RunProcReturn("Select HItemID from Sc_QualityReportBill  Where HParentID='" + HItemID + "'", "Sc_QualityReportBill");
                //if (ds1.Tables[0].Rows.Count != 0)
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "此项目存在子项目,不能删除!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                string HUseFlag = Convert.ToString(ds.Tables[0].Rows[0]["HUseFlag"]);
                if (HUseFlag == "已使用")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "此项目已使用,不能删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("delete from Sc_QualityReportBillMain where hmainid=" + HItemID);
                oCN.RunProc("delete from Sc_QualityReportBillSub where hmainid=" + HItemID);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "* æ•°æ®åˆ é™¤æˆåŠŸï¼";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region è´¨é‡æ±‡æŠ¥å•扫不良条码获取不良原因id
        [Route("Sc_QualityReportStepBill/get_HBadReasonID")]
        [HttpGet]
        public object get_HBadReasonID(string HBadReasonNumber)
        {
            try
            {
                ds = oCN.RunProcReturn("Select HItemID,HNumber from Gy_BadReason where HStopflag=0 and HNumber='" + HBadReasonNumber + "'", "Gy_BadReason");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "不良条码不存在或已被禁用!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å®¡æ ¸
        public object set_CheckBill(long HInterID,string HChecker, ref string sReturn)
        {
            SQLHelper.ClsCN oCN1 = new SQLHelper.ClsCN();
            try
            {
                oCN1.BeginTran();
                //审核权限
                if (!DBUtility.ClsPub.Security_Log("Sc_QualityReportBill_Check", 1, true, HChecker))
                {
                    oCN1.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //
                if (HInterID == 0)
                {
                    oCN1.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据ID为0!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DAL.ClsSc_QualityReportBill oBill = new DAL.ClsSc_QualityReportBill();
                //查看是否已审核,关闭,作废
                if (oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
                {
                    if (oBill.omodel.HChecker.Trim() != "")
                    {
                        oCN1.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已审核!不能再次审核!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (oBill.omodel.HCloseMan.Trim() != "")
                    {
                        oCN1.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已关闭!不能再次审核!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (oBill.omodel.HDeleteMan.Trim() != "")
                    {
                        oCN1.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据已作废!不能再次审核!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    oCN1.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //审核
                if (CheckBill(HInterID, HChecker, ref DBUtility.ClsPub.sExeReturnInfo) == true)
                {
                    oCN1.Commit();
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "审核成功!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    oCN1.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                oCN1.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核失败!原因:" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        //审核SQL
        public bool CheckBill(Int64 HInterID,string HChecker, ref string sReturn)
        {
            try
            {
                oCN.RunProc(" Update Sc_QualityReportBillMain set HChecker='" + HChecker + "',HCheckDate=GETDATE() Where HInterID=" + HInterID.ToString());
                sReturn = "";
                return true;
            }
            catch (Exception e)
            {
                sReturn = e.Message;
                throw (e);
            }
        }
        #endregion
        #region èŽ·å–æ‰«ç æ‰«æè®°å½•
        [Route("Sc_QualityReportStepBill/get_BarCodeDetail")]
        [HttpGet]
        public object get_BarCodeDetail(long HInterID)
        {
            try
            {
                ds = oCN.RunProcReturn(
                    "Select a.HItemID,a.HInterID,b.HNumber HBadReasonNumber,b.HName HBadReasonHName" +
                    ",c.HName HCheckMan,d.HName HGroupName,e.HName HSourceName " +
                    " from Sc_ICMOBillQualityStatus_Tmp a " +
                    " left join Gy_BadReason b on a.HBadReasonID = b.HItemID " +
                    " left join Gy_Employee c on a.HCheckManID = c.HItemID " +
                    " left join Gy_Group d on a.HGroupID = d.HItemID " +
                    " left join Gy_Source e on a.HSourceID = e.HItemID " +
                    " where HInterID=" + HInterID, "Sc_ICMOBillQualityStatus_Tmp"
                    );
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "false!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region èŽ·å–æ‰«ç æ±‡æ€»è®°å½•
        [Route("Sc_QualityReportStepBill/get_BarCodeDetailSum")]
        [HttpGet]
        public object get_BarCodeDetailSum(long HInterID)
        {
            try
            {
                ds = oCN.RunProcReturn(
                    "Select count(*) HQty,a.HInterID,b.HNumber HBadReasonNumber,b.HName HBadReasonHName,c.HName HCheckMan" +
                    ",d.HName HGroupName,e.HName HSourceName " +
                    " from Sc_ICMOBillQualityStatus_Tmp a " +
                    " left join Gy_BadReason b on a.HBadReasonID = b.HItemID " +
                    " left join Gy_Employee c on a.HCheckManID = c.HItemID " +
                    " left join Gy_Group d on a.HGroupID = d.HItemID " +
                    " left join Gy_Source e on a.HSourceID = e.HItemID " +
                    " where a.HInterID=" + HInterID +
                    " group by a.HInterID,a.HBadReasonID,a.HCheckManID,a.HGroupID,a.HSourceID" +
                    " ,b.HNumber,b.HName,c.HName,d.HName,e.HName", "Sc_ICMOBillQualityStatus_Tmp"
                    );
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "false!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region åˆ é™¤æ‰«æè®°å½•行
        [Route("Sc_QualityReportStepBill/del_BarCodeDetail")]
        [HttpGet]
        public object del_BarCodeDetail(long HItemID)
        {
            try
            {
                oCN.RunProc("delete from Sc_ICMOBillQualityStatus_Tmp where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "删除成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æäº¤ä¿å­˜ï¼Œå­˜ä¸»å­è¡¨åŠæ˜Žç»†è¡¨
        [Route("Sc_QualityReportStepBill/set_SaveBill")]
        [HttpGet]
        public object set_SaveBill(long HInterID,string HChecker)
        {
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                bool bResult2 = false;
                oCN.BeginTran();
                //保存
                oCN.RunProc("exec h_p_save_Sc_QualityReportBill " + HInterID);
                //判断是否允许保存,不允许则回滚
                ds = oCN.RunProcReturn("exec h_p_JIT_ICMOBillQualityStatus_SaveCtrl", "h_p_JIT_ICMOBillQualityStatus_SaveCtrl");
                if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2")
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]);
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.Commit();
                //获取自动审核参数
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.Sc_ICMOBillQualityStatus_AutoCheck == "Y") //系统参数  è‡ªåŠ¨å®¡æ ¸
                    {
                        //审核
                        objJsonResultReturn = (json)set_CheckBill(HInterID, HChecker, ref ClsPub.sExeReturnInfo);
                        if (objJsonResultReturn.code == "1")
                        {
                            objJsonResult.code = "1";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据存盘完毕!审核成功!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            objJsonResult.code = "1";
                            objJsonResult.count = 1;
                            objJsonResult.Message = "单据存盘完毕!自动审核失败,原因:" + objJsonResultReturn.Message;
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    else
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "单据存盘完毕!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "单据存盘完毕!获取自动审核参数失败!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Models/ScanLineCode.cs
New file
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models
{
    public class ScanLineCode
    {
        public string billno { get; set; }
        public string packagebarcode { get; set; }
        public List<CartItem> barcodes { get; set; }
    }
    public class CartItem
    {
        public string barcode { get; set; }
    }
}
WebAPI/Models/jsonScanline.cs
New file
@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models
{
    public class jsonScanline
    {
        public int status { get; set; }
        public string msg { get; set; }
        public List<barcode> data { get; set; }
    }
    public class barcode
    {
        public string packagebarcode { get; set; }
    }
}
WebAPI/WebAPI.csproj
@@ -348,6 +348,7 @@
    <Compile Include="Controllers\MoveStockBillController.cs" />
    <Compile Include="Controllers\Open_PrintTemController.cs" />
    <Compile Include="Controllers\ReportStepPlatFormController.cs" />
    <Compile Include="Controllers\博日自动扫码线\ScanlineAPIController.cs" />
    <Compile Include="Controllers\工资管理\Pay_OtherBalBillController.cs" />
    <Compile Include="Controllers\工资管理\Pay_GroupBalBillController.cs" />
    <Compile Include="Controllers\PurchaseOrderController.cs" />
@@ -404,11 +405,13 @@
    <Compile Include="Controllers\基础资料\基础资料\Gy_RepairBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_RepairCheckBillController.cs" />
    <Compile Include="Controllers\基础资料\工资基础资料\Gy_ProcPriceController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_MaterToSourceStepBillController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_MESBeginStepWorkBillController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_MESEndStepWorkBillController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_MESProductReportStepBillController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_MESReturnStepWorkBillController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_MESStopStepWorkBillController.cs" />
    <Compile Include="Controllers\生产管理\报工台工序\Sc_QualityReportStepBillController.cs" />
    <Compile Include="Controllers\生产管理\生产任务单\Sc_ICMOBillController.cs" />
    <Compile Include="Controllers\生产管理\质量汇报单\Sc_QualityReportBillController.cs" />
    <Compile Include="Dapper\SqlHelper.cs" />
@@ -448,6 +451,8 @@
    <Compile Include="DLL\ClsSc_MouldMoveStockStepOutBill.cs" />
    <Compile Include="DLL\工资管理\ClsPay_GroupBalBill.cs" />
    <Compile Include="DLL\工资管理\ClsPay_WorkTimesBill.cs" />
    <Compile Include="Models\jsonScanline.cs" />
    <Compile Include="Models\ScanLineCode.cs" />
    <Compile Include="Models\工资管理\ClsPay_GroupBalBillEmp.cs" />
    <Compile Include="Models\工资管理\ClsPay_GroupBalBillMain.cs" />
    <Compile Include="Models\工资管理\ClsPay_GroupBalBillSub.cs" />