|
|
@@ -0,0 +1,491 @@
|
|
|
+<%@ WebHandler Language="C#" Class="GetCheckBarcode" %>
|
|
|
+
|
|
|
+using System;
|
|
|
+using System.IO;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Web;
|
|
|
+using System.Web.SessionState;
|
|
|
+using System.Configuration;
|
|
|
+using System.Data;
|
|
|
+using Newtonsoft.Json;
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
+using Curtain.DataAccess;
|
|
|
+using Curtain.Log;
|
|
|
+using DK.XuWei.WebMes;
|
|
|
+using System.Linq;
|
|
|
+
|
|
|
+public class GetCheckBarcode : IHttpHandler
|
|
|
+{
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
+ {
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
+ #region 获取切换栏
|
|
|
+ if (context.Request["m"].ToString() == "getli")
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ string sqlStr = "SELECT ITEMSYTPE FROM TP_PM_FIRSTREGISTERITEMS GROUP BY ITEMSYTPE";
|
|
|
+ DataTable bt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ List<string> result = new List<string>();
|
|
|
+ for (int i = 0; i < bt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ result.Add(bt.Rows[i]["ITEMSYTPE"].ToString());
|
|
|
+ }
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ #region
|
|
|
+ if (context.Request["m"].ToString() == "gettable")
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {//获取前端传递的表单
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ string sqlStr = "SELECT ITEMSID, ITEMSNAME,ITEMSINFO FROM TP_PM_FIRSTREGISTERITEMS WHERE ITEMSYTPE='" + formData["ITEMSYTPE"].ToString() + "' ORDER BY ITEMSID";
|
|
|
+ DataTable bt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ List<Dictionary<string, string>> result = new List<Dictionary<string, string>>();
|
|
|
+ for (int i = 0; i < bt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> content = new Dictionary<string, string>();
|
|
|
+ content.Add("ITEMSID", bt.Rows[i]["ITEMSID"].ToString());
|
|
|
+ content.Add("ITEMSNAME", bt.Rows[i]["ITEMSNAME"].ToString());
|
|
|
+ content.Add("ITEMSINFO", bt.Rows[i]["ITEMSINFO"].ToString());
|
|
|
+ result.Add(content);
|
|
|
+ }
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ #region 根据barcode获取产品ID产品名称
|
|
|
+ if (context.Request["m"].ToString() == "checkbarcode")
|
|
|
+ {
|
|
|
+ //获取前端传递的表单
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ if (formData["BARCODE"].ToString() != null)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ string sqlStr = @"SELECT GR.BARCODE,GO.GOODSID,GO.GOODSNAME,GR.LOGOID FROM TP_PM_GROUTINGDAILYDETAIL GR
|
|
|
+ LEFT JOIN TP_MST_GOODS GO ON GR.GOODSID=GO.GOODSID
|
|
|
+ WHERE GO.VALUEFLAG=1 AND GR.VALUEFLAG=1
|
|
|
+ AND GR.BARCODE='" + formData["BARCODE"].ToString() + "'";
|
|
|
+
|
|
|
+ DataTable dt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(dt, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ //获取产品型号
|
|
|
+ if (context.Request["m"].ToString() == "getfirstregister")
|
|
|
+ { //获取前端传递的表单
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ if (formData["GOODSID"].ToString() != null && formData["GOODSNAME"].ToString() != null)
|
|
|
+ {
|
|
|
+ string sqlStr = "SELECT F.*,D.DICTIONARYVALUE AS 产品类型 ,E.DICTIONARYVALUE AS 检验依据 " +
|
|
|
+ "FROM TP_PM_FIRSTREGISTER F " +
|
|
|
+ "LEFT JOIN TP_MST_DATADICTIONARY D ON F.FIRGOODSTYPE=D.DICTIONARYID " +
|
|
|
+ "LEFT JOIN TP_MST_DATADICTIONARY E ON F.FIRBASIS=E.DICTIONARYID " +
|
|
|
+ "WHERE F.GOODSID=" + formData["GOODSID"].ToString() + " AND F.LOGOID=" + formData["LOGOID"].ToString();
|
|
|
+ DataTable bt = conn.ExecuteDatatable(sqlStr);
|
|
|
+
|
|
|
+ List<Dictionary<string, string>> result = new List<Dictionary<string, string>>();
|
|
|
+ for (int i = 0; i < bt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> content = new Dictionary<string, string>();
|
|
|
+ //总单id
|
|
|
+ content.Add("REGISTERID", bt.Rows[i]["REGISTERID"].ToString());
|
|
|
+ //首件登记单号
|
|
|
+ content.Add("REGISTERNO", bt.Rows[i]["REGISTERNO"].ToString());
|
|
|
+ //LOGOID
|
|
|
+ content.Add("LOGOID", formData["LOGOID"].ToString());
|
|
|
+ //GOODSID
|
|
|
+ content.Add("GOODSID", bt.Rows[i]["GOODSID"].ToString());
|
|
|
+ //生产车间
|
|
|
+ content.Add("WORKSHOP", bt.Rows[i]["WORKSHOP"].ToString());
|
|
|
+ //产品名称
|
|
|
+ content.Add("GOODSNAME", formData["GOODSNAME"].ToString());
|
|
|
+ //产品型号
|
|
|
+ content.Add("GOODSCODE", bt.Rows[i]["GOODSCODE"].ToString());
|
|
|
+ //日期
|
|
|
+ content.Add("DATA", DateTime.Parse(bt.Rows[i]["ACCOUNTDATE"].ToString()).ToString("yyyy-MM-dd"));
|
|
|
+ //产品类型
|
|
|
+ content.Add("产品类型", bt.Rows[i]["产品类型"].ToString());
|
|
|
+ //产品物料编码
|
|
|
+ content.Add("MATERIALCODE", bt.Rows[i]["MATERIALCODE"].ToString());
|
|
|
+ //首件数量
|
|
|
+ content.Add("FIRQUANTITY", bt.Rows[i]["FIRQUANTITY"].ToString());
|
|
|
+ //检验依据
|
|
|
+ content.Add("检验依据", bt.Rows[i]["检验依据"].ToString());
|
|
|
+ result.Add(content);
|
|
|
+ }
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(result, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //上传图片
|
|
|
+ if (context.Request["m"].ToString() == "image")
|
|
|
+ {
|
|
|
+ if (context.Request.Files.Count > 0)
|
|
|
+ {
|
|
|
+ // 获取上传的文件
|
|
|
+ HttpPostedFile file = context.Request.Files[0];
|
|
|
+
|
|
|
+ // 检查文件是否有效
|
|
|
+ if (file != null && file.ContentLength > 0)
|
|
|
+ {
|
|
|
+ // 读取文件内容(作为字节数组)
|
|
|
+ byte[] fileBytes = new byte[file.ContentLength];
|
|
|
+ file.InputStream.Read(fileBytes, 0, file.ContentLength);
|
|
|
+ // 获取其他表单字段
|
|
|
+ string registerId = context.Request.Form["REGISTERID"];
|
|
|
+ string type = context.Request.Form["TYPE"];
|
|
|
+ string field = "";
|
|
|
+ if (type != null)
|
|
|
+ {
|
|
|
+ field = int.Parse(type) == 1 ? "PGSIGNATURE" : int.Parse(type) == 2 ? "CJSIGNATURE" : "SKSIGNATURE";
|
|
|
+ }
|
|
|
+ string sql = "UPDATE TP_PM_FIRSTREGISTER SET " + field + " =@fileBytes@ WHERE REGISTERID=" + registerId;
|
|
|
+ CDAParameter parameter = new CDAParameter("fileBytes", fileBytes, DataType.Binary);
|
|
|
+ int rsult = 0;
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ rsult = conn.ExecuteNonQuery(sql, parameter);
|
|
|
+ }
|
|
|
+ // 返回成功响应
|
|
|
+ context.Response.Write(rsult);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查找图片
|
|
|
+ if (context.Request["m"].ToString() == "showimage")
|
|
|
+ {
|
|
|
+ // 获取其他表单字段
|
|
|
+ string registerId = context.Request.Form["REGISTERID"];
|
|
|
+ string type = context.Request.Form["TYPE"];
|
|
|
+ string field = "";
|
|
|
+ if (type != null)
|
|
|
+ {
|
|
|
+ field = int.Parse(type) == 1 ? "PGSIGNATURE" : int.Parse(type) == 2 ? "CJSIGNATURE" : "SKSIGNATURE";
|
|
|
+ }
|
|
|
+ string sqlStr = "SELECT " + field + " FROM TP_PM_FIRSTREGISTER WHERE REGISTERID=" + registerId;
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ DataTable bt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ // 将图片转换为二进制
|
|
|
+ byte[] imageData = (byte[])bt.Rows[0][field];
|
|
|
+ // 将图像数据转换为 base64 编码的字符串
|
|
|
+ string base64String = Convert.ToBase64String(imageData);
|
|
|
+ // 构建包含图像的 HTML 字符串
|
|
|
+ string htmlString = "data:image/bmp;base64," + base64String;
|
|
|
+ // 设置响应的内容类型和编码
|
|
|
+ context.Response.ContentType = "text/html; charset=utf-8";
|
|
|
+ // 在响应中写入 HTML 字符串
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, string>() { { "htmlString", htmlString }, { "code", "200" } }, Formatting.Indented));
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, string>() { { "code", "500" } }, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #region 根据barcode查找填写过数据
|
|
|
+ if (context.Request["m"].ToString() == "getregister")
|
|
|
+ {
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ if (formData["BARCODE"].ToString() != null)
|
|
|
+ {
|
|
|
+ DataTable bt = new DataTable();
|
|
|
+ string sqlStr = "SELECT ITEMSYTPE,ITEMSID,ITEMSVALUE,ITEMSREMARKS FROM TP_PM_FIRSTREGISTERDETAIL WHERE VALUEFLAG=1 AND BARCODE='" + formData["BARCODE"].ToString() + "'";
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ bt = conn.ExecuteDatatable(sqlStr);
|
|
|
+ }
|
|
|
+ List<Dictionary<string, string>> result = new List<Dictionary<string, string>>();
|
|
|
+ for (int i = 0; i < bt.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ Dictionary<string, string> content = new Dictionary<string, string>();
|
|
|
+ content.Add("ITEMSYTPE", bt.Rows[i]["ITEMSYTPE"].ToString());
|
|
|
+ content.Add("ITEMSID", bt.Rows[i]["ITEMSID"].ToString());
|
|
|
+ content.Add("ITEMSVALUE", bt.Rows[i]["ITEMSVALUE"].ToString());
|
|
|
+ content.Add("ITEMSREMARKS", bt.Rows[i]["ITEMSREMARKS"].ToString());
|
|
|
+ result.Add(content);
|
|
|
+ }
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, List<Dictionary<string, string>>>() { { "Result", result } }, Formatting.Indented)); ;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+ //判断总单是否过量
|
|
|
+ if (context.Request["m"].ToString() == "checkcount")
|
|
|
+ {
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ if (formData["REGISTERID"].ToString() != null && formData["BARCODE"].ToString() != null)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ Boolean result = false;
|
|
|
+ DataTable bt = conn.ExecuteDatatable(" SELECT COUNT (REGISTERID) AS CHECKQUANTITY FROM TP_PM_FIRSTREGISTERBAR WHERE REGISTERID=" + formData["REGISTERID"].ToString());
|
|
|
+ DataTable lbt = conn.ExecuteDatatable(" SELECT FIRQUANTITY FROM TP_PM_FIRSTREGISTER WHERE REGISTERID=" + formData["REGISTERID"].ToString());
|
|
|
+ if (int.Parse(bt.Rows[0][0].ToString()) == int.Parse(lbt.Rows[0][0].ToString()))
|
|
|
+ {
|
|
|
+ DataTable dbt = conn.ExecuteDatatable(" SELECT * FROM TP_PM_FIRSTREGISTERBAR WHERE BARCODE=" + formData["BARCODE"].ToString());
|
|
|
+ result = dbt.Rows.Count == 0 ? true : false;
|
|
|
+ }
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(result));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //条码保存
|
|
|
+ if (context.Request["m"].ToString() == "check")
|
|
|
+ {
|
|
|
+ //获取json数据
|
|
|
+ using (var reader = new StreamReader(context.Request.InputStream))
|
|
|
+ {
|
|
|
+ string json = reader.ReadToEnd();
|
|
|
+ //json转对象
|
|
|
+ RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(json);
|
|
|
+ if (rootObject.barcode != null)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //开启事务
|
|
|
+ conn.BeginTransaction();
|
|
|
+ //查询首件确定登记项目表
|
|
|
+ DataTable btITEM = conn.ExecuteDatatable("SELECT * FROM TP_PM_FIRSTREGISTERITEMS");
|
|
|
+ //查询首件确定登记总单
|
|
|
+ DataTable bt = conn.ExecuteDatatable("SELECT * FROM TP_PM_FIRSTREGISTER WHERE VALUEFLAG=1 AND REGISTERID='" + rootObject.REGISTERID + "' ");
|
|
|
+ //查询首件确定登记条码记录
|
|
|
+ DataTable btBAR = conn.ExecuteDatatable("SELECT * FROM TP_PM_FIRSTREGISTERBAR");
|
|
|
+ int i = 0;
|
|
|
+ //当没有传来的条码
|
|
|
+ if (btBAR.AsEnumerable().Where(ex => ex.Field<string>("BARCODE") == rootObject.barcode).FirstOrDefault() == null)
|
|
|
+ {
|
|
|
+ //创建记录
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT SEQ_PM_FIRSTREGISTERBAR_ID.nextval FROM dual");
|
|
|
+ i = int.Parse(dt.Rows[0][0].ToString());
|
|
|
+ conn.ExecuteNonQuery(@"INSERT INTO TP_PM_FIRSTREGISTERBAR (
|
|
|
+ BARID,REGISTERID, BARCODE ) VALUES (@BARID@,@REGISTERID@, @BARCODE@ )",
|
|
|
+ new CDAParameter("BARID", i),
|
|
|
+ new CDAParameter("REGISTERID", bt.Rows[0]["REGISTERID"]),
|
|
|
+ new CDAParameter("BARCODE", rootObject.barcode));
|
|
|
+ //登记单状态为未登记
|
|
|
+ if (int.Parse(bt.Rows[0]["STATUS"].ToString()) == 0)
|
|
|
+ {
|
|
|
+ //更新已经登记单状态
|
|
|
+ conn.ExecuteNonQuery("UPDATE TP_PM_FIRSTREGISTER SET STATUS=STATUS+1 WHERE REGISTERID=" + bt.Rows[0]["REGISTERID"]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询本条的条码ID
|
|
|
+ DataTable dtAIL = conn.ExecuteDatatable(@"SELECT * FROM TP_PM_FIRSTREGISTERDETAIL WHERE BARCODE='" + rootObject.barcode + "' AND VALUEFLAG=1 ");
|
|
|
+ //遍历数据
|
|
|
+ foreach (var item in rootObject.data.Where(ex => ex.judgmentResult != null || ex.textInputValue != "").OrderBy(ex=>ex.ITEMSID))
|
|
|
+ {
|
|
|
+ //查找记录
|
|
|
+ var jilu = dtAIL.AsEnumerable().Where(ex => ex.Field<decimal>("ITEMSID").ToString() == item.ITEMSID ).FirstOrDefault();
|
|
|
+ //当有记录
|
|
|
+ if (jilu != null)
|
|
|
+ {
|
|
|
+ //记录和所填不一致
|
|
|
+ if (jilu["ITEMSVALUE"].ToString() != item.judgmentResult || jilu["ITEMSREMARKS"].ToString() != item.textInputValue)
|
|
|
+ {
|
|
|
+ //将记录更新
|
|
|
+ string sqlStr = "UPDATE TP_PM_FIRSTREGISTERDETAIL SET ITEMSVALUE='" + item.judgmentResult + "'," +
|
|
|
+ " ITEMSREMARKS='" + item.textInputValue + "',UPDATEUSERID='" + rootObject.userId + "'" +
|
|
|
+ " WHERE BARCODE='" + rootObject.barcode + "' " +
|
|
|
+ "AND ITEMSID=" + item.ITEMSID;
|
|
|
+ conn.ExecuteNonQuery(sqlStr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //没有记录
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //添加数据
|
|
|
+ conn.ExecuteNonQuery(@"INSERT INTO TP_PM_FIRSTREGISTERDETAIL (
|
|
|
+ REGISTERID, BARID, BARCODE, ITEMSID,ITEMSYTPE,ITEMSNAME, ITEMSINFO,ITEMSVALUE,ITEMSREMARKS,
|
|
|
+ ACCOUNTID,VALUEFLAG,CREATEUSERID,UPDATEUSERID ) VALUES (
|
|
|
+ @REGISTERID@, @BARID@, @BARCODE@, @ITEMSID@,@ITEMSYTPE@,@ITEMSNAME@, @ITEMSINFO@, @ITEMSVALUE@, @ITEMSREMARKS@,
|
|
|
+ @ACCOUNTID@, @VALUEFLAG@, @CREATEUSERID@,@UPDATEUSERID@)",
|
|
|
+ new CDAParameter("REGISTERID", bt.Rows[0]["REGISTERID"]),
|
|
|
+ new CDAParameter("BARID", i != 0 ? i : dtAIL.Rows[0]["BARID"]),
|
|
|
+ new CDAParameter("BARCODE", rootObject.barcode),
|
|
|
+ new CDAParameter("ITEMSID", item.ITEMSID),
|
|
|
+ new CDAParameter("ITEMSYTPE", btITEM.AsEnumerable().Where(ex => ex.Field<decimal>("ITEMSID") == decimal.Parse(item.ITEMSID)).FirstOrDefault().Field<string>("ITEMSYTPE")),
|
|
|
+ new CDAParameter("ITEMSNAME", btITEM.AsEnumerable().Where(ex => ex.Field<decimal>("ITEMSID") == decimal.Parse(item.ITEMSID)).FirstOrDefault().Field<string>("ITEMSNAME")),
|
|
|
+ new CDAParameter("ITEMSINFO", btITEM.AsEnumerable().Where(ex => ex.Field<decimal>("ITEMSID") == decimal.Parse(item.ITEMSID)).FirstOrDefault().Field<string>("ITEMSINFO")),
|
|
|
+ new CDAParameter("ITEMSVALUE", item.judgmentResult),
|
|
|
+ new CDAParameter("ITEMSREMARKS", item.textInputValue == "" ? null : item.textInputValue),
|
|
|
+ new CDAParameter("ACCOUNTID", rootObject.accountId),
|
|
|
+ new CDAParameter("VALUEFLAG", 1),
|
|
|
+ new CDAParameter("CREATEUSERID", rootObject.userId),
|
|
|
+ new CDAParameter("UPDATEUSERID", rootObject.userId));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询该条码已经填写的判定
|
|
|
+ DataTable btbarcodecount = conn.ExecuteDatatable("SELECT COUNT(*) FROM TP_PM_FIRSTREGISTERDETAIL WHERE VALUEFLAG=1 AND ITEMSVALUE IS NOT NULL AND BARCODE=" + rootObject.barcode);
|
|
|
+ //判断综合判定是否填写
|
|
|
+ bool a = rootObject.data.Where(ex => ex.ITEMSID == btITEM.AsEnumerable().Where(x => x.Field<string>("ITEMSINFO") == null).FirstOrDefault().Field<decimal>("ITEMSID").ToString()).Select(ex => ex.textInputValue).FirstOrDefault() == null ? false : true;
|
|
|
+ int b = btITEM.AsEnumerable().Where(ex => ex.Field<string>("ITEMSINFO") != null).Count();
|
|
|
+ //查询首件确定登记条码记录
|
|
|
+ DataTable btBARNew = conn.ExecuteDatatable("SELECT * FROM TP_PM_FIRSTREGISTERBAR");
|
|
|
+ bool c = btBARNew.AsEnumerable().Where(ex => ex.Field<string>("BARCODE") == rootObject.barcode).FirstOrDefault() == null ? false : true;
|
|
|
+ //填写的判定数量等于判定规定&&综合判定填写
|
|
|
+ if (int.Parse(btbarcodecount.Rows[0][0].ToString()) == b && a && c)
|
|
|
+ {
|
|
|
+ //更新条码状态
|
|
|
+ conn.ExecuteNonQuery("UPDATE TP_PM_FIRSTREGISTERBAR SET STATUS=1 WHERE REGISTERID=" + bt.Rows[0]["REGISTERID"] + " AND BARCODE='" + rootObject.barcode + "'");
|
|
|
+ }
|
|
|
+ //更新已经检验数量
|
|
|
+ conn.ExecuteNonQuery("UPDATE TP_PM_FIRSTREGISTER SET CHECKQUANTITY=(SELECT COUNT(*) FROM TP_PM_FIRSTREGISTERBAR WHERE STATUS=1 AND REGISTERID="+bt.Rows[0]["REGISTERID"]+") WHERE REGISTERID=" + bt.Rows[0]["REGISTERID"]);
|
|
|
+
|
|
|
+ //查询总单已经检验数量和首件数量
|
|
|
+ DataTable detailsbarcodecount = conn.ExecuteDatatable("SELECT FIRQUANTITY,CHECKQUANTITY FROM TP_PM_FIRSTREGISTER WHERE REGISTERID=" + bt.Rows[0]["REGISTERID"]);
|
|
|
+ //当已经检验数量和首件数量相等
|
|
|
+ if (int.Parse(detailsbarcodecount.Rows[0][0].ToString()) == int.Parse(detailsbarcodecount.Rows[0][1].ToString()))
|
|
|
+ {
|
|
|
+ //更新已经登记单状态
|
|
|
+ conn.ExecuteNonQuery("UPDATE TP_PM_FIRSTREGISTER SET STATUS=2 WHERE REGISTERID=" + bt.Rows[0]["REGISTERID"]);
|
|
|
+ }
|
|
|
+ //提交事务
|
|
|
+ conn.Commit();
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, bool>() { { "result", true } }, Formatting.Indented));
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ //回滚事务
|
|
|
+ conn.Rollback();
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, bool>() { { "result", false } }, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取总单号
|
|
|
+ if (context.Request["m"].ToString() == "assemble")
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT REGISTERID,REGISTERNO FROM TP_PM_FIRSTREGISTER WHERE STATUS IN (2,3)");
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(dt, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取总单信息
|
|
|
+ if (context.Request["m"].ToString() == "getoneassemble")
|
|
|
+ {
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT
|
|
|
+ F.REGISTERID,
|
|
|
+ F.REGISTERNO,
|
|
|
+ F.LOGOID,
|
|
|
+ F.GOODSID,
|
|
|
+ F.GOODSCODE,
|
|
|
+ F.WORKSHOP,
|
|
|
+ TO_CHAR(F.ACCOUNTDATE, 'YYYY-MM-DD')AS DATA,
|
|
|
+ F.MATERIALCODE,
|
|
|
+ F.FIRQUANTITY,
|
|
|
+ F.ADVICE,
|
|
|
+ F.ADVICEREMARKS,
|
|
|
+ D.DICTIONARYVALUE AS 产品类型 ,
|
|
|
+ E.DICTIONARYVALUE AS 检验依据 ,
|
|
|
+ GO.GOODSNAME
|
|
|
+ FROM TP_PM_FIRSTREGISTER F
|
|
|
+ LEFT JOIN TP_MST_DATADICTIONARY D ON F.FIRGOODSTYPE = D.DICTIONARYID
|
|
|
+ LEFT JOIN TP_MST_DATADICTIONARY E ON F.FIRBASIS=E.DICTIONARYID
|
|
|
+ LEFT JOIN TP_MST_GOODS GO ON F.GOODSID=GO.GOODSID
|
|
|
+ WHERE F.REGISTERNO = " + formData["REGISTERNO"]);
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(dt, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //根据总单获取产品条码
|
|
|
+ if (context.Request["m"].ToString() == "getabrcode")
|
|
|
+ {
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ if (formData["REGISTERID"] != null)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"SELECT BARCODE FROM TP_PM_FIRSTREGISTERBAR WHERE REGISTERID=" + formData["REGISTERID"]);
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(dt, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //总单保存
|
|
|
+ if (context.Request["m"].ToString() == "save")
|
|
|
+ {
|
|
|
+ var formData = context.Request.Form;
|
|
|
+ if (formData["ADVICE"] != null && formData["REGISTERID"] != null)
|
|
|
+ {
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //开启事务
|
|
|
+ conn.BeginTransaction();
|
|
|
+ DataTable bt = conn.ExecuteDatatable("SELECT STATUS FROM TP_PM_FIRSTREGISTER WHERE REGISTERID=" + formData["REGISTERID"]);
|
|
|
+ //更新总单 登记单状态 研发部意见+备注
|
|
|
+ string strSQL = "UPDATE TP_PM_FIRSTREGISTER SET ADVICE= " + formData["ADVICE"];
|
|
|
+ if (formData["ADVICEREMARKS"] != null)
|
|
|
+ {
|
|
|
+ strSQL += ",ADVICEREMARKS='" + formData["ADVICEREMARKS"] + "'";
|
|
|
+ }
|
|
|
+ if (int.Parse(bt.Rows[0]["STATUS"].ToString()) == 2)
|
|
|
+ {
|
|
|
+ strSQL += ",STATUS=STATUS+1";
|
|
|
+ }
|
|
|
+ strSQL += " WHERE REGISTERID=" + formData["REGISTERID"];
|
|
|
+ conn.ExecuteNonQuery(strSQL);
|
|
|
+ //查询签名
|
|
|
+ DataTable dt = conn.ExecuteDatatable("SELECT PGSIGNATURE, CJSIGNATURE, SKSIGNATURE FROM TP_PM_FIRSTREGISTER WHERE REGISTERID=" + formData["REGISTERID"]);
|
|
|
+ //当签名不为空时
|
|
|
+ if (dt.Rows[0]["PGSIGNATURE"].ToString() != string.Empty && dt.Rows[0]["CJSIGNATURE"].ToString() != string.Empty && dt.Rows[0]["SKSIGNATURE"].ToString() != string.Empty)
|
|
|
+ {
|
|
|
+ //更新登记单状态
|
|
|
+ conn.ExecuteNonQuery("UPDATE TP_PM_FIRSTREGISTER SET STATUS=STATUS+1 WHERE REGISTERID=" + formData["REGISTERID"]);
|
|
|
+ }
|
|
|
+ //提交事务
|
|
|
+ conn.Commit();
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, bool>() { { "result", true } }, Formatting.Indented));
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ //回滚事务
|
|
|
+ conn.Rollback();
|
|
|
+ context.Response.Write(JsonConvert.SerializeObject(new Dictionary<string, bool>() { { "result", false } }, Formatting.Indented));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool IsReusable
|
|
|
+ {
|
|
|
+ get
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public class ItemData
|
|
|
+ {
|
|
|
+ public string ITEMSID { get; set; }
|
|
|
+ public string judgmentResult { get; set; }
|
|
|
+ public string textInputValue { get; set; }
|
|
|
+ }
|
|
|
+
|
|
|
+ public class RootObject
|
|
|
+ {
|
|
|
+ public string REGISTERID { get; set; }
|
|
|
+ public string barcode { get; set; }
|
|
|
+ public string userId { get; set; }
|
|
|
+ public string accountId { get; set; }
|
|
|
+ public List<ItemData> data { get; set; }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|