Browse Source

贸易代理 2024年7月24日13:42:01

纪新园 1 year ago
parent
commit
f991a464c3

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/DispatchVehicles.java

@@ -228,6 +228,12 @@ public class DispatchVehicles implements Serializable {
 	private String whetherWarehouseEntry;
 
 	/**
+	 * 派车时间
+	 */
+	@ApiModelProperty(value = "派车时间")
+	private Date dispatchVehiclesDate;
+
+	/**
 	 * 是否派车
 	 */
 	@ApiModelProperty(value = "是否派车")

+ 12 - 1
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/TradeBillsController.java

@@ -74,6 +74,17 @@ public class TradeBillsController extends BladeController {
 	}
 
 	/**
+	 * 详情
+	 */
+	@GetMapping("/detailTradeByMblno")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入bills")
+	public R<Bills> detailTradeByMblno(Bills bills) {
+		Bills detail = billsService.detailTradeByMblno(bills);
+		return R.data(detail);
+	}
+
+	/**
 	 * 分页 业务-海运进出口
 	 */
 	@GetMapping("/listTrade")
@@ -126,7 +137,7 @@ public class TradeBillsController extends BladeController {
 			.eq(ObjectUtils.isNotNull(bills.getBillStatus()), Bills::getBillStatus, bills.getBillStatus())
 			.eq(ObjectUtils.isNotNull(bills.getAccountStatus()), Bills::getAccountStatus, bills.getAccountStatus())
 			.eq(ObjectUtils.isNotNull(bills.getStatus()), Bills::getStatus, bills.getStatus());
-		lambdaQueryWrapper.orderByDesc(Bills::getEta);
+		lambdaQueryWrapper.orderByDesc(Bills::getCreateTime);
 		IPage<Bills> pages = billsService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java

@@ -150,4 +150,6 @@ public interface IBillsService extends IService<Bills> {
 	Bills detailTrade(Bills bills);
 
 	R submitTrade(Bills bills);
+
+	Bills detailTradeByMblno(Bills bills);
 }

+ 245 - 89
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -2169,32 +2169,32 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			.eq(FeeCenter::getBillNo, detail.getBillNo())
 		));
 		List<DispatchVehicles> dispatchVehiclesList = dispatchVehiclesMapper.selectList(new LambdaQueryWrapper<DispatchVehicles>()
-			.eq(DispatchVehicles::getTenantId,AuthUtil.getTenantId())
-			.eq(DispatchVehicles::getIsDeleted,0)
-			.eq(DispatchVehicles::getPid,detail.getId()));
-		if (!dispatchVehiclesList.isEmpty()){
+			.eq(DispatchVehicles::getTenantId, AuthUtil.getTenantId())
+			.eq(DispatchVehicles::getIsDeleted, 0)
+			.eq(DispatchVehicles::getPid, detail.getId()));
+		if (!dispatchVehiclesList.isEmpty()) {
 			detail.setDispatchVehiclesList(dispatchVehiclesList);
-		}else{
+		} else {
 			detail.setDispatchVehiclesList(new ArrayList<>());
 		}
 		List<InOutStorage> inOutStorageList = inOutStorageMapper.selectList(new LambdaQueryWrapper<InOutStorage>()
-			.eq(InOutStorage::getTenantId,AuthUtil.getTenantId())
-			.eq(InOutStorage::getIsDeleted,0)
-			.eq(InOutStorage::getPid,detail.getId()));
-		if (!inOutStorageList.isEmpty()){
-			List<InOutStorage> inStorageList = inOutStorageList.stream().filter(e-> "RK".equals(e.getBillType())).collect(Collectors.toList());
-			if (!inStorageList.isEmpty()){
+			.eq(InOutStorage::getTenantId, AuthUtil.getTenantId())
+			.eq(InOutStorage::getIsDeleted, 0)
+			.eq(InOutStorage::getPid, detail.getId()));
+		if (!inOutStorageList.isEmpty()) {
+			List<InOutStorage> inStorageList = inOutStorageList.stream().filter(e -> "RK".equals(e.getBillType())).collect(Collectors.toList());
+			if (!inStorageList.isEmpty()) {
 				detail.setInStorageList(inStorageList);
-			}else{
+			} else {
 				detail.setInStorageList(new ArrayList<>());
 			}
-			List<InOutStorage> outStorageList =inOutStorageList.stream().filter(e-> "CK".equals(e.getBillType())).collect(Collectors.toList());
-			if (!inStorageList.isEmpty()){
+			List<InOutStorage> outStorageList = inOutStorageList.stream().filter(e -> "CK".equals(e.getBillType())).collect(Collectors.toList());
+			if (!inStorageList.isEmpty()) {
 				detail.setOutStorageList(outStorageList);
-			}else{
+			} else {
 				detail.setOutStorageList(new ArrayList<>());
 			}
-		}else{
+		} else {
 			detail.setInStorageList(new ArrayList<>());
 			detail.setOutStorageList(new ArrayList<>());
 		}
@@ -2274,55 +2274,6 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		if (ObjectUtils.isEmpty(bills.getId())) {
 			this.save(bills);
 		}
-		/**-------------箱型箱量计算---------*/
-		Integer V20 = 0;
-		Integer V40 = 0;
-		Integer V40HC = 0;
-		Integer V45 = 0;
-		Integer V48 = 0;
-		Integer other = 0;
-		BigDecimal teu = new BigDecimal("0.00");
-		StringBuilder boxTypeSum = new StringBuilder();
-		if (ObjectUtils.isNull(bills.getCfsQuantity()) || bills.getCfsQuantity().compareTo(new BigDecimal("0.00")) == 0) {
-			if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
-				for (PreContainers item : bills.getPreContainersList()) {
-					item.setPid(bills.getId());
-					if (item.getCntrTypeCode().contains("20")) {
-						V20 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("45")) {
-						V45 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("48")) {
-						V48 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("40") && (!item.getCntrTypeCode().contains("HQ")) && !item.getCntrTypeCode().contains("HC")) {
-						V40 += item.getQuantity();
-					} else if (item.getCntrTypeCode().contains("40") && (item.getCntrTypeCode().contains("HQ")) && item.getCntrTypeCode().contains("HC")) {
-						V40HC += item.getQuantity();
-					} else {
-						other += item.getQuantity();
-					}
-					boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
-					if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
-						teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
-					}
-				}
-				R res = preContainersService.submitList(bills.getPreContainersList());
-				if (!res.isSuccess()) {
-					throw new RuntimeException("保存失败");
-				}
-				if (boxTypeSum.length() > 0) {
-					boxTypeSum = new StringBuilder(boxTypeSum.substring(0, boxTypeSum.length() - 1));
-					bills.setQuantityCntrDescr(boxTypeSum.toString());
-				}
-			}
-		}
-		bills.setQuantityV20(V20);
-		bills.setQuantityV40(V40);
-		bills.setQuantityV40hc(V40HC);
-		bills.setQuantityV45(V45);
-		bills.setQuantityV48(V48);
-		bills.setQuantityOther(other);
-		bills.setTeu(teu.intValue());
-		/**-------------箱型箱量计算---------*/
 		/**-------------费用计算---------*/
 		BigDecimal amountDr = new BigDecimal("0.00");
 		BigDecimal amountCr = new BigDecimal("0.00");
