Browse Source

箱单下的总毛重应该是一致的,报关单也是同理

java8
han\hanst 5 months ago
parent
commit
5cf79b6729
  1. 37
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

37
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

@ -682,12 +682,12 @@ public class CoDelServiceImpl implements CoDelService {
}
// 过滤掉发票号不一致的数据
excelList.removeIf(data -> !inData.getCmcInvoice().equals(data.getCmcInvoice()));
// 检查过滤后是否还有数据
if (excelList.isEmpty()) {
throw new RuntimeException("导入失败:Excel中没有与发货通知单["+inData.getCmcInvoice()+"]一致的发票号数据");
}
List<EcssCoDelNotifyHeaderData> notifyHeader = coDelMapper.checkIfHasHeader(excelList.get(0).getCmcInvoice());
EcssCoDelNotifyHeaderData headerData;
if (notifyHeader.isEmpty()) {
@ -1708,7 +1708,26 @@ public class CoDelServiceImpl implements CoDelService {
template.addVar("packageType", stringInput(ecHeader.getPackageType()));
template.addVar("packageQty", data.getPackageUnit()!=null&&data.getPackageUnit().equals("箱")?ecHeader.getBoxQty():ecHeader.getPackageQty());
template.addVar("packageUnit", data.getPackageUnit());
template.addVar("grossWeight", ecHeader.getGrossWeight() != null ? ecHeader.getGrossWeight().setScale(2, RoundingMode.HALF_UP) : "");
// 托盘重量=根据每个pallet的重量*数量累加
EcssCoDelNotifyHeaderData notifyHeader = coDelMapper.getEcssCoDelNotifyHeader(data.getSite(), data.getDelNo());
List<EcssCoDelPalletHeaderData> palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader);
BigDecimal palletWeight = BigDecimal.ZERO;
for (EcssCoDelPalletHeaderData palletHeader : palletHeaderDataList) {
if (palletHeader.getPallet() != null && !palletHeader.getPallet().isEmpty()) {
// 根据pallet编号查询EcssPallet信息
List<EcssPalletData> palletDataList = coDelMapper.getPallet(notifyHeader.getSite(), notifyHeader.getBuNo(), palletHeader.getPallet());
if (!palletDataList.isEmpty()) {
EcssPalletData palletData = palletDataList.get(0);
if (palletData.getPalletWeight() != null && palletHeader.getPalletQty() != null) {
// 栈板重量 = 单个栈板重量 * 数量
BigDecimal singlePalletWeight = palletData.getPalletWeight().multiply(BigDecimal.valueOf(palletHeader.getPalletQty()));
palletWeight = palletWeight.add(singlePalletWeight);
}
}
}
}
BigDecimal grossWeight = ecHeader.getGrossWeight() != null ? ecHeader.getGrossWeight() : BigDecimal.ZERO;
template.addVar("grossWeight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP));
template.addVar("netWeight", ecHeader.getNetWeight() != null ? ecHeader.getNetWeight().setScale(2, RoundingMode.HALF_UP) : "");
template.addVar("paymentType", stringInput(ecHeader.getPaymentType()));
template.addVar("shipPrice", ecHeader.getShipPrice() != null ? ecHeader.getShipPrice().setScale(2, RoundingMode.HALF_UP) : "");
@ -2044,7 +2063,7 @@ public class CoDelServiceImpl implements CoDelService {
}
}
template.addVar("Total_Cartons", totalCartons.setScale(0, RoundingMode.HALF_UP));
template.addVar("Gross_Weight", grossWeight.setScale(2, RoundingMode.HALF_UP));
template.addVar("Gross_Weight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP));
template.addVar("Net_Weight", netWeight.setScale(2, RoundingMode.HALF_UP));
template.addVar("total_weight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP));
template.addVar("total_netweight", netWeight.setScale(2, RoundingMode.HALF_UP));
@ -2526,7 +2545,7 @@ public class CoDelServiceImpl implements CoDelService {
public void copyEcssTemplate(EcssTemplate data) {
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
String site = coDelMapper.getSiteByBu(data.getBuNo());
// 检查目标模板名称是否已存在
EcssTemplate checkData = new EcssTemplate();
checkData.setBuNo(data.getBuNo());
@ -2535,27 +2554,27 @@ public class CoDelServiceImpl implements CoDelService {
if(!existingTemplates.isEmpty()){
throw new RuntimeException("目标BU中模版["+data.getName()+"]已存在!");
}
// 获取原模板数据
EcssTemplate sourceTemplate = coDelMapper.getEcssTemplateByBuAndName(data.getNameNative(), data.getSite());
if(sourceTemplate == null) {
throw new RuntimeException("原模版不存在!");
}
// 复制模板数据
sourceTemplate.setBuNo(data.getBuNo());
sourceTemplate.setName(data.getName());
sourceTemplate.setSite(site);
sourceTemplate.setCreateBy(currentUser.getUsername());
sourceTemplate.setAddFlag(0); // 设置为新增标识
// 根据目标BU调整kgs参数
if("03-RFID".equals(data.getBuNo())) {
sourceTemplate.setKgs(new BigDecimal("4.5"));
} else if("01-Label".equals(data.getBuNo())) {
sourceTemplate.setKgs(new BigDecimal("2.5"));
}
// 插入新模板
coDelMapper.insertEcssTemplateData(sourceTemplate);
}

Loading…
Cancel
Save