Przeglądaj źródła

1.确认收押箱款增加字段和生成二维码,
2.决策分析查询数据etd改为ATD

纪新园 3 miesięcy temu
rodzic
commit
8ce430ff95

+ 12 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/receipt/entity/Receipt.java

@@ -138,6 +138,18 @@ public class Receipt implements Serializable {
 	private String chequeNumber;
 
 	/**
+	 * 公司
+	 */
+	@ApiModelProperty(value = "公司")
+	private String company;
+
+	/**
+	 * 二维码地址
+	 */
+	@ApiModelProperty(value = "二维码地址")
+	private String url;
+
+	/**
 	 * 报表表头信息
 	 */
 	@TableField(exist = false)

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

@@ -36,7 +36,6 @@ import org.springblade.los.utils.LosSpecialHandle;
 import org.springblade.system.entity.Dept;
 import org.springframework.format.annotation.DateTimeFormat;
 
-import javax.validation.constraints.NotEmpty;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -1708,6 +1707,16 @@ public class Bills implements Serializable {
 	 */
 	@TableField(exist = false)
 	private String chequeNumber;
+	/**
+	 * 公司
+	 */
+	@TableField(exist = false)
+	private String company;
+	/**
+	 * 收据备注
+	 */
+	@TableField(exist = false)
+	private String receiptRemarks;
 
 	/**
 	 * ids

+ 1 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryDetailNotRD.java

@@ -31,7 +31,7 @@ public class FeeSummaryDetailNotRD {
 	private String vesselName;
 	@ExcelProperty(value = "航次")
 	private String voyageNo;
-	@ExcelProperty(value = "开船日期")
+	@ExcelProperty(value = "ATD/ATA")
 	private String etd;
 	@ExcelProperty(value = "提单号")
 	private String mblNo;

+ 1 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/statisticAnalysis/FeeSummaryDetailRD.java

@@ -26,7 +26,7 @@ public class FeeSummaryDetailRD {
 	private String mblNo;
 	@ExcelProperty(value = "分单号")
 	private String hblNo;
-	@ExcelProperty(value = "ETD")
+	@ExcelProperty(value = "ATD/ATA")
 	private String etdDate;
 	/**
 	 * 业务类型

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

@@ -27,6 +27,7 @@ import lombok.AllArgsConstructor;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
 import org.springblade.common.enums.CommonEnum;
+import org.springblade.common.utils.QRCodeTest;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -79,6 +80,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.io.File;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -694,6 +697,105 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				details.setMeasurement(measurementM);
 				this.updateById(details);
 			}
+		} else {
+			Bills details = baseMapper.selectById(bills.getId());
+			boolean statusEtd = false;
+			boolean statusEta = false;
+			boolean statusAtd = false;
+			boolean statusAta = false;
+			if ("SE".equals(bills.getBusinessType())) {
+				if (ObjectUtils.isNull(details.getEtd()) && ObjectUtils.isNotNull(bills.getEtd())) {
+					statusEtd = true;
+				}
+				if (ObjectUtils.isNotNull(details.getEtd()) && !details.getEtd().equals(bills.getEtd())) {
+					statusEtd = true;
+				}
+				if (ObjectUtils.isNull(details.getActualEtd()) && ObjectUtils.isNotNull(bills.getActualEtd())) {
+					statusEtd = true;
+				}
+				if (ObjectUtils.isNotNull(details.getActualEtd()) && !details.getActualEtd().equals(bills.getActualEtd())) {
+					statusAtd = true;
+				}
+			} else if ("SI".equals(bills.getBusinessType())) {
+				if (ObjectUtils.isNull(details.getEta()) && ObjectUtils.isNotNull(bills.getEta())) {
+					statusEtd = true;
+				}
+				if (ObjectUtils.isNotNull(details.getEta()) && !details.getEta().equals(bills.getEta())) {
+					statusEta = true;
+				}
+				if (ObjectUtils.isNull(details.getActualEta()) && ObjectUtils.isNotNull(bills.getActualEta())) {
+					statusEtd = true;
+				}
+				if (ObjectUtils.isNotNull(details.getActualEta()) && !details.getActualEta().equals(bills.getActualEta())) {
+					statusAta = true;
+				}
+			}
+			boolean statusVessel = ObjectUtils.isNotNull(bills.getVesselId()) && !bills.getVesselId().equals(details.getVesselId());
+			boolean statusVoyageNo = ObjectUtils.isNotNull(bills.getVoyageNo()) && !bills.getVoyageNo().equals(details.getVoyageNo());
+			boolean statusMblno = ObjectUtils.isNotNull(bills.getMblno()) && !bills.getMblno().equals(details.getMblno());
+			boolean statusPolId = ObjectUtils.isNotNull(bills.getPolId()) && !bills.getPolId().equals(details.getPolId());
+			boolean statusPodId = ObjectUtils.isNotNull(bills.getPodId()) && !bills.getPodId().equals(details.getPodId());
+			boolean statusCyTrailerTime = ObjectUtils.isNotNull(bills.getCyTrailerTime()) && !bills.getCyTrailerTime().equals(details.getCyTrailerTime());
+			boolean statusCyReturnTime = ObjectUtils.isNotNull(bills.getCyReturnTime()) && !bills.getCyReturnTime().equals(details.getCyReturnTime());
+			boolean bookingDate = ObjectUtils.isNotNull(bills.getBookingDate()) && !bills.getBookingDate().equals(details.getBookingDate());
+			boolean statusLineId = ObjectUtils.isNotNull(bills.getLineId()) && !bills.getLineId().equals(details.getLineId());
+			boolean statusForwarding = ObjectUtils.isNotNull(bills.getForwarding()) && !bills.getForwarding().equals(details.getForwarding());
+			boolean statusBookingAgentId = ObjectUtils.isNotNull(bills.getBookingAgentId()) && !bills.getBookingAgentId().equals(details.getBookingAgentId());
+			boolean shippingAgencyId = ObjectUtils.isNotNull(bills.getShippingAgencyId()) && !bills.getShippingAgencyId().equals(details.getShippingAgencyId());
+			boolean carrierId = ObjectUtils.isNotNull(bills.getCarrierId()) && !bills.getCarrierId().equals(details.getCarrierId());
+			boolean foreignAgencyId = ObjectUtils.isNotNull(bills.getForeignAgencyId()) && !bills.getForeignAgencyId().equals(details.getForeignAgencyId());
+			boolean issueDate = ObjectUtils.isNotNull(bills.getIssueDate()) && !bills.getIssueDate().equals(details.getIssueDate());
+			boolean issueAtId = ObjectUtils.isNotNull(bills.getIssueAtId()) && !bills.getIssueAtId().equals(details.getIssueAtId());
+			boolean boxBelongsTo = ObjectUtils.isNotNull(bills.getBoxBelongsTo()) && !bills.getBoxBelongsTo().equals(details.getBoxBelongsTo());
+			if (statusEtd || statusEta || statusAtd || statusAta || statusVessel || statusVoyageNo || statusMblno || statusPolId
+				|| statusPodId || statusCyTrailerTime || statusCyReturnTime || statusLineId || statusForwarding || statusBookingAgentId
+				|| shippingAgencyId || bookingDate || carrierId || foreignAgencyId || issueDate || boxBelongsTo || issueAtId) {
+				List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+					.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+					.eq(FeeCenter::getIsDeleted, 0)
+					.eq(FeeCenter::getPid, bills.getId()));
+				for (FeeCenter item : feeCenterList) {
+					item.setEta(bills.getEta());
+					item.setEtd(bills.getEtd());
+					item.setBillDate(bills.getBillDate());
+					item.setVesselId(bills.getVesselId());
+					item.setVesselCnName(bills.getVesselCnName());
+					item.setVesselEnName(bills.getVesselEnName());
+					item.setVoyageNo(bills.getVoyageNo());
+					item.setPolId(bills.getPolId());
+					item.setPolCnName(bills.getPolCnName());
+					item.setPolEnName(bills.getPolEnName());
+					item.setPolCode(bills.getPolCode());
+					item.setPodId(bills.getPodId());
+					item.setPodCnName(bills.getPodCnName());
+					item.setPodEnName(bills.getPodEnName());
+					item.setPodCode(bills.getPodCode());
+				}
+				feeCenterService.updateBatchById(feeCenterList);
+				List<FinAccBills> finAccBillsList = finAccBillsService.list(new LambdaQueryWrapper<FinAccBills>()
+					.eq(FinAccBills::getTenantId, AuthUtil.getTenantId())
+					.eq(FinAccBills::getIsDeleted, 0)
+					.eq(FinAccBills::getBusinessBillId, bills.getId()));
+				for (FinAccBills item : finAccBillsList) {
+					item.setEtd(bills.getEtd());
+					item.setEta(bills.getEta());
+					item.setBillDate(bills.getBillDate());
+					item.setBusinessDate(bills.getBillDate());
+					item.setVesselId(bills.getVesselId());
+					item.setVesselCnName(bills.getVesselCnName());
+					item.setVesselEnName(bills.getVesselEnName());
+					item.setVoyageNo(bills.getVoyageNo());
+					item.setPolId(bills.getPolId());
+					item.setPolCnName(bills.getPolCnName());
+					item.setPolEnName(bills.getPolEnName());
+					item.setPolCode(bills.getPolCode());
+					item.setPodId(bills.getPodId());
+					item.setPodCnName(bills.getPodCnName());
+					item.setPodEnName(bills.getPodEnName());
+					item.setPodCode(bills.getPodCode());
+				}
+				finAccBillsService.updateBatchById(finAccBillsList);
+			}
 		}
 		//利润 = 收 - 付
 		amountProfit = amountDr.subtract(amountCr);
@@ -962,7 +1064,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
 						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
 						.eq(FeeCenter::getIsDeleted, 0)
-						.eq(FeeCenter::getPid, billIds));
+						.in(FeeCenter::getPid, billIds));
 					for (FeeCenter item : feeCenterList) {
 						item.setEta(bills.getEta());
 						item.setEtd(bills.getEtd());
@@ -6390,6 +6492,8 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		receipt.setDate(bills.getHarvestBoxPackingDate());
 		receipt.setCorpName(bills.getCorpName());
 		receipt.setChequeNumber(bills.getChequeNumber());
+		receipt.setRemarks(bills.getReceiptRemarks());
+		receipt.setCompany(bills.getCompany());
 		BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
 			.select(BusinessType::getId)
 			.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
@@ -6414,14 +6518,37 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		StringBuilder hblno = new StringBuilder();
 		for (Bills detail : billsList) {
 			mblno.append(detail.getMblno()).append(" ").append(detail.getQuantityCntrDescr()).append("<br/>");
-			if (!"MH".equals(detail.getBillType())){
+			if (!"MH".equals(detail.getBillType())) {
 				hblno.append(detail.getMblno()).append(" ").append(detail.getQuantityCntrDescr()).append("<br/>");
-			}else{
+			} else {
 				hblno.append(detail.getHblno()).append(" ").append(detail.getQuantityCntrDescr()).append("<br/>");
 			}
 		}
 		receipt.setMblno(mblno.toString());
 		receipt.setHblno(hblno.toString());
+		try {
+			//创建文件夹
+			File packageFile = new File("/home/minio/file/" + AuthUtil.getTenantId() + "-bladex/upload");
+			//文件夹是否创建成功
+			if (!packageFile.getParentFile().exists()) {
+				boolean a = packageFile.mkdirs();
+				if (a) {
+					System.out.println("文件夹创建成功");
+				} else {
+					System.out.println("文件夹创建失败");
+				}
+			}
+			//创建二维码图片
+			File qRCodeFile = new File(packageFile, receipt.getBillNo() + "收据.png");
+			qRCodeFile.createNewFile();
+			//生成二维码
+			String qRCode = QRCodeTest.generateQRCode(qRCodeFile, receipt.getBillNo());
+			//替换地址
+			qRCode = qRCode.replace("/home/minio", "http://e.win-fl.com");
+			receipt.setUrl(qRCode);
+		} catch (IOException e) {
+			throw new SecurityException("生成码失败");
+		}
 		receiptService.save(receipt);
 		for (Bills detail : billsList) {
 			//发送消息

+ 6 - 30
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/mapper/FinAccBillsMapper.xml

@@ -360,13 +360,7 @@
         acc.mblno mblNo,
         acc.hblNo hblNo,
         acc.business_type businessType,
-        CASE
-        acc.business_type
-        WHEN 'SI' THEN
-        acc.eta
-        WHEN 'SE' THEN
-        acc.etd ELSE ''
-        END AS etdDate,
+        acc.business_date AS etdDate,
         acc.branch_name as branchId,
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr WHEN 'C' THEN acc.amount_cr ELSE 0 END ) ) AS amount,
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr_usd WHEN 'C' THEN acc.amount_cr_usd ELSE 0 END ) ) AS amountUsd,
@@ -475,13 +469,7 @@
         acc.mblno mblNo,
         acc.hblno hblNo,
         acc.business_type businessType,
-        CASE
-        acc.business_type
-        WHEN 'SI' THEN
-        acc.eta
-        WHEN 'SE' THEN
-        acc.etd ELSE ''
-        END AS etdDate,
+        acc.business_date AS etdDate,
         acc.branch_name as branchId,
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr WHEN 'C' THEN acc.amount_cr ELSE 0 END ) ) AS amount,
         SUM(( CASE acc.account_dc WHEN 'D' THEN acc.amount_dr_usd WHEN 'C' THEN acc.amount_cr_usd ELSE 0 END ) ) AS amountUsd,
@@ -581,13 +569,7 @@
             acc.mblno mblNo,
             acc.hblno hblNo,
             acc.business_type businessType,
-            CASE
-            acc.business_type
-            WHEN 'SI' THEN
-            acc.eta
-            WHEN 'SE' THEN
-            acc.etd ELSE ''
-            END AS etd,
+            acc.business_date AS etd,
             acc.pod_en_name pod,
             acc.pol_en_name pol,
             acc.quantity_cntr_descr quantityCntrDescr,
@@ -684,13 +666,7 @@
         acc.mblno mblNo,
         acc.hblno hblNo,
         acc.business_type businessType,
-        CASE
-        acc.business_type
-        WHEN 'SI' THEN
-        acc.eta
-        WHEN 'SE' THEN
-        acc.etd ELSE ''
-        END AS etd,
+        acc.business_date AS etd,
         acc.pod_en_name pod,
         acc.pol_en_name pol,
         acc.quantity_cntr_descr quantityCntrDescr,
@@ -805,7 +781,7 @@
             SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&lt;=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&gt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS ninetyToOneHundredAndEighty,
             SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&lt;CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&lt;CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0)) ELSE 0 END ) ) AS oneHundredAndEighty,
             acc.operator_name operatorName,
-            acc.etd etd,
+            acc.business_date AS etd,
             acc.create_user_name creatorName
         FROM
         los_fin_acc_bills acc
@@ -885,7 +861,7 @@
         SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&lt;=CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0),0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 3 MONTH)&gt;CURRENT_DATE(),IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&gt;=CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0),0)) ELSE 0 END ) ) AS ninetyToOneHundredAndEighty,
         SUM(( CASE acc.account_dc WHEN 'D' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&lt;CURRENT_DATE(),acc.amount_dr_usd-acc.stl_amount_dr_usd,0)) WHEN 'C' THEN (IF(DATE_ADD(acc.bill_date, INTERVAL 6 MONTH)&lt;CURRENT_DATE(),acc.amount_cr_usd-acc.stl_amount_cr_usd,0)) ELSE 0 END ) ) AS oneHundredAndEighty,
         acc.operator_name operatorName,
-        acc.etd etd,
+        acc.business_date AS etd,
         acc.create_user_name creatorName
         FROM
         los_fin_acc_bills acc