@@ -2476,45 +2427,250 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		bills.setQuantity(quantity);
 		bills.setGrossWeight(grossWeight);
 		bills.setMeasurement(measurement);
-		this.updateById(bills);
+
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		List<AgentItems> agentItemsList = new ArrayList<>();
 		if (ObjectUtils.isNotNull(bills.getMconsigneeCntyName())) {
-			List<AgentItems> agentItemsList = agentItemsMapper.selectList(new LambdaQueryWrapper<AgentItems>()
+			agentItemsList = agentItemsMapper.selectList(new LambdaQueryWrapper<AgentItems>()
 				.apply("find_in_set(id,'" + bills.getMconsigneeCntyName() + "')")
 				.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
 				.eq(AgentItems::getIsDeleted, 0));
 			for (AgentItems items : agentItemsList) {
-				items.setUpdateTime(new Date());
-				items.setUpdateUser(AuthUtil.getUserId());
-				items.setUpdateUserName(AuthUtil.getUserName());
-				if (ObjectUtils.isNotNull(bills.getMblno())){
-					items.setBillNo(bills.getMblno());
+				if (ObjectUtils.isNotNull(bills.getIssueDate())) {
+					String clearanceSpeedOfProgress = "已报关/报关单号:" + bills.getMnotify2CntyName() + "/" + sdf.format(bills.getIssueDate()) + ";";
+					items.setClearanceSpeedOfProgress(clearanceSpeedOfProgress);
 				}
-				if (ObjectUtils.isNotNull(bills.getMconsigneeCntyCode())){
-					items.setOrderReleaseMethod(bills.getMconsigneeCntyCode());
+			}
+		}
+
+		/**-------------箱型箱量计算---------*/
+		Integer V20 = 0;
+		Integer V40 = 0;
+		Integer V40HC = 0;
+		Integer V45 = 0;
+		Integer V48 = 0;
+		Integer other = 0;
+		BigDecimal teu = new BigDecimal("0.00");
+		StringBuilder boxTypeSum = new StringBuilder();
+
+		if (ObjectUtils.isNotNull(bills.getPreContainersList())) {
+			for (PreContainers item : bills.getPreContainersList()) {
+				if (!agentItemsList.isEmpty() && ObjectUtils.isNotNull(item.getInspectionDate())) {
+					for (AgentItems items : agentItemsList) {
+						if (item.getBoxNo().equals(items.getBoxNo())) {
+							String clearanceSpeedOfProgress = "已查验/查验时间:" + sdf.format(item.getInspectionDate()) + ";";
+							items.setClearanceSpeedOfProgress(items.getClearanceSpeedOfProgress() + clearanceSpeedOfProgress);
+						}
+					}
+				}
+				item.setPid(bills.getId());
+				if (item.getCntrTypeCode().contains("20")) {
+					V20 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("45")) {
+					V45 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("48")) {
+					V48 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("40") && (!item.getCntrTypeCode().contains("HQ")) && !item.getCntrTypeCode().contains("HC")) {
+					V40 += item.getQuantity();
+				} else if (item.getCntrTypeCode().contains("40") && (item.getCntrTypeCode().contains("HQ")) && item.getCntrTypeCode().contains("HC")) {
+					V40HC += item.getQuantity();
+				} else {
+					other += item.getQuantity();
 				}
-				if (ObjectUtils.isNotNull(bills.getEtd())) {
-					items.setWhetherSail("已开船");
-					items.setEtd(bills.getEtd());
+				boxTypeSum.append(item.getCntrTypeCode()).append("*").append(item.getQuantity()).append(",");
+				if (ObjectUtils.isNotNull(item.getQuantity()) && ObjectUtils.isNotNull(item.getTeu())) {
+					teu = teu.add(new BigDecimal(item.getQuantity()).multiply(item.getTeu()));
 				}
-				if (ObjectUtils.isNotNull(bills.getBookingDate())) {
-					items.setEstimateReachHarbor(bills.getBookingDate());
+			}
+			R res = preContainersService.submitList(bills.getPreContainersList());
+			if (!res.isSuccess()) {
+				throw new RuntimeException("保存失败");
+			}
+			if (boxTypeSum.length() > 0) {
+				boxTypeSum = new StringBuilder(boxTypeSum.substring(0, boxTypeSum.length() - 1));
+				bills.setQuantityCntrDescr(boxTypeSum.toString());
+			}
+		}
+
+		bills.setQuantityV20(V20);
+		bills.setQuantityV40(V40);
+		bills.setQuantityV40hc(V40HC);
+		bills.setQuantityV45(V45);
+		bills.setQuantityV48(V48);
+		bills.setQuantityOther(other);
+		bills.setTeu(teu.intValue());
+		/**-------------箱型箱量计算---------*/
+		if (ObjectUtils.isNotNull(bills.getCyReturnTime())) {
+			for (AgentItems items : agentItemsList) {
+				String clearanceSpeedOfProgress = "已放行/放行日期:" + sdf.format(bills.getCyReturnTime()) + ";";
+				items.setClearanceSpeedOfProgress(items.getClearanceSpeedOfProgress() + clearanceSpeedOfProgress);
+			}
+		}
+		this.updateById(bills);
+		if (ObjectUtils.isNotNull(bills.getDispatchVehiclesList())) {
+			for (DispatchVehicles item : bills.getDispatchVehiclesList()) {
+				if (!agentItemsList.isEmpty() && ObjectUtils.isNotNull(item.getDispatchVehiclesDate())) {
+					for (AgentItems items : agentItemsList) {
+						if (item.getBoxNo().equals(items.getBoxNo())) {
+							String clearanceSpeedOfProgress = "已派车/派车时间:" + sdf.format(item.getDispatchVehiclesDate()) + ";";
+							items.setClearanceSpeedOfProgress(items.getClearanceSpeedOfProgress() + clearanceSpeedOfProgress);
+						}
+					}
 				}
-				if (ObjectUtils.isNotNull(bills.getEta())) {
-					items.setWhetherReachHarbor("已到港");
-					items.setActualReachHarbor(bills.getEta());
+				item.setPid(bills.getId());
+				if (item.getId() == null) {
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setCreateDeptName(deptName);
+					}
+					dispatchVehiclesMapper.insert(item);
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					dispatchVehiclesMapper.updateById(item);
 				}
-				if (ObjectUtils.isNotNull(bills.getCyReturnTime())) {
-					items.setReleaseDate(bills.getCyReturnTime());
+			}
+		}
+		if (ObjectUtils.isNotNull(bills.getInStorageList())) {
+			for (InOutStorage item : bills.getInStorageList()) {
+				item.setPid(bills.getId());
+				if (item.getId() == null) {
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setCreateDeptName(deptName);
+					}
+					inOutStorageMapper.insert(item);
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					inOutStorageMapper.updateById(item);
 				}
-				if (ObjectUtils.isNotNull(bills.getIssueDate())) {
-					items.setWhetherClearance("已通关");
-					items.setCustomsDeclarationNo(bills.getMnotify2CntyName());
-					items.setCustomsDeclarationDate(bills.getIssueDate());
+			}
+		}
+		if (ObjectUtils.isNotNull(bills.getOutStorageList())) {
+			for (InOutStorage item : bills.getOutStorageList()) {
+				item.setPid(bills.getId());
+				if (item.getId() == null) {
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						item.setCreateDeptName(deptName);
+					}
+					inOutStorageMapper.insert(item);
+				} else {
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateTime(new Date());
+					item.setUpdateUserName(AuthUtil.getUserName());
+					inOutStorageMapper.updateById(item);
 				}
-				agentItemsMapper.updateById(items);
 			}
 		}
+		for (AgentItems items : agentItemsList) {
+			items.setUpdateTime(new Date());
+			items.setUpdateUser(AuthUtil.getUserId());
+			items.setUpdateUserName(AuthUtil.getUserName());
+			if (ObjectUtils.isNotNull(bills.getMblno())) {
+				items.setBillNo(bills.getMblno());
+			}
+			if (ObjectUtils.isNotNull(bills.getMconsigneeCntyCode())) {
+				items.setOrderReleaseMethod(bills.getMconsigneeCntyCode());
+			}
+			if (ObjectUtils.isNotNull(bills.getEtd())) {
+				items.setWhetherSail("已开船");
+				items.setEtd(bills.getEtd());
+			}
+			if (ObjectUtils.isNotNull(bills.getBookingDate())) {
+				items.setEstimateReachHarbor(bills.getBookingDate());
+			}
+			if (ObjectUtils.isNotNull(bills.getEta())) {
+				items.setWhetherReachHarbor("已到港");
+				items.setActualReachHarbor(bills.getEta());
+			}
+			if (ObjectUtils.isNotNull(bills.getCyReturnTime())) {
+				items.setReleaseDate(bills.getCyReturnTime());
+			}
+			if (ObjectUtils.isNotNull(bills.getIssueDate())) {
+				items.setWhetherClearance("已通关");
+				items.setCustomsDeclarationNo(bills.getMnotify2CntyName());
+				items.setCustomsDeclarationDate(bills.getIssueDate());
+			}
+			agentItemsMapper.updateById(items);
+		}
 		return R.data(bills);
 	}
 
+	@Override
+	public Bills detailTradeByMblno(Bills bills) {
+		if (bills.getMblno() == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		Bills detail = baseMapper.selectOne(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.eq(Bills::getMblno, bills.getMblno()));
+		detail.setPreContainersList(preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+			.eq(PreContainers::getIsDeleted, 0)
+			.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+			.eq(PreContainers::getPid, detail.getId())));
+		detail.setFilesList(filesCenterService.list(new LambdaQueryWrapper<FilesCenter>()
+			.eq(FilesCenter::getIsDeleted, 0)
+			.eq(FilesCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FilesCenter::getPid, detail.getId())));
+		detail.setFeeCenterListC(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getBillType, detail.getBillType())
+			.eq(FeeCenter::getPid, detail.getId())
+			.eq(FeeCenter::getDc, "C")
+			.eq(FeeCenter::getBillNo, detail.getBillNo())
+		));
+		detail.setFeeCenterListD(feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getBillType, detail.getBillType())
+			.eq(FeeCenter::getPid, detail.getId())
+			.eq(FeeCenter::getDc, "D")
+			.eq(FeeCenter::getBillNo, detail.getBillNo())
+		));
+		List<DispatchVehicles> dispatchVehiclesList = dispatchVehiclesMapper.selectList(new LambdaQueryWrapper<DispatchVehicles>()
+			.eq(DispatchVehicles::getTenantId, AuthUtil.getTenantId())
+			.eq(DispatchVehicles::getIsDeleted, 0)
+			.eq(DispatchVehicles::getPid, detail.getId()));
+		if (!dispatchVehiclesList.isEmpty()) {
+			detail.setDispatchVehiclesList(dispatchVehiclesList);
+		} else {
+			detail.setDispatchVehiclesList(new ArrayList<>());
+		}
+		List<InOutStorage> inOutStorageList = inOutStorageMapper.selectList(new LambdaQueryWrapper<InOutStorage>()
+			.eq(InOutStorage::getTenantId, AuthUtil.getTenantId())
+			.eq(InOutStorage::getIsDeleted, 0)
+			.eq(InOutStorage::getPid, detail.getId()));
+		if (!inOutStorageList.isEmpty()) {
+			List<InOutStorage> inStorageList = inOutStorageList.stream().filter(e -> "RK".equals(e.getBillType())).collect(Collectors.toList());
+			if (!inStorageList.isEmpty()) {
+				detail.setInStorageList(inStorageList);
+			} else {
+				detail.setInStorageList(new ArrayList<>());
+			}
+			List<InOutStorage> outStorageList = inOutStorageList.stream().filter(e -> "CK".equals(e.getBillType())).collect(Collectors.toList());
+			if (!inStorageList.isEmpty()) {
+				detail.setOutStorageList(outStorageList);
+			} else {
+				detail.setOutStorageList(new ArrayList<>());
+			}
+		} else {
+			detail.setInStorageList(new ArrayList<>());
+			detail.setOutStorageList(new ArrayList<>());
+		}
+
+		return detail;
+	}
+
 }

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentController.java

