|
|
@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
-import org.apache.commons.io.IOUtils;
|
|
|
import org.springblade.client.entity.Message;
|
|
|
import org.springblade.client.feign.IMessageClient;
|
|
|
import org.springblade.core.excel.util.ExcelUtil;
|
|
|
@@ -74,7 +73,6 @@ import org.springblade.los.finance.fee.service.ICostProfitCalculationService;
|
|
|
import org.springblade.los.finance.fee.service.IFeeCenterService;
|
|
|
import org.springblade.los.ftp.dto.ApiItem;
|
|
|
import org.springblade.los.ftp.dto.ApiRequest;
|
|
|
-import org.springblade.los.ftp.dto.ContainerMovement;
|
|
|
import org.springblade.resource.feign.IOssClient;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
@@ -84,8 +82,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.io.InputStreamReader;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.rmi.RemoteException;
|
|
|
@@ -648,7 +644,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
boxDynamicsRecord.setBoxCode(String.join(",", boxCodeList));
|
|
|
boxDynamicsRecord.setContainerNumber(String.join(",", releaseNoList));
|
|
|
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
List<BoxDynamicsRecordItems> itemsList = new ArrayList<>();
|
|
|
// 9. 执行明细参数校验
|
|
|
validateBasicParamsItem(apiRequest, msg, billsList, putBoxList, boxTypeList);
|
|
|
@@ -693,7 +689,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
try {
|
|
|
recordItems.setApproachExitDate(formatter.parse(item.getApproachExitDate()));
|
|
|
} catch (ParseException e) {
|
|
|
- msg.append("进出场日期格式不正确,请传入格式为‘yyyy-MM-dd’正确格式日期;");
|
|
|
+ msg.append("进出场日期格式不正确,请传入格式为‘yyyy-MM-dd HH:mm:ss’正确格式日期;");
|
|
|
}
|
|
|
itemsList.add(recordItems);
|
|
|
}
|
|
|
@@ -1158,12 +1154,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
count = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListJC) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(item.getCode())
|
|
|
- && !item.getCode().contains(e.getBoxCode())) {
|
|
|
- item.setCode(item.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- item.setCode(e.getBoxCode());
|
|
|
+ List<String> codeList = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!item.getCode().contains(e)) {
|
|
|
+ item.setCode(item.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -1190,13 +1185,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
} else {
|
|
|
count1 = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
|
|
|
}
|
|
|
- if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListJC) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(tradingBox.getCode())
|
|
|
- && !tradingBox.getCode().contains(e.getBoxCode())) {
|
|
|
- tradingBox.setCode(tradingBox.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- tradingBox.setCode(e.getBoxCode());
|
|
|
+ if (ObjectUtils.isNotNull(tradingBox.getCode())) {
|
|
|
+ List<String> codeList = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!tradingBox.getCode().contains(e)) {
|
|
|
+ tradingBox.setCode(tradingBox.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -1458,6 +1452,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (bills != null) {
|
|
|
putBoxItem.setPodFreeBoxUseDays(bills.getPodFreeBoxUseDays());
|
|
|
putBoxItem.setEta(bills.getEta());
|
|
|
+ putBoxItem.setActualEta(bills.getActualEta());
|
|
|
List<Containers> containersList = containersHYJKList.stream().filter(e -> e.getPid().equals(bills.getId())
|
|
|
&& recordItems.getBoxCode().equals(e.getCntrNo())).collect(Collectors.toList());
|
|
|
for (Containers item : containersList) {
|
|
|
@@ -1517,6 +1512,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (bills != null) {
|
|
|
tradingBoxItem.setPodFreeBoxUseDays(bills.getPodFreeBoxUseDays());
|
|
|
tradingBoxItem.setEta(bills.getEta());
|
|
|
+ tradingBoxItem.setActualEta(bills.getActualEta());
|
|
|
}
|
|
|
tradingBoxItemOldList.add(tradingBoxItem);
|
|
|
}
|
|
|
@@ -2134,12 +2130,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
count = itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListZJ) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(item.getCode())
|
|
|
- && !item.getCode().contains(e.getBoxCode())) {
|
|
|
- item.setCode(item.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- item.setCode(e.getBoxCode());
|
|
|
+ List<String> codeList = itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!item.getCode().contains(e)) {
|
|
|
+ item.setCode(item.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -2166,13 +2161,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
} else {
|
|
|
count1 = itemsListJC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())).count();
|
|
|
}
|
|
|
- if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListZJ) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(tradingBox.getCode())
|
|
|
- && !tradingBox.getCode().contains(e.getBoxCode())) {
|
|
|
- tradingBox.setCode(tradingBox.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- tradingBox.setCode(e.getBoxCode());
|
|
|
+ if (ObjectUtils.isNotNull(tradingBox.getCode())) {
|
|
|
+ List<String> codeList = itemsListZJ.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!tradingBox.getCode().contains(e)) {
|
|
|
+ tradingBox.setCode(tradingBox.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -2631,12 +2625,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
List<PutBox> putBoxList1 = new ArrayList<>();
|
|
|
for (PutBox item : putBoxes) {
|
|
|
if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListZD) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(item.getCode())
|
|
|
- && !item.getCode().contains(e.getBoxCode())) {
|
|
|
- item.setCode(item.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- item.setCode(e.getBoxCode());
|
|
|
+ List<String> codeList = itemsListZD.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!item.getCode().contains(e)) {
|
|
|
+ item.setCode(item.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -2671,13 +2664,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
TradingBox tradingBox = tradingBoxes.stream().filter(e -> e.getId().equals(item.getSrcId())).findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListZD) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(tradingBox.getCode())
|
|
|
- && !tradingBox.getCode().contains(e.getBoxCode())) {
|
|
|
- tradingBox.setCode(tradingBox.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- tradingBox.setCode(e.getBoxCode());
|
|
|
+ if (ObjectUtils.isNotNull(tradingBox.getCode())) {
|
|
|
+ List<String> codeList = itemsListZD.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!tradingBox.getCode().contains(e)) {
|
|
|
+ tradingBox.setCode(tradingBox.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -2999,6 +2991,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
putBoxItem.setUpdateUser(AuthUtil.getUserId());
|
|
|
putBoxItem.setUpdateUserName(AuthUtil.getUserName());
|
|
|
putBoxItem.setUpdateTime(new Date());
|
|
|
+ putBoxItem.setActualEtd(bills.getActualEtd());
|
|
|
} else {
|
|
|
putBoxItem = new PutBoxItems();
|
|
|
putBoxItem.setBoxClass(putBoxData.getBoxClass());
|
|
|
@@ -3034,6 +3027,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
putBoxItem.setCreateUser(AuthUtil.getUserId());
|
|
|
putBoxItem.setCreateUserName(AuthUtil.getUserName());
|
|
|
putBoxItem.setCreateTime(new Date());
|
|
|
+ putBoxItem.setActualEtd(bills.getActualEtd());
|
|
|
}
|
|
|
} else {
|
|
|
putBoxItem = new PutBoxItems();
|
|
|
@@ -3070,6 +3064,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
putBoxItem.setCreateUser(AuthUtil.getUserId());
|
|
|
putBoxItem.setCreateUserName(AuthUtil.getUserName());
|
|
|
putBoxItem.setCreateTime(new Date());
|
|
|
+ putBoxItem.setActualEtd(bills.getActualEtd());
|
|
|
}
|
|
|
if (ObjectUtils.isNotNull(putBoxData.getBoxEastId()) && !"null".equals(putBoxData.getBoxEastId())) {
|
|
|
putBoxItem.setBoxEastId(Long.parseLong(putBoxData.getBoxEastId()));
|
|
|
@@ -3264,6 +3259,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
tradingBoxItem.setBoxEastId(tradingBox.getPurchaseCompanyId());
|
|
|
tradingBoxItem.setBoxEastName(tradingBox.getPurchaseCompanyName());
|
|
|
+ tradingBoxItem.setActualEtd(bills.getActualEtd());
|
|
|
tradingBoxItems.add(tradingBoxItem);
|
|
|
} else {
|
|
|
failureHandling(type, boxDynamicsRecord, "放箱号:" + item.getContainerNumber() + "未查到OW单据");
|
|
|
@@ -3326,12 +3322,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
List<PutBox> putBoxListOld = new ArrayList<>();
|
|
|
for (PutBox item : putBoxes) {
|
|
|
if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListCC) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(item.getCode())
|
|
|
- && !item.getCode().contains(e.getBoxCode())) {
|
|
|
- item.setCode(item.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- item.setCode(e.getBoxCode());
|
|
|
+ List<String> codeList = itemsListCC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!item.getCode().contains(e)) {
|
|
|
+ item.setCode(item.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -3408,13 +3403,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
TradingBox tradingBox = tradingBoxes.stream().filter(e -> e.getId().equals(item.getSrcId())).findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- if (ObjectUtils.isNotNull(item.getCode())) {
|
|
|
- for (BoxDynamicsRecordItems e : itemsListCC) {
|
|
|
- if (e.getContainerNumber().equals(item.getContainerNumber()) && ObjectUtils.isNotNull(tradingBox.getCode())
|
|
|
- && !tradingBox.getCode().contains(e.getBoxCode())) {
|
|
|
- tradingBox.setCode(tradingBox.getCode() + "," + e.getBoxCode());
|
|
|
- } else {
|
|
|
- tradingBox.setCode(e.getBoxCode());
|
|
|
+ if (ObjectUtils.isNotNull(tradingBox.getCode())) {
|
|
|
+ List<String> codeList = itemsListCC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getBoxCode).collect(Collectors.toList());
|
|
|
+ for (String e : codeList) {
|
|
|
+ if (!tradingBox.getCode().contains(e)) {
|
|
|
+ tradingBox.setCode(item.getCode() + "," + e);
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
@@ -3665,7 +3659,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
Bills bills = billsList.stream().filter(e -> e.getHblno().equals(item.getHblno()) && e.getId().equals(containers.getPid()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (bills == null) {
|
|
|
- failureHandling(type, boxDynamicsRecord, "未查到提单号:" + item.getMblno() + "海运进出口单据");
|
|
|
+ failureHandling(type, boxDynamicsRecord, "海运出口提单号:" + item.getHblno() + "配箱信息列表中未查到对应箱号:" + item.getBoxCode());
|
|
|
return false;
|
|
|
}
|
|
|
//对应海运进出口单据所属公司本位币
|
|
|
@@ -3674,7 +3668,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
List<BCurExrate> curExrateList = currencyUtils.obtainRate(new Date(), "1", bills.getBranchId());
|
|
|
Date polPickUpDate = item.getPolStationEmptyContainerExitDate();
|
|
|
//起运港超期天数
|
|
|
- if (ObjectUtils.isNotNull(polPickUpDate) && ObjectUtils.isNotNull(bills.getEtd())) {
|
|
|
+ if (ObjectUtils.isNotNull(polPickUpDate) && ObjectUtils.isNotNull(bills.getActualEtd())) {
|
|
|
//所属公司具体超期标准
|
|
|
StorageFees storageFees = this.getStorageFees(storageFeesList, bills, "1");
|
|
|
if (storageFees == null) {
|
|
|
@@ -3688,7 +3682,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
failureHandling(type, boxDynamicsRecord, "请先维护基础资料-超期标准");
|
|
|
return false;
|
|
|
}
|
|
|
- LocalDateTime ldt1 = bills.getEtd().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
+ LocalDateTime ldt1 = bills.getActualEtd().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
LocalDateTime ldt2 = polPickUpDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
|
|
long days = ChronoUnit.DAYS.between(ldt1, ldt2);
|
|
|
//超期天数
|
|
|
@@ -3986,7 +3980,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
List<BCurExrate> curExrateList = currencyUtils.obtainRate(new Date(), "1", billsHYJK.getBranchId());
|
|
|
//目的港超期天数
|
|
|
if (ObjectUtils.isNotNull(item.getPodEmptyContainerReturnDate()) &&
|
|
|
- ObjectUtils.isNotNull(billsHYJK.getEta())) {
|
|
|
+ ObjectUtils.isNotNull(billsHYJK.getActualEta())) {
|
|
|
//所属公司具体超期标准
|
|
|
StorageFees storageFees = this.getStorageFees(storageFeesList, billsHYJK, "2");
|
|
|
if (storageFees == null) {
|