纪新园 пре 1 година
родитељ
комит
b530cea3e1

+ 14 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/aea/entity/AeaBills.java

@@ -163,6 +163,14 @@ public class AeaBills implements Serializable {
 	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Date incomingGoodsDate;
 	/**
+	 * 送货时间
+	 */
+	@ApiModelProperty(value = "送货时间")
+	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Date deliverGoodsDate;
+	/**
 	 * 提单确认日期
 	 */
 	@ApiModelProperty(value = "提单确认日期")
@@ -457,6 +465,12 @@ public class AeaBills implements Serializable {
 	 */
 	@ApiModelProperty(value = "运输类型")
 	private String transportType;
+
+	/**
+	 * 预付总额
+	 */
+	@ApiModelProperty(value = "预付总额")
+	private BigDecimal hPayAmount;
 	/**
 	 * HB/L 付款方式 PP=预付, CC=到付, FPA, Other
 	 */

+ 2 - 32
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/controller/TradingBoxItemController.java

@@ -216,7 +216,7 @@ public class TradingBoxItemController extends BladeController {
 			tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
 		}
 		String updateChar = tradingBoxItem.getCode() + tradingBoxItem.getBoxType() + tradingBoxItem.getAddress() + tradingBoxItem.getNewDate() + tradingBoxItem.getStatus();
-		if (ObjectUtils.isNull(tradingBoxItem.getUpdateChar()) || !updateChar.equals(tradingBoxItem.getUpdateChar())) {
+		/*if (ObjectUtils.isNull(tradingBoxItem.getUpdateChar()) || !updateChar.equals(tradingBoxItem.getUpdateChar())) {
 			tradingBoxItem.setUpdateChar(updateChar);
 			tradingBoxItemService.updateById(tradingBoxItem);
 			if (ObjectUtils.isNotNull(tradingBoxItem.getCode())) {
@@ -257,36 +257,6 @@ public class TradingBoxItemController extends BladeController {
 				archives.setPurchaseDate(tradingBox.getPurchaseDate());
 				archives.setContractNo(tradingBox.getContractNo());
 				archives.setBoxAccessStatus("");
-				/*if (ObjectUtils.isNotNull(archivesR)) {
-					BeanUtil.copy(archivesR, archives);
-					archives.setAddressId(tradingBoxItem.getAddressId());
-					archives.setAddress(tradingBoxItem.getAddress());
-					archives.setNewDate(tradingBoxItem.getNewDate());
-				} else {
-					archives.setCode(tradingBoxItem.getCode());
-					archives.setName(tradingBoxItem.getBoxType());
-					archives.setVolume(tradingBoxItem.getVolume());
-					archives.setGorssWeight(tradingBoxItem.getGrossWeight());
-					archives.setTypeId(tradingBoxItem.getBoxTypeId());
-					archives.setAddressId(tradingBoxItem.getAddressId());
-					archives.setAddress(tradingBoxItem.getAddress());
-					archives.setNewDate(tradingBoxItem.getNewDate());
-					archives.setLeasingCompanyId(tradingBox.getPurchaseCompanyId());
-					archives.setLeasingCompany(tradingBox.getPurchaseCompanyName());
-					archives.setBoxSource(tradingBoxItem.getBoxSource());
-					archives.setBoxStatus(tradingBoxItem.getBoxStatus());
-					archives.setEmptyWeight(tradingBoxItem.getEmptyWeight());
-					archives.setTare(tradingBoxItem.getTare());
-					archives.setLoadingWeight(tradingBoxItem.getLoadingWeight());
-					archives.setBoxMakingCompany(tradingBoxItem.getBoxMakingCompany());
-					archives.setBoxMakingCompanyId(tradingBoxItem.getBoxMakingCompanyId());
-					archives.setBoxMakingDate(tradingBoxItem.getBoxMakingDate());
-					archives.setLeaseCommencementDate(tradingBoxItem.getLeaseCommencementDate());
-					archives.setBoxAge(tradingBoxItem.getBoxAge());
-					archives.setPurchaseDate(tradingBox.getPurchaseDate());
-					archives.setContractNo(tradingBox.getContractNo());
-					archives.setBoxAccessStatus("");
-				}*/
 				archives.setStatus(tradingBoxItem.getStatus());
 				if (ObjectUtils.isNotNull(archivesR)) {
 					archives.setId(archivesR.getId());
@@ -339,7 +309,7 @@ public class TradingBoxItemController extends BladeController {
 			} else {
 				throw new RuntimeException("箱号不能为空");
 			}
-		}
+		}*/
 		//明细图片
 		List<TradingBoxFiles> tradingBoxItemFilesList = tradingBoxItem.getTradingBoxFilesList();
 		if (ObjectUtils.isNotNull(tradingBoxItemFilesList) && tradingBoxItemFilesList.size() > 0) {

+ 97 - 5
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TradingBoxServiceImpl.java

@@ -28,10 +28,7 @@ import org.springblade.box.tube.dto.ExportTradingBoxItemOut;
 import org.springblade.box.tube.dto.TradingBoxItemRentExcelEnter;
 import org.springblade.box.tube.entity.*;
 import org.springblade.box.tube.mapper.*;
-import org.springblade.box.tube.service.ITradingBoxFeesService;
-import org.springblade.box.tube.service.ITradingBoxItemService;
-import org.springblade.box.tube.service.ITradingBoxService;
-import org.springblade.box.tube.service.ITransferService;
+import org.springblade.box.tube.service.*;
 import org.springblade.box.tube.vo.TradingBoxVO;
 import org.springblade.check.dto.AuditProecessDTO;
 import org.springblade.check.entity.AuditPathsActs;
@@ -515,7 +512,102 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 
 		//入库生成账单
 //		this.paymentApply(tradingBox, tradingBox.getType(), tradingBox.getType());
-
+		/*if ("BUY".equals(tradingBox.getType()) || "SELL".equals(tradingBox.getType())) {
+			List<TradingBoxItem> tradingBoxItemList = tradingBoxItemService.list(new LambdaQueryWrapper<TradingBoxItem>()
+				.eq(TradingBoxItem::getIsDeleted, 0)
+				.eq(TradingBoxItem::getTenantId, AuthUtil.getTenantId())
+				.eq(TradingBoxItem::getPid, tradingBox.getId()));
+			for (TradingBoxItem tradingBoxItem:tradingBoxItemList) {
+				if (ObjectUtils.isNotNull(tradingBoxItem.getCode())) {
+					//更新箱档案信息
+					Archives archivesR = archivesMapper.selectOne(new LambdaQueryWrapper<Archives>().eq(Archives::getIsDeleted, 0)
+						.eq(Archives::getTenantId, AuthUtil.getTenantId())
+						.eq(Archives::getCode, tradingBoxItem.getCode()));
+					Archives archives = new Archives();
+					if ("卖出".equals(tradingBoxItem.getStatus())) {
+						if (ObjectUtils.isNotNull(archivesR)) {
+							if (!"待使用".equals(archivesR.getStatus())) {
+								throw new RuntimeException("集装箱" + archivesR.getCode() + "状态不等于待使用");
+							}
+						} else {
+							throw new RuntimeException("未查到集装箱" + archivesR.getCode() + "信息");
+						}
+					}
+					archives.setCode(tradingBoxItem.getCode());
+					archives.setName(tradingBoxItem.getBoxType());
+					archives.setVolume(tradingBoxItem.getVolume());
+					archives.setGorssWeight(tradingBoxItem.getGrossWeight());
+					archives.setTypeId(tradingBoxItem.getBoxTypeId());
+					archives.setAddressId(tradingBoxItem.getAddressId());
+					archives.setAddress(tradingBoxItem.getAddress());
+					archives.setNewDate(tradingBoxItem.getNewDate());
+					archives.setLeasingCompanyId(tradingBox.getPurchaseCompanyId());
+					archives.setLeasingCompany(tradingBox.getPurchaseCompanyName());
+					archives.setBoxSource(tradingBoxItem.getBoxSource());
+					archives.setBoxStatus(tradingBoxItem.getBoxStatus());
+					archives.setEmptyWeight(tradingBoxItem.getEmptyWeight());
+					archives.setTare(tradingBoxItem.getTare());
+					archives.setLoadingWeight(tradingBoxItem.getLoadingWeight());
+					archives.setBoxMakingCompany(tradingBoxItem.getBoxMakingCompany());
+					archives.setBoxMakingCompanyId(tradingBoxItem.getBoxMakingCompanyId());
+					archives.setBoxMakingDate(tradingBoxItem.getBoxMakingDate());
+					archives.setLeaseCommencementDate(tradingBoxItem.getLeaseCommencementDate());
+					archives.setBoxAge(tradingBoxItem.getBoxAge());
+					archives.setPurchaseDate(tradingBox.getPurchaseDate());
+					archives.setContractNo(tradingBox.getContractNo());
+					archives.setBoxAccessStatus("");
+					archives.setStatus(tradingBoxItem.getStatus());
+					if (ObjectUtils.isNotNull(archivesR)) {
+						archives.setId(archivesR.getId());
+						if ("BUY".equals(tradingBox.getType())) {
+							if (!"退租".equals(archivesR.getStatus()) && !"卖出".equals(archivesR.getStatus())) {
+								throw new RuntimeException("箱号:" + archivesR.getCode() + "已存在");
+							}
+						}
+						archives.setUpdateTime(new Date());
+						archives.setUpdateUserName(AuthUtil.getUserName());
+						archives.setUpdateUser(AuthUtil.getUserId());
+						archivesMapper.updateById(archives);
+					} else {
+						archives.setCreateUser(AuthUtil.getUserId());
+						archives.setCreateTime(new Date());
+						archives.setCreateUserName(AuthUtil.getUserName());
+						archives.setTenantId(AuthUtil.getTenantId());
+						archivesMapper.insert(archives);
+						List<ArchivesFiles> archivesFilesList = BeanUtil.copy(tradingBoxItem.getTradingBoxFilesList(), ArchivesFiles.class);
+						for (ArchivesFiles archivesFiles : archivesFilesList) {
+							archivesFiles.setId(null);
+							archivesFiles.setPid(archives.getId());
+							archivesFiles.setFileName(archivesFiles.getLabel());
+							archivesFiles.setUrl(archivesFiles.getValue());
+							archivesFiles.setCreateUser(AuthUtil.getUserId());
+							archivesFiles.setCreateTime(new Date());
+							archivesFilesMapper.insert(archivesFiles);
+						}
+					}
+					//记录箱轨迹信息
+					ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
+					if ("BUY".equals(tradingBox.getType())) {
+						archivesTrajectory.setStatus("买箱");
+					} else if ("SELL".equals(tradingBox.getType())) {
+						archivesTrajectory.setStatus("卖箱");
+					}
+					archivesTrajectory.setCorpId(tradingBox.getPurchaseCompanyId());
+					archivesTrajectory.setCorpName(tradingBox.getPurchaseCompanyName());
+					archivesTrajectory.setContractNo(tradingBox.getContractNo());
+					archivesTrajectory.setBillType(tradingBox.getType());
+					archivesTrajectory.setCode(tradingBoxItem.getCode());
+					archivesTrajectory.setAddress(tradingBoxItem.getAddress());
+					archivesTrajectory.setNewDate(tradingBoxItem.getNewDate());
+					archivesTrajectory.setCreateTime(new Date());
+					archivesTrajectory.setCreateUser(AuthUtil.getUserId());
+					archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
+					archivesTrajectory.setTenantId(AuthUtil.getTenantId());
+					archivesTrajectory.setSrcId(tradingBox.getId());
+					archivesTrajectoryMapper.insert(archivesTrajectory);
+				}
+			}
+		}*/
 		return R.success("审核通过");
 	}
 

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

@@ -1436,6 +1436,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 			throw new RuntimeException("缺少必要参数");
 		}
 		List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(ObjectUtils.isNotNull(bills.getBusinessType()), Bills::getBusinessType, bills.getBusinessType())
 			.eq(ObjectUtils.isNotNull(bills.getMblno()), Bills::getMblno, bills.getMblno())
 			.eq(ObjectUtils.isNotNull(bills.getHblno()), Bills::getHblno, bills.getHblno())
 			.eq(ObjectUtils.isNotNull(bills.getBookingNo()), Bills::getBookingNo, bills.getBookingNo())

+ 55 - 55
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/PreContainersServiceImpl.java

@@ -223,67 +223,67 @@ public class PreContainersServiceImpl extends ServiceImpl<PreContainersMapper, P
 					preContainers.setCreateDept(deptId);
 					preContainers.setCreateDeptName(deptName);
 				}
