Browse Source

2024年1月3日17:20:32

纪新园 2 years ago
parent
commit
100bc135c9

+ 3 - 3
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/BillsMapper.xml

@@ -334,13 +334,13 @@
         AND fee.is_deleted = '0'
         and bill.is_deleted = '0'
         <if test='acc.type != null and acc.type != "" and acc.type == "2"'>
-            and acc.amount_dr_loc > acc.stl_amount_dr_loc + applied_amount
+            and acc.amount_dr_loc > acc.stl_amount_dr_loc + fee.applied_amount
         </if>
         <if test='acc.type != null and acc.type != "" and acc.type == "3"'>
-            and acc.amount_cr_loc > acc.stl_amount_cr_loc + applied_amount
+            and acc.amount_cr_loc > acc.stl_amount_cr_loc + fee.applied_amount
         </if>
         <if test='acc.type != null and acc.type != "" and acc.type == "4"'>
-            and fee.amount > fee.uninvoiced_amount + applied_invoice_amount
+            and fee.amount > fee.uninvoiced_amount + fee.applied_invoice_amount
         </if>
          <if test='acc.type != null and acc.type != "" and acc.type == "5"'>
             and fee.voucher_status = '0'

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

@@ -30,7 +30,13 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.basic.business.entity.BusinessType;
 import org.springblade.los.basic.business.service.IBusinessTypeService;
+import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.basic.cur.service.IBCurrencyService;
+import org.springblade.los.basic.ports.entity.BPorts;
+import org.springblade.los.basic.ports.service.IBPortsService;
+import org.springblade.los.basic.vessels.entity.BVessels;
+import org.springblade.los.basic.vessels.service.IBVesselsService;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
 import org.springblade.los.business.files.entity.FilesCenter;
@@ -106,6 +112,12 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 
 	private final IAuditProecessService auditProecessService;
 
