| | |
| | | if (response == null || response.code != "000") throw new Exception("æ¥å£è¿åæ°æ®æ¥é"); |
| | | var deviceNames = response.data.Select(x => x.name?.Trim()).Distinct().ToList(); |
| | | var containers = BaseDal.QueryData(x => deviceNames.Contains(x.deviceName)).ToList(); |
| | | if (containers == null || containers.Count < 1) return WebResponseContent.Instance.Error(); |
| | | List<Dt_Container> containersAdd = new List<Dt_Container>(); |
| | | List<Dt_Container> containersUp = new List<Dt_Container>(); |
| | | foreach (var item in response.data) |
| | |
| | | cool.AlarmInformation = item.message; |
| | | cool.ModifyDate = currentTime; |
| | | updateList.Add(cool); |
| | | if (cool.Alarm!="æ£å¸¸") |
| | | if (cool.Alarm != "æ£å¸¸") |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, $"å·æ{item.alarm}", item.message, MessageStatusEnum.Undisposed); |
| | | } |
| | |
| | | |
| | | if (codes.Count < 1) return content; |
| | | List<Dt_EquipmentAlarmInfor> equipmentAlarmInfors = BaseDal.QueryData(x => codes.Contains(x.RobotCode)); |
| | | if (equipmentAlarmInfors.Count < 1) return content; |
| | | List<Dt_EquipmentAlarmInfor> equipmentAlarmInforsAdd = new List<Dt_EquipmentAlarmInfor>(); |
| | | List<Dt_EquipmentAlarmInfor> equipmentAlarmInforsUp = new List<Dt_EquipmentAlarmInfor>(); |
| | | foreach (var item in response.data.robot) |
| | |
| | | } |
| | | if (string.Equals(item.status, nameof(DeviceStatus.Error), StringComparison.OrdinalIgnoreCase)) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm,"å°è½¦ç¼å·"+ item.robotCode, item.status); |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, "å°è½¦ç¼å·" + item.robotCode, item.status); |
| | | } |
| | | } |
| | | foreach (var item in response.data.sorters) |
| | |
| | | } |
| | | if (string.Equals(item.status, nameof(DeviceStatus.Error), StringComparison.OrdinalIgnoreCase)) |
| | | { |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, "忣å°åå"+ item.sorterCode, item.status); |
| | | _messageInfoService.AddMessageInfo(MessageGroupByEnum.EquipmentAlarm, "忣å°åå" + item.sorterCode, item.status); |
| | | } |
| | | } |
| | | if (equipmentAlarmInforsAdd.Count > 0) BaseDal.AddData(equipmentAlarmInforsAdd); |
| | |
| | | return content; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | List<object> lists = new List<object>(); |
| | | #region å·å»åº |
| | | string WareCodeLD = WarehouseEnum.å·å»åº.ObjToInt().ToString("000"); |
| | | List<Dt_InventoryInfo> inventoryInfosLD = BaseDal.QueryData(x => x.WarehouseCode == WareCodeLD); |
| | | object LDQty = new |
| | | var LDQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeLD).Sum(x => x.StockQuantity)); |
| | | lists.Add(new |
| | | { |
| | | name = WarehouseEnum.å·å»åº.ObjToString(), |
| | | count = inventoryInfosLD.Sum(x => x.StockQuantity).ObjToInt() |
| | | }; |
| | | lists.Add(LDQty); |
| | | count = LDQty |
| | | }); |
| | | #endregion |
| | | #region éº»ç²¾åº |
| | | string WareCodeMJ = WarehouseEnum.麻精åº.ObjToInt().ToString("000"); |
| | | List<Dt_InventoryInfo> inventoryInfosMJ = BaseDal.QueryData(x => x.WarehouseCode == WareCodeMJ); |
| | | object MJQty = new |
| | | var MJQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeMJ).Sum(x => x.StockQuantity)); |
| | | lists.Add(new |
| | | { |
| | | name = WarehouseEnum.麻精åº.ObjToString(), |
| | | count = inventoryInfosMJ.Sum(x => x.StockQuantity).ObjToInt() |
| | | }; |
| | | lists.Add(MJQty); |
| | | count = MJQty |
| | | }); |
| | | #endregion |
| | | #region å¤§ä»¶åº |
| | | string WareCodeDJ = WarehouseEnum.大件åº.ObjToInt().ToString("000"); |
| | | List<Dt_InventoryInfo> inventoryInfosDJ = BaseDal.QueryData(x => x.WarehouseCode == WareCodeDJ); |
| | | object DJQty = new |
| | | var DJQty = Convert.ToInt32(BaseDal.QueryData(x => x.WarehouseCode == WareCodeDJ).Sum(x => x.StockQuantity)); |
| | | lists.Add(new |
| | | { |
| | | name = WarehouseEnum.大件åº.ObjToString(), |
| | | count = inventoryInfosDJ.Sum(x => x.StockQuantity).ObjToInt() |
| | | }; |
| | | lists.Add(DJQty); |
| | | count = DJQty |
| | | }); |
| | | #endregion |
| | | content.OK(data: lists); |
| | | } |
| | |
| | | /// </summary> |
| | | [Description("åºåºåæ¥è¦")] |
| | | OutOrderAlarm, |
| | | |
| | | /// <summary> |
| | | /// ERP忥䏿¸¸æ¥è¦ |
| | | /// </summary> |
| | | [Description("ä¸ERP忥æ¥è¦")] |
| | | SynchronismAlarm |
| | | } |
| | | |
| | | public enum MessageStatusEnum |
| | |
| | | namespace WIDESEA_DTO.Outbound |
| | | { |
| | | [ModelValidate] |
| | | public class DeliveryOrderDetailAddDTO |
| | | { |
| | | public int id { get; set; } |
| | | /// <summary> |
| | | /// ç©æç¼å· |
| | | /// </summary> |
| | | [PropertyValidate("ç©æç¼å·", NotNullAndEmpty = true)] |
| | | public string goods_no { get; set; } |
| | | /// <summary> |
| | | /// æ¹æ¬¡å· |
| | | /// </summary> |
| | | public string batch_num { get; set; } |
| | | /// <summary> |
| | | /// ææ |
| | | /// </summary> |
| | | public string exp_date { get; set; } |
| | | /// <summary> |
| | | /// è´§ä½å· |
| | | /// </summary> |
| | | public string locationCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ°é |
| | | /// </summary> |
| | | [PropertyValidate("åæ®æ°é", NotNullAndEmpty = true, MinValue = 0, IsContainMinValue = false)] |
| | | public int order_Outqty { get; set; } |
| | | } |
| | | public class OutboundOrderDetailAddDTO |
| | | { |
| | | /// <summary> |
| | |
| | | /// åºåæ°é(ä¸å¡æ°é) |
| | | /// </summary> |
| | | public decimal business_qty { get; set; } |
| | | public decimal actual_qty { get; set; } |
| | | /// <summary> |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | WebResponseContent GetInOrder(); |
| | | WebResponseContent GetOutOrder(); |
| | | /// <summary> |
| | | /// è·å䏿¸¸å
¥åºè®¢å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | WebResponseContent GetUpstreamOrder(); |
| | | /// <summary> |
| | | /// è·å䏿¸¸åºåºåæ°æ® |
| | | /// </summary> |
| | | /// <param name="searchDate"></param> |
| | | /// <returns></returns> |
| | | WebResponseContent GetUpstreamOutOrder(); |
| | | |
| | | /// <summary> |
| | | /// ç»ä¸æ¸¸wcså
¥åºå |
| | |
| | | /// <param name="goods_no">ç©æç¼ç </param> |
| | | /// <param name="batch_num">æ¹æ¬¡å·</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetInventoryList(string goods_no,string batch_num); |
| | | public WebResponseContent GetInventoryList(int[] key); |
| | | |
| | | //public WebResponseContent CreateAllocatInOut(Dt_MaterielInfo materielInfo); |
| | | |
| | |
| | | _materielInfoService = materielInfoService; |
| | | _messageInfoService = messageInfoService; |
| | | } |
| | | #region è·åERPå
¥åºå |
| | | static string SearchInDate = "2025-10-30 00:00:00"; |
| | | /// <summary> |
| | | /// è·å䏿¸¸ç³»ç»çå
¥åºå |
| | | /// </summary> |
| | | /// <param name="SearchInDate"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GetUpstreamOrder() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | // 请æ±å°å |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/inOrder"; |
| | | //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363009261"; |
| | | |
| | | if (string.IsNullOrEmpty(SearchInDate)) SearchInDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | //// 请æ±åæ° |
| | | var requestData = new |
| | | { |
| | | searchDate = SearchInDate |
| | | //searchDate = "2022-10-10 20:45:16" // æ£ç¡®çæ ¼å¼ |
| | | }; |
| | | SearchInDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | // åèµ·è¯·æ± |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | |
| | | // ååºåå |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); |
| | | |
| | | if (response == null || response.resultCode != "0") |
| | | { |
| | | // è°ç¨å¼å¸¸æ¥å£ |
| | | //SendErrorToUpstream(1, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°å
¥åºåæ°æ®"); |
| | | } |
| | | var ordernos = response.data.Select(x => x.order_no).ToList(); |
| | | // è·åææå·²åå¨çå
¥åºåå· |
| | | var existingOrderNos = _cabinOrderServices.Db.CopyNew().Queryable<Dt_CabinOrder>() |
| | | .Where(x => ordernos.Contains(x.Order_no)) |
| | | .Select(x => x.Order_no) |
| | | .Distinct().ToList(); |
| | | |
| | | // è¿æ»¤æå·²åå¨çå
¥åºå |
| | | var newOrders = response.data |
| | | .Where(order => !existingOrderNos.Contains(order.order_no)) |
| | | .ToList(); |
| | | |
| | | if (newOrders.Count < 1) |
| | | { |
| | | return responseContent.OK("ææå
¥åºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | | |
| | | //åå¨å
¥åºåå· |
| | | List<string> orderNos = new List<string>(); |
| | | string name = string.Empty; |
| | | MessageGroupByEnum messageGroupBy = MessageGroupByEnum.InOrderAlarm; |
| | | MessageStatusEnum messageStatus = MessageStatusEnum.Emergency; |
| | | foreach (var order in newOrders) |
| | | { |
| | | try |
| | | { |
| | | if (order.order_type == "1") //æ£å¸¸å
¥åº |
| | | { |
| | | name = "å建æ£å¸¸å
¥åºå"; |
| | | responseContent = _cabinOrderServices.CreateInboundOrder(order); |
| | | if (!responseContent.Status) throw new Exception(responseContent.Message); |
| | | List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>; |
| | | if (dt_CabinOrders != null) |
| | | _cabinOrderServices.Db.InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | } |
| | | else if (order.order_type == "3")//å
¥åºéæ |
| | | { |
| | | messageGroupBy = MessageGroupByEnum.OutOrderAlarm; |
| | | name = "å建å
¥åºéè´§å"; |
| | | //å建åºåºå |
| | | #region 转æ¢ä¸ºåºåºå |
| | | UpstramOutOrderInfo upstramOutOrderInfo = new UpstramOutOrderInfo() |
| | | { |
| | | order_no = order.order_no, |
| | | order_type = order.order_type, |
| | | warehouse_no = order.warehouse_no, |
| | | details = new List<UpstreamOutOrderDetail>() |
| | | }; |
| | | foreach (var item in order.details) |
| | | { |
| | | UpstreamOutOrderDetail detail = new UpstreamOutOrderDetail() |
| | | { |
| | | batch_num = item.batch_num, |
| | | goods_no = item.goods_no, |
| | | order_qty = item.order_qty, |
| | | exp_date = item.exp_date, |
| | | }; |
| | | upstramOutOrderInfo.details.Add(detail); |
| | | } |
| | | var content = _deliveryOrderServices.CreateOutboundOrder(upstramOutOrderInfo); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | #endregion |
| | | } |
| | | else if (order.order_type == "5")//æ¥æº¢å
¥åº |
| | | { |
| | | name = "å建ççå
¥åºå"; |
| | | messageStatus = MessageStatusEnum.Undisposed; |
| | | var content = _cabinOrderServices.CreateCheckInOrder(order); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus); |
| | | //SendErrorToUpstream(1, "", ex.Message, ""); |
| | | //return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | }; |
| | | return responseContent.OK("忥å
¥åºåæå"); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // å
¨å±å¼å¸¸æ¶ï¼ä¹æ¨éå¼å¸¸ç»ä¸æ¸¸ |
| | | //SendErrorToUpstream(1, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region è·åERPåºåºå |
| | | static string SearchOutDate = "2025-10-30 00:00:00"; |
| | | public WebResponseContent GetUpstreamOutOrder() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/outOrder"; |
| | | //var url = "http://127.0.0.1:4523/m1/5660322-5340849-default/GYZ2/95fck/outOrder"; |
| | | if (string.IsNullOrEmpty(SearchOutDate)) SearchOutDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | //// 请æ±åæ° |
| | | var requestData = new |
| | | { |
| | | searchDate = SearchOutDate |
| | | //searchDate = "2022-10-10 20:45:16" // æ£ç¡®çæ ¼å¼ |
| | | }; |
| | | SearchOutDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result); |
| | | |
| | | if (response == null || response.resultCode != "0") |
| | | { |
| | | //SendErrorToUpstream(3, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response?.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°åºåºåæ°æ®"); |
| | | } |
| | | var ordernos = response.data.Select(x => x.order_no).ToList(); |
| | | // å·²åå¨åºåºåå· |
| | | var existingOutOrderNos = _deliveryOrderServices.Db.CopyNew().Queryable<Dt_DeliveryOrder>() |
| | | .Where(x => ordernos.Contains(x.Out_no)) |
| | | .Select(x => x.Out_no) |
| | | .Distinct().ToList(); |
| | | |
| | | // æ°åºåºå |
| | | var newOutOrders = response.data |
| | | .Where(outorder => !existingOutOrderNos.Contains(outorder.order_no)) |
| | | .ToList(); |
| | | |
| | | List<string> order_no = newOutOrders.Select(x => x.order_no).ToList(); |
| | | |
| | | if (newOutOrders.Count < 1) |
| | | { |
| | | return responseContent.OK("ææåºåºåå·²åå¨ï¼æ éæ°å¢"); |
| | | } |
| | | |
| | | List<Dt_DeliveryOrder> _DeliveryOrders = new List<Dt_DeliveryOrder>(); |
| | | List<string> orderNos = new List<string>(); |
| | | string name = string.Empty; |
| | | MessageGroupByEnum messageGroupBy = MessageGroupByEnum.OutOrderAlarm; |
| | | MessageStatusEnum messageStatus = MessageStatusEnum.Emergency; |
| | | foreach (var outorder in newOutOrders) |
| | | { |
| | | try |
| | | { |
| | | if (outorder.order_type == "1") // æ£å¸¸åºåºå |
| | | { |
| | | name = "å建æ£å¸¸åºåºå"; |
| | | var content = _deliveryOrderServices.CreateOutboundOrder(outorder); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | else if (outorder.order_type == "2")//åºåºéè´§ |
| | | { |
| | | name = "å建åºåºéè´§å"; |
| | | messageGroupBy = MessageGroupByEnum.InOrderAlarm; |
| | | // å建åºåºéè´§å - è¿ééè¦æ ¹æ®ä¸å¡é»è¾å®ç° |
| | | // ææ¶è·³è¿æå®ç°éè´§é»è¾ |
| | | //continue; |
| | | #region è½¬æ¢æå
¥åºå |
| | | UpstreamOrderInfo order = new UpstreamOrderInfo() |
| | | { |
| | | order_no = outorder.order_no, |
| | | order_type = outorder.order_type, |
| | | warehouse_no = outorder.warehouse_no, |
| | | details = new List<UpstreamOrderDetail>() |
| | | }; |
| | | foreach (var item in outorder.details) |
| | | { |
| | | UpstreamOrderDetail detail = new UpstreamOrderDetail() |
| | | { |
| | | batch_num = item.batch_num, |
| | | goods_no = item.goods_no, |
| | | order_qty = item.order_qty, |
| | | exp_date = item.exp_date, |
| | | }; |
| | | order.details.Add(detail); |
| | | } |
| | | responseContent = _cabinOrderServices.CreateInboundOrder(order); |
| | | if (!responseContent.Status) throw new Exception(responseContent.Message); |
| | | List<Dt_CabinOrder>? dt_CabinOrders = responseContent.Data as List<Dt_CabinOrder>; |
| | | if (dt_CabinOrders != null && dt_CabinOrders.Count > 0) |
| | | _cabinOrderServices.Db.CopyNew().InsertNav(dt_CabinOrders).Include(x => x.Details).ExecuteCommand(); |
| | | #endregion |
| | | } |
| | | else if (outorder.order_type == "6")//æ¥æåºåº |
| | | { |
| | | name = "å建çæåºåºå"; |
| | | messageStatus = MessageStatusEnum.Undisposed; |
| | | var content = _deliveryOrderServices.CreateCheckOutOrder(outorder); |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _messageInfoService.AddMessageInfo(messageGroupBy, name, ex.Message, messageStatus); |
| | | //SendErrorToUpstream(3, "", ex.Message, ""); |
| | | //return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | return responseContent.OK($"忥åºåºåæåï¼å
±{_DeliveryOrders.Count}æ¡"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //SendErrorToUpstream(3, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region ä¸åç«åºå
¥åºå |
| | | public WebResponseContent EdiIn() |
| | |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | #region MyRegion |
| | | |
| | | //public WebResponseContent EdiIn1() |
| | | //{ |
| | | // try |
| | | // { |
| | | // //2.æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´ = æ°å»º && å
嫿ææç»ï¼ |
| | | // //var orders = BaseDal.Db.Queryable<Dt_CabinOrder>() |
| | | // // .Where(o => o.OdrderStatus == "æ°å»º") |
| | | // // .Includes(o => o.Details, d => d.MedicineGoods) |
| | | // // .ToList(); |
| | | // //æ¥åºå
å«å
¨é¨çå
¥åºåï¼å
å«å
¨é¨æç»+ä¸ä¸ªæç»å¯¹åºä¸ä¸ªåå |
| | | // var reslut = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | // var orders = _cabinOrderServices.Db.CopyNew() |
| | | // .Queryable<Dt_CabinOrder>() |
| | | // .Where(o => o.OdrderStatus == "æ°å»º" && o.Warehouse_no == reslut) |
| | | // .Includes(o => o.Details, d => d.MedicineGoods) |
| | | // .ToList(); |
| | | // // 3. åè¿æ»¤æä¸ç¬¦åæ¡ä»¶çæç»ï¼åªä¿ç Status=0ï¼ |
| | | // foreach (var order in orders) |
| | | // { |
| | | // //Console.WriteLine($"订å {order.Order_no} åæç»æ°ï¼{order.Details.Count}"); |
| | | // order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | // //Console.WriteLine($"订å {order.Order_no} è¿æ»¤åæç»æ°ï¼{order.Details.Count}"); |
| | | // } |
| | | |
| | | |
| | | // if (orders.Count < 1) |
| | | // { |
| | | // //Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | // return WebResponseContent.Instance.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | // } |
| | | // List<Dt_CabinOrderDetail> cabinOrderDetails = new List<Dt_CabinOrderDetail>(); |
| | | // var url = "http://172.16.1.2:9357/file-admin/api/in/ediIn"; |
| | | // // 4. éå订åï¼ç»è£
DTO å¹¶æ¨é |
| | | // foreach (var order in orders) |
| | | // { |
| | | // // ä»ç¬¬ä¸ä¸ªæ MedicineGoods çæç»ä¸ååº MaterielErpType |
| | | // string materialCode = order.Details |
| | | // .Select(d => d.MedicineGoods?.MaterielErpType) |
| | | // .FirstOrDefault(x => !string.IsNullOrEmpty(x)) ?? "YY"; // é»è®¤å¼YY |
| | | |
| | | // var ediDto = new ToediInInfo |
| | | // { |
| | | |
| | | // //客æ·ä»£ç |
| | | // customerCode = "905", |
| | | // //ç©æç±»å |
| | | // materialCode = materialCode, |
| | | // //å
¥åºåå· |
| | | // externalOrderNo = order.Order_no, |
| | | // //å
¥åºåç±»å |
| | | // inOrderType = order.Order_type == "5" ? "20" : "10", |
| | | // //ä¼å
级 |
| | | // priority = 0, |
| | | // //æ¯å¦åæ¶ |
| | | // Is_cancel = 0, |
| | | // details = order.Details.Select(d => new ToediInDetail |
| | | // { |
| | | // //æ¹å· |
| | | // batchNo = d.Batch_num, |
| | | // //产å |
| | | // productCode = d.Goods_no, |
| | | // //skuåç§° |
| | | // productName = d.MedicineGoods?.MaterielName, |
| | | // //skuè§æ ¼ |
| | | // productSpecifications = d.MedicineGoods?.MaterielSpec, |
| | | // //æ°é |
| | | // quantity = (int)d.Order_qty, |
| | | // //ææ |
| | | // validityPeriod = d.Exp_date, |
| | | // //ç产åå®¶ |
| | | // manufacturer = d.MedicineGoods?.Factory, |
| | | // //æ¿å· |
| | | // libraryNo = order.Warehouse_no, |
| | | // }).ToList() |
| | | // }; |
| | | |
| | | // //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363019549"; |
| | | // var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | // var resp = JsonConvert.DeserializeObject<TowcsResponse<object>>(result); |
| | | |
| | | // if (resp != null && resp.code == "0") |
| | | // { |
| | | // order.OdrderStatus = "å¼å§"; |
| | | // foreach (var item in order.Details) |
| | | // { |
| | | // item.Status = 1; |
| | | // item.OrderDetailStatus = "å¼å§"; |
| | | // } |
| | | // cabinOrderDetails.AddRange(order.Details); |
| | | // // æ´æ°è¡¨å¤´ç¶æ |
| | | // //_cabinOrderServices.Db.Updateable<Dt_CabinOrder>() |
| | | // // .SetColumns(o => new Dt_CabinOrder { OdrderStatus = "å¼å§" }) |
| | | // // .Where(o => o.Id == order.Id) |
| | | // // .ExecuteCommand(); |
| | | |
| | | // // æ´æ°æç»ç¶æä¸ºå·²åæ¥ //è¿éè¦æ¯å°æ°å»º--ãå¼å§ç¶æ,å¨å端æ¥å£è¿åæä»¬çæ¶åå¨è¿å已宿 |
| | | // //_cabinDetailServices.Db.Updateable<Dt_CabinOrderDetail>() |
| | | // // .SetColumns(d => new Dt_CabinOrderDetail { Status = 1, OrderDetailStatus = "å¼å§" }) |
| | | // // .Where(d => d.OrderId == order.Id && d.Status == 0) |
| | | // // .ExecuteCommand(); |
| | | |
| | | // //Console.WriteLine($"订å {order.Order_no} æ¨éæå"); |
| | | // } |
| | | // else |
| | | // { |
| | | // continue; |
| | | // //SendErrorToUpstream(3, order.Order_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | // //Console.WriteLine($"订å {order.Order_no} æ¨é失败ï¼{resp?.msg}"); |
| | | // //return new WebResponseContent { Status = false, Message = "è®¢åæ¨é失败" }; |
| | | // } |
| | | // } |
| | | // _cabinOrderServices.UpdateData(orders); |
| | | // _cabinDetailServices.UpdateData(cabinOrderDetails); |
| | | // return new WebResponseContent { Status = true, Message = "æ¨éæå" }; |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | |
| | | // Console.WriteLine("EdiIn å¼å¸¸ï¼" + ex.Message); |
| | | // return new WebResponseContent { Status = false, Message = ex.Message }; |
| | | // } |
| | | //} |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region ä¸åç«åºåºåºå |
| | |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #region MyRegion |
| | | public WebResponseContent EdiOut1() |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | var WarehouseLk = WarehouseEnum.ç«åº.ObjToInt().ToString("000"); |
| | | try |
| | | { |
| | | // 1. æ¥è¯¢ç¬¦åæ¡ä»¶ç订åï¼è¡¨å¤´=æ°å»º && å
嫿ææç»ï¼ |
| | | var outOrders = _deliveryOrderServices.Db.CopyNew().Queryable<Dt_DeliveryOrder>() |
| | | .Where(o => o.OutStatus == "æ°å»º" && o.Warehouse_no == WarehouseLk) |
| | | .Includes(o => o.Details, d => d.MedicineGoods) |
| | | .ToList(); |
| | | |
| | | // 2. åè¿æ»¤æä¸ç¬¦åæ¡ä»¶çæç»ï¼åªä¿ç Status=0 ï¼ |
| | | foreach (var order in outOrders) |
| | | { |
| | | order.Details = order.Details.Where(d => d.Status == 0).ToList(); |
| | | } |
| | | |
| | | if (outOrders.Count < 1) |
| | | { |
| | | //Console.WriteLine("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | return responseContent.Error("没æç¬¦åæ¡ä»¶ç订åéè¦æ¨é"); |
| | | } |
| | | List<Dt_DeliveryOrderDetail> deliveryOrderDetails = new List<Dt_DeliveryOrderDetail>(); |
| | | var url = "http://172.16.1.2:9357/file-admin/api/out/ediOut"; |
| | | foreach (var order in outOrders) |
| | | { |
| | | try |
| | | { |
| | | string materialCode = "YY";//é»è®¤å¼ |
| | | //è·åå½å订åç第ä¸ä¸ªæç»é¡¹ |
| | | var firstDetail = order.Details.FirstOrDefault(); |
| | | if (firstDetail?.MedicineGoods != null && !string.IsNullOrEmpty(firstDetail.MedicineGoods.MaterielErpType)) |
| | | { |
| | | //妿æ¡ä»¶æ»¡è¶³ï¼å°ç©æä»£ç 设置为第ä¸ä¸ªæç»é¡¹å¯¹åºçè¯åç©æä»£ç |
| | | materialCode = firstDetail.MedicineGoods.MaterielErpType; |
| | | } |
| | | switch (order.Out_type) |
| | | { |
| | | case "1"://æ£å¸¸åºåº |
| | | case "3"://å
¥åºéè´§ |
| | | order.Out_type = "10";//ä¸è¬äº¤æåºåºå |
| | | break; |
| | | case "6"://çäºåºåº |
| | | order.Out_type = "30";//çäºåºåºå |
| | | break; |
| | | } |
| | | // 3. ç»è£
DTO |
| | | var ediDto = new TowcsDto.ToediOutInfo |
| | | { |
| | | customerCode = "905", |
| | | materialCode = materialCode, |
| | | externalOrderNo = order.Out_no, |
| | | outOrderType = order.Out_type,//20æ¯çç¹åºåºå |
| | | priority = 1, |
| | | Is_cancel = 0, |
| | | details = order.Details.Select(d => new TowcsDto.ToeOutdiInDetail |
| | | { |
| | | batchNo = d.Batch_num, |
| | | productCode = d.Goods_no, |
| | | productName = d.MedicineGoods?.MaterielName, |
| | | productSpecifications = d.MedicineGoods?.MaterielModel, |
| | | quantity = (int)d.Order_qty, |
| | | //stocktakingDetails = order.Out_type == "3" |
| | | // ? new List<ToOutediInStock> |
| | | // { |
| | | // new ToOutediInStock { palletCode = "FC00001", quantity = d.Order_qty.ToString() } |
| | | // } |
| | | // : null |
| | | }).ToList() |
| | | }; |
| | | |
| | | // 4. è°ç¨æ¥å£ |
| | | //var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/363076920"; |
| | | |
| | | var result = HttpHelper.Post(url, ediDto.ToJsonString()); |
| | | var resp = JsonConvert.DeserializeObject<TowcsDto.TowcsResponse<object>>(result); |
| | | |
| | | if (resp != null && resp.code == "0") |
| | | { |
| | | order.OutStatus = "å¼å§"; |
| | | foreach (var item in order.Details) |
| | | { |
| | | item.Status = 1; |
| | | item.OotDetailStatus = "å¼å§"; |
| | | } |
| | | deliveryOrderDetails.AddRange(order.Details); |
| | | // æ´æ°è¡¨å¤´ç¶æ |
| | | //_cabinDetailServices.Db.CopyNew().Updateable<Dt_DeliveryOrder>() |
| | | // .SetColumns(o => new Dt_DeliveryOrder { OutStatus = "å¼å§" }) |
| | | // .Where(o => o.Id == order.Id) |
| | | // .ExecuteCommand(); |
| | | |
| | | // æ´æ°æç»ç¶æ |
| | | //_deliveryOrderDetailServices.Db.CopyNew().Updateable<Dt_DeliveryOrderDetail>() |
| | | // .SetColumns(d => new Dt_DeliveryOrderDetail { Status = 1, OotDetailStatus = "å¼å§" }) |
| | | // .Where(d => d.DeliveryOrderId == order.Id && d.Status == 0) |
| | | // .ExecuteCommand(); |
| | | //Console.WriteLine($"订å {order.Out_no} æ¨éæå"); |
| | | } |
| | | else |
| | | { |
| | | continue; |
| | | //SendErrorToUpstream(3, order.Out_no, resp?.msg ?? "WCS æ¨é失败", ""); |
| | | //Console.WriteLine($"订å {order.Out_no} æ¨é失败ï¼{resp?.msg}"); |
| | | } |
| | | //å é¤å
¨é¨ç¶ä¸ºå·²å®æçæç»å表头ï¼ç§»å
¥åå²è¡¨ |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //SendErrorToUpstream(3, order.Out_no, ex.Message, ""); |
| | | //Console.WriteLine($"订å {order.Out_no} æ¨éå¼å¸¸ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | _deliveryOrderServices.UpdateData(outOrders); |
| | | _deliveryOrderDetailServices.UpdateData(deliveryOrderDetails); |
| | | return responseContent.OK("åºåºè®¢åæ¨é宿"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | //Console.WriteLine("EdiOut å¼å¸¸ï¼" + ex.Message); |
| | | return responseContent.Error("åºåºè®¢åæ¨é失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region å
¥åºå®æä¸æ¥ERP |
| | |
| | | catch (Exception ex) |
| | | { |
| | | return responseContent.Error("æ¹éå¤ç失败ï¼" + ex.Message); |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region æ¨éå¼å¸¸ä¸æ¥ERP |
| | | /// <summary> |
| | | /// æ¨éå¼å¸¸ä¿¡æ¯ç»ä¸æ¸¸ç³»ç»1.å
¥åºåæ¥å£ï¼2.å
¥åºåæ¥å®ææ¥å£ï¼3.åºåºåæ¥å£ï¼4.åºåºæ¥å®ææ¥å£ï¼5.è¯ååºç¡ä¿¡æ¯åæ¥æ¥å£ï¼6.ä¾åºåä¿¡æ¯æ¥å£ï¼7.客æ·ä¿¡æ¯æ¥å£ï¼8.åºå |
| | | /// </summary> |
| | | public void SendErrorToUpstream(int type, string code, string message, string remark) |
| | | { |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/lexceptionLogog"; |
| | | |
| | | var requestData = new |
| | | { |
| | | type = type.ToString(), |
| | | code = code, |
| | | message = message, |
| | | remark = remark |
| | | }; |
| | | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | // å¯ä»¥ååºååæ£æ¥ resultCode æ¯å¦ä¸º0 |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | // è¿éä¸è¦åæå¼å¸¸äºï¼é¿å
æ»å¾ªç¯ |
| | | Console.WriteLine("å¼å¸¸æ¥å£æ¨é失败ï¼" + e.Message); |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | #region è´§ä½ |
| | | var location = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == LocationCode); |
| | | if (location == null) return WebResponseContent.Instance.Error($"请维æ¤è´§ä½ç¼å·ã{LocationCode}ãçè´§ä½ä¿¡æ¯"); |
| | | if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt()) |
| | | return WebResponseContent.Instance.Error($"è´§ä½ç¼å·ã{LocationCode}ãå·²ç¦ç¨ï¼è¯·æ¢å¤æ£å¸¸å使ç¨"); |
| | | //if (location.EnableStatus == EnableStatusEnum.Disable.ObjToInt()) |
| | | // return WebResponseContent.Instance.Error($"è´§ä½ç¼å·ã{LocationCode}ãå·²ç¦ç¨ï¼è¯·æ¢å¤æ£å¸¸å使ç¨"); |
| | | if (location.WarehouseCode != cabinOrderDetail.Reservoirarea) |
| | | return WebResponseContent.Instance.Error($"è´§ä½ç¼å·ã{LocationCode}ãæå±åºæ¿ä¸å½åå
¥åºåæå±åºæ¿ä¸å¹é
"); |
| | | if (location.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | |
| | | using WIDESEA_Core.BaseServices; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_DTO.Outbound; |
| | | using WIDESEA_DTO.SquareCabin; |
| | | using WIDESEA_IBasicService; |
| | | using WIDESEA_ISquareCabinServices; |
| | |
| | | } |
| | | public override WebResponseContent UpdateData(SaveModel saveModel) |
| | | { |
| | | return base.UpdateData(saveModel); |
| | | try |
| | | { |
| | | int id = saveModel.MainData["id"].ObjToInt(); |
| | | var warehouse_no = saveModel.MainData["warehouse_no"].ToString(); |
| | | var out_no = saveModel.MainData["out_no"].ToString(); |
| | | //OutboundOrderAddDTO outboundOrder = saveModel.MainData.DicToModel<OutboundOrderAddDTO>(); |
| | | //Dt_DeliveryOrder deliveryOrder = BaseDal.QueryFirst(x => x.Id == id); |
| | | List<DeliveryOrderDetailAddDTO> orderDetailAddDTOs = saveModel.DetailData.DicToIEnumerable<DeliveryOrderDetailAddDTO>(); |
| | | orderDetailAddDTOs = orderDetailAddDTOs.Where(x => x.id == 0).ToList(); |
| | | if (orderDetailAddDTOs.Count < 1) return WebResponseContent.Instance.OK(); |
| | | if (orderDetailAddDTOs.Where(x => string.IsNullOrEmpty(x.locationCode)).Any()) return WebResponseContent.Instance.Error("è´§ä½å·ä¸ºå¿
å¡«åæ®µ!"); |
| | | if (orderDetailAddDTOs.Where(x => string.IsNullOrEmpty(x.exp_date)).Any()) return WebResponseContent.Instance.Error("ææä¸ºå¿
å¡«åæ®µ!"); |
| | | var LocationCodes = orderDetailAddDTOs.Select(x => x.locationCode); |
| | | List<Dt_LocationInfo> locationInfos = _locationInfoService.Repository.QueryData(x => x.WarehouseCode == warehouse_no && LocationCodes.Contains(x.LocationCode)); |
| | | var diff = LocationCodes.Except(locationInfos.Select(x => x.LocationCode)).ToArray(); |
| | | if (diff.Length > 0) return WebResponseContent.Instance.Error($"è´§ä½ç¼å·ã{string.Join(", ", diff)}ãä¸å±äºå½ååºæ¿"); |
| | | var array1 = orderDetailAddDTOs.Select(x => x.goods_no); |
| | | var MaterielInfos = _materielInfoService.Repository.QueryData(x => array1.Contains(x.MaterielCode)); |
| | | var array2 = MaterielInfos.Select(x => x.MaterielCode); |
| | | diff = array1.Except(array2).ToArray(); |
| | | if (diff.Length > 0) return WebResponseContent.Instance.Error($"请维æ¤ç©æç¼å·ã{string.Join(", ", diff)}ãçç©æä¿¡æ¯"); |
| | | if (warehouse_no == WarehouseEnum.ç«åº.ObjToInt().ToString("000")) |
| | | { |
| | | var MaterielInfos1 = MaterielInfos.Where(x => x.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart).ToList(); |
| | | if (MaterielInfos1.Count > 0) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ç©æç¼å·ã{string.Join(", ", MaterielInfos1.Select(x => x.MaterielCode))}ãçç©æå±æ§å类为大件ï¼ä¸å¯å
¥ç«åº"); |
| | | } |
| | | } |
| | | var InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.WarehouseCode == warehouse_no && array2.ToList().Contains(x.MaterielCode)); |
| | | var Batchs = _inventory_BatchServices.Repository.QueryData(x => array2.Contains(x.MaterielCode)); |
| | | List<Dt_DeliveryOrderDetail> deliveryOrderDetails = new List<Dt_DeliveryOrderDetail>(); |
| | | List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>(); |
| | | List<Dt_InventoryInfo> inventoryInfos = new List<Dt_InventoryInfo>(); |
| | | List<Dt_Inventory_Batch> inventory_Batches = new List<Dt_Inventory_Batch>(); |
| | | foreach (var item in orderDetailAddDTOs) |
| | | { |
| | | if (InventoryInfos.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).Any()) |
| | | return WebResponseContent.Instance.Error($"ç©æç¼å·ã{item.goods_no}ãç©ææ¹æ¬¡ã{item.batch_num}ãå·²åå¨åºå"); |
| | | #region æ·»å çç¹å详æ
|
| | | Dt_DeliveryOrderDetail dt_DeliveryOrde = new Dt_DeliveryOrderDetail() |
| | | { |
| | | DeliveryOrderId = id, |
| | | Reservoirarea = warehouse_no, |
| | | Status = 2, |
| | | Order_qty = 0, |
| | | Order_Outqty = item.order_Outqty, |
| | | Goods_no = item.goods_no, |
| | | OotDetailStatus = "æ°å»º", |
| | | Batch_num = item.batch_num, |
| | | Creater = App.User.UserName, |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | deliveryOrderDetails.Add(dt_DeliveryOrde); |
| | | #endregion |
| | | |
| | | #region æ·»å åºåãæ¹æ¬¡ä¿¡æ¯ãçç¹ä»»å¡ |
| | | var MaterielInfo = MaterielInfos.First(x => x.MaterielCode == item.goods_no); |
| | | Dt_InventoryInfo inventoryInfo = new Dt_InventoryInfo() |
| | | { |
| | | BatchNo = item.batch_num, |
| | | MaterielCode = MaterielInfo.MaterielCode, |
| | | AvailableQuantity = 0, |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName, |
| | | InDate = DateTime.Now, |
| | | LocationCode = item.locationCode, |
| | | MaterielName = MaterielInfo.MaterielName, |
| | | MaterielSpec = MaterielInfo.MaterielSpec, |
| | | OutboundQuantity = 0, |
| | | StockQuantity = 0, |
| | | StockStatus = StockStatusEmun.çç¹éå®.ObjToInt(), |
| | | SupplyQuantity = 0, |
| | | WarehouseCode = warehouse_no, |
| | | ValidityPeriod = item.exp_date |
| | | }; |
| | | inventoryInfos.Add(inventoryInfo); |
| | | Dt_Inventory_Batch? inventory_Batch = Batchs.FirstOrDefault(x => x.BatchNo == item.batch_num && x.MaterielCode == item.goods_no); |
| | | if (inventory_Batch == null) |
| | | { |
| | | inventory_Batch = new Dt_Inventory_Batch() |
| | | { |
| | | BatchNo = inventoryInfo.BatchNo, |
| | | CreateDate = inventoryInfo.CreateDate, |
| | | Creater = inventoryInfo.Creater, |
| | | MaterielCode = inventoryInfo.MaterielCode, |
| | | ERPStockQuantity = 0, |
| | | MaterielName = inventoryInfo.MaterielName, |
| | | MaterielSpec = inventoryInfo.MaterielSpec, |
| | | OutboundQuantity = inventoryInfo.OutboundQuantity, |
| | | ProductionDate = inventoryInfo.ProductionDate, |
| | | Status = false, |
| | | StockQuantity = inventoryInfo.StockQuantity, |
| | | AvailableQuantity = inventoryInfo.AvailableQuantity, |
| | | ValidityPeriod = inventoryInfo.ValidityPeriod.ObjToDate(), |
| | | SupplyQuantity = inventoryInfo.SupplyQuantity, |
| | | }; |
| | | inventory_Batches.Add(inventory_Batch); |
| | | } |
| | | Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | | { |
| | | WarehouseCode = warehouse_no, |
| | | TaskStatus = SupplyStatusEnum.NewCheck.ObjToInt(), |
| | | BatchNo = inventoryInfo.BatchNo, |
| | | MaterielName = inventoryInfo.MaterielName, |
| | | MaterielCode = inventoryInfo.MaterielCode, |
| | | MaterielSpec = inventoryInfo.MaterielSpec, |
| | | TaskType = TaskTypeEnum.OutInventory.ObjToInt(), |
| | | CreateDate = DateTime.Now, |
| | | Creater = App.User.UserName, |
| | | LocationCode = inventoryInfo.LocationCode, |
| | | OrderNo = out_no, |
| | | StockQuantity = inventoryInfo.StockQuantity, |
| | | SupplyQuantity = 0, |
| | | Remark = "çç¹" |
| | | }; |
| | | supplyTasks.Add(supplyTask); |
| | | #endregion |
| | | } |
| | | _unitOfWorkManage.BeginTran(); |
| | | _deliveryOrderDetailServices.AddData(deliveryOrderDetails); |
| | | _inventoryInfoService.AddData(inventoryInfos); |
| | | if (inventory_Batches.Count > 0) _inventory_BatchServices.AddData(inventory_Batches); |
| | | _supplyTaskService.AddData(supplyTasks); |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.OK("çç¹è¯¦æ
æ·»å æå,请éè¿ERP平账ï¼"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #region å建åºåºå |
| | |
| | | _supplyTaskService.AddData(supplyTasks); |
| | | _inventory_BatchServices.UpdateData(batchesUp); |
| | | _inventoryInfoService.UpdateData(inventoryInfosUp); |
| | | BaseDal.Db.CopyNew().InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand(); |
| | | BaseDal.Db.InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | #endregion |
| | | } |
| | |
| | | #region æ·»å åºåºä»»å¡ãä¿®æ¹åºåä¿¡æ¯ |
| | | Dt_InventoryInfo? inventoryInfo = dt_InventoryInfos.FirstOrDefault(x => x.WarehouseCode == WareCodeLK); |
| | | if (inventoryInfo == null) |
| | | throw new Exception($"æªæ¾å°ç©æç¼å·ã{detail.goods_no}ãç©ææ¹æ¬¡ã{detail.batch_num}ãå¨ç«åºä¸çåºåä¿¡æ¯ï¼æéæ°éã{orderDetailLK.Order_qty}ã请补货"); |
| | | throw new Exception($"åºåºåã{outorder.order_no}ã详æ
å卿£ä»¶,ç©æç¼å·ã{detail.goods_no}ãç©ææ¹æ¬¡ã{detail.batch_num}ãæéæ°éã{Convert.ToInt32(orderDetailLK.Order_qty)}ãè¯·äººå·¥è°æ¨è¡¥è´§å
¥ç«åº"); |
| | | inventoryInfo.AvailableQuantity -= orderDetailLK.Order_qty; |
| | | inventoryInfo.OutboundQuantity += orderDetailLK.Order_qty; |
| | | Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | |
| | | _inventory_BatchServices.UpdateData(batchesUp); |
| | | _inventoryInfoService.UpdateData(inventoryInfosUp); |
| | | if (entityOrder.Details.Count > 0) |
| | | BaseDal.Db.CopyNew().InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand(); |
| | | BaseDal.Db.InsertNav(entityOrder).Include(x => x.Details).ExecuteCommand(); |
| | | if (entityOrderLK.Details.Count > 0) |
| | | BaseDal.Db.CopyNew().InsertNav(entityOrderLK).Include(x => x.Details).ExecuteCommand(); |
| | | BaseDal.Db.InsertNav(entityOrderLK).Include(x => x.Details).ExecuteCommand(); |
| | | _unitOfWorkManage.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | try |
| | | { |
| | | // 1ï¸â£ æ¥æ¾æå®æ¹æ¬¡ä¸ç©æçåºåä¿¡æ¯ |
| | | var batchInfo = BaseDal.Db.CopyNew().Queryable<Dt_Inventory_Batch>() |
| | | .Where(x => x.BatchNo == batchNo && x.MaterielCode == goodsNo) |
| | | .First(); |
| | | var batchInfo = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == batchNo && x.MaterielCode == goodsNo); |
| | | |
| | | if (batchInfo == null) |
| | | return response.Error($"æªæ¾å°è¯¥ç©æ [{goodsNo}] æ¹æ¬¡ [{batchNo}] çåºåä¿¡æ¯"); |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | |
| | | public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask, Dt_DeliveryOrder deliveryOrder) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | |
| | | _inventory_BatchServices.DeleteData(inventory_Batch); |
| | | else |
| | | _inventory_BatchServices.UpdateData(inventory_Batch); |
| | | _materielInfoService.UpdateData(materielInfo); |
| | | //_materielInfoService.UpdateData(materielInfo); |
| | | if (inventoryInfo.StockQuantity <= 0) |
| | | _inventoryInfoService.DeleteData(inventoryInfo); |
| | | else |
| | |
| | | { |
| | | materielInfo.Business_qty -= supplyTask.StockQuantity; |
| | | if (materielInfo.Business_qty < materielInfo.MinQty) |
| | | { |
| | | CreateAllocatInOut(materielInfo);//åå»ºè°æ¨ä»»å¡ |
| | | } |
| | | else |
| | | { |
| | | _materielInfoService.UpdateData(materielInfo); |
| | | } |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | _unitOfWorkManage.CommitTran(); |
| | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | public WebResponseContent OutTaskFinish(Dt_SupplyTask supplyTask) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_DeliveryOrder? cabinOrder = BaseDal.Db.CopyNew().Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == supplyTask.OrderNo && x.Warehouse_no == supplyTask.WarehouseCode).Includes(x => x.Details).First(); |
| | | Dt_DeliveryOrder? cabinOrder = BaseDal.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == supplyTask.OrderNo && x.Warehouse_no == supplyTask.WarehouseCode).Includes(x => x.Details).First(); |
| | | if (cabinOrder == null) return WebResponseContent.Instance.OK($"åºåºå已宿"); |
| | | |
| | | Dt_DeliveryOrderDetail? cabinOrderDetail = cabinOrder.Details.Where(x => x.Batch_num == supplyTask.BatchNo && x.Reservoirarea == supplyTask.WarehouseCode && x.Goods_no == supplyTask.MaterielCode).FirstOrDefault(); |
| | |
| | | //_deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(cabinOrderDetail, OperateTypeEnum.èªå¨å®æ); |
| | | } |
| | | _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail); |
| | | var cabinOrder1 = BaseDal.Db.CopyNew().Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == cabinOrder.Out_no && x.Warehouse_no == supplyTask.WarehouseCode && x.Out_type != "20").Includes(x => x.Details).First(); |
| | | var cabinOrder1 = BaseDal.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == cabinOrder.Out_no && x.Warehouse_no == supplyTask.WarehouseCode && x.Out_type != "20").Includes(x => x.Details).First(); |
| | | if (!cabinOrder1.Details.Where(x => x.OotDetailStatus != "已宿").Any()) |
| | | cabinOrder.OutStatus = "已宿"; |
| | | Repository.UpdateData(cabinOrder); |
| | |
| | | using HslCommunication; |
| | | using MailKit.Search; |
| | | using Newtonsoft.Json; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Reflection.Metadata; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using SqlSugar; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | |
| | | private readonly ICabinOrderServices _cabinOrderServices; |
| | | private readonly IDeliveryOrderServices _deliveryOrderServices; |
| | | private readonly ISupplyTaskService _supplyTaskService; |
| | | public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService) : base(BaseDal) |
| | | private readonly IInventory_BatchServices _inventoryBatchServices; |
| | | private readonly IMessageInfoService _infoService; |
| | | public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService) : base(BaseDal) |
| | | { |
| | | _cabinOrderServices = cabinOrderServices; |
| | | _deliveryOrderServices = deliveryOrderServices; |
| | | _supplyTaskService = supplyTaskService; |
| | | _inventoryBatchServices = inventoryBatchServices; |
| | | _infoService = infoService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="batch_num">æ¹å·</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent GetInventoryList(string goods_no, string batch_num) |
| | | public WebResponseContent GetInventoryList(int[] keys) |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63/GYZ2/95fck/repositoryInfo"; |
| | | var result = HttpHelper.Post(url, new { goods_no, batch_num }.ToJsonString()); |
| | | //æ ¹æ®idæ¥è¯¢åºåæ¹æ¬¡ä¿¡æ¯è¡¨ï¼è·åå°ä»ä»¬çååç¼ç åæ¹æ¬¡å· |
| | | var inventoryBatches = _inventoryBatchServices.Repository.QueryData(x => keys.Contains(x.Id)); //æ¥å
¨é¨ |
| | | |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<InventoryInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/repositoryInfo"; |
| | | foreach (var item in inventoryBatches) |
| | | { |
| | | //SendErrorToUpstream(8, "", response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败", ""); |
| | | return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | } |
| | | var result = HttpHelper.Post(url, new { goods_no = item.MaterielCode, batch_num = item.BatchNo }.ToJsonString()); |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°åºåæ°æ®"); |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<InventoryInfo>>(result); |
| | | if (response == null) continue; |
| | | var data = response.data.FirstOrDefault(); |
| | | if (data != null) |
| | | item.ERPStockQuantity = data.business_qty; |
| | | } |
| | | |
| | | Db.Ado.BeginTran(); |
| | | foreach (var item in response.data) |
| | | { |
| | | // ä½¿ç¨ FirstOrDefault é¿å
æ¾ä¸å°è®°å½æ¶æåºå¼å¸¸ |
| | | var Inver = Db.Queryable<Dt_Inventory_Batch>() |
| | | .First(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num); |
| | | |
| | | if (Inver != null) |
| | | { |
| | | Inver.ERPStockQuantity = item.business_qty; |
| | | Db.Updateable(Inver).ExecuteCommand(); |
| | | } |
| | | } |
| | | Db.Ado.CommitTran(); |
| | | _inventoryBatchServices.UpdateData(inventoryBatches); |
| | | return responseContent.OK("åºåä¿¡æ¯åæ¥å®æ"); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.Ado.RollbackTran(); |
| | | //SendErrorToUpstream(8, "", ex.Message, ""); |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä¸è®ºæ¯åºåºå
¥åºçç¹ï¼wcsé½ä¼è°ç¨æè¿ä¸ªæ¹æ³ |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <returns></returns> |
| | | |
| | | public ApiResponse<Dt_InventoryInfo> OrderFeedback(EdiOrderCallbackRequest request) |
| | | { |
| | | try |
| | |
| | | //SearchInOrderDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstreamOrderInfo>>(result); |
| | | if (response == null || response.resultCode != "0") return content; |
| | | if (response == null) return content; |
| | | if (response.data.Count < 1) |
| | | { |
| | | SearchInOrderDate = GetOutOrderDate; |
| | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<UpstramOutOrderInfo>>(result); |
| | | |
| | | if (response == null || response.resultCode != "0") return content; |
| | | if (response == null) return content; |
| | | if (response.data.Count < 1) |
| | | { |
| | | SearchOutOrderDate = GetOutOrderDate; |
| | |
| | | Dt_Tactics tactics = _tacticsService.Repository.QueryFirst(x => x.TacticeName == "åºåºçç¥"); |
| | | List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>(); |
| | | //// æ¥è¯¢å¤§ä»¶åºä¸å¯ç¨çåºå |
| | | List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.StockStatus == StockStatusEmun.å
¥åºå®æ.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == WareCode); |
| | | List<Dt_InventoryInfo> dt_InventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.MaterielCode == materielInfo.MaterielCode && x.StockStatus == StockStatusEmun.å
¥åºå®æ.ObjToInt() && x.AvailableQuantity > 0 && x.WarehouseCode == WareCode);//è¿é妿æä¿©ä¸ªä¸åæ¹æ¬¡çç©æï¼è¡¥è´§ä¸ç®¡æ¹æ¬¡ |
| | | if (dt_InventoryInfos.Count < 1) throw new Exception($"ç©æç¼å·ã{materielInfo.MaterielCode}ãå¤§ä»¶åºæ åºåï¼è¯·åæ¶è¡¥å
åºåï¼"); |
| | | if (tactics.SelectTactice == TacticsEnum.ComeOutonFirstTime.ObjToInt()) |
| | | dt_InventoryInfos = dt_InventoryInfos.OrderBy(x => x.ValidityPeriod).ToList(); |
| | |
| | | OutStatus = "æ°å»º", |
| | | Details = new List<Dt_DeliveryOrderDetail>() |
| | | }; |
| | | |
| | | #region å¾ªç¯ |
| | | foreach (var item in dt_InventoryInfos) |
| | | { |
| | | decimal Qty = 0; |
| | |
| | | { |
| | | deliveryOrderDetail.Order_qty += Qty; |
| | | } |
| | | deliveryOrder.Details.Add(deliveryOrderDetail); |
| | | //deliveryOrder.Details.Add(deliveryOrderDetail); |
| | | #endregion |
| | | #region æ·»å è°æ¨åºåºä»»å¡ |
| | | Dt_SupplyTask supplyTask = new Dt_SupplyTask() |
| | |
| | | SupplyQuantity = 0, |
| | | Remark = "è°æ¨åºåº" |
| | | }; |
| | | supplyTasks.Add(supplyTask); |
| | | supplyTasks.Add(supplyTask); |
| | | #endregion |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region 大件åºè¡¥ç«åºåç«åºä¸å¡åºåæ°è¿æ¯å°äºç«åºæå°åºåæ°ï¼æ·»å æç¤ºä¿¡æ¯ |
| | | //æ·»å æ¥è¦ä¿¡æ¯ |
| | | if (materielInfo.Business_qty < materielInfo.MinQty) |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Common.OrderEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.TaskEnum; |
| | |
| | | foreach (var item in inventory_Batches) |
| | | { |
| | | var supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).ToList(); |
| | | if (item.SupplyQuantity != 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨çç¹å·®å¼!"); |
| | | if (supplyTasks.Count > 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨çç¹ä»»å¡ï¼è¯·å
宿å½åçç¹ä»»å¡"); |
| | | supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == item.MaterielCode && x.BatchNo == item.BatchNo && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).ToList(); |
| | | if (supplyTasks.Count > 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨çç¹ä»»å¡ï¼è¯·å
宿å½åçç¹ä»»å¡"); |
| | | if (supplyTasks.Count > 0) throw new Exception($"ç©æç¼å·ã{item.MaterielCode}ãæ¹æ¬¡å·ã{item.BatchNo}ãå·²åå¨åºåºä»»å¡ï¼è¯·å
宿å½ååºåºä»»å¡"); |
| | | List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => item.MaterielCode == x.MaterielCode && x.BatchNo == item.BatchNo); |
| | | if (inventoryInfos.Count > 0) |
| | | { |
| | |
| | | if (materielInfo == null) return WebResponseContent.Instance.Error($"请维æ¤ç©æç¼å·ã{cabinOrderDetail.Goods_no}ãçç©æä¿¡æ¯"); |
| | | cabinOrderDetail.Order_Outqty += supplyTask.SupplyQuantity; |
| | | #region å¹³åºçç¹åªè½åºç°æ´ç®±å·®å¼ |
| | | if (supplyTask.WarehouseCode == WarehouseEnum.大件åº.ObjToInt().ToString("000")) |
| | | if (supplyTask.WarehouseCode == WarehouseEnum.大件åº.ObjToInt().ToString("000") && materielInfo.MaterielSourceType != MaterielSourceTypeEnum.PurchasePart) |
| | | { |
| | | var Qty = supplyTask.SupplyQuantity % materielInfo.BoxQty; |
| | | if (Qty != 0) return WebResponseContent.Instance.Error($"大件åºåºå为æ´ç®±ï¼çç¹æ°éä¸è½å卿£ä»¶"); |
| | |
| | | #endregion |
| | | |
| | | #region åºå |
| | | Dt_InventoryInfo inventoryInfo = new Dt_InventoryInfo(); |
| | | List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode)); |
| | | List<Dt_InventoryInfo> inventoryInfos = _inventoryInfoService.Repository.QueryData(x => cabinOrder.Details.Select(x => x.Goods_no).Contains(x.MaterielCode) && x.WarehouseCode == supplyTask.WarehouseCode && x.StockStatus == StockStatusEmun.çç¹éå®.ObjToInt()); |
| | | Dt_InventoryInfo? inventoryInfo = new(); |
| | | List<Dt_InventoryInfo> inventoryInfosDel = new List<Dt_InventoryInfo>(); |
| | | if (supplyTask.WarehouseCode != WarehouseEnum.ç«åº.ObjToInt().ToString("000")) |
| | | { |
| | | inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.WarehouseCode == supplyTask.WarehouseCode && x.LocationCode == supplyTask.LocationCode); |
| | | inventoryInfo = inventoryInfos.FirstOrDefault(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.LocationCode == supplyTask.LocationCode); |
| | | if (inventoryInfo == null) return WebResponseContent.Instance.Error($"æªæ¾å°è´§ä½ã{LocationCode}ãçåºåä¿¡æ¯"); |
| | | } |
| | | else |
| | | { |
| | | inventoryInfo = _inventoryInfoService.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.WarehouseCode == supplyTask.WarehouseCode); |
| | | inventoryInfo = inventoryInfos.FirstOrDefault(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no); |
| | | } |
| | | if (inventoryInfo == null) return WebResponseContent.Instance.Error($"æªæ¾å°ç«åºçåºåä¿¡æ¯"); |
| | | inventoryInfo.SupplyQuantity = supplyTask.SupplyQuantity - inventoryInfo.StockQuantity; |
| | | #endregion |
| | | |
| | | #region 夿å½åç©ææ¹æ¬¡ççç¹ä»»å¡æ¯å¦å
¨é¨å®æ |
| | | List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.WarehouseCode == supplyTask.WarehouseCode && x.TaskId != supplyTask.TaskId).ToList(); |
| | | List<Dt_SupplyTask> supplyTasks1 = _supplyTaskService.Repository.QueryData(x => x.MaterielCode == supplyTask.MaterielCode && x.BatchNo == supplyTask.BatchNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.TaskId != supplyTask.TaskId).ToList(); |
| | | Dt_Inventory_Batch inventory_Batch = new Dt_Inventory_Batch(); |
| | | List<Dt_InventoryInfo> inventoryInfos = new List<Dt_InventoryInfo>(); |
| | | if (supplyTasks1.Count < 1) |
| | | List<Dt_SupplyTask> supplyTasks = _supplyTaskService.Repository.QueryData(x => x.OrderNo == supplyTask.OrderNo && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt() && x.TaskId != supplyTask.TaskId).ToList();//æ¥æ¾å½åçç¹åççç¹ä»»å¡ |
| | | if (!supplyTasks.Where(x => cabinOrderDetail.Goods_no == x.MaterielCode && x.BatchNo == cabinOrderDetail.Batch_num).Any()) |
| | | cabinOrderDetail.OotDetailStatus = "已宿"; |
| | | #region 夿å½åçç¹å任塿¯å¦å
¨é¨å®æ |
| | | if (supplyTasks.Count < 1) |
| | | { |
| | | #region æ¥æ¾åºå |
| | | inventoryInfos = _inventoryInfoService.Repository.QueryData(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no && x.Id != inventoryInfo.Id); |
| | | var SupplyQuantitys = inventoryInfos.Sum(x => x.SupplyQuantity) + inventoryInfo.SupplyQuantity;//计ç®çç¹æ»æ° |
| | | #endregion |
| | | |
| | | #region åºåæ¹æ¬¡ |
| | | inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == cabinOrderDetail.Batch_num && x.MaterielCode == cabinOrderDetail.Goods_no); |
| | | |
| | | #region å¤çå½åç©ææ¹æ¬¡çåºååæ¹æ¬¡ä¿¡æ¯ |
| | | Dt_Inventory_Batch inventory_Batch = inventory_Batchs.First(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode); |
| | | var SupplyQuantitys = inventoryInfos.Where(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode).Sum(x => x.SupplyQuantity); |
| | | if (SupplyQuantitys == 0) |
| | | { |
| | | foreach (var item in inventoryInfos) |
| | | foreach (var item in inventoryInfos.Where(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode)) |
| | | { |
| | | item.StockQuantity += item.SupplyQuantity; |
| | | if (item.StockQuantity <= 0) |
| | | { |
| | | inventoryInfosDel.Add(item); |
| | | continue; |
| | | } |
| | | item.AvailableQuantity = item.StockQuantity; |
| | | item.SupplyQuantity = 0; |
| | | item.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | } |
| | | inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | inventoryInfo.SupplyQuantity = 0; |
| | | inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | //inventoryInfo.StockQuantity += inventoryInfo.SupplyQuantity; |
| | | //if (inventoryInfo.StockQuantity <= 0) |
| | | //{ |
| | | // inventoryInfosDel.Add(inventoryInfo); |
| | | // inventoryInfo = null; |
| | | //} |
| | | //else |
| | | //{ |
| | | // inventoryInfo.AvailableQuantity = inventoryInfo.StockQuantity; |
| | | // inventoryInfo.SupplyQuantity = 0; |
| | | // inventoryInfo.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | //} |
| | | } |
| | | else |
| | | { |
| | | inventory_Batch.SupplyQuantity += SupplyQuantitys; |
| | | } |
| | | #endregion |
| | | |
| | | #region å¤çå
¶ä»åºåæ¹æ¬¡ååºå |
| | | foreach (var detail in cabinOrder.Details.Where(x => x.Id != cabinOrderDetail.Id)) |
| | | { |
| | | SupplyQuantitys = inventoryInfos.Where(x => x.BatchNo == detail.Batch_num && x.MaterielCode == detail.Goods_no).Sum(x => x.SupplyQuantity);//计ç®çç¹æ»æ° |
| | | inventory_Batch = inventory_Batchs.First(x => x.BatchNo == detail.Batch_num && x.MaterielCode == detail.Goods_no); |
| | | #region åºåæ¹æ¬¡ |
| | | if (SupplyQuantitys == 0) |
| | | { |
| | | foreach (var item in inventoryInfos.Where(x => x.BatchNo == detail.Batch_num && x.MaterielCode == detail.Goods_no)) |
| | | { |
| | | item.StockQuantity += item.SupplyQuantity; |
| | | if (item.StockQuantity <= 0) |
| | | { |
| | | inventoryInfosDel.Add(item); |
| | | continue; |
| | | } |
| | | item.AvailableQuantity = item.StockQuantity; |
| | | item.SupplyQuantity = 0; |
| | | item.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | inventory_Batch.SupplyQuantity += SupplyQuantitys; |
| | | } |
| | | #endregion |
| | | } |
| | | #endregion |
| | | } |
| | | #endregion |
| | | _unitOfWorkManage.BeginTran(); |
| | | #region å¤ççç¹å |
| | | if (supplyTasks.Count < 1) |
| | |
| | | _deliveryOrderDetailServices.Repository.UpdateData(cabinOrderDetail); |
| | | } |
| | | #endregion |
| | | _inventoryInfoService.UpdateData(inventoryInfo); |
| | | //_inventoryInfoService.UpdateData(inventoryInfo); |
| | | _supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.èªå¨å®æ); |
| | | _inventoryInfoService.UpdateData(inventoryInfos); |
| | | _inventory_BatchServices.UpdateData(inventory_Batch); |
| | | if (inventoryInfosDel.Count > 0) _inventoryInfoService.DeleteData(inventoryInfosDel); |
| | | _inventory_BatchServices.UpdateData(inventory_Batchs); |
| | | _unitOfWorkManage.CommitTran(); |
| | | #endregion |
| | | content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | _inventoryInfoService = inventoryInfoService; |
| | | } |
| | | //æ¯é1ç§æ§è¡ä¸æ¬¡ |
| | | [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)] |
| | | [Invoke(Begin = "2025-11-01", Interval = 1000 * 10, IsEnabled = true, SkipWhileExecuting = true)] |
| | | public void Run() |
| | | { |
| | | //å·åº |
| | |
| | | [HttpPost, HttpGet, Route("GetUpstreamOrder"), AllowAnonymous] |
| | | public WebResponseContent GetUpstreamOrder() |
| | | { |
| | | return _business.GetUpstreamOrder(); |
| | | return _business.GetInOrder(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | } |
| | | |
| | | [HttpPost,Route("GetInventoryList"),AllowAnonymous] |
| | | public WebResponseContent GetInventoryList(string goods_no, string batch_num) |
| | | public WebResponseContent GetInventoryList([FromBody]int[] key) |
| | | { |
| | | return Service.GetInventoryList(goods_no, batch_num); |
| | | return Service.GetInventoryList(key); |
| | | } |
| | | } |
| | | } |
| | |
| | | [Invoke(Begin = "2025-11-01", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)] |
| | | public void Run() |
| | | { |
| | | Thread.Sleep(3000); |
| | | //è·å䏿¸¸åºåºåæ°æ® |
| | | _materielInfoService.ProductSynchronous(); |
| | | _business.EdiIn(); |
| | |
| | | //æ¤jsæä»¶æ¯ç¨æ¥èªå®ä¹æ©å±ä¸å¡ä»£ç ï¼å¯ä»¥æ©å±ä¸äºèªå®ä¹é¡µé¢æè
éæ°é
ç½®çæç代ç |
| | | import gridBody from './extend/outOrderDetail.vue' |
| | | import http from '../../api/http'; |
| | | import { el } from 'element-plus/es/locales.mjs'; |
| | | import { el, fa, sw } from 'element-plus/es/locales.mjs'; |
| | | let extension = { |
| | | components: { |
| | | //æ¥è¯¢ç颿©å±ç»ä»¶ |
| | |
| | | }); |
| | | } |
| | | } |
| | | // this.detailOptions.buttons.unshift({//è¿éå¯ä»¥ä½¿ç¨pushæ·»å æåä¸ä¸ªä½ç½® |
| | | // name: 'èªå®ä¹æé®', //æé®åç§° |
| | | // icon: 'el-icon-document', //æé®å¾æ :ç»ä»¶ç¤ºä¾->徿 |
| | | // //primaryãsuccessãwarningãerrorãinfoãtextãdanger |
| | | // type: 'primary', |
| | | // plain: true, |
| | | // onClick: () => { } |
| | | // }) |
| | | }, |
| | | onInited() { |
| | | //æ¡æ¶åå§åé
ç½®å |
| | |
| | | }) |
| | | }) |
| | | this.detailOptions.buttons.forEach((btn) => { |
| | | if (btn.name != 'æ·»å è¡') { |
| | | btn.hidden = true; |
| | | //æè
设置åªè¯» |
| | | //btn.readonly=true; |
| | | if (row.out_type == "20" && row.warehouse_no != "001") { |
| | | btn.hidden = btn.name != 'æ·»å è¡' && btn.name != 'èªå®ä¹æé®' |
| | | } else { |
| | | btn.hidden = true |
| | | } |
| | | // if (row.out_type != "20") { |
| | | // btn.hidden = true |
| | | // } else { |
| | | // btn.hidden = btn.name != 'æ·»å è¡' |
| | | // } |
| | | // if (btn.name != 'æ·»å è¡') { |
| | | // btn.hidden = btn.name != 'æ·»å è¡'; |
| | | // //æè
设置åªè¯» |
| | | // //btn.readonly=true; |
| | | // } |
| | | }); |
| | | if (row.out_type == "20") { |
| | | this.detail.columns.forEach((x) => { |
| | | if (x.field == "order_Outqty") { |
| | | x.title = "çç¹æ°é", |
| | | x.edit = true |
| | | } |
| | | }) |
| | | } else { |
| | | |
| | | } |
| | | this.detail.columns.forEach((x) => { |
| | | switch (x.field) { |
| | | case "creater": |
| | | x.hidden = (row.out_type != "20" && row.out_type != "215"); |
| | | break; |
| | | case "locationCode": |
| | | if (row.warehouse_no != "001" && row.out_type == "20") { |
| | | x.hidden = false |
| | | } else { |
| | | x.hidden = true |
| | | } |
| | | case "exp_date": |
| | | x.hidden = row.out_type == "215" || row.out_type == "20" && row.warehouse_no === "001"; |
| | | // x.title = (row.out_type == "20") ? "è´§ä½å·" : "ææ"; |
| | | x.edit = row.out_type == "20" |
| | | break; |
| | | case "order_qty": |
| | | x.title = row.out_type == "20" ? "åºåæ°é" : "è®¢åæ°é"; |
| | | x.readonly = row.out_type != "20"; |
| | | break; |
| | | case "order_Outqty": |
| | | x.title = row.out_type == "20" ? "çç¹æ°é" : "宿æ°é"; |
| | | x.readonly = row.out_type != "20"; |
| | | break; |
| | | case "goods_no": |
| | | x.readonly = row.out_type != "20"; |
| | | break; |
| | | case "batch_num": |
| | | x.readonly = row.out_type != "20"; |
| | | break; |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }; |
| | |
| | | } |
| | | let TB = this.buttons.find(x => x.value == 'TB'); |
| | | if (TB) { |
| | | TB.onClick = function () { |
| | | TB.onClick = ()=> { |
| | | let rows = this.$refs.table.getSelected(); |
| | | if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); |
| | | if (rows.length > 1) return this.$error("è¯·éæ©ä¸æ¡æ°æ®!"); |
| | | // if (rows.length > 1) return this.$error("è¯·éæ©ä¸æ¡æ°æ®!"); |
| | | |
| | | // è·åéä¸è¡çæ°æ®ï¼rowsæ¯æ°ç»ï¼å第ä¸ä¸ªå
ç´ ï¼ |
| | | const selectedRow = rows[0]; |
| | | const materielCode = selectedRow.materielCode; |
| | | const batchNo = selectedRow.batchNo; |
| | | const selectedRow = rows.map(item => item.id); |
| | | // const selectedRow = rows.id[0] |
| | | // const materielCode = selectedRow.materielCode; |
| | | // const batchNo = selectedRow.batchNo; |
| | | |
| | | this.http |
| | | .post(`api/Inventory/GetInventoryList?goods_no=${materielCode}&batch_num=${batchNo}`) |
| | | .post(`api/Inventory/GetInventoryList`,selectedRow) |
| | | .then((x) => { |
| | | if (x.status) { |
| | | this.$Message.success('忥宿'); |
| | |
| | | this.buttons.forEach(x => {//nameæ¹ä¸ºè¦éèçæé®åå |
| | | if (x.name == 'ç¼ è¾') { |
| | | x.name = 'è° æ¨'; |
| | | x.onClick = function () { |
| | | let rows = this.$refs.table.getSelected(); |
| | | if (rows.length == 0) return this.$error("è¯·éæ©æ°æ®!"); |
| | | if (rows.length > 1) return this.$error("åªè½éæ©ä¸æ¡æ°æ®") |
| | | let row = rows[0]; |
| | | this.edit(row) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | |
| | | this.editFormOptions.forEach((editForm) => { |
| | | editForm.forEach((x) => { |
| | | if (x.field == "availableQuantity") { |
| | | |
| | | |
| | | } else { |
| | | x.readonly = true |
| | | } |
| | |
| | | locationStatus: "", |
| | | enableStatus: "", |
| | | remark: "", |
| | | warehouseCode:"", |
| | | warehouseCode: "", |
| | | }); |
| | | const editFormOptions = ref([ |
| | | [ |
| | |
| | | // type: "select", |
| | | // required: true, |
| | | // span: 12, |
| | | // dataKey: "warehouseNuber", |
| | | // dataKey: "warehouseNuber", |
| | | // data: [] |
| | | // }, |
| | | { |
| | | { |
| | | field: "warehouseCode", |
| | | title: "åºæ¿ç¼å·", |
| | | type: "select", |
| | | required: true, |
| | | span: 12, |
| | | dataKey: "warehouseNuber", |
| | | data: [] |
| | | dataKey: "warehouseNuber", |
| | | data: [], |
| | | }, |
| | | |
| | | |
| | | { |
| | | field: "locationCode", |
| | | title: "è´§ä½ç¼å·", |
| | | type: "string", |
| | | span: 12 |
| | | } |
| | | span: 12, |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | field: "locationName", |
| | | title: "è´§ä½åç§°", |
| | | type: "string", |
| | | span: 12 |
| | | span: 12, |
| | | }, |
| | | { |
| | | field: "roadwayNo", |
| | | title: "å··éç¼å·", |
| | | type: "string", |
| | | span: 12 |
| | | } |
| | | span: 12, |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | field: "row", |
| | | title: "è´§ä½è¡", |
| | | type: "int", |
| | | span: 8 |
| | | span: 8, |
| | | }, |
| | | { |
| | | field: "column", |
| | | title: "è´§ä½å", |
| | | type: "int", |
| | | span: 8 |
| | | span: 8, |
| | | }, |
| | | |
| | | ], |
| | | [ |
| | | { |
| | | field: "depth", |
| | | title: "è´§ä½æ·±åº¦", |
| | | type: "int", |
| | | span: 12 |
| | | span: 12, |
| | | }, |
| | | // { |
| | | // field: "locationType", |
| | |
| | | // data: [], |
| | | // dataKey: "locationTypeEnum", |
| | | // } |
| | | { |
| | | { |
| | | field: "layer", |
| | | title: "è´§ä½å±", |
| | | type: "int", |
| | | span: 8 |
| | | } |
| | | span: 8, |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | |
| | | type: "select", |
| | | span: 12, |
| | | data: [], |
| | | dataKey: "locationStatusEnum", |
| | | dataKey: "locationStatusEnum", |
| | | }, |
| | | { |
| | | field: "enableStatus", |
| | | title: "ç¦ç¨ç¶æ", |
| | | type: "select", |
| | | span: 12, |
| | | dataKey:"EnableStatusEnum", |
| | | dataKey: "EnableStatusEnum", |
| | | data: [], |
| | | } |
| | | }, |
| | | ], |
| | | // [ |
| | | // { |
| | |
| | | row: "", |
| | | column: "", |
| | | layer: "", |
| | | warehouseCode: "" |
| | | warehouseCode: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | // { title: "åºæ¿ç¼å·", field: "warehouseId", type: "select", dataKey: "warehouseNuber", data: [] } , |
| | | { title: "åºæ¿ç¼å·", field: "warehousecode", type: "select", dataKey: "warehouseNuber", data: [] } , |
| | | { |
| | | title: "åºæ¿ç¼å·", |
| | | field: "warehousecode", |
| | | type: "select", |
| | | dataKey: "warehouseNuber", |
| | | data: [], |
| | | }, |
| | | { title: "è´§ä½ç¼å·", field: "locationCode", type: "like" }, |
| | | { title: "è´§ä½åç§°", field: "locationName", type: "like" }, |
| | | ], |
| | | [ |
| | | { title: "å··éç¼å·", field: "roadwayNo", type: "like" }, |
| | | // { title: "è´§ä½ç±»å", field: "locationType", type: "select", dataKey: "locationTypeEnum", data: [] }, |
| | | { title: "è´§ä½ç¶æ", field: "locationStatus", type: "select", dataKey: "locationStatusEnum",data: []}, |
| | | { title: "ç¦ç¨ç¶æ", field: "enableStatus", type: "select", data: [], dataKey:"status" }, |
| | | // { title: "è´§ä½ç±»å", field: "locationType", type: "select", dataKey: "locationTypeEnum", data: [] }, |
| | | { |
| | | title: "è´§ä½ç¶æ", |
| | | field: "locationStatus", |
| | | type: "select", |
| | | dataKey: "locationStatusEnum", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "ç¦ç¨ç¶æ", |
| | | field: "enableStatus", |
| | | type: "select", |
| | | data: [], |
| | | dataKey: "status", |
| | | }, |
| | | ], |
| | | [ |
| | | |
| | | { title: "è¡", field: "row", type: "int" }, |
| | | { title: "å", field: "column", type: "int" }, |
| | | { title: "å±", field: "layer", type: "int" } |
| | | { title: "å±", field: "layer", type: "int" }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | |
| | | width: 120, |
| | | align: "left", |
| | | data: [], |
| | | bind: { key: "warehouseNuber", data: [] } |
| | | bind: { key: "warehouseNuber", data: [] }, |
| | | }, |
| | | { |
| | | field: "locationCode", |
| | |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | { |
| | | field: "row", |
| | |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | } |
| | | }, |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "#detailCnName", |
| | |
| | | |
| | | <template> |
| | | <view-grid ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend"> |
| | | </view-grid> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/outbound/outboundOrder.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: 'id', |
| | | footer: "Foots", |
| | | cnName: 'åºåºå', |
| | | name: 'DeliveryOrder', |
| | | url: "/DeliveryOrder/", |
| | | sortName: "id" |
| | | }); |
| | | |
| | | const editFormFields = ref({ |
| | | out_no: "", |
| | | out_type: "", |
| | | client_no: "", |
| | | client_name: "", |
| | | warehouse_no: "", |
| | | account_time: "", |
| | | outStatus: "", |
| | | }); |
| | | |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "åºåºåå·", |
| | | field: "out_no", |
| | | type: "string", |
| | | required: true, |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: "åºåºåç±»å", |
| | | field: "out_type", |
| | | type: "select", |
| | | dataKey: "out_type", |
| | | data: [], |
| | | required: true, |
| | | width: 120 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | title: "客æ·ä»£ç ", |
| | | field: "client_no", |
| | | type: "string", |
| | | width: 120 |
| | | }, |
| | | { |
| | | title: "客æ·åç§°", |
| | | field: "client_name", |
| | | type: "string", |
| | | width: 150 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | title: "åºæ¿å·", |
| | | field: "warehouse_no", |
| | | type: "select", |
| | | dataKey: "warehouseNuber", |
| | | data: [], |
| | | width: 100 |
| | | }, |
| | | { |
| | | title: "ç¶æ", |
| | | field: "outStatus", |
| | | type: "string", |
| | | dataKey: "outStatus", |
| | | data: [], |
| | | width: 120 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | title: "åºåºè®°è´¦æ¶é´", |
| | | field: "account_time", |
| | | type: "datetime", |
| | | width: 160 |
| | | } |
| | | ] |
| | | ]); |
| | | |
| | | const searchFormFields = ref({ |
| | | out_no: "", |
| | | out_type: "", |
| | | client_no: "", |
| | | client_name: "", |
| | | warehouse_no: "", |
| | | outStatus: "", |
| | | account_time: "", |
| | | }); |
| | | |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åºåºåå·", field: "out_no", type: "like" }, |
| | | { title: "客æ·ä»£ç ", field: "client_no", type: "like" }, |
| | | { title: "åºæ¿å·", field: "warehouse_no", type: "select", dataKey: "warehouseNuber", data: [] }, |
| | | { |
| | | title: "åºåºåç±»å", |
| | | field: "out_type", |
| | | type: "select", |
| | | dataKey: "out_type", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | // { |
| | | // title: "ç¶æ", |
| | | // field: "outStatus", |
| | | // type: "select", |
| | | // dataKey: "outStatus", |
| | | // data: [], |
| | | // }, |
| | | { title: "客æ·åç§°", field: "client_name", type: "like" }, |
| | | { title: "åºåºè®°è´¦æ¶é´", field: "account_time", type: "datetime" }, |
| | | ] |
| | | ]); |
| | | |
| | | const columns = ref([ |
| | | { |
| | | field: 'id', |
| | | title: '主é®', |
| | | type: 'int', |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'out_no', |
| | | title: 'åºåºåå·', |
| | | type: 'string', |
| | | width: 150, |
| | | require: true, |
| | | align: 'left', |
| | | sort: true, |
| | | link: true |
| | | }, |
| | | { |
| | | field: 'out_type', |
| | | title: 'åºåºåç±»å', |
| | | type: 'string', |
| | | width: 120, |
| | | require: true, |
| | | align: 'left', |
| | | bind: { key: "out_type", data: [] } |
| | | }, |
| | | { |
| | | field: 'client_no', |
| | | title: '客æ·ä»£ç ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'client_name', |
| | | title: '客æ·åç§°', |
| | | type: 'string', |
| | | width: 150, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'warehouse_no', |
| | | title: 'åºæ¿å·', |
| | | type: 'string', |
| | | width: 100, |
| | | align: 'left', |
| | | bind: { key: "warehouseNuber", data: [] } |
| | | }, |
| | | { |
| | | field: 'account_time', |
| | | title: 'åºåºè®°è´¦æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'outStatus', |
| | | title: 'ç¶æ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | // bind: { key: "outStatus", data: [] } |
| | | // edit:{type:""} |
| | | }, |
| | | // { |
| | | // field: 'creater', |
| | | // title: 'å建人', |
| | | // type: 'string', |
| | | // width: 90, |
| | | // align: 'left' |
| | | // }, |
| | | { |
| | | field: 'createDate', |
| | | title: 'å建æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | }, |
| | | // { |
| | | // field: 'modifier', |
| | | // title: 'ä¿®æ¹äºº', |
| | | // type: 'string', |
| | | // width: 100, |
| | | // align: 'left' |
| | | // }, |
| | | { |
| | | field: 'modifyDate', |
| | | title: 'ä¿®æ¹æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | } |
| | | ]); |
| | | |
| | | const detail = ref({ |
| | | cnName: "åºåºåæç»", |
| | | table: "DeliveryOrderDetail", |
| | | url: "/DeliveryOrderDetail/", |
| | | columns: [ |
| | | { |
| | | field: 'id', |
| | | title: '主é®', |
| | | type: 'int', |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'deliveryOrderId', |
| | | title: 'å
³èåºåºåID', |
| | | type: 'int', |
| | | width: 120, |
| | | require: true, |
| | | align: 'left', |
| | | sort: true, |
| | | hidden: true |
| | | }, |
| | | { |
| | | field: 'reservoirarea', |
| | | title: 'åºåº', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | bind: { key: "warehouseNuber", data: [] }, |
| | | // edit:{type:""} |
| | | |
| | | }, |
| | | { |
| | | field: "goods_no", |
| | | title: "ç©æåç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | required: true, |
| | | // edit:{type:""}, |
| | | bind: { key: "MaterielNames", data: [] }, |
| | | }, |
| | | { |
| | | field: 'goods_no', |
| | | title: 'è¯åç¼ç ', |
| | | type: 'string', |
| | | width: 150, |
| | | require: true, |
| | | align: 'left', |
| | | bind: { key: "medicineGoods", data: [] }, |
| | | // edit:{type:""} |
| | | }, |
| | | { |
| | | field: 'order_qty', |
| | | title: 'è®¢åæ°é', |
| | | type: 'decimal', |
| | | width: 100, |
| | | require: true, |
| | | align: 'left', |
| | | // edit:{type:"number"} |
| | | }, |
| | | { |
| | | field: 'order_Outqty', |
| | | title: '宿æ°é', |
| | | type: 'decimal', |
| | | width: 100, |
| | | require: true, |
| | | align: 'left', |
| | | edit:{type:"number"} |
| | | }, |
| | | { |
| | | field: 'batch_num', |
| | | title: 'æ¹å·', |
| | | type: 'string', |
| | | width: 120, |
| | | require: true, |
| | | align: 'left', |
| | | edit:{type:""} |
| | | }, |
| | | { |
| | | field: 'exp_date', |
| | | title: 'æ ¡æ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | edit:{type:""} |
| | | }, |
| | | { |
| | | field: 'ootDetailStatus', |
| | | title: 'ç¶æ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | // edit:{type:""} |
| | | }, |
| | | { |
| | | field: 'status', |
| | | title: 'åæ¥ç¶æ', |
| | | type: 'int', |
| | | width: 120, |
| | | align: 'left', |
| | | bind: { key: "syncStatus", data: [] }, |
| | | // edit:{type:'select',dataKey:'syncStatus',data:[]} |
| | | }, |
| | | { |
| | | field: 'creater', |
| | | title: 'å建人', |
| | | type: 'string', |
| | | width: 90, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'createDate', |
| | | title: 'å建æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | }, |
| | | { |
| | | field: 'modifier', |
| | | title: 'ä¿®æ¹äºº', |
| | | type: 'string', |
| | | width: 100, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'modifyDate', |
| | | title: 'ä¿®æ¹æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | } |
| | | ], |
| | | sortName: "id", |
| | | key: "id" |
| | | }); |
| | | |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | import extend from "@/extension/outbound/outboundOrder.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "åºåºå", |
| | | name: "DeliveryOrder", |
| | | url: "/DeliveryOrder/", |
| | | sortName: "id", |
| | | }); |
| | | |
| | | const editFormFields = ref({ |
| | | out_no: "", |
| | | out_type: "", |
| | | client_no: "", |
| | | client_name: "", |
| | | warehouse_no: "", |
| | | account_time: "", |
| | | outStatus: "", |
| | | locationCode: "", |
| | | }); |
| | | |
| | | const editFormOptions = ref([ |
| | | [ |
| | | { |
| | | title: "åºåºåå·", |
| | | field: "out_no", |
| | | type: "string", |
| | | required: true, |
| | | width: 150, |
| | | }, |
| | | { |
| | | title: "åºåºåç±»å", |
| | | field: "out_type", |
| | | type: "select", |
| | | dataKey: "out_type", |
| | | data: [], |
| | | required: true, |
| | | width: 120, |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "客æ·ä»£ç ", |
| | | field: "client_no", |
| | | type: "string", |
| | | width: 120, |
| | | }, |
| | | { |
| | | title: "客æ·åç§°", |
| | | field: "client_name", |
| | | type: "string", |
| | | width: 150, |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "åºæ¿å·", |
| | | field: "warehouse_no", |
| | | type: "select", |
| | | dataKey: "warehouseNuber", |
| | | data: [], |
| | | width: 100, |
| | | }, |
| | | { |
| | | title: "ç¶æ", |
| | | field: "outStatus", |
| | | type: "string", |
| | | dataKey: "outStatus", |
| | | data: [], |
| | | width: 120, |
| | | }, |
| | | ], |
| | | ]); |
| | | |
| | | const searchFormFields = ref({ |
| | | out_no: "", |
| | | out_type: "", |
| | | client_no: "", |
| | | client_name: "", |
| | | warehouse_no: "", |
| | | outStatus: "", |
| | | account_time: "", |
| | | }); |
| | | |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åºåºåå·", field: "out_no", type: "like" }, |
| | | { title: "客æ·ä»£ç ", field: "client_no", type: "like" }, |
| | | { |
| | | title: "åºæ¿å·", |
| | | field: "warehouse_no", |
| | | type: "select", |
| | | dataKey: "warehouseNuber", |
| | | data: [], |
| | | }, |
| | | { |
| | | title: "åºåºåç±»å", |
| | | field: "out_type", |
| | | type: "select", |
| | | dataKey: "out_type", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | // { |
| | | // title: "ç¶æ", |
| | | // field: "outStatus", |
| | | // type: "select", |
| | | // dataKey: "outStatus", |
| | | // data: [], |
| | | // }, |
| | | { title: "客æ·åç§°", field: "client_name", type: "like" }, |
| | | { title: "åºåºè®°è´¦æ¶é´", field: "account_time", type: "datetime" }, |
| | | ], |
| | | ]); |
| | | |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "主é®", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "out_no", |
| | | title: "åºåºåå·", |
| | | type: "string", |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | sort: true, |
| | | link: true, |
| | | }, |
| | | { |
| | | field: "out_type", |
| | | title: "åºåºåç±»å", |
| | | type: "string", |
| | | width: 120, |
| | | require: true, |
| | | align: "left", |
| | | bind: { key: "out_type", data: [] }, |
| | | }, |
| | | { |
| | | field: "client_no", |
| | | title: "客æ·ä»£ç ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "client_name", |
| | | title: "客æ·åç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "warehouse_no", |
| | | title: "åºæ¿å·", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | bind: { key: "warehouseNuber", data: [] }, |
| | | }, |
| | | { |
| | | field: "account_time", |
| | | title: "åºåºè®°è´¦æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "outStatus", |
| | | title: "ç¶æ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | // bind: { key: "outStatus", data: [] } |
| | | // edit:{type:""} |
| | | }, |
| | | // { |
| | | // field: 'creater', |
| | | // title: 'å建人', |
| | | // type: 'string', |
| | | // width: 90, |
| | | // align: 'left' |
| | | // }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | }, |
| | | // { |
| | | // field: 'modifier', |
| | | // title: 'ä¿®æ¹äºº', |
| | | // type: 'string', |
| | | // width: 100, |
| | | // align: 'left' |
| | | // }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | }, |
| | | ]); |
| | | |
| | | const detail = ref({ |
| | | cnName: "åºåºåæç»", |
| | | table: "DeliveryOrderDetail", |
| | | url: "/DeliveryOrderDetail/", |
| | | columns: [ |
| | | { |
| | | field: "id", |
| | | title: "主é®", |
| | | type: "int", |
| | | width: 90, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "deliveryOrderId", |
| | | title: "å
³èåºåºåID", |
| | | type: "int", |
| | | width: 120, |
| | | require: true, |
| | | align: "left", |
| | | sort: true, |
| | | hidden: true, |
| | | }, |
| | | { |
| | | field: "reservoirarea", |
| | | title: "åºåº", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "warehouseNuber", data: [] }, |
| | | hidden: true, |
| | | }, |
| | | { |
| | | field: "goods_no", |
| | | title: "ç©æåç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | required: true, |
| | | // edit:{type:""}, |
| | | bind: { key: "MaterielNames", data: [] }, |
| | | }, |
| | | { |
| | | field: "goods_no", |
| | | title: "è¯åç¼ç ", |
| | | type: "string", |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | bind: { key: "medicineGoods", data: [] }, |
| | | edit: true, |
| | | }, |
| | | { |
| | | field: "order_qty", |
| | | title: "è®¢åæ°é", |
| | | type: "decimal", |
| | | width: 100, |
| | | require: true, |
| | | align: "left", |
| | | // edit:{type:"number"} |
| | | }, |
| | | { |
| | | field: "order_Outqty", |
| | | title: "宿æ°é", |
| | | type: "decimal", |
| | | width: 100, |
| | | require: true, |
| | | align: "left", |
| | | // edit:{type:"number"} |
| | | }, |
| | | { |
| | | field: "batch_num", |
| | | title: "æ¹å·", |
| | | type: "string", |
| | | width: 120, |
| | | require: true, |
| | | align: "left", |
| | | edit: true, |
| | | }, |
| | | { |
| | | field: "exp_date", |
| | | title: "ææ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | // edit:{type:""} |
| | | }, |
| | | { |
| | | field: "locationCode", |
| | | title: "è´§ä½å·", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | hidden: true, |
| | | edit: true, |
| | | }, |
| | | { |
| | | field: "ootDetailStatus", |
| | | title: "ç¶æ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | // edit:{type:""} |
| | | }, |
| | | { |
| | | field: "status", |
| | | title: "åæ¥ç¶æ", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "syncStatus", data: [] }, |
| | | // edit:{type:'select',dataKey:'syncStatus',data:[]} |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | hidden: true, |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | hidden: true, |
| | | sort: true, |
| | | }, |
| | | ], |
| | | sortName: "id", |
| | | key: "id", |
| | | }); |
| | | |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | |
| | | *ä¸å¡è¯·å¨@/extension/widesea_wcs/order/Dt_OutboundOrder_Hty.jsæ¤å¤ç¼å |
| | | --> |
| | | <template> |
| | | <view-grid ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend"> |
| | | </view-grid> |
| | | <view-grid |
| | | ref="grid" |
| | | :columns="columns" |
| | | :detail="detail" |
| | | :editFormFields="editFormFields" |
| | | :editFormOptions="editFormOptions" |
| | | :searchFormFields="searchFormFields" |
| | | :searchFormOptions="searchFormOptions" |
| | | :table="table" |
| | | :extend="extend" |
| | | > |
| | | </view-grid> |
| | | </template> |
| | | <script> |
| | | import extend from "@/extension/outbound/outboundOrder_Hty.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: 'id', |
| | | footer: "Foots", |
| | | cnName: 'åå²åºåºå', |
| | | name: 'DeliveryOrderHty', |
| | | url: "/DeliveryOrderHty/", |
| | | sortName: "id" |
| | | }); |
| | | const editFormFields = ref({}); |
| | | const editFormOptions = ref([]); |
| | | const searchFormFields = ref({ |
| | | out_no: "", |
| | | out_type: "", |
| | | client_no: "", |
| | | client_name: "", |
| | | warehouse_no: "", |
| | | outStatus: "", |
| | | account_time: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åºåºåå·", field: "out_no", type: "like" }, |
| | | { title: "客æ·ä»£ç ", field: "client_no", type: "like" }, |
| | | { |
| | | title: "åºåºåç±»å", |
| | | field: "out_type", |
| | | type: "select", |
| | | dataKey: "out_type", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "ç¶æ", |
| | | field: "outStatus", |
| | | type: "select", |
| | | dataKey: "outStatus", |
| | | data: [], |
| | | }, |
| | | { title: "客æ·åç§°", field: "client_name", type: "like" }, |
| | | { title: "åºåºè®°è´¦æ¶é´", field: "account_time", type: "datetime" }, |
| | | ] |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: 'id', |
| | | title: 'åå²è®°å½ä¸»é®', |
| | | type: 'int', |
| | | width: 120, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'sourceId', |
| | | title: 'å主é®', |
| | | type: 'int', |
| | | width: 100, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'out_no', |
| | | title: 'åºåºåå·', |
| | | type: 'string', |
| | | width: 150, |
| | | require: true, |
| | | align: 'left', |
| | | sort: true, |
| | | link: true |
| | | }, |
| | | { |
| | | field: 'out_type', |
| | | title: 'åºåºåç±»å', |
| | | type: 'string', |
| | | width: 120, |
| | | require: true, |
| | | align: 'left', |
| | | bind: { key: "out_type", data: [] } |
| | | }, |
| | | { |
| | | field: 'client_no', |
| | | title: '客æ·ä»£ç ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'client_name', |
| | | title: '客æ·åç§°', |
| | | type: 'string', |
| | | width: 150, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'warehouse_no', |
| | | title: 'åºåå·', |
| | | type: 'string', |
| | | width: 100, |
| | | align: 'left', |
| | | bind: { key: "warehouseNuber", data: [] } |
| | | }, |
| | | { |
| | | field: 'account_time', |
| | | title: 'åºåºè®°è´¦æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'outStatus', |
| | | title: '头æ ç¶æ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | bind: { key: "outStatus", data: [] } |
| | | }, |
| | | // { |
| | | // field: 'creater', |
| | | // title: 'å建人', |
| | | // type: 'string', |
| | | // width: 90, |
| | | // align: 'left' |
| | | // }, |
| | | { |
| | | field: 'createDate', |
| | | title: 'å建æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | }, |
| | | // { |
| | | // field: 'modifier', |
| | | // title: 'ä¿®æ¹äºº', |
| | | // type: 'string', |
| | | // width: 100, |
| | | // align: 'left' |
| | | // }, |
| | | // { |
| | | // field: 'modifyDate', |
| | | // title: 'ä¿®æ¹æ¶é´', |
| | | // type: 'datetime', |
| | | // width: 160, |
| | | // align: 'left', |
| | | // sort: true |
| | | // } |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "åå²åºåºåæç»", |
| | | table: "DtDeliveryOrderDetailHty", |
| | | columns: [ |
| | | { |
| | | field: 'id', |
| | | title: 'åå²è®°å½ä¸»é®', |
| | | type: 'int', |
| | | width: 120, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'sourceId', |
| | | title: 'å主é®', |
| | | type: 'int', |
| | | width: 100, |
| | | align: 'left' |
| | | }, |
| | | // { |
| | | // field: 'deliveryOrderId', |
| | | // title: 'å
³èåºåºåID', |
| | | // type: 'int', |
| | | // width: 120, |
| | | // require: true, |
| | | // align: 'left', |
| | | // sort: true, |
| | | // hidden: true |
| | | // }, |
| | | { |
| | | field: 'reservoirarea', |
| | | title: 'åºåº', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | bind: { key: "warehouseNuber", data: [] } |
| | | }, |
| | | { |
| | | field: "goods_no", |
| | | title: "ç©æåç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | required: true, |
| | | edit:{type:""}, |
| | | bind: { key: "MaterielNames", data: [] }, |
| | | }, |
| | | { |
| | | field: 'goods_no', |
| | | title: 'è¯åç¼ç ', |
| | | type: 'string', |
| | | width: 150, |
| | | require: true, |
| | | align: 'left', |
| | | bind: { key: "medicineGoods", data: [] } |
| | | }, |
| | | { |
| | | field: 'order_qty', |
| | | title: 'è®¢åæ°é', |
| | | type: 'decimal', |
| | | width: 100, |
| | | require: true, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'batch_num', |
| | | title: 'æ¹å·', |
| | | type: 'string', |
| | | width: 120, |
| | | require: true, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'exp_date', |
| | | title: 'æ ¡æ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'ootDetailStatus', |
| | | title: 'ç¶æ', |
| | | type: 'string', |
| | | width: 120, |
| | | align: 'left', |
| | | bind: { key: "ootDetailStatus", data: [] } |
| | | }, |
| | | { |
| | | field: 'status', |
| | | title: 'åæ¥ç¶æ', |
| | | type: 'int', |
| | | width: 120, |
| | | align: 'left', |
| | | bind: { key: "syncStatus", data: [] } |
| | | }, |
| | | { |
| | | field: 'creater', |
| | | title: 'å建人', |
| | | type: 'string', |
| | | width: 90, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'createDate', |
| | | title: 'å建æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | }, |
| | | { |
| | | field: 'modifier', |
| | | title: 'ä¿®æ¹äºº', |
| | | type: 'string', |
| | | width: 100, |
| | | align: 'left' |
| | | }, |
| | | { |
| | | field: 'modifyDate', |
| | | title: 'ä¿®æ¹æ¶é´', |
| | | type: 'datetime', |
| | | width: 160, |
| | | align: 'left', |
| | | sort: true |
| | | } |
| | | ], |
| | | sortName: "id", |
| | | key: "id" |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | import extend from "@/extension/outbound/outboundOrder_Hty.js"; |
| | | import { ref, defineComponent } from "vue"; |
| | | export default defineComponent({ |
| | | setup() { |
| | | const table = ref({ |
| | | key: "id", |
| | | footer: "Foots", |
| | | cnName: "åå²åºåºå", |
| | | name: "DeliveryOrderHty", |
| | | url: "/DeliveryOrderHty/", |
| | | sortName: "id", |
| | | }); |
| | | const editFormFields = ref({}); |
| | | const editFormOptions = ref([]); |
| | | const searchFormFields = ref({ |
| | | out_no: "", |
| | | out_type: "", |
| | | client_no: "", |
| | | client_name: "", |
| | | warehouse_no: "", |
| | | outStatus: "", |
| | | account_time: "", |
| | | }); |
| | | const searchFormOptions = ref([ |
| | | [ |
| | | { title: "åºåºåå·", field: "out_no", type: "like" }, |
| | | { title: "客æ·ä»£ç ", field: "client_no", type: "like" }, |
| | | { |
| | | title: "åºåºåç±»å", |
| | | field: "out_type", |
| | | type: "select", |
| | | dataKey: "out_type", |
| | | data: [], |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | | title: "ç¶æ", |
| | | field: "outStatus", |
| | | type: "select", |
| | | dataKey: "outStatus", |
| | | data: [], |
| | | }, |
| | | { title: "客æ·åç§°", field: "client_name", type: "like" }, |
| | | { title: "åºåºè®°è´¦æ¶é´", field: "account_time", type: "datetime" }, |
| | | ], |
| | | ]); |
| | | const columns = ref([ |
| | | { |
| | | field: "id", |
| | | title: "åå²è®°å½ä¸»é®", |
| | | type: "int", |
| | | width: 120, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "sourceId", |
| | | title: "å主é®", |
| | | type: "int", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "out_no", |
| | | title: "åºåºåå·", |
| | | type: "string", |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | sort: true, |
| | | link: true, |
| | | }, |
| | | { |
| | | field: "out_type", |
| | | title: "åºåºåç±»å", |
| | | type: "string", |
| | | width: 120, |
| | | require: true, |
| | | align: "left", |
| | | bind: { key: "out_type", data: [] }, |
| | | }, |
| | | { |
| | | field: "client_no", |
| | | title: "客æ·ä»£ç ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "client_name", |
| | | title: "客æ·åç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "warehouse_no", |
| | | title: "åºåå·", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | bind: { key: "warehouseNuber", data: [] }, |
| | | }, |
| | | { |
| | | field: "account_time", |
| | | title: "åºåºè®°è´¦æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "outStatus", |
| | | title: "头æ ç¶æ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "outStatus", data: [] }, |
| | | }, |
| | | // { |
| | | // field: 'creater', |
| | | // title: 'å建人', |
| | | // type: 'string', |
| | | // width: 90, |
| | | // align: 'left' |
| | | // }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | }, |
| | | // { |
| | | // field: 'modifier', |
| | | // title: 'ä¿®æ¹äºº', |
| | | // type: 'string', |
| | | // width: 100, |
| | | // align: 'left' |
| | | // }, |
| | | // { |
| | | // field: 'modifyDate', |
| | | // title: 'ä¿®æ¹æ¶é´', |
| | | // type: 'datetime', |
| | | // width: 160, |
| | | // align: 'left', |
| | | // sort: true |
| | | // } |
| | | ]); |
| | | const detail = ref({ |
| | | cnName: "åå²åºåºåæç»", |
| | | table: "DtDeliveryOrderDetailHty", |
| | | columns: [ |
| | | { |
| | | field: "id", |
| | | title: "åå²è®°å½ä¸»é®", |
| | | type: "int", |
| | | width: 120, |
| | | hidden: true, |
| | | readonly: true, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "sourceId", |
| | | title: "å主é®", |
| | | type: "int", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | // { |
| | | // field: 'deliveryOrderId', |
| | | // title: 'å
³èåºåºåID', |
| | | // type: 'int', |
| | | // width: 120, |
| | | // require: true, |
| | | // align: 'left', |
| | | // sort: true, |
| | | // hidden: true |
| | | // }, |
| | | { |
| | | field: "reservoirarea", |
| | | title: "åºåº", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "warehouseNuber", data: [] }, |
| | | }, |
| | | { |
| | | field: "goods_no", |
| | | title: "ç©æåç§°", |
| | | type: "string", |
| | | width: 150, |
| | | align: "left", |
| | | required: true, |
| | | edit: { type: "" }, |
| | | bind: { key: "MaterielNames", data: [] }, |
| | | }, |
| | | { |
| | | field: "goods_no", |
| | | title: "è¯åç¼ç ", |
| | | type: "string", |
| | | width: 150, |
| | | require: true, |
| | | align: "left", |
| | | bind: { key: "medicineGoods", data: [] }, |
| | | }, |
| | | { |
| | | field: "order_qty", |
| | | title: "è®¢åæ°é", |
| | | type: "decimal", |
| | | width: 100, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "order_Outqty", |
| | | title: "宿æ°é", |
| | | type: "decimal", |
| | | width: 100, |
| | | require: true, |
| | | align: "left", |
| | | // edit:{type:"number"} |
| | | }, |
| | | { |
| | | field: "batch_num", |
| | | title: "æ¹å·", |
| | | type: "string", |
| | | width: 120, |
| | | require: true, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "exp_date", |
| | | title: "æ ¡æ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "ootDetailStatus", |
| | | title: "ç¶æ", |
| | | type: "string", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "ootDetailStatus", data: [] }, |
| | | }, |
| | | { |
| | | field: "status", |
| | | title: "åæ¥ç¶æ", |
| | | type: "int", |
| | | width: 120, |
| | | align: "left", |
| | | bind: { key: "syncStatus", data: [] }, |
| | | }, |
| | | { |
| | | field: "creater", |
| | | title: "å建人", |
| | | type: "string", |
| | | width: 90, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "createDate", |
| | | title: "å建æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | }, |
| | | { |
| | | field: "modifier", |
| | | title: "ä¿®æ¹äºº", |
| | | type: "string", |
| | | width: 100, |
| | | align: "left", |
| | | }, |
| | | { |
| | | field: "modifyDate", |
| | | title: "ä¿®æ¹æ¶é´", |
| | | type: "datetime", |
| | | width: 160, |
| | | align: "left", |
| | | sort: true, |
| | | }, |
| | | ], |
| | | sortName: "id", |
| | | key: "id", |
| | | }); |
| | | return { |
| | | table, |
| | | extend, |
| | | editFormFields, |
| | | editFormOptions, |
| | | searchFormFields, |
| | | searchFormOptions, |
| | | columns, |
| | | detail, |
| | | }; |
| | | }, |
| | | }); |
| | | </script> |
| | |
| | | title: "çç¹å·®å¼æ°", |
| | | type: "number", |
| | | span: 8 |
| | | |
| | | }, |
| | | |
| | | ], |
| | |
| | | type: "number", |
| | | width: 100, |
| | | align: "left", |
| | | cellStyle: (row) => { |
| | | const value = row.supplyQuantity; |
| | | if (value > 0) { |
| | | return { color: "#00ff00" }; // ç»¿è² |
| | | } else if (value < 0) { |
| | | return { color: "#ff0000" }; // çº¢è² |
| | | } |
| | | // else { |
| | | // return { color: '#000000' }; // é»è² |
| | | // } |
| | | }, |
| | | }, |
| | | { |
| | | field: "inDate", |