@@ -89,7 +89,7 @@ public class AgentController extends BladeController {
 			.like(ObjectUtils.isNotNull(agent.getBillNoJoin()),Agent::getBillNoJoin,agent.getBillNoJoin())
 			.like(ObjectUtils.isNotNull(agent.getOrderNoJoin()),Agent::getOrderNoJoin,agent.getOrderNoJoin())
 			.like(ObjectUtils.isNotNull(agent.getBoxNoJoin()),Agent::getBoxNoJoin,agent.getBoxNoJoin())
-			.orderByDesc(Agent::getBusinessDate);
+			.orderByDesc(Agent::getCreateTime);
 		if (ObjectUtils.isNotNull(agent.getBusinessDateList()) && !agent.getBusinessDateList().isEmpty()){
 			lambdaQueryWrapper.gt(Agent::getBusinessDate, agent.getBusinessDateList().get(0));
 			lambdaQueryWrapper.lt(Agent::getBusinessDate, agent.getBusinessDateList().get(1));

+ 70 - 5
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java

@@ -78,6 +78,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.util.*;
@@ -933,6 +934,28 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			feeType = "2";
 			feeTypeName = "尾款";
 		}
+		List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
+			.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
+			.eq(AgentItems::getIsDeleted, 0)
+			.eq(AgentItems::getPid, agent.getId()));
+		if (!agentItemsList.isEmpty()) {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			Date now = new Date();
+			String formattedDate = sdf.format(now);
+			for (AgentItems items : agentItemsList) {
+				if (ObjectUtils.isNull(items.getPaymentRecord())) {
+					items.setPaymentRecord("应收首付款/应收尾款/应付首付款/应付尾款");
+				}
+				if ("SK".equals(agent.getPaidApplication())) {
+					String msg = "应收首付款/已收款/时间:" + formattedDate;
+					items.setPaymentRecord(items.getPaymentRecord().replaceAll("应收首付款", msg));
+				} else if ("WK".equals(agent.getPaidApplication())) {
+					String msg = "应收尾款/已收款/时间:" + formattedDate;
+					items.setPaymentRecord(items.getPaymentRecord().replaceAll("应收尾款", msg));
+				}
+			}
+			agentItemsService.updateBatchById(agentItemsList);
+		}
 		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 			.eq(FeeCenter::getPid, agent.getId())
 			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