-				this.saveOrUpdate(preContainers);
-				Bills bills = billsMapper.selectById(preContainers.getPid());
-				if (bills != null) {
-					bills.setCfsMeasurement(new BigDecimal("0.00"));
-					bills.setCfsGrossWeight(new BigDecimal("0.00"));
-					bills.setCfsQuantity(new BigDecimal("0.00"));
-					bills.setUpdateUser(AuthUtil.getUserId());
-					bills.setUpdateTime(new Date());
-					bills.setUpdateUserName(AuthUtil.getUserName());
-					billsMapper.updateById(bills);
-				}
-				List<Containers> removeContainersList = containersService.list(new LambdaQueryWrapper<Containers>()
-					.eq(Containers::getTenantId, AuthUtil.getTenantId())
-					.eq(Containers::getIsDeleted, 0)
-					.eq(Containers::getPid, preContainers.getPid()));
-				containersService.removeByPid(preContainers.getPid(), preContainers.getCntrTypeCode());
-				if (removeContainersList.size() > 0) {
-					List<Long> ids = removeContainersList.stream().map(Containers::getId).collect(Collectors.toList());
-					containersBillsService.removeByPid(ids);
-				}
-				//生成海运进出口配箱-箱号装箱
-				for (int i = 0; i < preContainers.getQuantity(); i++) {
-					Containers containers = new Containers();
-					containers.setCreateTime(new Date());
-					containers.setCreateUser(AuthUtil.getUserId());
-					containers.setCreateUserName(AuthUtil.getUserName());
-					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
-						containers.setBranchId(branchId);
-						containers.setCreateDept(deptId);
-						containers.setCreateDeptName(deptName);
-					}
-					if (bills != null) {
-						containers.setBillNo(bills.getBillNo());
-						containers.setPolId(bills.getPolId());
-						containers.setPolCode(bills.getPolCode());
-						containers.setPolCnName(bills.getPolCnName());
-						containers.setPolEnName(bills.getPolEnName());
-						containers.setPodId(bills.getPodId());
-						containers.setPodCode(bills.getPodCode());
-						containers.setPodCnName(bills.getPodCnName());
-						containers.setPodEnName(bills.getPodEnName());
-						containers.setMblno(bills.getMblno());
-						containers.setHblno(bills.getHblno());
-						containers.setCommodityDescr(bills.getCommodityDescr());
-						containers.setPackingUnitId(bills.getPackingUnitId());
-						containers.setPackingUnit(bills.getPackingUnit());
-					}
-					containers.setPid(preContainers.getPid());
-					containers.setTeu(preContainers.getTeu());
-					containers.setIsSoc(preContainers.getIsSoc());
-					containers.setIsOneway(preContainers.getIsOneway());
-					containers.setCntrTypeCode(preContainers.getCntrTypeCode());
-					containers.setLineNo(preContainers.getId());
-					containersList.add(containers);
-				}
 			} else {
 				preContainers.setUpdateUser(AuthUtil.getUserId());
 				preContainers.setUpdateTime(new Date());
 				preContainers.setUpdateUserName(AuthUtil.getUserName());
 				this.saveOrUpdate(preContainers);
 			}
