|
|
@@ -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) {
|
|
|
//发送消息
|