Browse Source

1.确认结算,撤销结算汇率问题修改
2.物流提交查询人员数据不对修改
3.提单号不允许重复规则修改
4.海运出口转单生成的进口单据op,客服数据不对修改
5.生成账单所属公司中文为空

纪新园 7 months ago
parent
commit
e58558441c

+ 7 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -1506,7 +1506,7 @@ public class Bills implements Serializable {
 	 * 客服
 	 */
 	@ApiModelProperty(value = "客服")
-	private String customerServiceId;
+	private Long customerServiceId;
 	/**
 	 * 客服
 	 */
@@ -2338,5 +2338,11 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private String exrateType;
 
+	/**
+	 * 临时来源id
+	 */
+	@TableField(exist = false)
+	private Long temporaryId;
+
 
 }

+ 17 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -590,6 +590,23 @@ public class BillsController extends BladeController {
 	}
 
 	/**
+	 * 批量复制单据
+	 *
+	 * @param ids      复制单据ids
+	 * @param billType 复制后单据类型 空=业务类型不变
+	 * @param copyCntr 1=复制箱型箱量
+	 * @param copyFee  1=复制费用信息
+	 */
+	@GetMapping("/batchCopyBills")
+	@RepeatSubmit
+	public R batchCopyBills(@RequestParam("ids") String ids,
+							@RequestParam(value = "billType", required = false) String billType,
+							@RequestParam(value = "copyCntr", required = false) String copyCntr,
+							@RequestParam(value = "copyFee", required = false) String copyFee) {
+		return billsService.batchCopyBills(ids, billType, copyCntr,copyFee);
+	}
+
+	/**
 	 * 详情
 	 */
 	@GetMapping("/getDetail")

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

@@ -173,4 +173,6 @@ public interface IBillsService extends IService<Bills> {
 	R checkBillsBatch(String billsIds, String url, String pageStatus, String pageLabel);
 
 	R increaseReinsurancePolicyTeu(String ids, String id);
+
+	R batchCopyBills(String ids, String billType, String copyCntr, String copyFee);
 }

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

@@ -2465,6 +2465,10 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		baseMapper.updateById(detail);
 		Bills billsJk = new Bills();
 		BeanUtil.copyProperties(detail, billsJk);
+		billsJk.setOperatorId(bills.getPodStaffId());
+		billsJk.setOperatorName(bills.getPodStaffName());
+		billsJk.setCustomerServiceId(bills.getPodStaffId());
+		billsJk.setCustomerServiceName(bills.getPodStaffName());
 		billsJk.setId(null);
 		billsJk.setUpdateUser(null);
 		billsJk.setUpdateUserName(null);
