|
|
@@ -59,6 +59,7 @@ import org.stringtemplate.v4.ST;
|
|
|
import java.lang.reflect.Field;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.BigInteger;
|
|
|
+import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -484,7 +485,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
}
|
|
|
inttraSoDto.setBillLadingNumber(RegularUtils.englishToNumber(details.getNumberOfObl()));
|
|
|
inttraSoDto.setBillLadingNumberOfCopy(RegularUtils.englishToNumber(details.getNumberOfCopy()));
|
|
|
- inttraSoDto.setPackagesNumber(details.getQuantity());
|
|
|
+ inttraSoDto.setPackagesNumber(details.getQuantity().setScale(3, BigDecimal.ROUND_HALF_UP));
|
|
|
if (ObjectUtils.isNotNull(details.getPackingUnitId())) {
|
|
|
BPackages bPackages = bPackagesService.getOne(new LambdaQueryWrapper<BPackages>()
|
|
|
.eq(BPackages::getId, details.getPackingUnitId()));
|
|
|
@@ -496,8 +497,13 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
inttraSoDto.setPackagesDescribe(details.getPackingUnit());//包装描述
|
|
|
inttraSoDto.setGoodsName(details.getCommodityEnName());
|
|
|
inttraSoDto.setGoodsDesc(details.getCommodityDescr());
|
|
|
- inttraSoDto.setGrossWeight(details.getGrossWeight());
|
|
|
- inttraSoDto.setMeasurement(details.getMeasurement());
|
|
|
+ inttraSoDto.setGrossWeight(details.getGrossWeight().setScale(3, BigDecimal.ROUND_HALF_UP));
|
|
|
+ inttraSoDto.setMeasurement(details.getMeasurement().setScale(3, BigDecimal.ROUND_HALF_UP));
|
|
|
+
|
|
|
+ inttraSoDto.setCntrPackagesNumber(BigDecimal.ZERO);
|
|
|
+ inttraSoDto.setCntrGrossWeight(BigDecimal.ZERO);
|
|
|
+ inttraSoDto.setCntrMeasurement(BigDecimal.ZERO);
|
|
|
+
|
|
|
inttraSoDto.setMarks(details.getMarks());
|
|
|
inttraSoDto.setHsCode(ObjectUtils.isNotNull(details.getHscode()) ? details.getHscode().trim() : "");
|
|
|
inttraSoDto.setCargoType(details.getCargoType());
|
|
|
@@ -597,6 +603,7 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
.apply("find_in_set(id,'" + boxType + "')")
|
|
|
.eq(BCntrTypes::getIsDeleted, 0));
|
|
|
List<Map<String, Object>> cntrs = new ArrayList<>();
|
|
|
+ List<Map<String, Object>> uiCntrs = new ArrayList<>();
|
|
|
for (Containers item : containersList) {
|
|
|
BCntrTypes bCntrTypes = bCntrTypesList.stream().filter(e -> e.getId().toString().equals(item.getCntrTypeCodeId())).findFirst().orElse(null);
|
|
|
if (bCntrTypes != null) {
|
|
|
@@ -622,6 +629,11 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
map.put("volume", item.getMeasurement());
|
|
|
map.put("sizeType", ediCode);
|
|
|
map.put("cntrTypeName", RegularUtils.forceEmpty(bCntrTypes.getEnName()));
|
|
|
+
|
|
|
+ inttraSoDto.setCntrPackagesNumber(inttraSoDto.getCntrPackagesNumber().add(item.getQuantity()).setScale(3, RoundingMode.HALF_UP));
|
|
|
+ inttraSoDto.setCntrGrossWeight(inttraSoDto.getCntrGrossWeight().add(item.getGrossWeight()).setScale(3, RoundingMode.HALF_UP));
|
|
|
+ inttraSoDto.setCntrMeasurement(inttraSoDto.getCntrMeasurement().add(item.getMeasurement()).setScale(3, RoundingMode.HALF_UP));
|
|
|
+
|
|
|
String ccc = RegularUtils.forceEmpty(bCntrTypes.getCode()), cntrType = "", cntrSize="";
|
|
|
if(ccc.length()>=4){
|
|
|
cntrSize = RegularUtils.copySubstring(ccc, 0, 2);
|
|
|
@@ -668,12 +680,31 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
}
|
|
|
map.put("commodityList", ccList);
|
|
|
|
|
|
+ // uiCntrs
|
|
|
+ if(ObjectUtils.isNotNull(map.get("cntrNo"))){
|
|
|
+ Map<String, Object> obj1 = uiCntrs.stream().filter(c->c.get("cntrNo")==map.get("cntrNo")).findAny().orElse(null);
|
|
|
+ if(ObjectUtils.isNotNull(obj1)){
|
|
|
+ obj1.replace("count", Integer.parseInt(obj1.get("count").toString()) + 1);
|
|
|
+ }else{
|
|
|
+ obj1 = new HashMap<>();
|
|
|
+ obj1.put("cntrNo", map.get("cntrNo"));
|
|
|
+ obj1.put("count", 1);
|
|
|
+ uiCntrs.add(obj1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
cntrs.add(map);
|
|
|
} else {
|
|
|
throw new RuntimeException("箱型数据错误");
|
|
|
}
|
|
|
}
|
|
|
inttraSoDto.setLoadedCntrs(cntrs);
|
|
|
+
|
|
|
+ List<Map<String, Object>> duiCntrs = uiCntrs.stream().filter(c->Integer.parseInt(c.get("count").toString())>1).collect(Collectors.toList());
|
|
|
+ if(duiCntrs.size()>0){
|
|
|
+ throw new RuntimeException("配箱信息中,箱号重复!");
|
|
|
+ }
|
|
|
+
|
|
|
inttraSoDto.setHasMixedCargo(mixedCargoCount > 0);
|
|
|
|
|
|
inttraSoDto.setAMSProp("");
|
|
|
@@ -821,6 +852,8 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ inttraSoDto.setNeedVerifyPkgs(readEdiParamBooleanValue(ediParamCarrier, "verifyPkgs", false));
|
|
|
+
|
|
|
// 默认发送方
|
|
|
String defaultSenderId = "JMSLOGQDSO";
|
|
|
inttraSoDto.setSenderId(readEdiParamStringValue(ediParamCarrier, "senderId", defaultSenderId));
|
|
|
@@ -887,6 +920,27 @@ public class EdiTypesServiceImpl extends ServiceImpl<EdiTypesMapper, EdiTypes> i
|
|
|
inttraSoDto.setHblBillsList(hbls);
|
|
|
}
|
|
|
|
|
|
+ if(inttraSoDto.getNeedVerifyPkgs()==true){
|
|
|
+ System.out.println("PackagesNumber = " + inttraSoDto.getPackagesNumber());
|
|
|
+ System.out.println("CntrPackagesNumber = " + inttraSoDto.getCntrPackagesNumber());
|
|
|
+ System.out.println("compareTo = " + inttraSoDto.getPackagesNumber().compareTo(inttraSoDto.getCntrPackagesNumber()));
|
|
|
+
|
|
|
+ System.out.println("GrossWeight = " + inttraSoDto.getGrossWeight());
|
|
|
+ System.out.println("CntrGrossWeight = " + inttraSoDto.getCntrGrossWeight());
|
|
|
+ System.out.println("compareTo = " + inttraSoDto.getGrossWeight().compareTo(inttraSoDto.getCntrGrossWeight()));
|
|
|
+
|
|
|
+ System.out.println("Measurement = " + inttraSoDto.getMeasurement());
|
|
|
+ System.out.println("CntrMeasurement = " + inttraSoDto.getCntrMeasurement());
|
|
|
+ System.out.println("compareTo = " + inttraSoDto.getMeasurement().compareTo(inttraSoDto.getCntrMeasurement()));
|
|
|
+
|
|
|
+ if(inttraSoDto.getPackagesNumber().compareTo(inttraSoDto.getCntrPackagesNumber())!=0
|
|
|
+ || inttraSoDto.getGrossWeight().compareTo(inttraSoDto.getCntrGrossWeight())!=0
|
|
|
+ || inttraSoDto.getMeasurement().compareTo(inttraSoDto.getCntrMeasurement())!=0
|
|
|
+ ){
|
|
|
+ return R.fail("业务的件重尺与配箱的件重尺不相等!");
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
FilesCenter filesCenter = null;
|
|
|
Map<String, Object> status = null;
|
|
|
|