+			this.saveOrUpdate(preContainers);
+			Bills bills = billsMapper.selectById(preContainers.getPid());
+			if (bills != null) {
+				bills.setCfsMeasurement(new BigDecimal("0.00"));
+				bills.setCfsGrossWeight(new BigDecimal("0.00"));
+				bills.setCfsQuantity(new BigDecimal("0.00"));
+				bills.setUpdateUser(AuthUtil.getUserId());
+				bills.setUpdateTime(new Date());
+				bills.setUpdateUserName(AuthUtil.getUserName());
+				billsMapper.updateById(bills);
+			}
+			List<Containers> removeContainersList = containersService.list(new LambdaQueryWrapper<Containers>()
+				.eq(Containers::getTenantId, AuthUtil.getTenantId())
+				.eq(Containers::getIsDeleted, 0)
+				.eq(Containers::getPid, preContainers.getPid()));
+			containersService.removeByPid(preContainers.getPid(), preContainers.getCntrTypeCode());
+			if (removeContainersList.size() > 0) {
+				List<Long> ids = removeContainersList.stream().map(Containers::getId).collect(Collectors.toList());
+				containersBillsService.removeByPid(ids);
+			}
+			//生成海运进出口配箱-箱号装箱
+			for (int i = 0; i < preContainers.getQuantity(); i++) {
+				Containers containers = new Containers();
+				containers.setCreateTime(new Date());
+				containers.setCreateUser(AuthUtil.getUserId());
+				containers.setCreateUserName(AuthUtil.getUserName());
+				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+					containers.setBranchId(branchId);
+					containers.setCreateDept(deptId);
+					containers.setCreateDeptName(deptName);
+				}
+				if (bills != null) {
+					containers.setBillNo(bills.getBillNo());
+					containers.setPolId(bills.getPolId());
+					containers.setPolCode(bills.getPolCode());
+					containers.setPolCnName(bills.getPolCnName());
+					containers.setPolEnName(bills.getPolEnName());
+					containers.setPodId(bills.getPodId());
+					containers.setPodCode(bills.getPodCode());
+					containers.setPodCnName(bills.getPodCnName());
+					containers.setPodEnName(bills.getPodEnName());
+					containers.setMblno(bills.getMblno());
+					containers.setHblno(bills.getHblno());
+					containers.setCommodityDescr(bills.getCommodityDescr());
+					containers.setPackingUnitId(bills.getPackingUnitId());
+					containers.setPackingUnit(bills.getPackingUnit());
+				}
+				containers.setPid(preContainers.getPid());
+				containers.setTeu(preContainers.getTeu());
+				containers.setIsSoc(preContainers.getIsSoc());
+				containers.setIsOneway(preContainers.getIsOneway());
+				containers.setCntrTypeCode(preContainers.getCntrTypeCode());
+				containers.setLineNo(preContainers.getId());
+				containersList.add(containers);
+			}
 		}
 		if (containersList.size() > 0) {
 			containersService.saveOrUpdateBatch(containersList);

+ 42 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FinAccBillsController.java

@@ -42,6 +42,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -308,9 +309,11 @@ public class FinAccBillsController extends BladeController {
 	@ApiOperation(value = "类别", notes = "传入finAccBills")
 	public R<List<FinAccBillsVO>> listAccBillV1(ListAccBillVO listAccBillVO) {
 		if ("2".equals(listAccBillVO.getType())) {
+			//收
 			if ("D".equals(listAccBillVO.getDc())) {
 				listAccBillVO.setType("2");
 			} else if ("C".equals(listAccBillVO.getDc())) {
+				//付
 				listAccBillVO.setType("3");
 			} else {
 				listAccBillVO.setType(null);
@@ -318,14 +321,52 @@ public class FinAccBillsController extends BladeController {
 		} else if ("3".equals(listAccBillVO.getType())) {
 			listAccBillVO.setType("4");
 		}
+		if (ObjectUtils.isNotNull(listAccBillVO.getIsChecked()) && 0 == listAccBillVO.getIsChecked()) {
+			listAccBillVO.setIsChecked(null);
+		}
+		if (ObjectUtils.isNotNull(listAccBillVO.getIsCleared()) && 0 == listAccBillVO.getIsCleared()) {
+			listAccBillVO.setIsCleared(null);
+		}
+		if (ObjectUtils.isNotNull(listAccBillVO.getIsSignfor()) && 0 == listAccBillVO.getIsSignfor()) {
+			listAccBillVO.setIsSignfor(null);
+		}
+		if (ObjectUtils.isNotNull(listAccBillVO.getInvoiceStatus()) && 0 == listAccBillVO.getInvoiceStatus()) {
+			listAccBillVO.setIsChecked(null);
+		}
+		if (ObjectUtils.isNotNull(listAccBillVO.getAuditStatus()) && "0".equals(listAccBillVO.getAuditStatus())) {
+			listAccBillVO.setAuditStatus(null);
+		}
+		List<FinAccBillsVO> finAccBillsVOList = new ArrayList<>();
 		List<FinAccBillsVO> list = finAccBillsService.listAccBill(listAccBillVO);
 		for (FinAccBillsVO item : list) {
 			BigDecimal amount = item.getAppliedAmount().subtract(item.getAppliedAmountStl());
 			item.setAppliedCurrentStlAmount(item.getAmount().subtract(amount).subtract(item.getStlTtlAmount()));
 			item.setAppliedInvoiceCurrentStlAmount(item.getAmount().subtract(item.getStlTtlAmount()));
 			item.setReconciliationCurrentAmount(item.getAmount().subtract(item.getReconciliationAmount()));
+			if ("2".equals(listAccBillVO.getType())) {
+				//收
+				if ("D".equals(listAccBillVO.getDc())) {
+					if (new BigDecimal("0.00").compareTo(item.getAmount().subtract(item.getStlTtlAmount())) != 0) {
+						finAccBillsVOList.add(item);
+					}
+				} else if ("C".equals(listAccBillVO.getDc())) {
+					if (new BigDecimal("0.00").compareTo(item.getAmount().subtract(amount).subtract(item.getStlTtlAmount())) != 0) {
+						finAccBillsVOList.add(item);
+					}
+				} else {
+					listAccBillVO.setType(null);
+				}
+			} else if ("3".equals(listAccBillVO.getType())) {
+				if (new BigDecimal("0.00").compareTo(item.getAmount().subtract(item.getUninvoicedAmount())) != 0) {
+					finAccBillsVOList.add(item);
+				}
+			} else if ("1".equals(listAccBillVO.getType())) {
+				if (new BigDecimal("0.00").compareTo(item.getAmount().subtract(item.getReconciliationAmount())) != 0) {
+					finAccBillsVOList.add(item);
+				}
+			}
 		}
-		return R.data(list);
+		return R.data(finAccBillsVOList);
 	}
 
 

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

@@ -1291,14 +1291,26 @@ public class FinStlBillsServiceImpl extends ServiceImpl<FinStlBillsMapper, FinSt
 				}
 				if ("CNY".equals(item.getCurCode())) {
 					BigDecimal amount = finAccBills.getAppliedAmount().subtract(finAccBills.getAppliedAmountStl());
-					if (item.getCurrentStlAmount().compareTo(finAccBills.getAmountCrLoc().subtract(amount).subtract(finAccBills.getStlAmountCrLoc())) > 0) {
-						throw new RuntimeException("本次申请金额大于未申请金额");
+					if ("D".equals(finAccBills.getAccountDc())){
+						if (item.getCurrentStlAmount().compareTo(finAccBills.getAmountDrLoc().subtract(amount).subtract(finAccBills.getStlAmountDrLoc())) > 0) {
+							throw new RuntimeException("本次申请金额大于未申请金额");
+						}
+					}else{
+						if (item.getCurrentStlAmount().compareTo(finAccBills.getAmountCrLoc().subtract(amount).subtract(finAccBills.getStlAmountCrLoc())) > 0) {
+							throw new RuntimeException("本次申请金额大于未申请金额");
+						}
 					}
 					finAccBills.setAppliedAmount(finAccBills.getAppliedAmount().add(item.getCurrentStlAmount()));
 				} else {
 					BigDecimal amount = finAccBills.getAppliedAmountUsd().subtract(finAccBills.getAppliedAmountStlUsd());
-					if (item.getCurrentStlAmount().compareTo(finAccBills.getAmountCrLoc().subtract(amount).subtract(finAccBills.getStlAmountCrLoc())) > 0) {
-						throw new RuntimeException("本次申请金额大于未申请金额");
+					if ("D".equals(finAccBills.getAccountDc())){
+						if (item.getCurrentStlAmount().compareTo(finAccBills.getAmountDrLoc().subtract(amount).subtract(finAccBills.getStlAmountDrLoc())) > 0) {
+							throw new RuntimeException("本次申请金额大于未申请金额");
+						}
+					}else{
+						if (item.getCurrentStlAmount().compareTo(finAccBills.getAmountCrLoc().subtract(amount).subtract(finAccBills.getStlAmountCrLoc())) > 0) {
+							throw new RuntimeException("本次申请金额大于未申请金额");
+						}
 					}
 					finAccBills.setAppliedAmountUsd(finAccBills.getAppliedAmountUsd().add(item.getCurrentStlAmount()));
 				}

+ 38 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -1654,6 +1654,44 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		} else if (OrderTypeEnum.EXPORT.getType().equals(order.getTradeType())) {
 			if (OrderTypeEnum.SALES.getType().equals(order.getBillType())) {
 				this.paymentApplyFD(order, "收费", "销售");
+				//发送消息跟单
+				Message sendMessage = new Message();
+				sendMessage.setParameter(String.valueOf(order.getId()));
+				sendMessage.setUserName(AuthUtil.getUserName());
+				sendMessage.setUserId(AuthUtil.getUserId());
+				sendMessage.setToUserId(order.getDocumenterId());
+				sendMessage.setToUserName(order.getDocumenterName());
+				sendMessage.setMessageType(1);
+				sendMessage.setTenantId(AuthUtil.getTenantId());
+				sendMessage.setCreateUser(AuthUtil.getUserId());
+				sendMessage.setCreateTime(new Date());
+				sendMessage.setUrl("/exportTrade/invoice/index");
+				sendMessage.setPageLabel(order.getPageLabel());
+				sendMessage.setPageStatus(order.getPageStatus());
+				sendMessage.setMessageBody("销售订单" + order.getOrderNo() + "已审核通过");
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+				//发送消息采购
+				Message message = new Message();
+				message.setParameter(String.valueOf(order.getId()));
+				message.setUserName(AuthUtil.getUserName());
+				message.setUserId(AuthUtil.getUserId());
+				message.setToUserId(order.getBuyerId());
+				message.setToUserName(order.getBuyerName());
+				message.setMessageType(1);
+				message.setTenantId(AuthUtil.getTenantId());
+				message.setCreateUser(AuthUtil.getUserId());
+				message.setCreateTime(new Date());
+				message.setUrl("/exportTrade/purchaseContract/index");
+				message.setPageLabel(order.getPageLabel());
+				message.setPageStatus(order.getPageStatus());
+				message.setMessageBody("销售订单" + order.getOrderNo() + "已审核通过");
+				R save1 = messageClient.save(message);
+				if (!save1.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
 			}
 		}