|
@@ -0,0 +1,465 @@
|
|
|
|
|
+<%@ WebHandler Language="C#" Class="index" %>
|
|
|
|
|
+
|
|
|
|
|
+using System;
|
|
|
|
|
+using System.Web;
|
|
|
|
|
+using System.Web.SessionState;
|
|
|
|
|
+using Curtain.DataAccess;
|
|
|
|
|
+using DK.XuWei.WebMes;
|
|
|
|
|
+using System.Data;
|
|
|
|
|
+using Newtonsoft.Json.Linq;
|
|
|
|
|
+using System.Collections;
|
|
|
|
|
+using Curtain.Log;
|
|
|
|
|
+using System.Collections.Generic;
|
|
|
|
|
+using Oracle.ManagedDataAccess.Client;
|
|
|
|
|
+using System.Text.RegularExpressions;
|
|
|
|
|
+
|
|
|
|
|
+public class index : IHttpHandler
|
|
|
|
|
+{
|
|
|
|
|
+ //输入参数 【条码】
|
|
|
|
|
+ public string barCode = "";
|
|
|
|
|
+ //输入参数 【入库:in】【撤销入库:cancelin】 入库操作预留
|
|
|
|
|
+ public string wmsAction = "";
|
|
|
|
|
+ string procedure_no;
|
|
|
|
|
+ string procedure_in;
|
|
|
|
|
+ string road_no;
|
|
|
|
|
+ string rack;
|
|
|
|
|
+ string position;
|
|
|
|
|
+ //入库是否成功标识
|
|
|
|
|
+ bool WarehostingFlag;
|
|
|
|
|
+ //入库返回失败提示
|
|
|
|
|
+ public string message = "";
|
|
|
|
|
+
|
|
|
|
|
+ //输出参数
|
|
|
|
|
+ public JObject resultJson = null;
|
|
|
|
|
+
|
|
|
|
|
+ public void ProcessRequest(HttpContext context)
|
|
|
|
|
+ {
|
|
|
|
|
+ context.Response.ContentType = "text/plain";
|
|
|
|
|
+ //输入输出参数初始化
|
|
|
|
|
+ barCode = context.Request["barcode"] is object ? context.Request["barcode"] : "";
|
|
|
|
|
+ wmsAction = context.Request["wmsAction"] is object ? context.Request["wmsAction"] : "";
|
|
|
|
|
+ procedure_no = context.Request["procedure_no"] is object ? context.Request["procedure_no"] : "1_1_1";
|
|
|
|
|
+
|
|
|
|
|
+ if (wmsAction.ToLower() == "in") procedure_in = "1";
|
|
|
|
|
+ if (wmsAction.ToLower() == "cancelin") procedure_in = "-1";
|
|
|
|
|
+
|
|
|
|
|
+ road_no = "0";
|
|
|
|
|
+ rack = "";
|
|
|
|
|
+ position = "";
|
|
|
|
|
+ resultJson = new JObject(
|
|
|
|
|
+ new JProperty("success", true),
|
|
|
|
|
+ new JProperty("message", ""),
|
|
|
|
|
+ new JProperty("goods", new JObject(
|
|
|
|
|
+ new JProperty("GoodsName", ""),
|
|
|
|
|
+ new JProperty("GoodsCode", ""),
|
|
|
|
|
+ new JProperty("GoodsSpecification", ""),
|
|
|
|
|
+ new JProperty("GoodsModel", ""),
|
|
|
|
|
+ new JProperty("GoodsType", ""),
|
|
|
|
|
+ new JProperty("GoodsLineType", ""),
|
|
|
|
|
+ new JProperty("GlazeType", ""),
|
|
|
|
|
+ new JProperty("PlateLimitnum", ""),
|
|
|
|
|
+ new JProperty("Logo", ""),
|
|
|
|
|
+ new JProperty("Buildingno", ""),
|
|
|
|
|
+ new JProperty("GoodsLevelName", ""),
|
|
|
|
|
+ new JProperty("KingdeeCode", "")
|
|
|
|
|
+ )
|
|
|
|
|
+ )
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ using (IDataAccess conn = DataAccess.Create())
|
|
|
|
|
+ {
|
|
|
|
|
+ //开启事务
|
|
|
|
|
+ conn.BeginTransaction();
|
|
|
|
|
+
|
|
|
|
|
+ //获取业务数据,无入库动作才获取产品信息
|
|
|
|
|
+ if (Convert.ToBoolean(resultJson["success"]) == true)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (barCode != "" && wmsAction == "")
|
|
|
|
|
+ {
|
|
|
|
|
+ getGoodsData(conn, barCode);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ if (barCode == "")
|
|
|
|
|
+ {
|
|
|
|
|
+ resultJson["success"] = false;
|
|
|
|
|
+ resultJson["message"] = "缺少条码参数!";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //执行 【入库:in】【撤销入库:cancelin】 操作 入库撤销操作预留
|
|
|
|
|
+ if (Convert.ToBoolean(resultJson["success"]) == true)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (wmsAction == "in" || wmsAction == "cancelin")
|
|
|
|
|
+ {
|
|
|
|
|
+ string[] arrayBarcode = barCode.Split(',');
|
|
|
|
|
+ for (int i = 0; i < arrayBarcode.Length; i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ //调用标准计件方法===============================
|
|
|
|
|
+ WCF wcf = new WCF();
|
|
|
|
|
+ wcf.Para.Add(new JProperty("barcode", arrayBarcode[i].ToString()));
|
|
|
|
|
+ wcf.Para.Add(new JProperty("procedure_no", procedure_no));
|
|
|
|
|
+ wcf.Para.Add(new JProperty("road_no", road_no));
|
|
|
|
|
+ wcf.Para.Add(new JProperty("rack", rack));
|
|
|
|
|
+ wcf.Para.Add(new JProperty("position", position));
|
|
|
|
|
+ wcf.Para.Add(new JProperty("procedure_in", procedure_in));
|
|
|
|
|
+ string jsonStr = wcf.Get("/DKService/ExHGS3QR/AddWorkInfoHGS3_QR");
|
|
|
|
|
+
|
|
|
|
|
+ //这个接口很小的机率会带出html标签===============================================
|
|
|
|
|
+ if (jsonStr.IndexOf("<html>") > 0) jsonStr = jsonStr.Substring(0, jsonStr.IndexOf("<html>"));
|
|
|
|
|
+ if (jsonStr.IndexOf("<!DOCTYPEhtml>") > 0) jsonStr = jsonStr.Substring(0, jsonStr.IndexOf("<!DOCTYPEhtml>"));
|
|
|
|
|
+ //xuwei fix 2022-05-28 有时会带出 DOCTYPEhtml标签
|
|
|
|
|
+ jsonStr = jsonStr.Replace("<!DOCTYPEhtml>", "");
|
|
|
|
|
+
|
|
|
|
|
+ jsonStr = jsonStr.Replace("\\u000d\\u000a", "")
|
|
|
|
|
+ .Replace("\\n", "").Replace("\\", "").Replace(" ", "")
|
|
|
|
|
+ .Replace("产品编码:", " 产品编码 ")
|
|
|
|
|
+ .Replace("当前工序:", " 当前工序 ")
|
|
|
|
|
+ .Replace("可到工序:", " 可到工序 ")
|
|
|
|
|
+ .Replace("{\"d\":\"", "")
|
|
|
|
|
+ .Replace("\"}\"}", "\"}")
|
|
|
|
|
+ .Replace("<!DOCTYPEhtml>", "")
|
|
|
|
|
+ ;
|
|
|
|
|
+
|
|
|
|
|
+ Curtain.Log.Logger.Debug(context.Request.UserHostAddress + "\r\n" + context.Request.Url + "\r\n" + jsonStr);
|
|
|
|
|
+
|
|
|
|
|
+ string apiResult = "";
|
|
|
|
|
+ //处理输出结果 OK开头成功 NOK开头失败
|
|
|
|
|
+ JObject json = JObject.Parse(jsonStr);
|
|
|
|
|
+ bool apiStatus = false;
|
|
|
|
|
+ apiStatus = Convert.ToBoolean(json["success"]);
|
|
|
|
|
+ apiResult = jsonStr;
|
|
|
|
|
+ //HttpContext.Current.Response.Write(apiResult);
|
|
|
|
|
+
|
|
|
|
|
+ //记录接口调用日志
|
|
|
|
|
+ Hashtable ht = new Hashtable();
|
|
|
|
|
+ ht.Add("barcode", arrayBarcode[i].ToString());
|
|
|
|
|
+ ht.Add("procedure_no", procedure_no);
|
|
|
|
|
+ ht.Add("road_no", road_no);
|
|
|
|
|
+ ht.Add("rack", rack);
|
|
|
|
|
+ ht.Add("position", position);
|
|
|
|
|
+ ht.Add("procedure_in", procedure_in);
|
|
|
|
|
+
|
|
|
|
|
+ int apiId = Convert.ToInt32(procedure_no.Replace("_", "") + road_no + Math.Abs(Convert.ToInt32(procedure_in)));
|
|
|
|
|
+ arrayBarcode[i] = arrayBarcode[i].Replace("2c%", ",");
|
|
|
|
|
+ int apiBarcodeCount = arrayBarcode[i].Split(',').Length;
|
|
|
|
|
+ string apiUrl = "http://" + HttpContext.Current.Request.Url.Host + ":" + HttpContext.Current.Request.Url.Port.ToString() + "/api/DKService/ExHGS3QR/AddWorkInfoHGS3_QR/?" + JsonClient.ParaToString(ht);
|
|
|
|
|
+ ApiLog.WriteApiLog("立库_扫码", apiUrl, apiStatus, apiResult, apiId, apiBarcodeCount);
|
|
|
|
|
+ //===============================================
|
|
|
|
|
+
|
|
|
|
|
+ if (Convert.ToBoolean(json["success"]) == true)
|
|
|
|
|
+ {
|
|
|
|
|
+ WarehostingFlag = true;
|
|
|
|
|
+ //message += "条码[" + arrayBarcode[i] + "]入库成功,";
|
|
|
|
|
+ doWmsAction(conn, arrayBarcode[i], wmsAction, WarehostingFlag);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ if (wmsAction == "in")
|
|
|
|
|
+ {
|
|
|
|
|
+ WarehostingFlag = false;
|
|
|
|
|
+ message += json["message"].ToString() + ",";
|
|
|
|
|
+ doWmsAction(conn, arrayBarcode[i], wmsAction, WarehostingFlag);
|
|
|
|
|
+ }
|
|
|
|
|
+ else if (wmsAction == "cancelin")
|
|
|
|
|
+ {
|
|
|
|
|
+ //resultJson["success"] = false;
|
|
|
|
|
+ //resultJson["message"] = "产品撤销入库失败!";
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //提交事务
|
|
|
|
|
+ if (Convert.ToBoolean(resultJson["success"]) == true)
|
|
|
|
|
+ {
|
|
|
|
|
+ conn.Commit();
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ conn.Rollback();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //输出JSON数据
|
|
|
|
|
+ context.Response.Write(resultJson.ToString());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //获取业务数据
|
|
|
|
|
+ private void getGoodsData(IDataAccess conn, string barCode)
|
|
|
|
|
+ {
|
|
|
|
|
+ //业务数据读取
|
|
|
|
|
+ DataTable dt = conn.ExecuteDatatable(@"
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ T.GOODSNAME,
|
|
|
|
|
+ T.GOODSCODE,
|
|
|
|
|
+ T.GOODSSPECIFICATION,
|
|
|
|
|
+ T.GOODSMODEL,
|
|
|
|
|
+ T.GOODSTYPENAME,
|
|
|
|
|
+ T.GOODS_LINE_TYPE,
|
|
|
|
|
+ T.DICTIONARYVALUE,
|
|
|
|
|
+ T.PLATELIMITNUM,
|
|
|
|
|
+ T.LOGONAME,
|
|
|
|
|
+ T.BUILDINGNO,
|
|
|
|
|
+ T.GOODSLEVELNAME,
|
|
|
|
|
+ TMGK.KingdeeCode
|
|
|
|
|
+ FROM
|
|
|
|
|
+ (
|
|
|
|
|
+ SELECT DISTINCT
|
|
|
|
|
+ TPGD.GOODSNAME,
|
|
|
|
|
+ TPGD.GOODSCODE,
|
|
|
|
|
+ TMG.GOODSSPECIFICATION,
|
|
|
|
|
+ TMG.GOODSMODEL,
|
|
|
|
|
+ TMGT.GOODSTYPENAME,
|
|
|
|
|
+ CASE
|
|
|
|
|
+ TMG.GOODS_LINE_TYPE
|
|
|
|
|
+ WHEN 0 THEN
|
|
|
|
|
+ '普通' ELSE '高压'
|
|
|
|
|
+ END AS GOODS_LINE_TYPE,
|
|
|
|
|
+ TMDC.DICTIONARYVALUE,
|
|
|
|
|
+ 1 AS PLATELIMITNUM,
|
|
|
|
|
+ TML.LOGONAME,
|
|
|
|
|
+ (
|
|
|
|
|
+ CASE
|
|
|
|
|
+
|
|
|
|
|
+ WHEN TPPC.PROCEDUREID = 35 THEN
|
|
|
|
|
+ '重烧'
|
|
|
|
|
+ WHEN TPPC.PROCEDUREID != 35 THEN
|
|
|
|
|
+ ( CASE WHEN TPG.BUILDINGNO = '1#' THEN '一期' WHEN TPG.BUILDINGNO = '2#' THEN '二期' WHEN TPG.BUILDINGNO = '3#' THEN '三期' END )
|
|
|
|
|
+ END
|
|
|
|
|
+ ) AS BUILDINGNO,
|
|
|
|
|
+ TMGL.GOODSLEVELNAME,
|
|
|
|
|
+ NULL AS KingdeeCode
|
|
|
|
|
+ FROM
|
|
|
|
|
+ TP_PM_GROUTINGDAILYDETAIL TPGD
|
|
|
|
|
+ LEFT JOIN TP_PM_GlazetypeRecord TPGR ON TPGR.GROUTINGDAILYDETAILID = TPGD.GROUTINGDAILYDETAILID
|
|
|
|
|
+ LEFT JOIN TP_MST_GOODS TMG ON TPGD.GOODSID = TMG.GOODSID
|
|
|
|
|
+ LEFT JOIN TP_MST_GOODSTYPE TMGT ON TMG.GOODSTYPEID = TMGT.GOODSTYPEID
|
|
|
|
|
+ LEFT JOIN TP_MST_DATADICTIONARY TMDC ON TPGR.NEWGLAZETYPEID = TMDC.DICTIONARYID
|
|
|
|
|
+ LEFT JOIN TP_MST_LOGO TML ON TPGD.LOGOID = TML.LOGOID
|
|
|
|
|
+ LEFT JOIN TP_PC_GROUTINGLINE TPG ON TPGD.GROUTINGLINEID = TPG.GROUTINGLINEID
|
|
|
|
|
+ LEFT JOIN TP_MST_GOODSLEVEL TMGL ON TPGD.GOODSLEVELTYPEID = TMGL.GOODSLEVELTYPEID
|
|
|
|
|
+ LEFT JOIN TP_PM_PRODUCTIONDATA TPPD ON TPGD.BARCODE = TPPD.BARCODE
|
|
|
|
|
+ LEFT JOIN TP_PC_PROCEDURE TPPC ON TPPD.PROCEDUREID = TPPC.PROCEDUREID
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ (
|
|
|
|
|
+ CASE
|
|
|
|
|
+ WHEN(
|
|
|
|
|
+ SELECT
|
|
|
|
|
+ COUNT( * )
|
|
|
|
|
+ FROM
|
|
|
|
|
+ TP_PM_PRODUCTIONDATA TPPD
|
|
|
|
|
+ LEFT JOIN TP_PC_PROCEDURE TPPC ON TPPD.PROCEDUREID = TPPC.PROCEDUREID
|
|
|
|
|
+ WHERE
|
|
|
|
|
+ TPPD.PROCEDUREID = 35
|
|
|
|
|
+ AND TPPD.BARCODE = @BARCODE@
|
|
|
|
|
+ ) = 1 THEN
|
|
|
|
|
+ 35 ELSE TPPD.PROCEDUREID
|
|
|
|
|
+ END
|
|
|
|
|
+ ) = TPPD.PROCEDUREID
|
|
|
|
|
+ AND TPGD.VALUEFLAG = 1
|
|
|
|
|
+ AND TMDC.DICTIONARYTYPE = 'TPC002'
|
|
|
|
|
+ AND TPPD.BARCODE = @BARCODE@
|
|
|
|
|
+ ) T
|
|
|
|
|
+ LEFT JOIN TP_MST_GOODSKINGDEECODE TMGK ON T.GOODSCODE = TMGK.GOODSCODE
|
|
|
|
|
+ AND T.DICTIONARYVALUE = TMGK.GLAZETYPE
|
|
|
|
|
+ AND T.LOGONAME = TMGK.LOGONAME
|
|
|
|
|
+ ",
|
|
|
|
|
+ new CDAParameter("BARCODE", barCode)
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
|
|
+ {
|
|
|
|
|
+ resultJson["success"] = true;
|
|
|
|
|
+ resultJson["message"] = "数据读取成功!";
|
|
|
|
|
+ resultJson["goods"]["GoodsName"] = dt.Rows[0]["GOODSNAME"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GoodsCode"] = dt.Rows[0]["GOODSCODE"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GoodsSpecification"] = dt.Rows[0]["GOODSSPECIFICATION"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GoodsModel"] = dt.Rows[0]["GOODSMODEL"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GoodsType"] = dt.Rows[0]["GOODSTYPENAME"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GoodsLineType"] = dt.Rows[0]["GOODS_LINE_TYPE"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GlazeType"] = dt.Rows[0]["DICTIONARYVALUE"].ToString();
|
|
|
|
|
+ resultJson["goods"]["PlateLimitnum"] = dt.Rows[0]["PLATELIMITNUM"].ToString();
|
|
|
|
|
+ resultJson["goods"]["Logo"] = dt.Rows[0]["LOGONAME"].ToString();
|
|
|
|
|
+ resultJson["goods"]["Buildingno"] = dt.Rows[0]["BUILDINGNO"].ToString();
|
|
|
|
|
+ resultJson["goods"]["GoodsLevelName"] = dt.Rows[0]["GOODSLEVELNAME"].ToString();
|
|
|
|
|
+ resultJson["goods"]["KingdeeCode"] = dt.Rows[0]["KingdeeCode"].ToString();
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ resultJson["success"] = false;
|
|
|
|
|
+ resultJson["message"] = "条码错误或不存在此产品!";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //写日志
|
|
|
|
|
+ ///writeLog(conn);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //入库方法
|
|
|
|
|
+ private void doWmsAction(IDataAccess conn, string barCode, string action, bool WarehostingFlag)
|
|
|
|
|
+ {
|
|
|
|
|
+ int Count = 0;
|
|
|
|
|
+ string sql;
|
|
|
|
|
+ CDAParameter[] para;
|
|
|
|
|
+ //入库操作(条码支持多个,用逗号分开)
|
|
|
|
|
+ if (action == "in")
|
|
|
|
|
+ {
|
|
|
|
|
+ //入库操作
|
|
|
|
|
+ #region 入库校验有一个不成功,则全部入库失败
|
|
|
|
|
+ //DataTable dt = conn.ExecuteDatatable(@"SELECT WMSACTION,BARCODE FROM TP_PM_GOODSWHETHERWAREHOUSING WHERE BARCODE = @BARCODE@ AND VALUEFLAG = 1",
|
|
|
|
|
+ // new CDAParameter("BARCODE", arrayBarcode[i].ToString())
|
|
|
|
|
+ // );
|
|
|
|
|
+ ////入库
|
|
|
|
|
+ //if (dt.Rows.Count != 0)
|
|
|
|
|
+ //{
|
|
|
|
|
+ // if (dt.Rows[0]["WMSACTION"].ToString() == "0")
|
|
|
|
|
+ // {
|
|
|
|
|
+ // sql = @"UPDATE TP_PM_GOODSWHETHERWAREHOUSING SET WMSACTION=@WMSACTION@ WHERE BARCODE = @BARCODE@";
|
|
|
|
|
+ // para = new CDAParameter[]{
|
|
|
|
|
+ // new CDAParameter("BARCODE",arrayBarcode[i].ToString()),
|
|
|
|
|
+ // new CDAParameter("WMSACTION",1)
|
|
|
|
|
+ // };
|
|
|
|
|
+ // Count += conn.ExecuteNonQuery(sql, para);
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ // resultJson["success"] = false;
|
|
|
|
|
+ // resultJson["message"] = "产品入库失败!条码为:" + dt.Rows[0]["BARCODE"] + "的产品已经入库";
|
|
|
|
|
+ // return;
|
|
|
|
|
+ // }
|
|
|
|
|
+ //}
|
|
|
|
|
+ //else
|
|
|
|
|
+ //{
|
|
|
|
|
+ // sql = @"INSERT INTO TP_PM_GOODSWHETHERWAREHOUSING(BARCODE,WMSACTION)VALUES(@BARCODE@,@WMSACTION@)";
|
|
|
|
|
+ // para = new CDAParameter[]{
|
|
|
|
|
+ // new CDAParameter("BARCODE",arrayBarcode[i].ToString()),
|
|
|
|
|
+ // new CDAParameter("WMSACTION",1)
|
|
|
|
|
+ // };
|
|
|
|
|
+ // Count += conn.ExecuteNonQuery(sql, para);
|
|
|
|
|
+ //}
|
|
|
|
|
+ #endregion
|
|
|
|
|
+
|
|
|
|
|
+ #region 失败的不入库 成功的入库
|
|
|
|
|
+ try
|
|
|
|
|
+ {
|
|
|
|
|
+ if (WarehostingFlag == true)
|
|
|
|
|
+ {
|
|
|
|
|
+ sql = @"INSERT INTO TP_PM_GOODSWHETHERWAREHOUSING(BARCODE,WMSACTION)VALUES(@BARCODE@,@WMSACTION@)";
|
|
|
|
|
+ para = new CDAParameter[]{
|
|
|
|
|
+ new CDAParameter("BARCODE",barCode),
|
|
|
|
|
+ new CDAParameter("WMSACTION",1),
|
|
|
|
|
+ };
|
|
|
|
|
+ Count = conn.ExecuteNonQuery(sql, para);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (Count == 1)
|
|
|
|
|
+ {
|
|
|
|
|
+ message += "条码[" + barCode + "]入库成功,";
|
|
|
|
|
+ resultJson["success"] = true;
|
|
|
|
|
+ resultJson["message"] = message;
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ resultJson["success"] = true;
|
|
|
|
|
+ resultJson["message"] = message;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ catch (Exception)
|
|
|
|
|
+ {
|
|
|
|
|
+ message += "条码[" + barCode + "] 已经入库了,";
|
|
|
|
|
+ resultJson["success"] = true;
|
|
|
|
|
+ resultJson["message"] = message;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ #endregion
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //入库撤销操作 预留内容(条码支持多个,用逗号分开)
|
|
|
|
|
+ if (action == "cancelin")
|
|
|
|
|
+ {
|
|
|
|
|
+ //调用计件撤销方法===============================
|
|
|
|
|
+ //DataTable dt = conn.ExecuteDatatable(@"SELECT WMSACTION,BARCODE FROM TP_PM_GOODSWHETHERWAREHOUSING WHERE BARCODE = @BARCODE@ AND VALUEFLAG = 1",
|
|
|
|
|
+ //new CDAParameter("BARCODE", barCode)
|
|
|
|
|
+ //);
|
|
|
|
|
+ //if (dt.Rows.Count != 0)
|
|
|
|
|
+ //{
|
|
|
|
|
+ // if (dt.Rows[0]["WMSACTION"].ToString() == "0")
|
|
|
|
|
+ // {
|
|
|
|
|
+ // resultJson["success"] = false;
|
|
|
|
|
+ // resultJson["message"] = "产品撤销入库失败!条码为:" + dt.Rows[0]["BARCODE"] + "的产品已经撤销入库";
|
|
|
|
|
+ // return;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // sql = @"UPDATE TP_PM_GOODSWHETHERWAREHOUSING SET WMSACTION=@WMSACTION@ WHERE BARCODE = @BARCODE@";
|
|
|
|
|
+ // para = new CDAParameter[]{
|
|
|
|
|
+ // new CDAParameter("BARCODE",barCode),
|
|
|
|
|
+ // new CDAParameter("WMSACTION",0)
|
|
|
|
|
+ // };
|
|
|
|
|
+ // Count += conn.ExecuteNonQuery(sql, para);
|
|
|
|
|
+ //}
|
|
|
|
|
+ //else
|
|
|
|
|
+ //{
|
|
|
|
|
+ // resultJson["success"] = false;
|
|
|
|
|
+ // resultJson["message"] = "产品撤销入库失败!条码不存在";
|
|
|
|
|
+ // return;
|
|
|
|
|
+ //}
|
|
|
|
|
+ }
|
|
|
|
|
+ //if (Count == arrayBarcode.Length)
|
|
|
|
|
+ //{
|
|
|
|
|
+ // if (action == "in")
|
|
|
|
|
+ // {
|
|
|
|
|
+ // resultJson["success"] = true;
|
|
|
|
|
+ // resultJson["message"] = "产品入库成功!";
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else if (action == "cancelin")
|
|
|
|
|
+ // {
|
|
|
|
|
+ // resultJson["success"] = true;
|
|
|
|
|
+ // resultJson["message"] = "产品撤销入库成功!";
|
|
|
|
|
+ // }
|
|
|
|
|
+ //}
|
|
|
|
|
+ //else
|
|
|
|
|
+ //{
|
|
|
|
|
+ // if (action == "in")
|
|
|
|
|
+ // {
|
|
|
|
|
+ // resultJson["success"] = false;
|
|
|
|
|
+ // resultJson["message"] = "产品入库失败!";
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else if (action == "cancelin")
|
|
|
|
|
+ // {
|
|
|
|
|
+ // resultJson["success"] = false;
|
|
|
|
|
+ // resultJson["message"] = "产品撤销入库失败!";
|
|
|
|
|
+ // }
|
|
|
|
|
+ //}
|
|
|
|
|
+
|
|
|
|
|
+ //===============================================
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //写日志
|
|
|
|
|
+ //writeLog(conn);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //日志记录(访问者IP,访问链接,访问参数,返回结果,访问时间)
|
|
|
|
|
+ //private void writeLog(IDataAccess conn)
|
|
|
|
|
+ //{
|
|
|
|
|
+ // if(Convert.ToBoolean(resultJson["success"]) == true)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // Logger.Info("IP:" + HttpContext.Current.Request.UserHostAddress + " "+"访问链接:"+ HttpContext.Current.Request.UrlReferrer +" "+ " " +
|
|
|
|
|
+ // "条码:" + barCode + " 入库标识:"+ wmsAction +" " +" 输出:" + resultJson.ToString());
|
|
|
|
|
+ // }
|
|
|
|
|
+ // else
|
|
|
|
|
+ // {
|
|
|
|
|
+ // Logger.Info("IP:" + HttpContext.Current.Request.UserHostAddress +"访问链接:"+ HttpContext.Current.Request.UrlReferrer + " " +
|
|
|
|
|
+ // "条码:"+ barCode +" 入库标识:"+ wmsAction +" "+ resultJson["message"] + "输出:" + resultJson.ToString());
|
|
|
|
|
+ // }
|
|
|
|
|
+
|
|
|
|
|
+ //}
|
|
|
|
|
+
|
|
|
|
|
+ public bool IsReusable
|
|
|
|
|
+ {
|
|
|
|
|
+ get
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|