|
|
@@ -30,6 +30,7 @@ import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.BeanUtil;
|
|
|
import org.springblade.core.tool.utils.StringUtil;
|
|
|
+import org.springblade.los.Util.BoxNumUtils;
|
|
|
import org.springblade.los.Util.CurrencyUtils;
|
|
|
import org.springblade.los.Util.GlobalOperationLogUtils;
|
|
|
import org.springblade.los.Util.OperatorType;
|
|
|
@@ -222,19 +223,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
.in(BCntrTypes::getCnName, boxType));
|
|
|
}
|
|
|
String blacklist = sysClient.getParamService("box.blacklist");
|
|
|
- if (ObjectUtils.isNotNull(blacklist)) {
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- for (String item : boxCodeList) {
|
|
|
- if (item.length() > 3) {
|
|
|
- String head = item.substring(0, 4);
|
|
|
- if (blacklist.contains(head)) {
|
|
|
- text.append(item).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(text.toString())) {
|
|
|
- throw new RuntimeException("箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
- }
|
|
|
+ String text = BoxNumUtils.verifyBlacklist(blacklist, boxCodeList, AuthUtil.getTenantId());
|
|
|
+ if (ObjectUtils.isNotNull(text)) {
|
|
|
+ throw new RuntimeException("箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
}
|
|
|
BoxDynamicsRecord boxDynamicsRecord = new BoxDynamicsRecord();
|
|
|
boxDynamicsRecord.setCreateTime(new Date());
|
|
|
@@ -527,7 +518,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
failureHandling(type, boxDynamicsRecord, "未查到放箱号:" + recordItems.getContainerNumber() + "下箱号:" + recordItems.getBoxCode() + "明细");
|
|
|
return false;
|
|
|
}
|
|
|
- putBox1.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcPutBoxId(putBox1.getId());
|
|
|
if (putBoxNewList.isEmpty()) {
|
|
|
putBoxNewList.add(putBox1);
|
|
|
} else {
|
|
|
@@ -577,7 +568,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (!tradingBoxList.isEmpty()) {
|
|
|
TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getContractNo().equals(recordItems.getHblno())).findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- tradingBox.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
|
|
|
tradingBoxes.add(tradingBox);
|
|
|
@@ -692,15 +683,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
for (BoxDynamicsRecordItems item : itemsListTZX) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxNewList.isEmpty()) {
|
|
|
- putBoxNewList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItemsOldList.isEmpty()) {
|
|
|
putBoxItemsOldList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItemOldList.isEmpty()) {
|
|
|
tradingBoxItemOldList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -982,6 +967,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
|
|
|
/**
|
|
|
* 新箱进场流程
|
|
|
+ * @param boxDynamicsRecord 进出场记录
|
|
|
+ * @param itemsListJC 进出场记录箱明细
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
*/
|
|
|
private Boolean synchronization(List<BoxDynamicsRecordItems> itemsListJC, BoxDynamicsRecord boxDynamicsRecord, String type) throws IOException {
|
|
|
if (itemsListJC.stream().anyMatch(e -> ObjectUtils.isNull(e.getObjective()))) {
|
|
|
@@ -1011,21 +999,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
.eq(PutBoxItems::getIsDeleted, 0)
|
|
|
.eq(PutBoxItems::getTenantId, tenantId)
|
|
|
.in(PutBoxItems::getPid, putBoxIdList));
|
|
|
+ //验证黑名单
|
|
|
String blacklist = sysClient.getParamServiceDWT("box.blacklist", tenantId);
|
|
|
- if (ObjectUtils.isNotNull(blacklist)) {
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- for (String item : boxCodeList) {
|
|
|
- if (item.length() > 3) {
|
|
|
- String head = item.substring(0, 4);
|
|
|
- if (blacklist.contains(head)) {
|
|
|
- text.append(item).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(text.toString())) {
|
|
|
- failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
- return false;
|
|
|
- }
|
|
|
+ String text = BoxNumUtils.verifyBlacklist(blacklist, boxCodeList, tenantId);
|
|
|
+ if (ObjectUtils.isNotNull(text)) {
|
|
|
+ failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
+ return false;
|
|
|
}
|
|
|
List<Long> srcIdList = putBoxList.stream().map(PutBox::getSrcId).collect(Collectors.toList());
|
|
|
List<TradingBox> tradingBoxList = new ArrayList<>();
|
|
|
@@ -1057,7 +1036,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
&& ObjectUtils.isNotNull(e.getPolId()) && e.getPolId().equals(item.getPortId())
|
|
|
&& ObjectUtils.isNotNull(e.getPolStationId()) && e.getPolStationId().equals(item.getStationId())).findFirst().orElse(null);
|
|
|
if (putBox != null) {
|
|
|
- putBox.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcPutBoxId(putBox.getId());
|
|
|
if (!putBoxes.isEmpty()) {
|
|
|
if (!putBoxes.stream().map(PutBox::getId).collect(Collectors.toList()).contains(putBox.getId())) {
|
|
|
putBoxes.add(putBox);
|
|
|
@@ -1068,17 +1047,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
//箱档案数据处理
|
|
|
Archives archives = archivesList.stream().filter(e -> e.getCode().equals(item.getBoxCode())).findFirst().orElse(null);
|
|
|
if (archives != null) {
|
|
|
-
|
|
|
- item.setSrcPortId(archives.getAddressId());
|
|
|
- item.setSrcPortCode(archives.getAddressCode());
|
|
|
- item.setSrcPortCname(archives.getAddressCname());
|
|
|
- item.setSrcPortEname(archives.getAddressEname());
|
|
|
- item.setSrcStationId(archives.getStationId());
|
|
|
- item.setSrcStationCode(archives.getStationCode());
|
|
|
- item.setSrcStationCname(archives.getStationCname());
|
|
|
- item.setSrcStationEname(archives.getStationEname());
|
|
|
- item.setSrcBoxDynamics(archives.getBoxDynamics());
|
|
|
- item.setSrcBoxStatus(archives.getStatus());
|
|
|
+ //存储上一步数据
|
|
|
+ BoxNumUtils.storagePreviousStepData(archives,item);
|
|
|
|
|
|
archives.setContainerNumberOw(item.getContainerNumber());
|
|
|
archives.setContainerNumberTypeOw(putBox.getBoxClass());
|
|
|
@@ -1226,7 +1196,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBox.getSrcId()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- tradingBox.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
|
|
|
tradingBoxes.add(tradingBox);
|
|
|
@@ -1418,7 +1388,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
item.setVersion(ObjectUtils.isNull(item.getVersion()) ? 1 : item.getVersion() + 1);
|
|
|
}
|
|
|
- putBoxService.saveOrUpdateBatch(putBoxes);
|
|
|
+ putBoxService.updateBatchById(putBoxes);
|
|
|
}
|
|
|
if (!putBoxItems.isEmpty()) {
|
|
|
putBoxItemsService.saveOrUpdateBatch(putBoxItems);
|
|
|
@@ -1493,15 +1463,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
for (BoxDynamicsRecordItems item : itemsListJC) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxes.isEmpty()) {
|
|
|
- putBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItems.isEmpty()) {
|
|
|
putBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItems.isEmpty()) {
|
|
|
tradingBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -1516,6 +1480,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
|
|
|
/**
|
|
|
* 撤销新箱进场流程
|
|
|
+ * @param boxDynamicsRecord 进出场记录
|
|
|
+ * @param itemsListJC 进出场记录箱明细
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
*/
|
|
|
private Boolean revokeSynchronization(List<BoxDynamicsRecordItems> itemsListJC, BoxDynamicsRecord boxDynamicsRecord, String type) throws IOException {
|
|
|
if (itemsListJC.stream().anyMatch(e -> ObjectUtils.isNull(e.getObjective()))) {
|
|
|
@@ -1528,10 +1495,14 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
.distinct().collect(Collectors.toList());
|
|
|
List<Archives> archivesList = new ArrayList<>();
|
|
|
if (!archivesIdList.isEmpty()) {
|
|
|
- archivesList = archivesService.list(new LambdaQueryWrapper<Archives>()
|
|
|
- .eq(Archives::getTenantId, tenantId)
|
|
|
- .eq(Archives::getIsDeleted, 0)
|
|
|
- .in(Archives::getId, archivesIdList));
|
|
|
+ if ("HX".equals(type)) {
|
|
|
+ archivesList = archivesService.selectDetele(archivesIdList, tenantId);
|
|
|
+ } else {
|
|
|
+ archivesList = archivesService.list(new LambdaQueryWrapper<Archives>()
|
|
|
+ .eq(Archives::getTenantId, tenantId)
|
|
|
+ .eq(Archives::getIsDeleted, 0)
|
|
|
+ .in(Archives::getId, archivesIdList));
|
|
|
+ }
|
|
|
}
|
|
|
//放箱号
|
|
|
List<Long> putBoxIdList = itemsListJC.stream().map(BoxDynamicsRecordItems::getSrcPutBoxId).filter(Objects::nonNull)
|
|
|
@@ -1627,15 +1598,20 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (!archivesList.isEmpty()) {
|
|
|
Archives archives = archivesList.stream().filter(e -> e.getId().equals(item.getSrcArchivesId())).findFirst().orElse(null);
|
|
|
if (archives != null) {
|
|
|
+ if ("HX".equals(type)) {
|
|
|
+ archives.setIsDeleted(0);
|
|
|
+ }
|
|
|
archives.setUpdateTime(new Date());
|
|
|
archives.setUpdateUserName(AuthUtil.getUserName());
|
|
|
archives.setUpdateUser(AuthUtil.getUserId());
|
|
|
if (ObjectUtils.isNotNull(item.getSrcBoxStatus()) && !"待使用".equals(archives.getStatus())) {
|
|
|
archives.setStatus(item.getSrcBoxStatus());
|
|
|
archives.setBoxDynamics(item.getSrcBoxDynamics());
|
|
|
+ archives.setBoxStatus(item.getSrcBoxGoodBad());
|
|
|
} else {
|
|
|
archives.setBoxDynamics("作废");
|
|
|
archives.setStatus("作废");
|
|
|
+ archives.setBoxStatus("好箱");
|
|
|
}
|
|
|
archives.setAddressId(item.getSrcPortId());
|
|
|
archives.setAddressCode(item.getSrcPortCode());
|
|
|
@@ -1646,6 +1622,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
archives.setStationCname(item.getSrcStationCname());
|
|
|
archives.setStationEname(item.getSrcStationEname());
|
|
|
archivesArrayList.add(archives);
|
|
|
+ } else {
|
|
|
+ throw new RemoteException("撤销失败未查到原箱档案数据,请联系管理员");
|
|
|
}
|
|
|
}
|
|
|
if (!putBoxItemsList.isEmpty()) {
|
|
|
@@ -1657,9 +1635,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (ObjectUtils.isNotNull(item.getSrcBoxStatus()) && !"待使用".equals(putBoxItem.getStatus())) {
|
|
|
putBoxItem.setStatus(item.getSrcBoxStatus());
|
|
|
putBoxItem.setBoxDynamics(item.getSrcBoxDynamics());
|
|
|
+ putBoxItem.setBoxStatus(item.getSrcBoxGoodBad());
|
|
|
} else {
|
|
|
putBoxItem.setBoxDynamics("作废");
|
|
|
putBoxItem.setStatus("作废");
|
|
|
+ putBoxItem.setBoxStatus("好箱");
|
|
|
}
|
|
|
if ("CC".contains(type)) {
|
|
|
putBoxItem.setPodStationId(null);
|
|
|
@@ -1701,6 +1681,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
putBoxItems.add(putBoxItem);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new RemoteException("撤销失败未查到原放箱号箱明细数据,请联系管理员");
|
|
|
}
|
|
|
if (!tradingBoxItemList.isEmpty()) {
|
|
|
TradingBoxItem tradingBoxItem = tradingBoxItemList.stream().filter(e -> e.getId().equals(item.getSrcTradingBoxItemsId())).findFirst().orElse(null);
|
|
|
@@ -1711,9 +1693,11 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (ObjectUtils.isNotNull(item.getSrcBoxStatus()) && !"待使用".equals(tradingBoxItem.getStatus())) {
|
|
|
tradingBoxItem.setStatus(item.getSrcBoxStatus());
|
|
|
tradingBoxItem.setBoxDynamics(item.getSrcBoxDynamics());
|
|
|
+ tradingBoxItem.setBoxStatus(item.getSrcBoxGoodBad());
|
|
|
} else {
|
|
|
tradingBoxItem.setBoxDynamics("作废");
|
|
|
tradingBoxItem.setStatus("作废");
|
|
|
+ tradingBoxItem.setBoxStatus("好箱");
|
|
|
}
|
|
|
if ("CC".contains(type)) {
|
|
|
tradingBoxItem.setPodStationId(0L);
|
|
|
@@ -1829,6 +1813,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (!containerNumberItemListNew.isEmpty()) {
|
|
|
seaContainerNumberItemService.updateBatchById(containerNumberItemListNew);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ throw new RemoteException("撤销失败未查到原放箱号数据,请联系管理员");
|
|
|
}
|
|
|
if (!putBoxItems.isEmpty()) {
|
|
|
putBoxItemsService.updateBatchById(putBoxItems);
|
|
|
@@ -1896,6 +1882,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 进出场数据同步处理
|
|
|
+ * @param boxDynamicsRecord 进出场记录
|
|
|
+ * @param itemsList 进出场记录箱明细
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
+ */
|
|
|
private Boolean synchronizationV1(BoxDynamicsRecord boxDynamicsRecord, List<BoxDynamicsRecordItems> itemsList, String type) throws IOException {
|
|
|
if (itemsList.stream().anyMatch(e -> ObjectUtils.isNull(e.getObjective()))) {
|
|
|
failureHandling(type, boxDynamicsRecord, "进出场目的不能为空");
|
|
|
@@ -2035,17 +2027,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
failureHandling(type, boxDynamicsRecord, "未查到箱号:" + recordItems.getBoxCode() + "箱档案数据");
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- recordItems.setSrcPortId(archives.getAddressId());
|
|
|
- recordItems.setSrcPortCode(archives.getAddressCode());
|
|
|
- recordItems.setSrcPortCname(archives.getAddressCname());
|
|
|
- recordItems.setSrcPortEname(archives.getAddressEname());
|
|
|
- recordItems.setSrcStationId(archives.getStationId());
|
|
|
- recordItems.setSrcStationCode(archives.getStationCode());
|
|
|
- recordItems.setSrcStationCname(archives.getStationCname());
|
|
|
- recordItems.setSrcStationEname(archives.getStationEname());
|
|
|
- recordItems.setSrcBoxDynamics(archives.getBoxDynamics());
|
|
|
- recordItems.setSrcBoxStatus(archives.getStatus());
|
|
|
+ //存储上一步数据
|
|
|
+ BoxNumUtils.storagePreviousStepData(archives,recordItems);
|
|
|
|
|
|
String containerNumberType = "";
|
|
|
//原放箱号数据处理
|
|
|
@@ -2053,7 +2036,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
&& e.getPolId().equals(archives.getAddressId()) && e.getPolStationId().equals(archives.getStationId())
|
|
|
&& e.getBoxType().equals(archives.getTypeName())).findFirst().orElse(null);
|
|
|
if (putBoxOld != null) {
|
|
|
- putBoxOld.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcPutBoxId(putBoxOld.getId());
|
|
|
if (!putBoxes.isEmpty()) {
|
|
|
if (!putBoxes.stream().map(PutBox::getId).collect(Collectors.toList()).contains(putBoxOld.getId())) {
|
|
|
putBoxes.add(putBoxOld);
|
|
|
@@ -2138,7 +2121,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBoxOld.getSrcId()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- tradingBox.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
|
|
|
tradingBoxes.add(tradingBox);
|
|
|
@@ -2302,7 +2285,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
putBoxItem.setBoxStatus(recordItems.getBoxStatus());
|
|
|
putBoxItem.setTemporaryId(recordItems.getTemporaryId());
|
|
|
putBoxItemsNewList.add(putBoxItem);
|
|
|
- putBox.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcPutBoxPodId(putBox.getId());
|
|
|
if (putBoxNewList.isEmpty()) {
|
|
|
putBoxNewList.add(putBox);
|
|
|
} else {
|
|
|
@@ -2408,7 +2391,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
containersService.updateBatchById(containersListNew);
|
|
|
}
|
|
|
if (!archivesDateleList.isEmpty()) {
|
|
|
- for (Archives item : archivesDateleList){
|
|
|
+ for (Archives item : archivesDateleList) {
|
|
|
item.setUpdateTime(new Date());
|
|
|
item.setUpdateUserName(AuthUtil.getUserName());
|
|
|
item.setUpdateUser(AuthUtil.getUserId());
|
|
|
@@ -2422,21 +2405,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
for (BoxDynamicsRecordItems item : itemsListFC) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxNewList.isEmpty()) {
|
|
|
- putBoxNewList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxPodId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItemsNewList.isEmpty()) {
|
|
|
putBoxItemsNewList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsPodId(putBox.getId()));
|
|
|
}
|
|
|
- if (!putBoxes.isEmpty()) {
|
|
|
- putBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItemsOldList.isEmpty()) {
|
|
|
putBoxItemsOldList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItemOldList.isEmpty()) {
|
|
|
tradingBoxItemOldList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -2473,21 +2447,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
.eq(PutBoxItems::getIsDeleted, 0)
|
|
|
.eq(PutBoxItems::getTenantId, boxDynamicsRecord.getTenantId())
|
|
|
.in(PutBoxItems::getPid, putBoxIdList));
|
|
|
+ //验证黑名单
|
|
|
String blacklist = sysClient.getParamService("box.blacklist");
|
|
|
- if (ObjectUtils.isNotNull(blacklist)) {
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- for (String item : boxCodeList) {
|
|
|
- if (item.length() > 3) {
|
|
|
- String head = item.substring(0, 4);
|
|
|
- if (blacklist.contains(head)) {
|
|
|
- text.append(item).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(text.toString())) {
|
|
|
- failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
- return false;
|
|
|
- }
|
|
|
+ String text = BoxNumUtils.verifyBlacklist(blacklist, boxCodeList, boxDynamicsRecord.getTenantId());
|
|
|
+ if (ObjectUtils.isNotNull(text)) {
|
|
|
+ failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
+ return false;
|
|
|
}
|
|
|
List<Long> srcIdList = putBoxList.stream().map(PutBox::getSrcId).collect(Collectors.toList());
|
|
|
List<TradingBox> tradingBoxList = new ArrayList<>();
|
|
|
@@ -2495,7 +2460,6 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
tradingBoxList = tradingBoxMapper.selectList(new LambdaQueryWrapper<TradingBox>()
|
|
|
.eq(TradingBox::getTenantId, boxDynamicsRecord.getTenantId())
|
|
|
.eq(TradingBox::getIsDeleted, 0)
|
|
|
- .eq(TradingBox::getType, "XGDX")
|
|
|
.eq(TradingBox::getStatus, 0)
|
|
|
.in(TradingBox::getId, srcIdList));
|
|
|
}
|
|
|
@@ -2521,7 +2485,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
&& ObjectUtils.isNotNull(e.getPolId()) && e.getPolId().equals(item.getPortId())
|
|
|
&& ObjectUtils.isNotNull(e.getPolStationId()) && e.getPolStationId().equals(item.getStationId())).findFirst().orElse(null);
|
|
|
if (putBox != null) {
|
|
|
- putBox.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcPutBoxId(putBox.getId());
|
|
|
if (!putBoxes.isEmpty()) {
|
|
|
if (!putBoxes.stream().map(PutBox::getId).collect(Collectors.toList()).contains(putBox.getId())) {
|
|
|
putBoxes.add(putBox);
|
|
|
@@ -2586,7 +2550,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBox.getSrcId()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- tradingBox.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if ((tradingBox.getPolId() + "").equals(tradingBox.getPodId())) {
|
|
|
samePort = false;
|
|
|
}
|
|
|
@@ -2684,17 +2648,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
//箱档案数据处理
|
|
|
Archives archives = archivesList.stream().filter(e -> e.getCode().equals(item.getBoxCode())).findFirst().orElse(null);
|
|
|
if (archives != null) {
|
|
|
-
|
|
|
- item.setSrcPortId(archives.getAddressId());
|
|
|
- item.setSrcPortCode(archives.getAddressCode());
|
|
|
- item.setSrcPortCname(archives.getAddressCname());
|
|
|
- item.setSrcPortEname(archives.getAddressEname());
|
|
|
- item.setSrcStationId(archives.getStationId());
|
|
|
- item.setSrcStationCode(archives.getStationCode());
|
|
|
- item.setSrcStationCname(archives.getStationCname());
|
|
|
- item.setSrcStationEname(archives.getStationEname());
|
|
|
- item.setSrcBoxDynamics(archives.getBoxDynamics());
|
|
|
- item.setSrcBoxStatus(archives.getStatus());
|
|
|
+ //存储上一步数据
|
|
|
+ BoxNumUtils.storagePreviousStepData(archives,item);
|
|
|
|
|
|
archives.setContainerNumberOw(item.getContainerNumber());
|
|
|
archives.setContainerNumberTypeOw(putBox.getBoxClass());
|
|
|
@@ -2886,15 +2841,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
for (BoxDynamicsRecordItems item : itemsListZJ) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxes.isEmpty()) {
|
|
|
- putBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItems.isEmpty()) {
|
|
|
putBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItems.isEmpty()) {
|
|
|
tradingBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -3026,17 +2975,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
failureHandling(type, boxDynamicsRecord, "未查到箱号:" + recordItems.getBoxCode() + "箱档案数据");
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- recordItems.setSrcPortId(archives.getAddressId());
|
|
|
- recordItems.setSrcPortCode(archives.getAddressCode());
|
|
|
- recordItems.setSrcPortCname(archives.getAddressCname());
|
|
|
- recordItems.setSrcPortEname(archives.getAddressEname());
|
|
|
- recordItems.setSrcStationId(archives.getStationId());
|
|
|
- recordItems.setSrcStationCode(archives.getStationCode());
|
|
|
- recordItems.setSrcStationCname(archives.getStationCname());
|
|
|
- recordItems.setSrcStationEname(archives.getStationEname());
|
|
|
- recordItems.setSrcBoxDynamics(archives.getBoxDynamics());
|
|
|
- recordItems.setSrcBoxStatus(archives.getStatus());
|
|
|
+ //存储上一步数据
|
|
|
+ BoxNumUtils.storagePreviousStepData(archives,recordItems);
|
|
|
|
|
|
//放箱号数据处理
|
|
|
PutBox putBox = putBoxList.stream().filter(e -> e.getContainerNumber().equals(recordItems.getContainerNumber())
|
|
|
@@ -3112,7 +3052,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBox.getSrcId()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- tradingBox.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
|
|
|
tradingBoxes.add(tradingBox);
|
|
|
@@ -3188,7 +3128,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- putBox.setTemporaryId(recordItems.getTemporaryId());
|
|
|
+ recordItems.setSrcPutBoxId(putBox.getId());
|
|
|
if (putBoxNewList.isEmpty()) {
|
|
|
putBoxNewList.add(putBox);
|
|
|
} else {
|
|
|
@@ -3380,15 +3320,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
|
|
|
for (BoxDynamicsRecordItems item : itemsListFC) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxNewList.isEmpty()) {
|
|
|
- putBoxNewList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItemsNewList.isEmpty()) {
|
|
|
putBoxItemsNewList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItemOldList.isEmpty()) {
|
|
|
tradingBoxItemOldList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -3455,12 +3389,16 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
//OW单据明细数据
|
|
|
List<TradingBoxItem> tradingBoxItemOldList = new ArrayList<>();
|
|
|
for (BoxDynamicsRecordItems recordItems : itemsListRC) {
|
|
|
+ recordItems.setTemporaryId(System.currentTimeMillis());
|
|
|
//箱档案信息处理
|
|
|
Archives archives = archivesList.stream().filter(e -> e.getCode().equals(recordItems.getBoxCode())).findFirst().orElse(null);
|
|
|
if (archives == null) {
|
|
|
failureHandling(type, boxDynamicsRecord, "未查到箱号:" + recordItems.getBoxCode() + "箱档案数据");
|
|
|
return false;
|
|
|
}
|
|
|
+ //存储上一步数据
|
|
|
+ BoxNumUtils.storagePreviousStepData(archives,recordItems);
|
|
|
+
|
|
|
//放箱号数据处理
|
|
|
PutBox putBox = putBoxList.stream().filter(e -> e.getContainerNumber().equals(recordItems.getContainerNumber())
|
|
|
&& e.getPolId().equals(recordItems.getPortId()) && e.getPolStationId().equals(recordItems.getStationId())
|
|
|
@@ -3472,6 +3410,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
putBoxItem = putBoxItemsList.stream().filter(e -> e.getBoxCode().equals(recordItems.getBoxCode())
|
|
|
&& putBox.getId().equals(e.getPid())).findFirst().orElse(null);
|
|
|
if (putBoxItem != null) {
|
|
|
+ putBoxItem.setTemporaryId(recordItems.getTemporaryId());
|
|
|
putBoxItem.setBoxStatus(recordItems.getBoxStatus());
|
|
|
putBoxItem.setUpdateUser(AuthUtil.getUserId());
|
|
|
putBoxItem.setUpdateUserName(AuthUtil.getUserName());
|
|
|
@@ -3496,6 +3435,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
tradingBoxItem = tradingBoxItemList.stream().filter(e -> e.getCode().equals(recordItems.getBoxCode()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (tradingBoxItem != null) {
|
|
|
+ tradingBoxItem.setTemporaryId(recordItems.getTemporaryId());
|
|
|
tradingBoxItem.setPid(tradingBox.getId());
|
|
|
tradingBoxItem.setBoxStatus(recordItems.getBoxStatus());
|
|
|
tradingBoxItem.setUpdateUser(AuthUtil.getUserId());
|
|
|
@@ -3522,6 +3462,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
archives.setUpdateUser(AuthUtil.getUserId());
|
|
|
archives.setUpdateUserName(AuthUtil.getUserName());
|
|
|
archives.setBoxStatus(recordItems.getBoxStatus());
|
|
|
+ archives.setTemporaryId(recordItems.getTemporaryId());
|
|
|
archivesArrayList.add(archives);
|
|
|
}
|
|
|
if (!archivesArrayList.isEmpty()) {
|
|
|
@@ -3593,6 +3534,20 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
if (!tradingBoxItemOldList.isEmpty()) {
|
|
|
tradingBoxItemService.updateBatchById(tradingBoxItemOldList);
|
|
|
}
|
|
|
+
|
|
|
+ for (BoxDynamicsRecordItems item : itemsListRC) {
|
|
|
+ item.setWhetherSynchronous("1");
|
|
|
+ if (!putBoxItemsNewList.isEmpty()) {
|
|
|
+ putBoxItemsNewList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
+ }
|
|
|
+ if (!tradingBoxItemOldList.isEmpty()) {
|
|
|
+ tradingBoxItemOldList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
+ }
|
|
|
+ if (!archivesArrayList.isEmpty()) {
|
|
|
+ archivesArrayList.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcArchivesId(putBox.getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ boxDynamicsRecordItemsService.updateBatchById(itemsListRC);
|
|
|
}
|
|
|
|
|
|
List<BoxDynamicsRecordItems> itemsListError = itemsList.stream().filter(e -> !"CT".equals(e.getObjective())
|
|
|
@@ -3632,22 +3587,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
.eq(PutBoxItems::getIsDeleted, 0)
|
|
|
.eq(PutBoxItems::getTenantId, boxDynamicsRecord.getTenantId())
|
|
|
.in(PutBoxItems::getPid, putBoxIdList));
|
|
|
-
|
|
|
+ //验证黑名单
|
|
|
String blacklist = sysClient.getParamService("box.blacklist");
|
|
|
- if (ObjectUtils.isNotNull(blacklist)) {
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- for (String item : boxCodeList) {
|
|
|
- if (item.length() > 3) {
|
|
|
- String head = item.substring(0, 4);
|
|
|
- if (blacklist.contains(head)) {
|
|
|
- text.append(item).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(text.toString())) {
|
|
|
- failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
- return false;
|
|
|
- }
|
|
|
+ String text = BoxNumUtils.verifyBlacklist(blacklist, boxCodeList, boxDynamicsRecord.getTenantId());
|
|
|
+ if (ObjectUtils.isNotNull(text)) {
|
|
|
+ failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
+ return false;
|
|
|
}
|
|
|
List<Long> srcIdList = putBoxList.stream().map(PutBox::getSrcId).collect(Collectors.toList());
|
|
|
List<TradingBox> tradingBoxList = new ArrayList<>();
|
|
|
@@ -3655,7 +3600,6 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
tradingBoxList = tradingBoxMapper.selectList(new LambdaQueryWrapper<TradingBox>()
|
|
|
.eq(TradingBox::getTenantId, boxDynamicsRecord.getTenantId())
|
|
|
.eq(TradingBox::getIsDeleted, 0)
|
|
|
- .eq(TradingBox::getType, "XGDX")
|
|
|
.eq(TradingBox::getStatus, 0)
|
|
|
.in(TradingBox::getId, srcIdList));
|
|
|
}
|
|
|
@@ -3689,7 +3633,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
&& ObjectUtils.isNotNull(e.getPolStationId()) && e.getPolStationId().equals(item.getStationId())).findFirst().orElse(null);
|
|
|
}
|
|
|
if (putBoxData != null) {
|
|
|
- putBoxData.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcPutBoxId(putBoxData.getId());
|
|
|
if (!putBoxes.isEmpty()) {
|
|
|
if (!putBoxes.stream().map(PutBox::getId).collect(Collectors.toList()).contains(putBoxData.getId())) {
|
|
|
putBoxes.add(putBoxData);
|
|
|
@@ -3711,6 +3655,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
item.setSrcStationEname(archives.getStationEname());
|
|
|
item.setSrcBoxDynamics(archives.getBoxDynamics());
|
|
|
item.setSrcBoxStatus(archives.getStatus());
|
|
|
+ item.setSrcBoxGoodBad(archives.getBoxStatus());
|
|
|
|
|
|
archives.setContainerNumberOw(item.getContainerNumber());
|
|
|
archives.setContainerNumberTypeOw(putBoxData.getBoxClass());
|
|
|
@@ -3821,7 +3766,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
TradingBox tradingBox = tradingBoxList.stream().filter(e -> e.getId().equals(putBoxData.getSrcId()))
|
|
|
.findFirst().orElse(null);
|
|
|
if (tradingBox != null) {
|
|
|
- tradingBox.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
|
|
|
tradingBoxes.add(tradingBox);
|
|
|
@@ -4047,15 +3992,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
for (BoxDynamicsRecordItems item : itemsListZD) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxes.isEmpty()) {
|
|
|
- putBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItems.isEmpty()) {
|
|
|
putBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItems.isEmpty()) {
|
|
|
tradingBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -4133,22 +4072,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
.eq(PutBoxItems::getIsDeleted, 0)
|
|
|
.eq(PutBoxItems::getTenantId, boxDynamicsRecord.getTenantId())
|
|
|
.in(PutBoxItems::getPid, putBoxIdList));
|
|
|
-
|
|
|
+ //验证黑名单
|
|
|
String blacklist = sysClient.getParamService("box.blacklist");
|
|
|
- if (ObjectUtils.isNotNull(blacklist)) {
|
|
|
- StringBuilder text = new StringBuilder();
|
|
|
- for (String item : boxCodeList) {
|
|
|
- if (item.length() > 3) {
|
|
|
- String head = item.substring(0, 4);
|
|
|
- if (blacklist.contains(head)) {
|
|
|
- text.append(item).append(",");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(text.toString())) {
|
|
|
- failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
- return false;
|
|
|
- }
|
|
|
+ String text = BoxNumUtils.verifyBlacklist(blacklist, boxCodeList, boxDynamicsRecord.getTenantId());
|
|
|
+ if (ObjectUtils.isNotNull(text)) {
|
|
|
+ failureHandling(type, boxDynamicsRecord, "箱号:" + text + "为黑名单箱,请修改数据后再操作");
|
|
|
+ return false;
|
|
|
}
|
|
|
List<Long> srcIdList = putBoxList.stream().map(PutBox::getSrcId).collect(Collectors.toList());
|
|
|
List<TradingBox> tradingBoxList = new ArrayList<>();
|
|
|
@@ -4193,7 +4122,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
boolean whetherExistence = false;
|
|
|
if (putBoxData != null) {
|
|
|
- putBoxData.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcPutBoxId(putBoxData.getId());
|
|
|
if (!putBoxes.isEmpty()) {
|
|
|
if (!putBoxes.stream().map(PutBox::getId).collect(Collectors.toList()).contains(putBoxData.getId())) {
|
|
|
putBoxes.add(putBoxData);
|
|
|
@@ -4204,18 +4133,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
//箱档案数据处理
|
|
|
Archives archives = archivesList.stream().filter(e -> e.getCode().equals(item.getBoxCode())).findFirst().orElse(null);
|
|
|
if (archives != null) {
|
|
|
-
|
|
|
- item.setSrcPortId(archives.getAddressId());
|
|
|
- item.setSrcPortCode(archives.getAddressCode());
|
|
|
- item.setSrcPortCname(archives.getAddressCname());
|
|
|
- item.setSrcPortEname(archives.getAddressEname());
|
|
|
- item.setSrcStationId(archives.getStationId());
|
|
|
- item.setSrcStationCode(archives.getStationCode());
|
|
|
- item.setSrcStationCname(archives.getStationCname());
|
|
|
- item.setSrcStationEname(archives.getStationEname());
|
|
|
- item.setSrcBoxDynamics(archives.getBoxDynamics());
|
|
|
- item.setSrcBoxStatus(archives.getStatus());
|
|
|
-
|
|
|
+ //存储上一步数据
|
|
|
+ BoxNumUtils.storagePreviousStepData(archives,item);
|
|
|
if (!archives.getTypeName().equals(item.getBoxType())) {
|
|
|
failureHandling(type, boxDynamicsRecord, "箱号:" + item.getBoxCode() + "与箱档案中箱型不符");
|
|
|
return false;
|
|
|
@@ -4409,7 +4328,7 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
tradingBox.setHblno(bills.getHblno());
|
|
|
}
|
|
|
}
|
|
|
- tradingBox.setTemporaryId(item.getTemporaryId());
|
|
|
+ item.setSrcTradingBoxId(tradingBox.getId());
|
|
|
if (!tradingBoxes.isEmpty()) {
|
|
|
if (!tradingBoxes.stream().map(TradingBox::getId).collect(Collectors.toList()).contains(tradingBox.getId())) {
|
|
|
tradingBoxes.add(tradingBox);
|
|
|
@@ -4629,6 +4548,30 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
failureHandling(type, boxDynamicsRecord, "放箱号:" + item.getContainerNumber() + "剩余场地盘存小于本次导入箱数");
|
|
|
return false;
|
|
|
}
|
|
|
+ List<String> hblnoList = itemsListCC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber()))
|
|
|
+ .map(BoxDynamicsRecordItems::getHblno).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
+ List<Bills> billsList1 = new ArrayList<>();
|
|
|
+ if (!billsList.isEmpty()) {
|
|
|
+ billsList1 = billsList.stream().filter(e -> "MH,DD".contains(e.getBillType()) &&
|
|
|
+ hblnoList.contains(e.getHblno())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (!billsList1.isEmpty()) {
|
|
|
+ for (Bills bills : billsList1){
|
|
|
+ long sum = itemsListCC.stream().filter(e -> e.getContainerNumber().equals(item.getContainerNumber())
|
|
|
+ && bills.getHblno().equals(e.getHblno())).count();
|
|
|
+ SeaContainerNumberItem containerNumberItems = containerNumberItemList.stream()
|
|
|
+ .filter(e-> e.getPid().equals(bills.getId()) && e.getSrcId().equals(item.getId()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (containerNumberItems == null){
|
|
|
+ failureHandling(type, boxDynamicsRecord, "提单号:" + bills.getHblno() + "未占用放箱号");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if (sum> containerNumberItems.getOccupyNum()-containerNumberItems.getOutNum()){
|
|
|
+ failureHandling(type, boxDynamicsRecord, "提单号:" + bills.getHblno() + "出场箱数大于占用数量");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
if (item.getOccupyNum() != 0 && item.getOccupyNum() > Integer.parseInt(count + "")) {
|
|
|
item.setOccupyNum(item.getOccupyNum() - Integer.parseInt(count + ""));
|
|
|
} else {
|
|
|
@@ -4807,15 +4750,9 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
for (BoxDynamicsRecordItems item : itemsListCC) {
|
|
|
item.setWhetherSynchronous("1");
|
|
|
- if (!putBoxes.isEmpty()) {
|
|
|
- putBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!putBoxItems.isEmpty()) {
|
|
|
putBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcPutBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
- if (!tradingBoxes.isEmpty()) {
|
|
|
- tradingBoxes.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxId(putBox.getId()));
|
|
|
- }
|
|
|
if (!tradingBoxItems.isEmpty()) {
|
|
|
tradingBoxItems.stream().filter(e -> item.getTemporaryId().equals(e.getTemporaryId())).findFirst().ifPresent(putBox -> item.setSrcTradingBoxItemsId(putBox.getId()));
|
|
|
}
|
|
|
@@ -4846,6 +4783,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 进出场数据错误统一处理
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
+ * @param boxDynamicsRecord 进出场记录
|
|
|
+ * @param msg 错误内容
|
|
|
+ */
|
|
|
private void failureHandling(String type, BoxDynamicsRecord boxDynamicsRecord, String msg) throws IOException {
|
|
|
if ("1".equals(type)) {
|
|
|
throw new RemoteException(msg);
|
|
|
@@ -4859,6 +4802,16 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 正常出场-起运港出口超期箱使费
|
|
|
+ * @param containersListNew 出口分单配箱明细
|
|
|
+ * @param tradingBoxList ow/自有箱单据
|
|
|
+ * @param tradingBoxItemOldList ow/自有箱单据箱明细
|
|
|
+ * @param putBoxItems 放箱号单据箱明细
|
|
|
+ * @param putBoxList 放箱号单据
|
|
|
+ * @param boxDynamicsRecord 进场记录
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
+ */
|
|
|
private Boolean countOverdueFee(List<PutBox> putBoxList, List<TradingBox> tradingBoxList, List<TradingBoxItem> tradingBoxItemOldList,
|
|
|
List<Containers> containersListNew, List<PutBoxItems> putBoxItems
|
|
|
, BoxDynamicsRecord boxDynamicsRecord, String type) throws IOException {
|
|
|
@@ -5144,8 +5097,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
feeCenterD.setAmount(amount);
|
|
|
feeCenterD.setAmountLoc(amount.multiply(feeCenterD.getExrate()));
|
|
|
feeCenterD.setUnsettledAmount(feeCenterD.getAmount());
|
|
|
- feeCenterD.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenterD.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ feeCenterD.setCreateUser(billsHYCKM.getOperatorId());
|
|
|
+ feeCenterD.setCreateUserName(billsHYCKM.getOperatorName());
|
|
|
feeCenterD.setCreateTime(new Date());
|
|
|
feeCenterService.save(feeCenterD);
|
|
|
List<FeeCenter> feeCenterListMs = feeCenterListM.stream().filter(e -> e.getPid().equals(billsHYCKM.getId()))
|
|
|
@@ -5202,6 +5155,17 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 无货返空-超期箱使费
|
|
|
+ * @param billsList 出口分单数据
|
|
|
+ * @param tradingBoxList ow/自有箱单据
|
|
|
+ * @param tradingBoxItemOldList ow/自有箱单据箱明细
|
|
|
+ * @param putBoxItems 放箱号单据箱明细
|
|
|
+ * @param putBoxList 放箱号单据
|
|
|
+ * @param boxDynamicsRecord 进场记录
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
+ */
|
|
|
private Boolean countOverdueFeeWHFK(List<PutBox> putBoxList, List<TradingBox> tradingBoxList, List<TradingBoxItem> tradingBoxItemOldList,
|
|
|
List<Bills> billsList, List<PutBoxItems> putBoxItems
|
|
|
, BoxDynamicsRecord boxDynamicsRecord, String type) throws IOException {
|
|
|
@@ -5391,6 +5355,12 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取具体超期箱使费标准
|
|
|
+ * @param storageFeesList 超期箱使费标准数据
|
|
|
+ * @param bills 海运进出口单据
|
|
|
+ * @param type 操作类型 1=起运港 2=目的港
|
|
|
+ */
|
|
|
private StorageFees getStorageFees(List<StorageFees> storageFeesList, Bills bills, String type) {
|
|
|
StorageFees storageFees;
|
|
|
String portId;
|
|
|
@@ -5412,6 +5382,16 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return storageFees;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 超期箱使费-费用中心数据拼接
|
|
|
+ * @param item 放箱号箱明细
|
|
|
+ * @param bills 进出口单据
|
|
|
+ * @param fees 费用信息
|
|
|
+ * @param storageFeesItems 超期箱使费规则明细
|
|
|
+ * @param curExrateList 汇率明细
|
|
|
+ * @param overdueDays 超期天数
|
|
|
+ * @param exrateType 本币币别
|
|
|
+ */
|
|
|
private FeeCenter addFeeCenter(PutBoxItems item, Bills bills, BFees fees,
|
|
|
List<StorageFeesItems> storageFeesItems, List<BCurExrate> curExrateList,
|
|
|
int overdueDays, String exrateType) {
|
|
|
@@ -5423,8 +5403,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
feeCenter.setCorpEnName(bills.getCorpEnName());
|
|
|
feeCenter.setShortName(bills.getShortName());
|
|
|
feeCenter.setCreateTime(new Date());
|
|
|
- feeCenter.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenter.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ feeCenter.setCreateUser(bills.getOperatorId());
|
|
|
+ feeCenter.setCreateUserName(bills.getOperatorName());
|
|
|
feeCenter.setPaymode(bills.getMpaymode());
|
|
|
feeCenter.setPid(bills.getId());
|
|
|
feeCenter.setDc("D");
|
|
|
@@ -5525,6 +5505,16 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return feeCenter;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 客户还箱-目的港进口超期箱使费
|
|
|
+ * @param billsHYJK 进口分单
|
|
|
+ * @param tradingBoxList ow/自有箱单据
|
|
|
+ * @param tradingBoxItemOldList ow/自有箱单据箱明细
|
|
|
+ * @param putBoxItemsOldList 放箱号单据箱明细
|
|
|
+ * @param putBoxList 放箱号单据
|
|
|
+ * @param boxDynamicsRecord 进场记录
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
+ */
|
|
|
private Boolean countOverdueFeeV1(Bills billsHYJK, List<TradingBox> tradingBoxList,
|
|
|
List<TradingBoxItem> tradingBoxItemOldList, List<PutBoxItems> putBoxItemsOldList,
|
|
|
List<PutBox> putBoxList, BoxDynamicsRecord boxDynamicsRecord, String type) throws IOException {
|
|
|
@@ -5761,8 +5751,8 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
feeCenterD.setAmount(amount);
|
|
|
feeCenterD.setAmountLoc(amount.multiply(feeCenterD.getExrate()));
|
|
|
feeCenterD.setUnsettledAmount(feeCenterD.getAmount());
|
|
|
- feeCenterD.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenterD.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ feeCenterD.setCreateUser(bills.getOperatorId());
|
|
|
+ feeCenterD.setCreateUserName(bills.getOperatorName());
|
|
|
feeCenterD.setCreateTime(new Date());
|
|
|
feeCenterService.save(feeCenterD);
|
|
|
List<FeeCenter> feeCenterListM = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
@@ -5823,6 +5813,14 @@ public class BoxDynamicsRecordServiceImpl extends ServiceImpl<BoxDynamicsRecordM
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 费用明细生成账单数据
|
|
|
+ * @param feeCenterList 费用明细
|
|
|
+ * @param billsHYJK 进出口单据信息
|
|
|
+ * @param exrateType 本币币别
|
|
|
+ * @param boxDynamicsRecord 进出场记录
|
|
|
+ * @param type 操作类型 1=excel导入直接提示 2=api记录并修改状态为失败 3=只记录
|
|
|
+ */
|
|
|
private Boolean generateAccBills(List<FeeCenter> feeCenterList, Bills billsHYJK, String exrateType,
|
|
|
BoxDynamicsRecord boxDynamicsRecord, String type) throws IOException {
|
|
|
List<FeeCenter> feeCenterList1 = new ArrayList<>();
|