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
|
{
|
/// <summary>
|
/// 添加实托库存
|
/// </summary>
|
/// <param name="taskInfo"></param>
|
/// <returns></returns>
|
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);
|
|
}
|
|
/// <summary>
|
/// 添加空托盘库存
|
/// </summary>
|
/// <param name="taskInfo"></param>
|
/// <returns></returns>
|
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);
|
|
}
|
}
|
}
|