@@ -3321,6 +3325,244 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		return R.data("操作成功");
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R batchCopyBills(String ids, String billType, String copyCntr, String copyFee) {
+		if (ObjectUtils.isNull(ids)) {
+			throw new SecurityException("缺少必要参数");
+		}
+		List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getTenantId, AuthUtil.getTenantId())
+			.eq(Bills::getIsDeleted, 0)
+			.in(Bills::getId, Func.toLongList(ids)));
+		if (billsList.isEmpty()) {
+			throw new SecurityException("未查到单据信息");
+		}
+		List<SeaBillsDetail> seaBillsDetailList = seaBillsDetailService.list(new LambdaQueryWrapper<SeaBillsDetail>()
+			.eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
+			.in(SeaBillsDetail::getPid, Func.toLongList(ids)));
+		List<FeeCenter> feeCenterList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(copyFee) && "1".equals(copyFee)) {
+			feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+				.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+				.eq(FeeCenter::getIsDeleted, 0)
+				.in(FeeCenter::getPid, Func.toLongList(ids)));
+		}
+		List<PreContainers> preContainersList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(copyFee) && "1".equals(copyCntr)) {
+			preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+				.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+				.eq(PreContainers::getIsDeleted, 0)
+				.in(PreContainers::getPid, Func.toLongList(ids)));
+		}
+		BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
+			.select(BusinessType::getId)
+			.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessType::getIsDeleted, 0)
+			.eq(BusinessType::getStatus, 0)
+			.eq(BusinessType::getCode, billsList.get(0).getBusinessTypes()));
+		if (businessType == null) {
+			throw new RuntimeException("未找到可用业务类型");
+		}
+		List<Bills> copyBillsList = new ArrayList<>();
+		for (Bills item : billsList) {
+			Bills copyBills = new Bills();
+			BeanUtil.copyProperties(item, copyBills);
+			copyBills.setTemporaryId(item.getId());
+			copyBills.setId(null);
+			BusinessBillNo businessBillNo = new BusinessBillNo();
+			businessBillNo.setBusinessTypeId(businessType.getId());
+			if ("dry".equals(copyBills.getCargoType())) {
+				businessBillNo.setCode(item.getBusinessTypes() + "-PH");
+			} else if ("danger".equals(copyBills.getCargoType())) {
+				businessBillNo.setCode(item.getBusinessTypes() + "-WXP");
+			} else if ("reefer".equals(copyBills.getCargoType())) {
+				businessBillNo.setCode(item.getBusinessTypes() + "-DG");
+			} else {
+				businessBillNo.setCode(item.getBusinessTypes() + "-PH");
+			}
+			R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
+			if (!clientBillNo.isSuccess()) {
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				throw new RuntimeException("生成订单编号失败");
+			}
+			copyBills.setBillNo((String) clientBillNo.getData());
+			copyBills.setOperatorId(AuthUtil.getUserId());
+			copyBills.setOperatorName(AuthUtil.getUserName());
+			copyBills.setBillNo("");
+			copyBills.setMblno("");
+			copyBills.setHblno("");
+			copyBills.setRefno("");
+			copyBills.setBookingNo("");
+			copyBills.setMasterBillNo(null);
+			copyBills.setMasterId(null);
+			copyBills.setStatus(0);
+			copyBills.setBillStatus(0);
+			copyBills.setBillingStatus(0);
+			copyBills.setWhetherSail(null);
+			copyBills.setLogisticsStatus(null);
+			copyBills.setWhetherReachHarbor(null);
+			copyBills.setWhetherCancel(null);
+			copyBills.setTransferOrderStatus(null);
+			copyBills.setChangeOrderDate(null);
+			copyBills.setReturnDate(null);
+			copyBills.setReturnEmptyDate(null);
+			copyBills.setClearanceDate(null);
+			copyBills.setReceiveStatus(null);
+			copyBills.setChangeOrdersStatus(null);
+			copyBills.setReturningSecurityMoneyStatus(null);
+			copyBills.setAmountDr(new BigDecimal("0.00"));
+			copyBills.setAmountCr(new BigDecimal("0.00"));
+			copyBills.setAmountProfit(new BigDecimal("0.00"));
+			copyBills.setAmountDrUsd(new BigDecimal("0.00"));
+			copyBills.setAmountCrUsd(new BigDecimal("0.00"));
+			copyBills.setAmountProfitUsd(new BigDecimal("0.00"));
+			copyBills.setAmountDrLoc(new BigDecimal("0.00"));
+			copyBills.setAmountCrLoc(new BigDecimal("0.00"));
+			copyBills.setAmountProfitLoc(new BigDecimal("0.00"));
+			copyBills.setCheckDrStatus(0);
+			copyBills.setCheckDrStatusDescr("未对账");
+			copyBills.setCheckCrStatus(0);
+			copyBills.setCheckCrStatusDescr("未申请");
+			copyBills.setStlDrStatus(0);
+			copyBills.setStlDrStatusDescr("未结");
+			copyBills.setStlCrStatus(0);
+			copyBills.setStlCrStatusDescr("未结");
+			copyBills.setInvoiceDrStatus(0);
+			copyBills.setInvoiceDrStatusDescr("未开");
+			copyBills.setInvoiceCrStatus(0);
+			copyBills.setInvoiceCrStatusDescr("未开");
+			copyBills.setBillStatus(0);
+			copyBills.setAccountStatus(0);
+			copyBills.setSplitOrderSum(0);
+			copyBills.setCfsQuantity(new BigDecimal("0.00"));
+			copyBills.setCfsGrossWeight(new BigDecimal("0.00"));
+			copyBills.setCfsMeasurement(new BigDecimal("0.00"));
+			copyBillsList.add(copyBills);
+		}
+		this.saveBatch(copyBillsList);
+		List<FeeCenter> copyFeeCenterList = new ArrayList<>();
+		List<PreContainers> copyPreContainersList = new ArrayList<>();
+		List<SeaBillsDetail> copySeaBillsDetailList = new ArrayList<>();
+		for (Bills item : copyBillsList) {
+			if (!seaBillsDetailList.isEmpty()) {
+				SeaBillsDetail seaBillsDetail = seaBillsDetailList.stream().filter(e -> e.getPid().equals(item.getTemporaryId()))
+					.findFirst().orElse(null);
+				if (seaBillsDetail != null) {
+					seaBillsDetail.setId(null);
+					seaBillsDetail.setPid(item.getId());
+					seaBillsDetail.setCreateUser(AuthUtil.getUserId());
+					seaBillsDetail.setCreateUserName(AuthUtil.getUserName());
+					seaBillsDetail.setCreateDept(item.getCreateDept());
+					seaBillsDetail.setCreateDeptName(item.getCreateDeptName());
+					seaBillsDetail.setCreateTime(new Date());
+					copySeaBillsDetailList.add(seaBillsDetail);
+				}
+			}
+			if (ObjectUtils.isNotNull(copyFee) && "1".equals(copyFee) && !feeCenterList.isEmpty()) {
+				List<FeeCenter> feeCenters = feeCenterList.stream().filter(e -> e.getPid().equals(item.getTemporaryId()))
+					.collect(Collectors.toList());
+				for (FeeCenter feeCenter : feeCenters) {
+					feeCenter.setId(null);
+					feeCenter.setPid(item.getId());
+					feeCenter.setCreateUser(AuthUtil.getUserId());
+					feeCenter.setCreateUserName(AuthUtil.getUserName());
+					feeCenter.setCreateDept(item.getCreateDept());
+					feeCenter.setCreateDeptName(item.getCreateDeptName());
+					feeCenter.setCreateTime(new Date());
+					feeCenter.setAccBillId(null);
+					feeCenter.setAccBillNo("");
+					feeCenter.setAccDate(null);
+					feeCenter.setAccStatus(0);
+					feeCenter.setAccById(0L);
+					feeCenter.setAccByName("");
+					feeCenter.setCheckBillId(0L);
+					feeCenter.setCheckBillNo("");
+					feeCenter.setCheckDate(null);
+					feeCenter.setCheckAmount(new BigDecimal("0.00"));
+					feeCenter.setCheckStatus(0);
+					feeCenter.setCheckById(0L);
+					feeCenter.setCheckByName("");
+					feeCenter.setStlBillId(0L);
+					feeCenter.setStlBillNo("");
+					feeCenter.setStlDate(null);
+					feeCenter.setStlOrgAmount(new BigDecimal("0.00"));
+					feeCenter.setStlCurCode("");
+					feeCenter.setStlExrate(new BigDecimal("0.00"));
+					feeCenter.setStlExrateLoc(new BigDecimal("0.00"));
+					feeCenter.setStlAmount(new BigDecimal("0.00"));
+					feeCenter.setStlAmountLoc(new BigDecimal("0.00"));
+					feeCenter.setStlStatus(0);
+					feeCenter.setStlById(0L);
+					feeCenter.setStlByName("");
+					feeCenter.setStlTtlAmount(new BigDecimal("0.00"));
+					feeCenter.setUnsettledAmount(feeCenter.getAmount());
+					feeCenter.setVoucherBillId(0L);
+					feeCenter.setVoucherBillNo("");
+					feeCenter.setVoucherNo("");
+					feeCenter.setVoucherDate(null);
+					feeCenter.setVoucherStatus(0);
+					feeCenter.setVoucherById(0L);
+					feeCenter.setVoucherByName("");
+					feeCenter.setInvoiceBillId("");
+					feeCenter.setInvoiceBillNo("");
+					feeCenter.setInvoiceNo("");
+					feeCenter.setInvoiceDate(null);
+					feeCenter.setInvoiceStatus(0);
+					feeCenter.setInvoiceCurCode("");
+					feeCenter.setInvoiceExrate(new BigDecimal("0.00"));
+					feeCenter.setInvoiceAmount(new BigDecimal("0.00"));
+					feeCenter.setInvoiceAmountLoc(new BigDecimal("0.00"));
+					feeCenter.setUninvoicedAmount(new BigDecimal("0.00"));
+					feeCenter.setAppliedAmount(new BigDecimal("0.00"));
+					feeCenter.setAppliedInvoiceAmount(new BigDecimal("0.00"));
+					feeCenter.setReconciliationAmount(new BigDecimal("0.00"));
+					feeCenter.setAppliedAmountStl(new BigDecimal("0.00"));
+					feeCenter.setAppliedInvoiceAmountStl(new BigDecimal("0.00"));
+					feeCenter.setInvoiceById(0L);
+					feeCenter.setInvoiceByName("");
+					feeCenter.setIsSignfor(0);
+					feeCenter.setSignforId(0);
+					feeCenter.setSignforName("");
+					feeCenter.setSignforDate(null);
+					feeCenter.setApplyId(0L);
+					feeCenter.setApplyName("");
+					feeCenter.setApplyTime(null);
+					feeCenter.setApproverId(0L);
+					feeCenter.setApproverName("");
+					feeCenter.setApproveTime(null);
+					feeCenter.setAuditStatus("0");
+					feeCenter.setStlPid(null);
+					copyFeeCenterList.add(feeCenter);
+				}
+			}
+			if (ObjectUtils.isNotNull(copyFee) && "1".equals(copyCntr) && !preContainersList.isEmpty()) {
+				List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getPid().equals(item.getTemporaryId()))
+					.collect(Collectors.toList());
+				for (PreContainers containers : preContainers) {
+					containers.setId(null);
+					containers.setPid(item.getId());
+					containers.setCreateUser(AuthUtil.getUserId());
+					containers.setCreateUserName(AuthUtil.getUserName());
+					containers.setCreateDept(item.getCreateDept());
+					containers.setCreateDeptName(item.getCreateDeptName());
+					containers.setCreateTime(new Date());
+					copyPreContainersList.add(containers);
+				}
+			}
+		}
+		if (!copyFeeCenterList.isEmpty()) {
+			feeCenterService.saveBatch(copyFeeCenterList);
+		}
+		if (!copyPreContainersList.isEmpty()) {
+			preContainersService.saveBatch(copyPreContainersList);
+		}
+		if (!copySeaBillsDetailList.isEmpty()) {
+			seaBillsDetailService.saveBatch(copySeaBillsDetailList);
+		}
+		return R.data("操作成功");
+	}
+
 	/**
 	 * 删除海运进出口明细表
 	 *

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -188,6 +188,7 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			data.setCreateDept(deptId);
 			data.setCreateDeptName(deptName);
 			data.setBranchId(branchId);
+			data.setBranchName(deptName);
 			data.setDeptId(Long.parseLong(branchId));
 			data.setDeptName(deptName);
 			BusinessBillNo businessBillNo = new BusinessBillNo();

+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/stl/service/impl/FinStlBillsServiceImpl.java

@@ -254,6 +254,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
 						item.setCreateDept(deptId);
 						item.setBranchId(branchId);
+						item.setBranchName(deptName);
 						item.setCreateDeptName(deptName);
 					}
 				} else {