+	private final IBPortsService bPortsService;
+
+	private final IBCorpsService bCorpsService;
+
+	private final IBVesselsService bVesselsService;
+
 
 	@Override
 	public IPage<BillsVO> selectBillsPage(IPage<BillsVO> page, BillsVO bills) {
@@ -1374,18 +1386,57 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		inttraSoDto.setIdentificationCode(details.getMblno() + "SO");
 		inttraSoDto.setFilesFunction("9");
 		inttraSoDto.setFilesDate("cc" + sdf1.format(date));
-		inttraSoDto.setTransportTermCode("运输条款代码");
+		inttraSoDto.setTransportTermCode(details.getServiceTerms());
 		inttraSoDto.setLclType("2");
-		inttraSoDto.setRemarks("备注");
-		inttraSoDto.setWeightOfGoods("货物重量");
-		inttraSoDto.setPaymentLand("付款地");
+		inttraSoDto.setRemarks(details.getRemarks());
+		inttraSoDto.setCarrySingleRemarks(details.getBookingRemarks());
+		inttraSoDto.setWeightOfGoods(details.getGrossWeight().toString());
+		inttraSoDto.setPackagesNumber(details.getQuantity());
+		inttraSoDto.setVolumeOfGoods(details.getMeasurement());
+		Integer sum = details.getQuantityV20() + details.getQuantityV40() + details.getQuantityV45()
+			+ details.getQuantityV48() + details.getQuantityV40hc();
+		inttraSoDto.setTotalBoxNumber(new BigDecimal(sum + ""));
+		if (ObjectUtils.isNotNull(details.getMpayplace())) {
+			BPorts bPorts = bPortsService.getOne(new LambdaQueryWrapper<BPorts>()
+				.eq(BPorts::getTenantId, AuthUtil.getTenantId())
+				.eq(BPorts::getIsDeleted, 0)
+				.eq(BPorts::getEnName, details.getMpayplace()));
+			if (bPorts != null) {
+				inttraSoDto.setPaymentLocationCode(bPorts.getCode());
+			}
+		}
+		inttraSoDto.setPaymentLand(details.getMpayplace());
+		if (ObjectUtils.isNotNull(details.getIssueAtId())) {
+			BPorts bPorts = bPortsService.getById(details.getIssueAtId());
+			if (bPorts != null) {
+				inttraSoDto.setIssuanceLandCode(bPorts.getCode());
+			}
+		}
+		inttraSoDto.setIssuanceLand(details.getIssueAt());
+		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyymmdd");
+		inttraSoDto.setIssueDate(sdf2.format(details.getIssueDate()));
 		inttraSoDto.setBookingNo(details.getBookingNo());
+		inttraSoDto.setBillNo(details.getRefno());
+		inttraSoDto.setFreightProtocolNumber(details.getCorpArgreementNo());
+		inttraSoDto.setMainPinyin("");
+		inttraSoDto.setOrderNo(details.getMblno());
+		inttraSoDto.setJobId(details.getBillNo());
 		inttraSoDto.setPaymentType(details.getMpaymode());
 		inttraSoDto.setVoyageNo(details.getVoyageNo());
-		inttraSoDto.setVesselCarrierCode("船司代码");
+		if (ObjectUtils.isNotNull(details.getVesselId())) {
+			BVessels bVessels = bVesselsService.getById(details.getVesselId());
+			if (bVessels != null) {
+				BCorps bCorps = bCorpsService.getById(bVessels.getCarrierId());
+				if (bCorps != null) {
+					inttraSoDto.setVesselCarrierCode(bCorps.getCarrierCode());
+				}
+			}
+		}
 		inttraSoDto.setVesselName(details.getVesselCnName());
 		inttraSoDto.setPolCode(details.getPolCode());
 		inttraSoDto.setPolName(details.getPolCnName());
+		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyymmdd");
+		inttraSoDto.setEtd(sdf3.format(details.getEtd()));
 		inttraSoDto.setPlaceReceiptCode(details.getPlaceReceiptCode());
 		inttraSoDto.setPlaceReceiptName(details.getPlaceReceiptName());
 		inttraSoDto.setPodCode(details.getPodCode());
@@ -1393,29 +1444,89 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		inttraSoDto.setPlaceDeliveryCode(details.getPlaceDeliveryCode());
 		inttraSoDto.setPlaceDeliveryName(details.getPlaceDeliveryName());
 		inttraSoDto.setHsHipperOne(details.getHshipperCnName());
+		inttraSoDto.setHsHipperTwo("发货人 2");
+		inttraSoDto.setHsHipperThree("发货人 3");
+		inttraSoDto.setHsHipperFour("发货人 4");
+		inttraSoDto.setHsHipperFive("发货人 5");
 		inttraSoDto.setHConsigneeOne(details.getHconsigneeCnName());
+		inttraSoDto.setHConsigneeTwo("收货人 2");
+		inttraSoDto.setHConsigneeThree("收货人3");
+		inttraSoDto.setHConsigneeFour("收货人 4");
+		inttraSoDto.setHConsigneeFive("收货人 5");
 		inttraSoDto.setHNotifyOne(details.getHnotifyCnName());
-		inttraSoDto.setCarrierCode("船司代码");
+		inttraSoDto.setHNotifyTwo("通知人 2");
+		inttraSoDto.setHNotifyThree("通知人 3");
+		inttraSoDto.setHNotifyFour("通知人 4");
+		inttraSoDto.setHNotifyFive("通知人 5");
 		inttraSoDto.setCarrierName(details.getCarrierCnName());
+		if (ObjectUtils.isNotNull(details.getCarrierId())) {
+			BCorps bCorps = bCorpsService.getById(details.getCarrierId());
+			if (bCorps != null) {
+				inttraSoDto.setCarrierCode(bCorps.getCarrierCode());
+				inttraSoDto.setContactInformation(bCorps.getShortName());
+				inttraSoDto.setContacts(bCorps.getAttnName());
+				inttraSoDto.setAttnEmail(bCorps.getEmail());
+			}
+		}
+		inttraSoDto.setInttraToDoorName(details.getInttraToDoorCorpName());
+		inttraSoDto.setInttraToDoorAddrOne(details.getInttraToDoorCorpAddr());
+		inttraSoDto.setInttraToDoorAddrTwo("地址 2");
+		inttraSoDto.setInttraToDoorAddrThree("地址 3");
+		inttraSoDto.setInttraToDoorAddrFour("地址 4");
+		inttraSoDto.setInttraToDoorContacts(details.getInttraToDoorCorpContacts());
+		inttraSoDto.setInttraToDoorTel(details.getInttraToDoorCorpTel());
+		inttraSoDto.setInttraDoorToName(details.getInttraDoorToCorpName());
+		inttraSoDto.setInttraDoorToAddrOne(details.getInttraDoorToCorpAddr());
+		inttraSoDto.setInttraDoorToAddrTwo("地址 2");
+		inttraSoDto.setInttraDoorToAddrThree("地址 3");
+		inttraSoDto.setInttraDoorToAddrFour("地址 4");
+		inttraSoDto.setInttraDoorToContacts(details.getInttraDoorToCorpContacts());
+		inttraSoDto.setInttraDoorToTel(details.getInttraDoorToCorpTel());
+		inttraSoDto.setFreightForwarderCode("货代代码");
+		inttraSoDto.setFreightForwarderName("货代称呼");
 		inttraSoDto.setSenderCode("发送方代码");
 		inttraSoDto.setSenderName("发送方称呼");
 		inttraSoDto.setSenderContacts("发送方联系人");
 		inttraSoDto.setSenderTel("发送方联系电话");
 		inttraSoDto.setSenderEmail("发送方联系邮件");
+		inttraSoDto.setBillLadingType("提单类型");
+		if (details.getStlCrStatus() >= 3 || details.getStlDrStatus() >= 3) {
+			inttraSoDto.setPaymentStatus("已付款");
+		} else {
+			inttraSoDto.setPaymentStatus("未付款");
+		}
+		inttraSoDto.setBillLadingNumber(new BigDecimal("0"));
 		inttraSoDto.setPackagesNumbers(details.getQuantity());
 		inttraSoDto.setPackagesCode(details.getPackingUnit());
-		inttraSoDto.setProductName("品名");
+		inttraSoDto.setPackagesDescribe("包装描述");
+		inttraSoDto.setHsCode(new BigDecimal("001"));
+		inttraSoDto.setProductName(details.getCommodityCnName());
 		inttraSoDto.setGrossWeight(details.getGrossWeight());
 		inttraSoDto.setMeasurement(details.getMeasurement());
 		inttraSoDto.setMarks(details.getMarks());
-		inttraSoDto.setBoxCode("箱型代码");
-		Integer sum = details.getQuantityV20() + details.getQuantityV40() + details.getQuantityV45()
+		inttraSoDto.setDgImdgCode(details.getDgImdgCode());
+		inttraSoDto.setPageNumber(new BigDecimal("007"));
+		inttraSoDto.setDgUnCode(1);
+		inttraSoDto.setDgFlashPoint(1);
+		inttraSoDto.setDgFlashPointUnit(details.getDgFlashPointUnit());
+		inttraSoDto.setPackingGroup("包装组别");
+		inttraSoDto.setEmergencyMeasureNo("应急措施号");
+		inttraSoDto.setDgRemarks(details.getDgRemarks());
+		inttraSoDto.setDgContacts(details.getDgContacts());
+		inttraSoDto.setDgTel(details.getDgTel());
+		inttraSoDto.setBoxCode(details.getQuantityCntrDescr());
+		inttraSoDto.setShipperBoxIdentification("货主箱标识");
+		Integer sum1 = details.getQuantityV20() + details.getQuantityV40() + details.getQuantityV45()
 			+ details.getQuantityV48() + details.getQuantityV40hc();
-		inttraSoDto.setBoxNumber(new BigDecimal(sum + ""));
+		inttraSoDto.setBoxNumber(new BigDecimal(sum1 + ""));
+		inttraSoDto.setVentilation("冷藏通风量");
+		inttraSoDto.setTemperature(1);
+		inttraSoDto.setTemperatureUnit("温度单位");
 		inttraSoDto.setRecordRows(new BigDecimal("10"));
 		inttraSoDto.setInformationNoEnd(inttraSoDto.getInformationNo());
 		inttraSoDto.setFileExchangeNumberEnd(inttraSoDto.getFileExchangeNumber());
 
+
 		FilesCenter filesCenter = EDISender.sendingInttraSo(inttraSoDto);
 		filesCenter.setMblno(details.getMblno());
 		filesCenter.setHblno(details.getHblno());

+ 1 - 4
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -162,9 +162,6 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 						item.setCurrentAmountEx(item.getCurrentAmount().multiply(item.getExrate()));
 					}
 				}
