using System; using System.Collections.Generic; using System.Linq; using System.Text; using WIDESEA.Core.ManageUser; using WIDESEA.Entity.DomainModels; using WIDESEA.Services.Repositories; namespace WIDESEA.Services.Services { public partial class CommonFunction { /// /// 添加实托库存 /// /// /// public static void AddBoxContainer(Dt_taskinfo taskInfo, Dt_boxing_head boxHead, Dt_boxing_detail boxDetail, Dt_mes_goods_info goodsInfo) { if (boxHead == null || boxDetail == null || goodsInfo == null) throw new Exception($"没有找到对任务托盘号:【{taskInfo.task_barcode}】对应的组盘信息或者是录入信息"); //这里是获取空托盘重量,调试占时注释 Dt_container_head_hty container_Head_Hty = Dt_container_head_htyRepository.Instance.Find(x => x.containerhead_barcode == taskInfo.task_barcode && x.containerhead_operatetype == "empty" && x.containerhead_creator != "WCS" && !string.IsNullOrEmpty(x.containerhead_palletweight) && "0" != x.containerhead_palletweight) .OrderByDescending(x => x.containerhead_finishtime).First(); if (container_Head_Hty == null) throw new Exception($"没有找到对任务托盘号:【{taskInfo.task_barcode}】对应的空托盘出库记录"); //0不合格,1合格 int weighingResult = 0; Dt_weighing_standards standars = Dt_weighing_standardsRepository.Instance.FindFirst(r => r.weighing_materiel_id == boxDetail.boxdtl_materielid && r.weighing_bearing_id == boxDetail.boxdtl_type && r.weighing_manufacturer == goodsInfo.mesInfo_madeUnit && r.weighing_type == goodsInfo.mesInfo_standard); if (null != standars) { //当前轴承 decimal currentWeighing = (decimal.Parse(taskInfo.task_weight) - decimal.Parse(container_Head_Hty.containerhead_palletweight)) + standars.weighing_addWeighing.GetValueOrDefault(); //是否计算 if (standars.weighing_isCompute == 1) { //差异值 decimal differencWeiging = standars.weighing_standard_value.GetValueOrDefault() - currentWeighing; if (differencWeiging < 0) { if (standars.weighing_positive_value >= -differencWeiging) weighingResult = 1; } else { if (differencWeiging <= standars.weighing_negative_value) weighingResult = 1; } } else weighingResult = 1; } Dt_container_head conHead = new Dt_container_head(); conHead.containerhead_id = Guid.NewGuid(); conHead.containerhead_barcode = taskInfo.task_barcode; conHead.containerhead_creator = taskInfo.task_creator; conHead.containerhead_createtime = DateTime.Now; conHead.containerhead_palletweight = container_Head_Hty.containerhead_palletweight; Dt_container_headRepository.Instance.Add(conHead, true); Dt_container_detail conDetail = new Dt_container_detail(); conDetail.containerdtl_id = Guid.NewGuid(); conDetail.containerdtl_headid = conHead.containerhead_id.ToString(); conDetail.containerdtl_materielid = taskInfo.task_materielid; conDetail.containerdtl_qty = "1"; conDetail.containerdtl_operator = taskInfo.task_creator; conDetail.containerdtl_identifierNo = ""; conDetail.containerdtl_inboundUnit = goodsInfo.mesInfo_inUnit; conDetail.containerdtl_standard = goodsInfo.mesInfo_standard; conDetail.containerdtl_madeDate = goodsInfo.mesInfo_madeDate; conDetail.containerdtl_carType = goodsInfo.mesInfo_carType; conDetail.containerdtl_type = goodsInfo.mesInfo_type; conDetail.containerdtl_barcode = taskInfo.task_barcode; conDetail.containerdtl_madeUnit = goodsInfo.mesInfo_madeUnit; conDetail.containerdtl_number = goodsInfo.mesInfo_number; conDetail.containerdtl_goodsCode = goodsInfo.mesInfo_qrCode; conDetail.containerdtl_goodsWeight = ((decimal.Parse(taskInfo.task_weight) - decimal.Parse(container_Head_Hty.containerhead_palletweight)) + standars.weighing_addWeighing.GetValueOrDefault()).ToString(); conDetail.containerdtl_creator = taskInfo.task_creator; conDetail.containerdtl_createtime = DateTime.Now; conDetail.containerdtl_text1 = "未测量"; //称重结果 conDetail.containerdtl_standardResult = weighingResult; //生产日期\批次 - 2024年6月27日新增启用 conDetail.containerdtl_lotNumber = boxDetail.boxdtl_text2; //批次 conDetail.containerdtl_ProductDate = Convert.ToDateTime(boxDetail.boxdtl_text3).AddYears(2).ToString("yyyy-MM-dd"); //生产日期 //批次 - 2025年7月9日新增启用 当相同批次,有确认后,则后面的按入库时间 Dt_container_detail containerList = Dt_container_detailRepository.Instance.Find(r => r.containerdtl_lotNumber == boxDetail.boxdtl_text2 && r.containerdtl_qualityCheck==true).FirstOrDefault(); if (containerList != null) { conDetail.containerdtl_qualityCheck = true; conDetail.containerdtl_qualityCheckTime = DateTime.Now; conDetail.containerdtl_qualityCheckUser = containerList.containerdtl_qualityCheckUser; } Dt_container_detailRepository.Instance.Add(conDetail, true); Dt_barcodeinfo barcodeinfo = new Dt_barcodeinfo(); barcodeinfo.barcodeinfo_id = Guid.NewGuid(); barcodeinfo.barcode_value = taskInfo.task_barcode; barcodeinfo.barcode_intime = DateTime.Now; barcodeinfo.barcode_locationid = taskInfo.task_tolocationid; barcodeinfo.barcode_creator = taskInfo.task_creator; barcodeinfo.barcode_createtime = DateTime.Now; Dt_barcodeinfoRepository.Instance.Add(barcodeinfo, true); Dt_container_size_info size_Info = Dt_container_size_infoRepository.Instance.FindFirst(x => x.csize_barcode == goodsInfo.mesInfo_qrCode); if (null != size_Info) { Dt_container_size_info_hty hty = new Dt_container_size_info_hty() { csize_barcode = size_Info.csize_barcode, csize_container_detail_id = size_Info.csize_container_detail_id, csize_four_1 = size_Info.csize_four_1, csize_four_2 = size_Info.csize_four_2, csize_four_3 = size_Info.csize_four_3, csize_four_result = size_Info.csize_four_result, csize_id = Guid.NewGuid(), csize_in_1 = size_Info.csize_in_1, csize_in_10 = size_Info.csize_in_10, csize_in_11 = size_Info.csize_in_11, csize_in_12 = size_Info.csize_in_12, csize_in_13 = size_Info.csize_in_13, csize_in_14 = size_Info.csize_in_14, csize_in_15 = size_Info.csize_in_15, csize_in_16 = size_Info.csize_in_16, csize_in_2 = size_Info.csize_in_2, csize_in_3 = size_Info.csize_in_3, csize_in_4 = size_Info.csize_in_4, csize_in_5 = size_Info.csize_in_5, csize_in_6 = size_Info.csize_in_6, csize_in_7 = size_Info.csize_in_7, csize_in_8 = size_Info.csize_in_8, csize_in_9 = size_Info.csize_in_9, csize_in_result = size_Info.csize_in_result, csize_in_value = size_Info.csize_in_value, csize_out_1 = size_Info.csize_out_1, csize_out_10 = size_Info.csize_out_10, csize_out_11 = size_Info.csize_out_11, csize_out_12 = size_Info.csize_out_12, csize_out_13 = size_Info.csize_out_13, csize_out_14 = size_Info.csize_out_14, csize_out_15 = size_Info.csize_out_15, csize_out_16 = size_Info.csize_out_16, csize_out_2 = size_Info.csize_out_2, csize_out_3 = size_Info.csize_out_3, csize_out_4 = size_Info.csize_out_4, csize_out_5 = size_Info.csize_out_5, csize_out_6 = size_Info.csize_out_6, csize_out_7 = size_Info.csize_out_7, csize_out_8 = size_Info.csize_out_8, csize_out_9 = size_Info.csize_out_9, csize_out_result = size_Info.csize_out_result, csize_out_value = size_Info.csize_out_value, csize_three_1 = size_Info.csize_three_1, csize_three_2 = size_Info.csize_three_2, csize_three_3 = size_Info.csize_three_3, csize_three_result = size_Info.csize_three_result, cszie_bak_1 = size_Info.cszie_bak_1, cszie_bak_2 = size_Info.cszie_bak_2, cszie_bak_3 = size_Info.cszie_bak_3, cszie_bak_4 = size_Info.cszie_bak_4, cszie_bak_5 = size_Info.cszie_bak_5, }; Dt_container_size_info_htyRepository.Instance.Add(hty, true); Dt_container_size_infoRepository.Instance.Delete(size_Info, true); } //插入默认的测量信息记录 Dt_container_size_info newsize_Info = new Dt_container_size_info(); newsize_Info.csize_id = Guid.NewGuid(); newsize_Info.csize_container_detail_id = conDetail.containerdtl_id.ToString(); newsize_Info.csize_barcode = goodsInfo.mesInfo_qrCode; Dt_container_size_infoRepository.Instance.Add(newsize_Info, true); } /// /// 添加空托盘库存 /// /// /// public static void AddEmptyPalletContainer(Dt_taskinfo taskInfo) { Dt_container_head conHead = new Dt_container_head(); conHead.containerhead_id = Guid.NewGuid(); conHead.containerhead_barcode = taskInfo.task_barcode; conHead.containerhead_creator = taskInfo.task_creator; conHead.containerhead_createtime = DateTime.Now; conHead.containerhead_palletweight = taskInfo.task_weight; Dt_container_headRepository.Instance.Add(conHead, true); Dt_container_detail conDetail = new Dt_container_detail(); conDetail.containerdtl_id = Guid.NewGuid(); conDetail.containerdtl_headid = conHead.containerhead_id.ToString(); conDetail.containerdtl_materielid = taskInfo.task_materielid; conDetail.containerdtl_qty = "1"; conDetail.containerdtl_creator = taskInfo.task_creator; conDetail.containerdtl_createtime = DateTime.Now; Dt_container_detailRepository.Instance.Add(conDetail, true); Dt_barcodeinfo barcodeinfo = new Dt_barcodeinfo(); barcodeinfo.barcodeinfo_id = Guid.NewGuid(); barcodeinfo.barcode_value = taskInfo.task_barcode; barcodeinfo.barcode_intime = DateTime.Now; barcodeinfo.barcode_locationid = taskInfo.task_tolocationid; barcodeinfo.barcode_creator = taskInfo.task_creator; barcodeinfo.barcode_createtime = DateTime.Now; Dt_barcodeinfoRepository.Instance.Add(barcodeinfo, true); } } }