@@ -1170,6 +1193,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public Agent ApplyForPayment(Agent agent) {
 		if (agent.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -1358,6 +1383,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public Agent confirmThePayment(Agent agent) {
 		if (agent.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -1389,6 +1416,28 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			feeType = "2";
 			feeTypeName = "尾款";
 		}
+		List<AgentItems> agentItemsList = agentItemsService.list(new LambdaQueryWrapper<AgentItems>()
+			.eq(AgentItems::getTenantId, AuthUtil.getTenantId())
+			.eq(AgentItems::getIsDeleted, 0)
+			.eq(AgentItems::getPid, agent.getId()));
+		if (!agentItemsList.isEmpty()) {
+			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			Date now = new Date();
+			String formattedDate = sdf.format(now);
+			for (AgentItems items : agentItemsList) {
+				if (ObjectUtils.isNull(items.getPaymentRecord())) {
+					items.setPaymentRecord("应收首付款/应收尾款/应付首付款/应付尾款");
+				}
+				if ("SK".equals(agent.getPaidApplication())) {
+					String msg = "应付首付款/已付款/时间:" + formattedDate;
+					items.setPaymentRecord(items.getPaymentRecord().replaceAll("应付首付款", msg));
+				} else if ("WK".equals(agent.getPaidApplication())) {
+					String msg = "应付尾款/已付款/时间:" + formattedDate;
+					items.setPaymentRecord(items.getPaymentRecord().replaceAll("应付尾款", msg));
+				}
+			}
+			agentItemsService.updateBatchById(agentItemsList);
+		}
 		List<FeeCenter> feeCenters = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 			.eq(FeeCenter::getPid, agent.getId())
 			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
@@ -1887,9 +1936,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			bills.setMblno(item.getBillNo());
 			List<AgentItems> itemsList = agentItemsList.stream().filter(e -> e.getBillNo().equals(item.getBillNo())).collect(Collectors.toList());
 			if (!itemsList.isEmpty()) {
-				bills.setQuantity(agentItemsList.stream().map(AgentItems::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add));
-				bills.setGrossWeight(agentItemsList.stream().map(AgentItems::getGrossWeight).reduce(BigDecimal.ZERO, BigDecimal::add));
-				bills.setNetWeight(agentItemsList.stream().map(AgentItems::getNetWeight).reduce(BigDecimal.ZERO, BigDecimal::add));
+				bills.setQuantity(agentItemsList.stream().map(AgentItems::getQuantity).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				bills.setGrossWeight(agentItemsList.stream().map(AgentItems::getGrossWeight).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				bills.setNetWeight(agentItemsList.stream().map(AgentItems::getNetWeight).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 				bills.setHscode(agentItemsList.get(0).getHsCode());
 				bills.setCommodityShName(agentItemsList.get(0).getLabelProductName());
 				bills.setCommodityCnName(agentItemsList.get(0).getLabelProductName());
@@ -2147,6 +2196,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public Agent revokeApplyForPayment(Agent agent) {
 		if (agent.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -2199,6 +2250,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public Agent confirmationNotification(Agent agent) {
 		if (agent.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -2319,6 +2372,8 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R confirmReceived(Agent agent) {
 		if (agent.getId() == null) {
 			throw new RuntimeException("缺少必要参数");
@@ -2399,6 +2454,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		if ("SFK".equals(type)) {
 			feeCenter.setQuantity(new BigDecimal("1"));
 			feeCenter.setAmountLoc(detail.getPrepaidAmount());
+			if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
+				feeCenter.setExrate(detail.getExchangeRate());
+				feeCenter.setPrice(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
+				feeCenter.setAmount(detail.getPrepaidAmount().multiply(detail.getExchangeRate()));
+			}
 			return feeCenter;
 		} else if ("YDF".equals(type)) {
 			feeCenter.setQuantity(new BigDecimal("1"));
@@ -2415,7 +2475,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		} else if ("SXF".equals(type)) {
 			feeCenter.setQuantity(new BigDecimal("1"));
 			BigDecimal prepaidAmount = detail.getPrepaidAmount().multiply(detail.getExchangeRate());
-			String serviceCharge = sysClient.getParamServiceByDept("post.electric.fee", AuthUtil.getTenantId(), AuthUtil.getDeptId());
+			String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
 			if (ObjectUtils.isNotNull(serviceCharge)) {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
 				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));
@@ -2493,6 +2553,11 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 		if ("WK".equals(type)) {
 			feeCenter.setQuantity(new BigDecimal("1"));
 			feeCenter.setAmountLoc(detail.getGoodsValue().subtract(detail.getPrepaidAmount()).subtract(detail.getGoodsValueStl()));
+			if (ObjectUtils.isNotNull(detail.getExchangeRate())) {
+				feeCenter.setExrate(detail.getExchangeRate());
+				feeCenter.setPrice(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
+				feeCenter.setAmount(feeCenter.getAmountLoc().multiply(detail.getExchangeRate()));
+			}
 			return feeCenter;
 		} else if ("YDF".equals(type)) {
 			feeCenter.setQuantity(new BigDecimal("1"));
@@ -2510,7 +2575,7 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
 			feeCenter.setQuantity(new BigDecimal("1"));
 			BigDecimal amount = detail.getGoodsValue().subtract(detail.getPrepaidAmount()).subtract(detail.getGoodsValueStl());
 			BigDecimal prepaidAmount = amount.multiply(detail.getExchangeRate());
-			String serviceCharge = sysClient.getParamServiceByDept("post.electric.fee", AuthUtil.getTenantId(), AuthUtil.getDeptId());
+			String serviceCharge = sysClient.getParamServiceByDept("service.charge", AuthUtil.getTenantId(), AuthUtil.getDeptId());
 			if (ObjectUtils.isNotNull(serviceCharge)) {
 				BigDecimal serviceChargeAmount = new BigDecimal("1").divide(new BigDecimal(serviceCharge), serviceCharge.length(), RoundingMode.HALF_UP);
 				feeCenter.setPrice(prepaidAmount.multiply(serviceChargeAmount));

+ 5 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/DispatchVehiclesServiceImpl.java

@@ -107,6 +107,8 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R generateWarehouseEntry(DispatchVehicles dispatchVehicles) {
 		Long deptId = 0L;
 		String deptName = "";
@@ -152,6 +154,8 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R confirmDispatchVehicles(DispatchVehicles dispatchVehicles) {
 		Bills bills = billsMapper.selectById(dispatchVehicles.getPid());
 		if (ObjectUtils.isNotNull(bills.getMconsigneeCntyName())) {
@@ -172,6 +176,7 @@ public class DispatchVehiclesServiceImpl extends ServiceImpl<DispatchVehiclesMap
 		dispatchVehicles.setUpdateTime(new Date());
 		dispatchVehicles.setUpdateUser(AuthUtil.getUserId());
 		dispatchVehicles.setUpdateUserName(AuthUtil.getUserName());
+		dispatchVehicles.setDispatchVehiclesDate(new Date());
 		baseMapper.updateById(dispatchVehicles);
 		return R.data(dispatchVehicles);
 	}

+ 10 - 9
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/InOutStorageServiceImpl.java

@@ -90,7 +90,6 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 	public R confirmWarehouseEntry(InOutStorage inOutStorage) {
 		inOutStorage.setConfirmDispatchVehicles("1");
 		inOutStorage.setUpdateTime(new Date());
-		inOutStorage.setOutStorageDate(new Date());
 		inOutStorage.setUpdateUser(AuthUtil.getUserId());
 		inOutStorage.setUpdateUserName(AuthUtil.getUserName());
 		if ("RK".equals(inOutStorage.getBillType())) {
@@ -110,6 +109,9 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 				}
 			}
 		} else {
+			if (ObjectUtils.isNotNull(inOutStorage.getOutStorageDate())){
+				inOutStorage.setOutStorageDate(new Date());
+			}
 			InOutStorage inStorage = baseMapper.selectById(inOutStorage.getSrcId());
 			BigDecimal quantity = inStorage.getSurplusQuantity();
 			if (quantity.compareTo(inOutStorage.getOutQuantity()) < 0) {
@@ -125,7 +127,7 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 			inStorage.setUpdateTime(new Date());
 			inStorage.setUpdateUser(AuthUtil.getUserId());
 			inStorage.setUpdateUserName(AuthUtil.getUserName());
-
+			baseMapper.updateById(inStorage);
 			Bills bills = billsMapper.selectById(inOutStorage.getPid());
 			if (bills != null) {
 				StorageFee storageFee = storageFeeService.getOne(new LambdaQueryWrapper<StorageFee>()
@@ -159,14 +161,14 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 						if (day >= days) {
 							dayLength = dayLength - days;
 							BigDecimal dayDecimal = new BigDecimal(days);
-							BigDecimal amountSum = dayDecimal.multiply(item.getPrice()).multiply(inOutStorage.getGrossWeight());
+							BigDecimal amountSum = dayDecimal.multiply(item.getPrice()).multiply(inOutStorage.getOutWeight());
 							amount = amount.add(amountSum);
-							remark.append(days).append("天*").append(item.getPrice()).append("元*").append(inOutStorage.getGrossWeight()).append("=").append(amountSum).append("元 ");
+							remark.append(days).append("天*").append(item.getPrice()).append("元*").append(inOutStorage.getOutWeight()).append("=").append(amountSum).append("元 ");
 						} else {
 							BigDecimal dayDecimal = new BigDecimal(dayLength);
-							BigDecimal amountSum = dayDecimal.multiply(item.getPrice()).multiply(inOutStorage.getGrossWeight());
+							BigDecimal amountSum = dayDecimal.multiply(item.getPrice()).multiply(inOutStorage.getOutWeight());
 							amount = amount.add(amountSum);
-							remark.append(dayLength).append("天*").append(item.getPrice()).append("元*").append(inOutStorage.getGrossWeight()).append("=").append(amountSum).append("元 ");
+							remark.append(dayLength).append("天*").append(item.getPrice()).append("元*").append(inOutStorage.getOutWeight()).append("=").append(amountSum).append("元 ");
 							dayLength = days - dayLength;
 						}
 					}
@@ -222,10 +224,9 @@ public class InOutStorageServiceImpl extends ServiceImpl<InOutStorageMapper, InO
 				feeCenter.setStorageDate(inOutStorage.getOutStorageDate());
 				feeCenter.setOutboundDate(inStorage.getStorageDate());
 				feeCenterMapper.insert(feeCenter);
-				inStorage.setStorageDays(Integer.parseInt(day+""));
-				inStorage.setStorageFeesAmount(amount);
+				inOutStorage.setStorageDays(Integer.parseInt(day+""));
+				inOutStorage.setStorageFeesAmount(amount);
 			}
-			baseMapper.updateById(inStorage);
 		}
 		baseMapper.updateById(inOutStorage);
 		return R.data(inOutStorage);