-				if (item.getDc().equals("D")) {
-
-				}
 				// 去税金额 = 本次结算金额currentStlAmount - 税额amountTax
 				BigDecimal amountNet = new BigDecimal("0.00");
 				// 税额 = 本次结算金额currentStlAmount / 总金额 * 总税额amountTax
@@ -222,8 +219,8 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 			finInvoices.setAmountCny(amountCnyD.subtract(amountCnyC));
 			finInvoices.setAmountUsd(amountUsdD.subtract(amountUsdC));
 			finInvoices.setAmountTax(amountTaxD.subtract(amountTaxC).abs());
-			finInvoices.setAmountLoc(finInvoices.getAmountCny().add(bCurrencyService.converterCny("USD", finInvoices.getAmountSub())));
 			finInvoices.setAmountSub(amountCnyD.subtract(amountCnyC));
+			finInvoices.setAmountLoc(finInvoices.getAmountCny().add(bCurrencyService.converterCny("USD", finInvoices.getAmountSub())));
 			finInvoices.setAmountSubLocNet(finInvoices.getAmountLoc());
 			finInvoices.setAmountSubUsd(amountUsdD.subtract(amountUsdC));
 		}

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

@@ -189,6 +189,7 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 		}
 		this.saveOrUpdate(finStlBills);
 		if (ObjectUtils.isNotNull(finStlBills.getFinStlBillsItemsList())) {
+			List<FinStlBillsItems> finStlBillsItemsList = new ArrayList<>();
 			for (FinStlBillsItems item : finStlBills.getFinStlBillsItemsList()) {
 				//计算字段null值处理
 				item.setCurrentStlAmount(ObjectUtils.isNotNull(item.getCurrentStlAmount()) ? item.getCurrentStlAmount() : new BigDecimal("0.00"));
@@ -225,8 +226,9 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					item.setUpdateTime(new Date());
 					item.setUpdateUserName(AuthUtil.getUserName());
 				}
+				finStlBillsItemsList.add(item);
 			}
