using HH.WMS.BLL; using HH.WMS.BLL.Basic; using HH.WMS.Entitys; using HH.WMS.Entitys.Basic; using HH.WMS.Entitys.Common; using HH.WMS.WebApi.Areas.Common.Controllers; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace HH.WMS.WebApi.Areas.Basic { public class PrintTagController : BaseController { [HttpPost] public OperateResult PrintItemTag(List itemTags) { try { string inorderFrom = itemTags[0].CN_S_IN_ORDERFROM; string inOrder = itemTags[0].CN_S_IN_ORDER; string arrivalNo = itemTags[0].CN_S_ARRIVAL_NO; DataTable dt = null; string fromOp = ""; TN_WM_IN_MSTEntity inOrderFromModel =null; TN_WM_ARRIVAL_MSTEntity arrivalModel=null; TN_WM_INCREASE_INVENTORY_MSTEntity inOrderModel=null; if (!string.IsNullOrEmpty(inorderFrom)) { //入库订单 fromOp = "入库订单"; inOrderFromModel = BLLCreator.Create>().GetSingleEntity(new { CN_S_OP_NO = inOrder }); inOrderFromModel.DTLEntity= BLLCreator.Create>().GetList(new { CN_S_OP_NO = inOrder }); } else if (!string.IsNullOrEmpty(arrivalNo)) { //到货单 fromOp = "到货单"; arrivalModel = BLLCreator.Create>().GetSingleEntity(new { CN_S_OP_NO = inOrder }); arrivalModel.DTLEntity = BLLCreator.Create>().GetList(new { CN_S_OP_NO = inOrder }); } else if (!string.IsNullOrEmpty(inOrder)) { //入库单 fromOp = "入库单"; inOrderModel = BLLCreator.Create>().GetSingleEntity(new { CN_S_OP_NO = inOrder }); inOrderModel.DTLEntity = BLLCreator.Create>().GetList(new { CN_S_OP_NO = inOrder }); } List printbarlist = new List(); List Maplist = new List(); foreach (MONGO_PRINT_BARCODE printbar in itemTags)//循环打印 { AutoBomItemEntity itemEntity = BLLCreator.Create().GetItem(printbar.CN_S_ITEM_CODE); MONGO_KEYTYPE_MAP Map = new MONGO_KEYTYPE_MAP();//码值对照表 Map.Key = printbar.CN_S_UNIQUE_CODE; Map.Type = "1"; printbar.CN_C_IS_SN = itemEntity.CN_C_IS_SN; printbar.CN_C_IS_WARRANTY_PARTS = itemEntity.CN_C_IS_WARRNTY_PARTS; printbar.CN_N_QGP = (int)itemEntity.CN_F_WARRNTY_PARTS; printbar.CN_S_FIGURE_NO = itemEntity.CN_S_FIGURE_NO; printbar.CN_S_ITEM_NAME = itemEntity.CN_S_ITEM_NAME; printbar.CN_S_MODEL = itemEntity.CN_S_MODEL; printbar.CN_T_CREATE = DateTime.Now; switch (fromOp) { case "入库订单": TN_WM_IN_DTLEntity inDtlModel = inOrderFromModel.DTLEntity.Find(x=>x.CN_S_ITEM_CODE.Equals(printbar.CN_S_ITEM_CODE)); printbar.CN_S_IN_ORDERFROM = inOrder; printbar.CN_S_PRODUCTION_BATCH =inDtlModel.CN_S_PRODUCTION_BATCH; printbar.CN_T_PRODUCTION = inDtlModel.CN_T_PRODUCTION; printbar.CN_S_ITEM_STATE = inDtlModel.CN_S_ITEM_STATE; printbar.CN_S_LOT_NO = inDtlModel.CN_S_LOT_CODE; printbar.CN_S_OWNER = inOrderFromModel.CN_S_OWNER; printbar.CN_S_VENDOR_NAME = inOrderFromModel.CN_S_VENDOR_NAME; printbar.CN_S_VENDOR_NO = inOrderFromModel.CN_S_VENDOR_NO; printbar.CN_T_EXPIRATION = inOrderFromModel.CN_T_EXPECT_DATE; break; case "到货单": TN_WM_ARRIVAL_DTLEntity arrivalDtlModel = arrivalModel.DTLEntity.Find(x => x.CN_S_ITEM_CODE.Equals(printbar.CN_S_ITEM_CODE)); printbar.CN_S_ARRIVAL_NO = inOrder; printbar.CN_S_PRODUCTION_BATCH = arrivalDtlModel.CN_S_PRODUCTION_BATCH; printbar.CN_S_ITEM_STATE = arrivalDtlModel.CN_S_ITEM_STATE; printbar.CN_S_LOT_NO = arrivalModel.CN_S_LOT_CODE; //printbar.CN_S_OWNER = arrivalModel.; printbar.CN_S_VENDOR_NAME = arrivalModel.CN_S_VENDOR_NAME; printbar.CN_S_VENDOR_NO = arrivalModel.CN_S_VENDOR_NO; printbar.CN_T_EXPIRATION = arrivalDtlModel.CN_T_EXPIRATION; printbar.CN_T_PRODUCTION = arrivalDtlModel.CN_T_PRODUCTION; break; case "入库单": TN_WM_INCREASE_INVENTORY_DTLEntity inOrderDtlModel = inOrderModel.DTLEntity.Find(x => x.CN_S_ITEM_CODE.Equals(printbar.CN_S_ITEM_CODE)); printbar.CN_S_IN_ORDER = inOrder; printbar.CN_S_LOT_NO = inOrderModel.CN_S_LOT_NO; printbar.CN_S_ITEM_STATE = inOrderDtlModel.CN_S_ITEM_STATE; printbar.CN_S_OWNER = inOrderModel.CN_S_OWNER; printbar.CN_S_PRODUCTION_BATCH = inOrderDtlModel.CN_S_PRODUCTION_BATCH; printbar.CN_S_VENDOR_NAME = inOrderModel.CN_S_VENDOR_NAME; printbar.CN_S_VENDOR_NO = inOrderModel.CN_S_VENDOR_NO; printbar.CN_T_EXPIRATION = inOrderDtlModel.CN_T_EXPIRATION; printbar.CN_T_PRODUCTION = inOrderDtlModel.CN_T_PRODUCTION; break; } printbarlist.Add(printbar); Maplist.Add(Map); } if (printbarlist.Any() && Maplist.Any()) { bool b = BLLCreator.Create().AddPrintBarcode(printbarlist); b= BLLCreator.Create().AddKeyType(Maplist); if (!b) { return OperateResult.Error("保存失败"); } } return OperateResult.Succeed("", null); } catch (Exception ex) { return OperateResult.Error(ex.Message.ToString()); } } /// /// PDA接口-获取打码信息 /// /// 条码 /// /// [HANHE(XDL)] CREATED BY 2019-03-15 [HttpGet] public string GetBarCodeEntity(string scanCode) { try { return ValidateToken(t => { MONGO_PRINT_BARCODE printBarCode = BLLCreator.Create().GetBarCodeEntity(scanCode); if (printBarCode != null) { return JsonConvert.SerializeObject(OperateResult.Succeed("", printBarCode)); } else { return JsonConvert.SerializeObject(OperateResult.Succeed("码值 " + scanCode + " 无效!", null)); } }); } catch (Exception ex) { return JsonConvert.SerializeObject(OperateResult.Succeed("抛异常!", ex.Message.ToString())); } } } }