|
|
@@ -74,10 +74,10 @@ import org.springblade.los.finance.operatingExpenses.entity.OperatingExpenses;
|
|
|
import org.springblade.los.finance.operatingExpenses.mapper.OperatingExpensesMapper;
|
|
|
import org.springblade.los.finance.stl.entity.FinStlBills;
|
|
|
import org.springblade.los.finance.stl.mapper.FinStlBillsMapper;
|
|
|
+import org.springblade.system.entity.Dept;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
@@ -1535,245 +1535,10 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
|
|
|
if (bills == null) {
|
|
|
throw new RuntimeException("未查到对应海运单据信息");
|
|
|
}
|
|
|
+ //更新原单据数据
|
|
|
this.updateBillsData(bills, deadline);
|
|
|
- BFees fees = bFeesService.getOne(new LambdaQueryWrapper<BFees>()
|
|
|
- .eq(BFees::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(BFees::getIsDeleted, 0)
|
|
|
- .eq(BFees::getCode, "GDF"));
|
|
|
- if (fees == null) {
|
|
|
- throw new RuntimeException("请先维护“改单费”费用信息");
|
|
|
- }
|
|
|
- List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
|
|
|
- .eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(FeeCenter::getIsDeleted, 0)
|
|
|
- .eq(FeeCenter::getFeeCode, fees.getCode())
|
|
|
- .eq(FeeCenter::getPid, bills.getId())
|
|
|
- .eq(FeeCenter::getDc, "D"));
|
|
|
- if (feeCenterList.isEmpty()) {
|
|
|
- String amendmentFee = sysClient.getParamService("amendment.fee");
|
|
|
- String deptName = "";
|
|
|
- String branchId = AuthUtil.getDeptId();
|
|
|
- if (ObjectUtils.isNotNull(branchId)) {
|
|
|
- R<String> res = sysClient.getDeptName(Long.parseLong(branchId));
|
|
|
- if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
- deptName = res.getData();
|
|
|
- }
|
|
|
- }
|
|
|
- Date date;
|
|
|
- if ("SE".equals(bills.getBusinessType())) {
|
|
|
- if (ObjectUtils.isNotNull(bills.getActualEtd())) {
|
|
|
- date = bills.getActualEtd();
|
|
|
- } else {
|
|
|
- date = bills.getEtd();
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (ObjectUtils.isNotNull(bills.getActualEta())) {
|
|
|
- date = bills.getActualEta();
|
|
|
- } else {
|
|
|
- date = bills.getEta();
|
|
|
- }
|
|
|
- }
|
|
|
- BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
|
|
|
- .eq(BusinessType::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(BusinessType::getIsDeleted, 0)
|
|
|
- .eq(BusinessType::getStatus, 0)
|
|
|
- .eq(BusinessType::getCode, "HYZD"));
|
|
|
- if (businessType == null) {
|
|
|
- throw new RuntimeException("未找到可用业务类型");
|
|
|
- }
|
|
|
- String exrateType = currencyUtils.standardCurrency(branchId);
|
|
|
- List<BCurExrate> curExrateList = currencyUtils.obtainRate(date, "1", branchId);
|
|
|
- int count = 1;
|
|
|
- FeeCenter feeCenter = new FeeCenter();
|
|
|
- feeCenter.setBranchId(branchId);
|
|
|
- feeCenter.setBranchName(deptName);
|
|
|
- feeCenter.setBillBranchId(bills.getBranchId());
|
|
|
- feeCenter.setBillBranchName(bills.getBranchName());
|
|
|
- feeCenter.setBookingAgentId(bills.getBookingAgentId());
|
|
|
- feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
|
|
|
- feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
|
|
|
- feeCenter.setQuantityCntrDescr(bills.getQuantityCntrDescr());
|
|
|
- feeCenter.setTeu(bills.getTeu());
|
|
|
- feeCenter.setPid(bills.getId());
|
|
|
- feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
|
|
|
- feeCenter.setBillNo(bills.getBillNo());
|
|
|
- feeCenter.setBusinessType(bills.getBusinessType());
|
|
|
- feeCenter.setBillType(bills.getBillType());
|
|
|
- feeCenter.setBillDate(bills.getBillDate());
|
|
|
- feeCenter.setBillCorpId(bills.getCorpId());
|
|
|
- feeCenter.setBillCorpCnName(bills.getCorpCnName());
|
|
|
- feeCenter.setBillCorpEnName(bills.getCorpEnName());
|
|
|
- feeCenter.setBillShortName(bills.getCorpCnName());
|
|
|
- feeCenter.setLineId(bills.getLineId());
|
|
|
- feeCenter.setLineCnName(bills.getLineCnName());
|
|
|
- feeCenter.setLineEnName(bills.getLineEnName());
|
|
|
- feeCenter.setVesselId(bills.getVesselId());
|
|
|
- feeCenter.setVesselCnName(bills.getVesselCnName());
|
|
|
- feeCenter.setVesselEnName(bills.getVesselEnName());
|
|
|
- feeCenter.setVoyageNo(bills.getVoyageNo());
|
|
|
- feeCenter.setMblno(bills.getMblno());
|
|
|
- feeCenter.setHblno(bills.getHblno());
|
|
|
- feeCenter.setEtd(bills.getEtd());
|
|
|
- feeCenter.setEta(bills.getEta());
|
|
|
- feeCenter.setPolId(bills.getPolId());
|
|
|
- feeCenter.setPolCode(bills.getPolCode());
|
|
|
- feeCenter.setPolCnName(bills.getPolCnName());
|
|
|
- feeCenter.setPolEnName(bills.getPolEnName());
|
|
|
- feeCenter.setPodId(bills.getPodId());
|
|
|
- feeCenter.setPodCode(bills.getPodCode());
|
|
|
- feeCenter.setPodCnName(bills.getPodCnName());
|
|
|
- feeCenter.setPodEnName(bills.getPodEnName());
|
|
|
- feeCenter.setDc("D");
|
|
|
- feeCenter.setPaymode(bills.getMpaymode());
|
|
|
- feeCenter.setSort(count);
|
|
|
- feeCenter.setCorpType("国内直接客户");
|
|
|
- feeCenter.setCorpId(bills.getCorpId());
|
|
|
- feeCenter.setCorpCnName(bills.getShortName());
|
|
|
- feeCenter.setCorpEnName(bills.getCorpEnName());
|
|
|
- feeCenter.setShortName(bills.getShortName());
|
|
|
- BCorps bCorps = bCorpsService.getById(bills.getCorpId());
|
|
|
- if (bCorps != null) {
|
|
|
- feeCenter.setGenerationCorpId(bCorps.getBookingAgentId());
|
|
|
- feeCenter.setGenerationCorpCnName(bCorps.getBookingAgentCnName());
|
|
|
- feeCenter.setGenerationCorpEnName(bCorps.getBookingAgentEnName());
|
|
|
- }
|
|
|
- feeCenter.setFeeId(fees.getId());
|
|
|
- feeCenter.setFeeCode(fees.getCode());
|
|
|
- feeCenter.setFeeCnName(fees.getCnName());
|
|
|
- feeCenter.setFeeEnName(fees.getEnName());
|
|
|
- feeCenter.setCurCode(fees.getCurNo());
|
|
|
- if (ObjectUtils.isNull(amendmentFee) || "获取数据失败".equals(amendmentFee)) {
|
|
|
- throw new RuntimeException("请先维护改单费参数");
|
|
|
- }
|
|
|
- feeCenter.setPrice(new BigDecimal(amendmentFee));
|
|
|
- if (exrateType.equals(feeCenter.getCurCode())) {
|
|
|
- feeCenter.setExrate(new BigDecimal("1.00"));
|
|
|
- } else {
|
|
|
- feeCenter.setExrate(currencyUtils.obtainExrate(feeCenter.getDc(), curExrateList, feeCenter.getCurCode(), "1"));
|
|
|
- }
|
|
|
- feeCenter.setUnitNo(fees.getUnitNo());
|
|
|
- feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
- feeCenter.setAmount(feeCenter.getPrice().multiply(new BigDecimal("1")));
|
|
|
- // 金额
|
|
|
- BigDecimal amount;
|
|
|
- amount = feeCenter.getQuantity().multiply(feeCenter.getPrice());
|
|
|
- feeCenter.setAmount(amount);
|
|
|
- if (ObjectUtils.isNull(feeCenter.getAmount())) {
|
|
|
- feeCenter.setAmount(new BigDecimal("0"));
|
|
|
- }
|
|
|
- if (exrateType.equals(feeCenter.getCurCode())) {
|
|
|
- feeCenter.setAmountLoc(feeCenter.getAmount());
|
|
|
- } else {
|
|
|
- if (new BigDecimal("0").compareTo(feeCenter.getAmount()) != 0) {
|
|
|
- feeCenter.setAmountLoc(feeCenter.getAmount().multiply(feeCenter.getExrate()));
|
|
|
- } else {
|
|
|
- feeCenter.setAmountLoc(new BigDecimal("0"));
|
|
|
- }
|
|
|
- }
|
|
|
- feeCenter.setUnsettledAmount(feeCenter.getAmount());
|
|
|
- feeCenter.setCreateUser(AuthUtil.getUserId());
|
|
|
- feeCenter.setCreateUserName(AuthUtil.getUserName());
|
|
|
- feeCenter.setCreateTime(new Date());
|
|
|
-
|
|
|
- FinAccBills data = new FinAccBills();
|
|
|
- data.setCurCode(feeCenter.getCurCode());
|
|
|
- data.setGenerationCorpId(feeCenter.getGenerationCorpId());
|
|
|
- data.setGenerationCorpCnName(feeCenter.getGenerationCorpCnName());
|
|
|
- data.setGenerationCorpEnName(feeCenter.getGenerationCorpEnName());
|
|
|
- data.setCreateTime(new Date());
|
|
|
- data.setCreateUser(AuthUtil.getUserId());
|
|
|
- data.setCreateUserName(AuthUtil.getUserName());
|
|
|
- data.setCreateDept(feeCenter.getCreateDept());
|
|
|
- data.setCreateDeptName(feeCenter.getCreateDeptName());
|
|
|
- data.setBranchId(feeCenter.getBranchId());
|
|
|
- data.setBranchName(feeCenter.getBranchName());
|
|
|
- data.setDeptId(Long.parseLong(feeCenter.getBranchId()));
|
|
|
- data.setDeptName(feeCenter.getBranchName());
|
|
|
- data.setBookingAgentId(feeCenter.getBookingAgentId());
|
|
|
- data.setBookingAgentCnName(feeCenter.getBookingAgentCnName());
|
|
|
- data.setBookingAgentEnName(feeCenter.getBookingAgentEnName());
|
|
|
- data.setTaxRate(feeCenter.getTaxRate());
|
|
|
- data.setAmountTax(feeCenter.getAmountTax());
|
|
|
- data.setBillBranchId(feeCenter.getBillBranchId());
|
|
|
- data.setBillBranchName(feeCenter.getBillBranchName());
|
|
|
- BusinessBillNo businessBillNo = new BusinessBillNo();
|
|
|
- businessBillNo.setBusinessTypeId(businessType.getId());
|
|
|
- businessBillNo.setCode("HYZD");
|
|
|
- businessBillNo.setBranchId(feeCenter.getBranchId());
|
|
|
- R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
|
|
|
- if (!clientBillNo.isSuccess()) {
|
|
|
- throw new RuntimeException("生成账单编号失败");
|
|
|
- }
|
|
|
- data.setBillNo((String) clientBillNo.getData());
|
|
|
- data.setBillDate(feeCenter.getBillDate());
|
|
|
- data.setAccountType("LOCAL");
|
|
|
- data.setAccountDc(feeCenter.getDc());
|
|
|
- data.setAccountDate(feeCenter.getBillDate());
|
|
|
- data.setBillKey(feeCenter.getBillKey());
|
|
|
- data.setBusinessType(feeCenter.getBusinessType());
|
|
|
- data.setBillType(feeCenter.getBillType());
|
|
|
- data.setBusinessBillId(feeCenter.getPid());
|
|
|
- data.setBusinessBillNo(feeCenter.getBillNo());
|
|
|
- data.setBusinessDate(feeCenter.getBillDate());
|
|
|
- data.setSrcId(bills.getSrcId());
|
|
|
- data.setSrcCnName(bills.getSrcCnName());
|
|
|
- data.setSrcEnName(bills.getSrcEnName());
|
|
|
- data.setSrcType(bills.getSrcType());
|
|
|
- data.setOperatorId(bills.getOperatorId());
|
|
|
- data.setOperatorName(bills.getOperatorName());
|
|
|
- data.setQuantityCntrDescr(bills.getQuantityCntrDescr());
|
|
|
- data.setPaymode(feeCenter.getPaymode());
|
|
|
- data.setCorpId(feeCenter.getCorpId());
|
|
|
- data.setCorpCnName(feeCenter.getCorpCnName());
|
|
|
- data.setCorpEnName(feeCenter.getCorpEnName());
|
|
|
- data.setCorpArgreementNo(bills.getCorpArgreementNo());
|
|
|
- data.setBillCorpId(feeCenter.getBillCorpId());
|
|
|
- data.setBillCorpCnName(feeCenter.getBillCorpCnName());
|
|
|
- data.setBillCorpEnName(feeCenter.getBillCorpEnName());
|
|
|
- data.setVesselId(feeCenter.getVesselId());
|
|
|
- data.setVesselCnName(feeCenter.getVesselCnName());
|
|
|
- data.setVesselEnName(feeCenter.getVesselEnName());
|
|
|
- data.setVoyageNo(feeCenter.getVoyageNo());
|
|
|
- data.setMblno(feeCenter.getMblno());
|
|
|
- data.setHblno(feeCenter.getHblno());
|
|
|
- data.setRefno(bills.getRefno());
|
|
|
- data.setBookingNo(bills.getBookingNo());
|
|
|
- data.setEtd(feeCenter.getEtd());
|
|
|
- data.setEta(feeCenter.getEta());
|
|
|
- data.setPolId(feeCenter.getPolId());
|
|
|
- data.setPolCnName(feeCenter.getPolCnName());
|
|
|
- data.setPolEnName(feeCenter.getPolEnName());
|
|
|
- data.setPolNamePrint(bills.getPolNamePrint());
|
|
|
- data.setPodId(feeCenter.getPodId());
|
|
|
- data.setPodCnName(feeCenter.getPodCnName());
|
|
|
- data.setPodCode(feeCenter.getPodCode());
|
|
|
- data.setPodEnName(feeCenter.getPodEnName());
|
|
|
- data.setPodNamePrint(bills.getPodNamePrint());
|
|
|
- data.setTrackingNumber(feeCenter.getTrackingNumber());
|
|
|
- BigDecimal amountDrLoc = new BigDecimal("0.00");
|
|
|
- if (exrateType.equals(feeCenter.getCurCode())) {
|
|
|
- data.setAmountDr(feeCenter.getAmount());
|
|
|
- } else {
|
|
|
- data.setAmountDrUsd(feeCenter.getAmount());
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(data.getAmountDrUsd()) && ObjectUtils.isNotNull(feeCenter.getExrate())) {
|
|
|
- BigDecimal drCny = data.getAmountDrUsd().multiply(feeCenter.getExrate());
|
|
|
- amountDrLoc = amountDrLoc.add(data.getAmountDr()).add(drCny);
|
|
|
- }
|
|
|
- data.setAmountDrLoc(amountDrLoc);
|
|
|
- data.setExrate(feeCenter.getExrate());
|
|
|
- finAccBillsService.save(data);
|
|
|
- feeCenter.setAccBillId(data.getId());
|
|
|
- feeCenter.setAccBillNo(data.getBillNo());
|
|
|
- feeCenter.setAccDate(data.getBillDate());
|
|
|
- feeCenter.setAccAmount(amountDrLoc);
|
|
|
- feeCenter.setAccStatus(1);
|
|
|
- feeCenter.setAccById(AuthUtil.getUserId());
|
|
|
- feeCenter.setAccByName(AuthUtil.getUserName());
|
|
|
- feeCenter.setAuditStatus("4");
|
|
|
- feeCenter.setVersion("1");
|
|
|
- feeCenterService.save(feeCenter);
|
|
|
- }
|
|
|
+ //生成改单费
|
|
|
+ this.generateAmendmentFee(bills);
|
|
|
messageBody = "您的提单修改审核已通过" + ",业务单号:" + proecessTemp.getBillNo();
|
|
|
}
|
|
|
//不通过
|
|
|
@@ -1797,6 +1562,243 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
|
|
|
baseMapper.updateById(proecessTemp);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 生成改单费
|
|
|
+ *
|
|
|
+ * @param bills 海运出口单据信息
|
|
|
+ */
|
|
|
+ private void generateAmendmentFee(Bills bills) {
|
|
|
+ BFees fees = bFeesService.getOne(new LambdaQueryWrapper<BFees>()
|
|
|
+ .eq(BFees::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BFees::getIsDeleted, 0)
|
|
|
+ .eq(BFees::getCode, "GDF"));
|
|
|
+ if (fees == null) {
|
|
|
+ throw new RuntimeException("请先维护“改单费”费用信息");
|
|
|
+ }
|
|
|
+ BigDecimal amendmentFee = new BigDecimal("0");
|
|
|
+ String deptName = "";
|
|
|
+ String branchId = AuthUtil.getDeptId();
|
|
|
+ R<Dept> res = sysClient.getDept(Long.parseLong(branchId));
|
|
|
+ if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
|
|
|
+ deptName = res.getData().getDeptName();
|
|
|
+ amendmentFee = res.getData().getAmendmentFee();
|
|
|
+ }
|
|
|
+ if (new BigDecimal("0.00").compareTo(amendmentFee) != 0) {
|
|
|
+ Date date;
|
|
|
+ if ("SE".equals(bills.getBusinessType())) {
|
|
|
+ if (ObjectUtils.isNotNull(bills.getActualEtd())) {
|
|
|
+ date = bills.getActualEtd();
|
|
|
+ } else {
|
|
|
+ date = bills.getEtd();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (ObjectUtils.isNotNull(bills.getActualEta())) {
|
|
|
+ date = bills.getActualEta();
|
|
|
+ } else {
|
|
|
+ date = bills.getEta();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
|
|
|
+ .eq(BusinessType::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(BusinessType::getIsDeleted, 0)
|
|
|
+ .eq(BusinessType::getStatus, 0)
|
|
|
+ .eq(BusinessType::getCode, "HYZD"));
|
|
|
+ if (businessType == null) {
|
|
|
+ throw new RuntimeException("未找到可用业务类型");
|
|
|
+ }
|
|
|
+ String exrateType = currencyUtils.standardCurrency(branchId);
|
|
|
+ List<BCurExrate> curExrateList = currencyUtils.obtainRate(date, "1", branchId);
|
|
|
+ int count = 1;
|
|
|
+ FeeCenter feeCenter = new FeeCenter();
|
|
|
+ feeCenter.setBranchId(branchId);
|
|
|
+ feeCenter.setBranchName(deptName);
|
|
|
+ feeCenter.setBillBranchId(bills.getBranchId());
|
|
|
+ feeCenter.setBillBranchName(bills.getBranchName());
|
|
|
+ feeCenter.setBookingAgentId(bills.getBookingAgentId());
|
|
|
+ feeCenter.setBookingAgentCnName(bills.getBookingAgentCnName());
|
|
|
+ feeCenter.setBookingAgentEnName(bills.getBookingAgentEnName());
|
|
|
+ feeCenter.setQuantityCntrDescr(bills.getQuantityCntrDescr());
|
|
|
+ feeCenter.setTeu(bills.getTeu());
|
|
|
+ feeCenter.setPid(bills.getId());
|
|
|
+ feeCenter.setCntrNo(bills.getQuantityCntrTypesDescr());
|
|
|
+ feeCenter.setBillNo(bills.getBillNo());
|
|
|
+ feeCenter.setBusinessType(bills.getBusinessType());
|
|
|
+ feeCenter.setBillType(bills.getBillType());
|
|
|
+ feeCenter.setBillDate(bills.getBillDate());
|
|
|
+ feeCenter.setBillCorpId(bills.getCorpId());
|
|
|
+ feeCenter.setBillCorpCnName(bills.getCorpCnName());
|
|
|
+ feeCenter.setBillCorpEnName(bills.getCorpEnName());
|
|
|
+ feeCenter.setBillShortName(bills.getCorpCnName());
|
|
|
+ feeCenter.setLineId(bills.getLineId());
|
|
|
+ feeCenter.setLineCnName(bills.getLineCnName());
|
|
|
+ feeCenter.setLineEnName(bills.getLineEnName());
|
|
|
+ feeCenter.setVesselId(bills.getVesselId());
|
|
|
+ feeCenter.setVesselCnName(bills.getVesselCnName());
|
|
|
+ feeCenter.setVesselEnName(bills.getVesselEnName());
|
|
|
+ feeCenter.setVoyageNo(bills.getVoyageNo());
|
|
|
+ feeCenter.setMblno(bills.getMblno());
|
|
|
+ feeCenter.setHblno(bills.getHblno());
|
|
|
+ feeCenter.setEtd(bills.getEtd());
|
|
|
+ feeCenter.setEta(bills.getEta());
|
|
|
+ feeCenter.setPolId(bills.getPolId());
|
|
|
+ feeCenter.setPolCode(bills.getPolCode());
|
|
|
+ feeCenter.setPolCnName(bills.getPolCnName());
|
|
|
+ feeCenter.setPolEnName(bills.getPolEnName());
|
|
|
+ feeCenter.setPodId(bills.getPodId());
|
|
|
+ feeCenter.setPodCode(bills.getPodCode());
|
|
|
+ feeCenter.setPodCnName(bills.getPodCnName());
|
|
|
+ feeCenter.setPodEnName(bills.getPodEnName());
|
|
|
+ feeCenter.setDc("D");
|
|
|
+ feeCenter.setPaymode(bills.getMpaymode());
|
|
|
+ feeCenter.setSort(count);
|
|
|
+ feeCenter.setCorpType("国内直接客户");
|
|
|
+ feeCenter.setCorpId(bills.getCorpId());
|
|
|
+ feeCenter.setCorpCnName(bills.getShortName());
|
|
|
+ feeCenter.setCorpEnName(bills.getCorpEnName());
|
|
|
+ feeCenter.setShortName(bills.getShortName());
|
|
|
+ BCorps bCorps = bCorpsService.getById(bills.getCorpId());
|
|
|
+ if (bCorps != null) {
|
|
|
+ feeCenter.setGenerationCorpId(bCorps.getBookingAgentId());
|
|
|
+ feeCenter.setGenerationCorpCnName(bCorps.getBookingAgentCnName());
|
|
|
+ feeCenter.setGenerationCorpEnName(bCorps.getBookingAgentEnName());
|
|
|
+ }
|
|
|
+ feeCenter.setFeeId(fees.getId());
|
|
|
+ feeCenter.setFeeCode(fees.getCode());
|
|
|
+ feeCenter.setFeeCnName(fees.getCnName());
|
|
|
+ feeCenter.setFeeEnName(fees.getEnName());
|
|
|
+ feeCenter.setCurCode(fees.getCurNo());
|
|
|
+ feeCenter.setPrice(amendmentFee);
|
|
|
+ if (exrateType.equals(feeCenter.getCurCode())) {
|
|
|
+ feeCenter.setExrate(new BigDecimal("1.00"));
|
|
|
+ } else {
|
|
|
+ feeCenter.setExrate(currencyUtils.obtainExrate(feeCenter.getDc(), curExrateList, feeCenter.getCurCode(), "1"));
|
|
|
+ }
|
|
|
+ feeCenter.setUnitNo(fees.getUnitNo());
|
|
|
+ feeCenter.setQuantity(new BigDecimal("1"));
|
|
|
+ feeCenter.setAmount(feeCenter.getPrice().multiply(new BigDecimal("1")));
|
|
|
+ // 金额
|
|
|
+ BigDecimal amount;
|
|
|
+ amount = feeCenter.getQuantity().multiply(feeCenter.getPrice());
|
|
|
+ feeCenter.setAmount(amount);
|
|
|
+ if (ObjectUtils.isNull(feeCenter.getAmount())) {
|
|
|
+ feeCenter.setAmount(new BigDecimal("0"));
|
|
|
+ }
|
|
|
+ if (exrateType.equals(feeCenter.getCurCode())) {
|
|
|
+ feeCenter.setAmountLoc(feeCenter.getAmount());
|
|
|
+ } else {
|
|
|
+ if (new BigDecimal("0").compareTo(feeCenter.getAmount()) != 0) {
|
|
|
+ feeCenter.setAmountLoc(feeCenter.getAmount().multiply(feeCenter.getExrate()));
|
|
|
+ } else {
|
|
|
+ feeCenter.setAmountLoc(new BigDecimal("0"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ feeCenter.setUnsettledAmount(feeCenter.getAmount());
|
|
|
+ feeCenter.setCreateUser(AuthUtil.getUserId());
|
|
|
+ feeCenter.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ feeCenter.setCreateTime(new Date());
|
|
|
+ feeCenter.setAutomaticGenerated("1");
|
|
|
+
|
|
|
+ FinAccBills data = new FinAccBills();
|
|
|
+ data.setCurCode(feeCenter.getCurCode());
|
|
|
+ data.setGenerationCorpId(feeCenter.getGenerationCorpId());
|
|
|
+ data.setGenerationCorpCnName(feeCenter.getGenerationCorpCnName());
|
|
|
+ data.setGenerationCorpEnName(feeCenter.getGenerationCorpEnName());
|
|
|
+ data.setCreateTime(new Date());
|
|
|
+ data.setCreateUser(AuthUtil.getUserId());
|
|
|
+ data.setCreateUserName(AuthUtil.getUserName());
|
|
|
+ data.setCreateDept(feeCenter.getCreateDept());
|
|
|
+ data.setCreateDeptName(feeCenter.getCreateDeptName());
|
|
|
+ data.setBranchId(feeCenter.getBranchId());
|
|
|
+ data.setBranchName(feeCenter.getBranchName());
|
|
|
+ data.setDeptId(Long.parseLong(feeCenter.getBranchId()));
|
|
|
+ data.setDeptName(feeCenter.getBranchName());
|
|
|
+ data.setBookingAgentId(feeCenter.getBookingAgentId());
|
|
|
+ data.setBookingAgentCnName(feeCenter.getBookingAgentCnName());
|
|
|
+ data.setBookingAgentEnName(feeCenter.getBookingAgentEnName());
|
|
|
+ data.setTaxRate(feeCenter.getTaxRate());
|
|
|
+ data.setAmountTax(feeCenter.getAmountTax());
|
|
|
+ data.setBillBranchId(feeCenter.getBillBranchId());
|
|
|
+ data.setBillBranchName(feeCenter.getBillBranchName());
|
|
|
+ BusinessBillNo businessBillNo = new BusinessBillNo();
|
|
|
+ businessBillNo.setBusinessTypeId(businessType.getId());
|
|
|
+ businessBillNo.setCode("HYZD");
|
|
|
+ businessBillNo.setBranchId(feeCenter.getBranchId());
|
|
|
+ R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
|
|
|
+ if (!clientBillNo.isSuccess()) {
|
|
|
+ throw new RuntimeException("生成账单编号失败");
|
|
|
+ }
|
|
|
+ data.setBillNo((String) clientBillNo.getData());
|
|
|
+ data.setBillDate(feeCenter.getBillDate());
|
|
|
+ data.setAccountType("LOCAL");
|
|
|
+ data.setAccountDc(feeCenter.getDc());
|
|
|
+ data.setAccountDate(feeCenter.getBillDate());
|
|
|
+ data.setBillKey(feeCenter.getBillKey());
|
|
|
+ data.setBusinessType(feeCenter.getBusinessType());
|
|
|
+ data.setBillType(feeCenter.getBillType());
|
|
|
+ data.setBusinessBillId(feeCenter.getPid());
|
|
|
+ data.setBusinessBillNo(feeCenter.getBillNo());
|
|
|
+ data.setBusinessDate(feeCenter.getBillDate());
|
|
|
+ data.setSrcId(bills.getSrcId());
|
|
|
+ data.setSrcCnName(bills.getSrcCnName());
|
|
|
+ data.setSrcEnName(bills.getSrcEnName());
|
|
|
+ data.setSrcType(bills.getSrcType());
|
|
|
+ data.setOperatorId(bills.getOperatorId());
|
|
|
+ data.setOperatorName(bills.getOperatorName());
|
|
|
+ data.setQuantityCntrDescr(bills.getQuantityCntrDescr());
|
|
|
+ data.setPaymode(feeCenter.getPaymode());
|
|
|
+ data.setCorpId(feeCenter.getCorpId());
|
|
|
+ data.setCorpCnName(feeCenter.getCorpCnName());
|
|
|
+ data.setCorpEnName(feeCenter.getCorpEnName());
|
|
|
+ data.setCorpArgreementNo(bills.getCorpArgreementNo());
|
|
|
+ data.setBillCorpId(feeCenter.getBillCorpId());
|
|
|
+ data.setBillCorpCnName(feeCenter.getBillCorpCnName());
|
|
|
+ data.setBillCorpEnName(feeCenter.getBillCorpEnName());
|
|
|
+ data.setVesselId(feeCenter.getVesselId());
|
|
|
+ data.setVesselCnName(feeCenter.getVesselCnName());
|
|
|
+ data.setVesselEnName(feeCenter.getVesselEnName());
|
|
|
+ data.setVoyageNo(feeCenter.getVoyageNo());
|
|
|
+ data.setMblno(feeCenter.getMblno());
|
|
|
+ data.setHblno(feeCenter.getHblno());
|
|
|
+ data.setRefno(bills.getRefno());
|
|
|
+ data.setBookingNo(bills.getBookingNo());
|
|
|
+ data.setEtd(feeCenter.getEtd());
|
|
|
+ data.setEta(feeCenter.getEta());
|
|
|
+ data.setPolId(feeCenter.getPolId());
|
|
|
+ data.setPolCnName(feeCenter.getPolCnName());
|
|
|
+ data.setPolEnName(feeCenter.getPolEnName());
|
|
|
+ data.setPolNamePrint(bills.getPolNamePrint());
|
|
|
+ data.setPodId(feeCenter.getPodId());
|
|
|
+ data.setPodCnName(feeCenter.getPodCnName());
|
|
|
+ data.setPodCode(feeCenter.getPodCode());
|
|
|
+ data.setPodEnName(feeCenter.getPodEnName());
|
|
|
+ data.setPodNamePrint(bills.getPodNamePrint());
|
|
|
+ data.setTrackingNumber(feeCenter.getTrackingNumber());
|
|
|
+ BigDecimal amountDrLoc = new BigDecimal("0.00");
|
|
|
+ if (exrateType.equals(feeCenter.getCurCode())) {
|
|
|
+ data.setAmountDr(feeCenter.getAmount());
|
|
|
+ } else {
|
|
|
+ data.setAmountDrUsd(feeCenter.getAmount());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(data.getAmountDrUsd()) && ObjectUtils.isNotNull(feeCenter.getExrate())) {
|
|
|
+ BigDecimal drCny = data.getAmountDrUsd().multiply(feeCenter.getExrate());
|
|
|
+ amountDrLoc = amountDrLoc.add(data.getAmountDr()).add(drCny);
|
|
|
+ }
|
|
|
+ data.setAmountDrLoc(amountDrLoc);
|
|
|
+ data.setExrate(feeCenter.getExrate());
|
|
|
+ finAccBillsService.save(data);
|
|
|
+ feeCenter.setAccBillId(data.getId());
|
|
|
+ feeCenter.setAccBillNo(data.getBillNo());
|
|
|
+ feeCenter.setAccDate(data.getBillDate());
|
|
|
+ feeCenter.setAccAmount(amountDrLoc);
|
|
|
+ feeCenter.setAccStatus(1);
|
|
|
+ feeCenter.setAccById(AuthUtil.getUserId());
|
|
|
+ feeCenter.setAccByName(AuthUtil.getUserName());
|
|
|
+ feeCenter.setAuditStatus("4");
|
|
|
+ feeCenter.setVersion("1");
|
|
|
+ feeCenterService.save(feeCenter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void check(LosAuditProecess auditProecess) {
|
|
|
@@ -2015,10 +2017,10 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
|
|
|
.eq(DeadlineContainers::getIsDeleted, 0)
|
|
|
.eq(DeadlineContainers::getPid, deadline.getId()));
|
|
|
List<Containers> containersArrayList = new ArrayList<>();
|
|
|
- if (!deadlineContainersList.isEmpty() && !containersList.isEmpty()){
|
|
|
- for (DeadlineContainers item : deadlineContainersList){
|
|
|
- Containers containers = containersList.stream().filter(e-> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
- if (containers != null){
|
|
|
+ if (!deadlineContainersList.isEmpty() && !containersList.isEmpty()) {
|
|
|
+ for (DeadlineContainers item : deadlineContainersList) {
|
|
|
+ Containers containers = containersList.stream().filter(e -> e.getId().equals(item.getSrcItemId())).findFirst().orElse(null);
|
|
|
+ if (containers != null) {
|
|
|
boolean containersStatus = false;
|
|
|
//箱号
|
|
|
if (ObjectUtils.isNotNull(item.getDeadlineCntrNo()) && !item.getDeadlineCntrNo().equals(item.getCntrNo())) {
|
|
|
@@ -2055,12 +2057,12 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
|
|
|
containers.setTare(new BigDecimal(item.getDeadlineTare()));
|
|
|
containersStatus = true;
|
|
|
}
|
|
|
- if (containersStatus){
|
|
|
+ if (containersStatus) {
|
|
|
containersArrayList.add(containers);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (!containersArrayList.isEmpty()){
|
|
|
+ if (!containersArrayList.isEmpty()) {
|
|
|
containersService.updateBatchById(containersArrayList);
|
|
|
}
|
|
|
}
|
|
|
@@ -2230,156 +2232,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
|
|
|
throw new SecurityException("审批开始修改审核状态失败");
|
|
|
}
|
|
|
if ("4".equals(number)) {
|
|
|
- BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
|
|
|
- .eq(BusinessType::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(BusinessType::getIsDeleted, 0)
|
|
|
- .eq(BusinessType::getStatus, 0)
|
|
|
- .eq(BusinessType::getCode, "YWZD"));
|
|
|
- if (businessType == null) {
|
|
|
- throw new RuntimeException("未找到可用业务类型");
|
|
|
- }
|
|
|
- Bills bills = new Bills();
|
|
|
- if ("HYJK,HYCK".contains(expenseApplication.getSrcType())) {
|
|
|
- bills = billsMapper.selectById(expenseApplication.getSrcId());
|
|
|
- }
|
|
|
- for (FeeCenter item : feeCenterList) {
|
|
|
- if (1 == item.getAccStatus()) {
|
|
|
- throw new RuntimeException("费用:" + item.getFeeCnName() + "已生成账单");
|
|
|
- }
|
|
|
- FinAccBills data = new FinAccBills();
|
|
|
- data.setCurCode(item.getCurCode());
|
|
|
- data.setTrackingNumber(item.getTrackingNumber());
|
|
|
- data.setGenerationCorpId(item.getGenerationCorpId());
|
|
|
- data.setGenerationCorpCnName(item.getGenerationCorpCnName());
|
|
|
- data.setGenerationCorpEnName(item.getGenerationCorpEnName());
|
|
|
- data.setCreateTime(new Date());
|
|
|
- data.setCreateUser(AuthUtil.getUserId());
|
|
|
- data.setCreateUserName(AuthUtil.getUserName());
|
|
|
- data.setBillBranchId(bills.getBranchId());
|
|
|
- data.setBillBranchName(bills.getBranchName());
|
|
|
- if (ObjectUtils.isNull(item.getBranchId())) {
|
|
|
- data.setCreateDept(AuthUtil.getDeptId());
|
|
|
- R<String> res = sysClient.getDeptName(Long.parseLong(AuthUtil.getDeptId()));
|
|
|
- if (res.isSuccess()) {
|
|
|
- data.setCreateDeptName(res.getData());
|
|
|
- data.setBranchName(res.getData());
|
|
|
- data.setDeptName(res.getData());
|
|
|
- }
|
|
|
- data.setBranchId(item.getBranchId());
|
|
|
- data.setDeptId(Long.parseLong(AuthUtil.getDeptId()));
|
|
|
- } else {
|
|
|
- data.setCreateDept(item.getBranchId());
|
|
|
- data.setCreateDeptName(item.getBranchName());
|
|
|
- data.setBranchId(item.getBranchId());
|
|
|
- data.setBranchName(item.getBranchName());
|
|
|
- data.setDeptId(Long.parseLong(item.getBranchId()));
|
|
|
- data.setDeptName(item.getBranchName());
|
|
|
- }
|
|
|
- data.setBookingAgentId(item.getBookingAgentId());
|
|
|
- data.setBookingAgentCnName(item.getBookingAgentCnName());
|
|
|
- data.setBookingAgentEnName(item.getBookingAgentEnName());
|
|
|
- data.setQuantityCntrDescr(item.getQuantityCntrDescr());
|
|
|
- data.setTeu(item.getTeu());
|
|
|
- BusinessBillNo businessBillNo = new BusinessBillNo();
|
|
|
- businessBillNo.setBusinessTypeId(businessType.getId());
|
|
|
- businessBillNo.setCode("YWZD");
|
|
|
- businessBillNo.setBranchId(item.getBranchId());
|
|
|
- R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
|
|
|
- if (!clientBillNo.isSuccess()) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- throw new RuntimeException("生成订单编号失败");
|
|
|
- }
|
|
|
- data.setWarehousingDate(item.getStorageDate());
|
|
|
- data.setOutboundDate(item.getOutboundDate());
|
|
|
- data.setBillNo((String) clientBillNo.getData());
|
|
|
- data.setBillDate(new Date());
|
|
|
- data.setAccountDc(item.getDc());
|
|
|
- data.setAccountDate(item.getBillDate());
|
|
|
- data.setBusinessType(item.getBusinessType());
|
|
|
- data.setBusinessBillId(item.getPid());
|
|
|
- data.setBusinessBillNo(item.getBillNo());
|
|
|
- data.setBusinessDate(item.getBillDate());
|
|
|
- data.setBillType(item.getBillType());
|
|
|
- data.setSrcId(item.getSrcId());
|
|
|
- data.setSrcCnName(item.getSrcCnName());
|
|
|
- data.setSrcEnName(item.getSrcEnName());
|
|
|
- data.setSrcType(item.getSrcType());
|
|
|
- if (bills != null) {
|
|
|
- data.setOperatorId(bills.getOperatorId());
|
|
|
- data.setOperatorName(bills.getOperatorName());
|
|
|
- } else {
|
|
|
- data.setOperatorId(expenseApplication.getCreateUser());
|
|
|
- data.setOperatorName(expenseApplication.getCreateUserName());
|
|
|
- }
|
|
|
- data.setPaymode(item.getPaymode());
|
|
|
- data.setCorpId(item.getCorpId());
|
|
|
- data.setCorpCnName(item.getCorpCnName());
|
|
|
- data.setCorpEnName(item.getCorpEnName());
|
|
|
- data.setBillCorpId(item.getBillCorpId());
|
|
|
- data.setBillCorpCnName(item.getBillCorpCnName());
|
|
|
- data.setBillCorpEnName(item.getBillCorpEnName());
|
|
|
- data.setVesselId(item.getVesselId());
|
|
|
- data.setVesselCnName(item.getVesselCnName());
|
|
|
- data.setVesselEnName(item.getVesselEnName());
|
|
|
- data.setVoyageNo(item.getVoyageNo());
|
|
|
- data.setMblno(item.getMblno());
|
|
|
- data.setHblno(item.getHblno());
|
|
|
- data.setRefno(item.getRefno());
|
|
|
- data.setBookingNo(item.getBookingNo());
|
|
|
- data.setEtd(item.getEtd());
|
|
|
- data.setEta(item.getEta());
|
|
|
- data.setPolId(item.getPolId());
|
|
|
- data.setPolCnName(item.getPolCnName());
|
|
|
- data.setPolEnName(item.getPolEnName());
|
|
|
- data.setPodId(item.getPodId());
|
|
|
- data.setPodCnName(item.getPodCnName());
|
|
|
- data.setPodCode(item.getPodCode());
|
|
|
- data.setPodEnName(item.getPodEnName());
|
|
|
- BigDecimal amountDrLoc = new BigDecimal("0.00");
|
|
|
- BigDecimal amountCrLoc = new BigDecimal("0.00");
|
|
|
- if ("CNY".equals(item.getCurCode())) {
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- data.setAmountDr(item.getAmount());
|
|
|
- data.setAmountCr(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- data.setAmountCr(item.getAmount());
|
|
|
- data.setAmountDr(new BigDecimal("0.00"));
|
|
|
- }
|
|
|
- data.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
- data.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- if ("D".equals(item.getDc())) {
|
|
|
- data.setAmountDrUsd(item.getAmount());
|
|
|
- data.setAmountCrUsd(new BigDecimal("0.00"));
|
|
|
- } else {
|
|
|
- data.setAmountDrUsd(new BigDecimal("0.00"));
|
|
|
- data.setAmountCrUsd(item.getAmount());
|
|
|
- }
|
|
|
- data.setAmountDr(new BigDecimal("0.00"));
|
|
|
- data.setAmountCr(new BigDecimal("0.00"));
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(data.getAmountCrUsd()) && ObjectUtils.isNotNull(item.getExrate())) {
|
|
|
- BigDecimal crCny = data.getAmountCrUsd().multiply(item.getExrate());
|
|
|
- amountCrLoc = amountCrLoc.add(data.getAmountCr()).add(crCny);
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(data.getAmountDrUsd()) && ObjectUtils.isNotNull(item.getExrate())) {
|
|
|
- BigDecimal drCny = data.getAmountDrUsd().multiply(item.getExrate());
|
|
|
- amountDrLoc = amountDrLoc.add(data.getAmountDr()).add(drCny);
|
|
|
- }
|
|
|
- data.setAmountDrLoc(amountDrLoc);
|
|
|
- data.setAmountCrLoc(amountCrLoc);
|
|
|
- finAccBillsService.save(data);
|
|
|
- item.setAccBillId(data.getId());
|
|
|
- item.setAccBillNo(data.getBillNo());
|
|
|
- item.setAccDate(data.getBillDate());
|
|
|
- item.setAccAmount(amountDrLoc.add(amountCrLoc));
|
|
|
- item.setAccStatus(1);
|
|
|
- item.setAccById(AuthUtil.getUserId());
|
|
|
- item.setAccByName(AuthUtil.getUserName());
|
|
|
- item.setAuditStatus(number);
|
|
|
- int version = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
|
|
|
- item.setVersion(String.valueOf(version + 1));
|
|
|
- }
|
|
|
+ finAccBillsService.generateBillV1(expenseApplication.getSrcType(), expenseApplication.getSrcId() + "", feeCenterList);
|
|
|
} else if ("0".equals(number)) {
|
|
|
for (FeeCenter item : feeCenterList) {
|
|
|
item.setUpdateTime(new Date());
|