-			finStlBillsItemsService.saveOrUpdateBatch(finStlBills.getFinStlBillsItemsList());
+			finStlBillsItemsService.saveOrUpdateBatch(finStlBillsItemsList);
 			BigDecimal amountDrCNY = new BigDecimal("0.00");
 			BigDecimal amountCrCNY = new BigDecimal("0.00");
 			BigDecimal amountDrUSD = new BigDecimal("0.00");
@@ -552,15 +554,16 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 					}
 					if (finStlBillsItemsList.size() > 0) {
 						List<Long> pid = finStlBillsItemsList.stream().map(FinStlBillsItems::getPid).filter(Objects::nonNull).distinct().collect(Collectors.toList());
-						List<FinStlBillsItems> finStlBillsItemsList1 = finStlBillsItemsService.list(new LambdaQueryWrapper<FinStlBillsItems>()
-							.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
-							.eq(FinStlBillsItems::getIsDeleted, 0)
-							.eq(FinStlBillsItems::getSrcIdStatus, "0")
-							.in(FinStlBillsItems::getId, ids));
 						List<FinStlBills> finStlBills2 = baseMapper.selectList(new LambdaQueryWrapper<FinStlBills>()
 							.eq(FinStlBills::getTenantId, AuthUtil.getTenantId())
 							.eq(FinStlBills::getIsDeleted, 0)
 							.in(FinStlBills::getId, pid));
+						List<Long> id = finStlBills2.stream().map(FinStlBills::getId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+						List<FinStlBillsItems> finStlBillsItemsList1 = finStlBillsItemsService.list(new LambdaQueryWrapper<FinStlBillsItems>()
+							.eq(FinStlBillsItems::getTenantId, AuthUtil.getTenantId())
+							.eq(FinStlBillsItems::getIsDeleted, 0)
+							.eq(FinStlBillsItems::getSrcIdStatus, "0")
+							.in(FinStlBillsItems::getPid, id));
 						for (FinStlBills item : finStlBills2) {
 							List<FinStlBillsItems> invoicesItemsSum = finStlBillsItemsList1.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());
 							List<FinStlBillsItems> finInvoicesItems = finStlBillsItemsList.stream().filter(e -> e.getPid().equals(item.getId())).collect(Collectors.toList());