Browse Source

2023年1月3日17:57:33

纪新园 3 years ago
parent
commit
b9b19edee5
15 changed files with 1441 additions and 440 deletions
  1. 5 1
      blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java
  2. 4 0
      blade-service/blade-check/src/main/java/org/springblade/check/service/IAuditProecessService.java
  3. 396 1
      blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java
  4. 6 0
      blade-service/blade-purchase-sales/pom.xml
  5. 1 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/dealer/DealerOrderController.java
  6. 47 14
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java
  7. 3 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  8. 7 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java
  9. 681 410
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  10. 3 10
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/tonglianPayment/controller/TongLianPaymentController.java
  11. 6 0
      blade-service/trade-finance/pom.xml
  12. 162 1
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java
  13. 11 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java
  14. 2 0
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/ISettlementService.java
  15. 107 1
      blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

+ 5 - 1
blade-service/blade-check/src/main/java/org/springblade/check/controller/AuditProecessController.java

@@ -337,7 +337,11 @@ public class AuditProecessController extends BladeController {
 			auditProecessService.transportCheck(auditProecess);
 		} else if ("REPAIR".equals(proecess.getCheckType()) || "WASH".equals(proecess.getCheckType())) {
 			auditProecessService.repairCheck(auditProecess);
-		} else {
+		} else if ("YPJ-XS".equals(proecess.getCheckType()) || "YPJ-CG".equals(proecess.getCheckType())) {
+			auditProecessService.landOrderCheck(auditProecess);
+		} else if ("YPJ-XSTH".equals(proecess.getCheckType()) || "YPJ-CGTH".equals(proecess.getCheckType())) {
+			auditProecessService.returnGoods(auditProecess);
+		}else {
 			auditProecessService.commonCheck(auditProecess);
 		}
 

+ 4 - 0
blade-service/blade-check/src/main/java/org/springblade/check/service/IAuditProecessService.java

@@ -129,4 +129,8 @@ public interface IAuditProecessService extends IService<AuditProecess> {
 	 * @param auditProecess
 	 */
     void repairCheck(AuditProecess auditProecess);
+
+	void landOrderCheck(AuditProecess auditProecess);
+
+    void returnGoods(AuditProecess auditProecess);
 }

+ 396 - 1
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -60,6 +60,7 @@ import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.feign.IBidingDescClient;
 import org.springblade.purchase.sales.feign.IOrderCheckClient;
 import org.springblade.school.feign.ISalaryClient;
+import org.springblade.system.cache.ParamCache;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -74,6 +75,8 @@ import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import static org.springblade.common.constant.TenantConstant.APPROVAL_PROCESS;
+
 /**
  * 审批流记录 服务实现类
  *
@@ -3445,7 +3448,6 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 		auditProecess.setAuditOpTime(new Date());
 		//不是最后一级
 		if ("F".equals(iffinalItem)) {
-
 			//通过
 			if (operate == 1) {
 				//如果是第一级, 则修改状态为审批中
@@ -3597,6 +3599,399 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 		baseMapper.updateById(auditProecess);
 	}
 
+	@Override
+	public void landOrderCheck(AuditProecess auditProecess) {
+		//查看最新操作记录,防止重复提交
+		AuditProecess proecessTemp = baseMapper.selectById(auditProecess.getId());
+		if (proecessTemp == null) {
+			throw new SecurityException("未查到此审批记录,禁止操作");
+		}
+		if ("A".equals(proecessTemp.getAuditStatus()) || "B".equals(proecessTemp.getAuditStatus())) {
+			throw new SecurityException("当前记录已经完成审批,禁止重复操作");
+		}
+
+		if (auditProecess.getAuditStatus() == null || !"S".equals(auditProecess.getAuditStatus())) {
+			throw new SecurityException("审批状态非待审,禁止操作");
+		}
+		//信息
+		Message sendMessage = new Message();
+		sendMessage.setParameter(String.valueOf(auditProecess.getBillId()));
+		sendMessage.setUserName(AuthUtil.getUserName());
+		sendMessage.setUserId(AuthUtil.getUserId());
+		sendMessage.setToUserId(auditProecess.getSendUserId());
+		sendMessage.setToUserName(auditProecess.getSendName());
+		sendMessage.setMessageType(1);
+		sendMessage.setTenantId(AuthUtil.getTenantId());
+		sendMessage.setCreateUser(AuthUtil.getUserId());
+		sendMessage.setCreateTime(new Date());
+		sendMessage.setUrl(auditProecess.getUrl());
+		sendMessage.setPageLabel(auditProecess.getPageLabel());
+		sendMessage.setPageStatus(auditProecess.getPageStatus());
+
+		//用户操作 1.通过  2.驳回
+		Integer operate = auditProecess.getOperate();
+		//查看当前审批是否为最后一级
+		String iffinalItem = auditProecess.getIffinalItem();
+		//审批人
+		auditProecess.setAuditUserId(String.valueOf(AuthUtil.getUserId()));
+		//审批时间
+		auditProecess.setAuditOpTime(new Date());
+		//不是最后一级
+		if ("F".equals(iffinalItem)) {
+
+			//通过
+			if (operate == 1) {
+				//如果是第一级, 则修改状态为审批中
+				if (auditProecess.getLevelId() == 1) {
+					Order order = new Order();
+					order.setId(auditProecess.getSrcBillId());
+					order.setUpdateTime(new Date());
+					order.setUpdateUser(AuthUtil.getUserId());
+					order.setStatus(7);
+					R sumbit = orderDescClient.updateOrder(order);
+					if (!sumbit.isSuccess()) {
+						throw new SecurityException("审批开始修改审核状态失败");
+					}
+				}
+
+				auditProecess.setAuditStatus("A");
+				//查询下一级,开启待审
+				LambdaQueryWrapper<AuditProecess> auditProecessLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				auditProecessLambdaQueryWrapper
+					.eq(AuditProecess::getBatchNo, auditProecess.getBatchNo())
+					.eq(AuditProecess::getSrcBillId, auditProecess.getSrcBillId())
+					.eq(AuditProecess::getIsDelete, 0)
+					.eq(AuditProecess::getActId, auditProecess.getActId())
+					.eq(AuditProecess::getBillId, auditProecess.getBillId())
+					.eq(AuditProecess::getBillNo, auditProecess.getBillNo())
+					.eq(AuditProecess::getTenantId, AuthUtil.getTenantId())
+					.eq(AuditProecess::getLevelId, auditProecess.getLevelId() + 1);
+				Integer count = baseMapper.selectCount(auditProecessLambdaQueryWrapper);
+				if (count != null && count > 1) {
+					throw new SecurityException("审核失败,获取下一级信息失败");
+				}
+				AuditProecess proecess = baseMapper.selectOne(auditProecessLambdaQueryWrapper);
+				if (proecess == null) {
+					throw new SecurityException("审批通过=>获取下一级信息失败");
+				}
+				proecess.setAuditStatus("S");
+				baseMapper.updateById(proecess);
+
+				SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
+				String corpName = null;
+				if (proecessTemp.getCorpId() != null) {
+					R<CorpsDesc> corpMessage = iCorpsDescClient.getCorpMessage(proecessTemp.getCorpId());
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						corpName = corpMessage.getData().getCname();
+					}
+				}
+				String repairDate = null;
+				if (proecessTemp.getBillId() != null) {
+					Repair repair = repairClient.getRepairById(proecessTemp.getBillId());
+					if (repair != null) {
+						repairDate = simpleDateFormat.format(repair.getCreateTime());
+					}
+				}
+				Message message = new Message();
+				message.setParameter(String.valueOf(auditProecess.getBillId()));
+				message.setUserName(AuthUtil.getUserName());
+				message.setUserId(AuthUtil.getUserId());
+				message.setMessageType(1);
+				message.setTenantId(AuthUtil.getTenantId());
+
+				//判断模板类型
+				if ("采购订单审批".equals(proecessTemp.getProcessType())) {
+					message.setMessageBody("您有采购订单审批,客户名:" + corpName + "," + "单号:" +
+						"" + proecessTemp.getBillNo() + "," + "订单日期:" + repairDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				} else if ("销售订单审批".equals(proecessTemp.getProcessType())) {
+					message.setMessageBody("您有销售订单审批,客户名:" + corpName + "," + "单号:" +
+						"" + proecessTemp.getBillNo() + "," + "订单日期:" + repairDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				}
+
+				message.setCreateUser(AuthUtil.getUserId());
+				message.setUrl("/approveData/index");
+				message.setCreateTime(new Date());
+
+				// 消息批量通知下一级
+				sendMsgToGroup(message, proecess.getAuditUserId());
+			}
+			//不通过
+			else if (operate == 2) {
+				auditProecess.setAuditStatus("B");
+				Order order = new Order();
+				order.setId(auditProecess.getSrcBillId());
+				order.setUpdateTime(new Date());
+				order.setUpdateUser(AuthUtil.getUserId());
+				order.setStatus(8);
+				R sumbit = orderDescClient.updateOrder(order);
+				if (!sumbit.isSuccess()) {
+					throw new SecurityException("审批开始修改审核状态失败");
+				}
+				if ("采购订单审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的采购订单审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("销售订单审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的销售订单审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}
+
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+
+		}
+		//是最后一级
+		else if ("T".equals(iffinalItem)) {
+			//通过
+			if (operate == 1) {
+				//todo 调用feign直接通过
+				auditProecess.setAuditStatus("A");
+				Order order = new Order();
+				order.setId(auditProecess.getSrcBillId());
+				order.setUpdateTime(new Date());
+				order.setUpdateUser(AuthUtil.getUserId());
+				order.setStatus(6);
+				R sumbit = orderDescClient.updateOrder(order);
+				if (!sumbit.isSuccess()) {
+					throw new SecurityException(sumbit.getMsg());
+				}
+				if ("采购订单审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的采购订单审批已通过" + ",单号:" + proecessTemp.getBillNo() + ",请继续操作");
+				} else if ("销售订单审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的销售订单审批已通过" + ",单号:" + proecessTemp.getBillNo() + ",请继续操作");
+				}
+
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+			//不通过
+			else if (operate == 2) {
+				//todo 调用feign取消
+				auditProecess.setAuditStatus("B");
+				Order order = new Order();
+				order.setId(auditProecess.getSrcBillId());
+				order.setUpdateTime(new Date());
+				order.setUpdateUser(AuthUtil.getUserId());
+				order.setStatus(8);
+				R sumbit = orderDescClient.updateOrder(order);
+				if (!sumbit.isSuccess()) {
+					throw new SecurityException("修改审核状态失败");
+				}
+				if ("销售订单审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的销售订单审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("采购订单审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的采购订单审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}
+
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+		} else {
+			throw new SecurityException("审批异常,请联系管理员");
+		}
+
+		cleanMsg(proecessTemp.getAuditUserId(), AuthUtil.getUserId(), proecessTemp.getSrcBillId());
+
+		//保存操作记录
+		auditProecess.setAuditMsg(auditProecess.getAuditMsg());
+		auditProecess.setAuditItem(new Date());
+		baseMapper.updateById(auditProecess);
+	}
+
+	@Override
+	public void returnGoods(AuditProecess auditProecess) {
+		//查看最新操作记录,防止重复提交
+		AuditProecess proecessTemp = baseMapper.selectById(auditProecess.getId());
+		if (proecessTemp == null) {
+			throw new SecurityException("未查到此审批记录,禁止操作");
+		}
+		if ("A".equals(proecessTemp.getAuditStatus()) || "B".equals(proecessTemp.getAuditStatus())) {
+			throw new SecurityException("当前记录已经完成审批,禁止重复操作");
+		}
+
+		if (auditProecess.getAuditStatus() == null || !"S".equals(auditProecess.getAuditStatus())) {
+			throw new SecurityException("审批状态非待审,禁止操作");
+		}
+		//信息
+		Message sendMessage = new Message();
+		sendMessage.setParameter(String.valueOf(auditProecess.getBillId()));
+		sendMessage.setUserName(AuthUtil.getUserName());
+		sendMessage.setUserId(AuthUtil.getUserId());
+		sendMessage.setToUserId(auditProecess.getSendUserId());
+		sendMessage.setToUserName(auditProecess.getSendName());
+		sendMessage.setMessageType(1);
+		sendMessage.setTenantId(AuthUtil.getTenantId());
+		sendMessage.setCreateUser(AuthUtil.getUserId());
+		sendMessage.setCreateTime(new Date());
+		sendMessage.setUrl(auditProecess.getUrl());
+		sendMessage.setPageLabel(auditProecess.getPageLabel());
+		sendMessage.setPageStatus(auditProecess.getPageStatus());
+
+		//用户操作 1.通过  2.驳回
+		Integer operate = auditProecess.getOperate();
+		//查看当前审批是否为最后一级
+		String iffinalItem = auditProecess.getIffinalItem();
+		//审批人
+		auditProecess.setAuditUserId(String.valueOf(AuthUtil.getUserId()));
+		//审批时间
+		auditProecess.setAuditOpTime(new Date());
+		//不是最后一级
+		if ("F".equals(iffinalItem)) {
+			//通过
+			if (operate == 1) {
+				//如果是第一级, 则修改状态为审批中
+				if (auditProecess.getLevelId() == 1) {
+					R sumbit = orderDescClient.underReviewTH(auditProecess.getSrcBillId());
+					if (!sumbit.isSuccess()) {
+						throw new SecurityException("审批开始修改审核状态失败");
+					}
+				}
+
+				auditProecess.setAuditStatus("A");
+				//查询下一级,开启待审
+				LambdaQueryWrapper<AuditProecess> auditProecessLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				auditProecessLambdaQueryWrapper
+					.eq(AuditProecess::getBatchNo, auditProecess.getBatchNo())
+					.eq(AuditProecess::getSrcBillId, auditProecess.getSrcBillId())
+					.eq(AuditProecess::getIsDelete, 0)
+					.eq(AuditProecess::getActId, auditProecess.getActId())
+					.eq(AuditProecess::getBillId, auditProecess.getBillId())
+					.eq(AuditProecess::getBillNo, auditProecess.getBillNo())
+					.eq(AuditProecess::getTenantId, AuthUtil.getTenantId())
+					.eq(AuditProecess::getLevelId, auditProecess.getLevelId() + 1);
+				Integer count = baseMapper.selectCount(auditProecessLambdaQueryWrapper);
+				if (count != null && count > 1) {
+					throw new SecurityException("审核失败,获取下一级信息失败");
+				}
+				AuditProecess proecess = baseMapper.selectOne(auditProecessLambdaQueryWrapper);
+				if (proecess == null) {
+					throw new SecurityException("审批通过=>获取下一级信息失败");
+				}
+				proecess.setAuditStatus("S");
+				baseMapper.updateById(proecess);
+
+				SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
+				String corpName = null;
+				if (proecessTemp.getCorpId() != null) {
+					R<CorpsDesc> corpMessage = iCorpsDescClient.getCorpMessage(proecessTemp.getCorpId());
+					if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+						corpName = corpMessage.getData().getCname();
+					}
+				}
+				String repairDate = null;
+				if (proecessTemp.getBillId() != null) {
+					Order repair = orderDescClient.getById(proecessTemp.getBillId());
+					if (repair != null) {
+						repairDate = simpleDateFormat.format(repair.getCreateTime());
+					}
+				}
+				Message message = new Message();
+				message.setParameter(String.valueOf(auditProecess.getBillId()));
+				message.setUserName(AuthUtil.getUserName());
+				message.setUserId(AuthUtil.getUserId());
+				message.setMessageType(1);
+				message.setTenantId(AuthUtil.getTenantId());
+
+				//判断模板类型
+				if ("中电采购退货审批".equals(proecessTemp.getProcessType())) {
+					message.setMessageBody("您有采购退货审批,客户名:" + corpName + "," + "单号:" +
+						"" + proecessTemp.getBillNo() + "," + "订单日期:" + repairDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				} else if ("中电销售退货审批".equals(proecessTemp.getProcessType())) {
+					message.setMessageBody("您有销售退货审批,客户名:" + corpName + "," + "单号:" +
+						"" + proecessTemp.getBillNo() + "," + "订单日期:" + repairDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				}
+
+				message.setCreateUser(AuthUtil.getUserId());
+				message.setUrl("/approveData/index");
+				message.setCreateTime(new Date());
+
+				// 消息批量通知下一级
+				sendMsgToGroup(message, proecess.getAuditUserId());
+			}
+			//不通过
+			else if (operate == 2) {
+				auditProecess.setAuditStatus("B");
+				R sumbit = orderDescClient.passCancelTH(auditProecess.getSrcBillId());
+				if (!sumbit.isSuccess()) {
+					throw new SecurityException("审批开始修改审核状态失败");
+				}
+				if ("中电采购退货审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的采购退货审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("中电销售退货审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的销售退货审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}
+
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+
+		}
+		//是最后一级
+		else if ("T".equals(iffinalItem)) {
+			//通过
+			if (operate == 1) {
+				//todo 调用feign直接通过
+				auditProecess.setAuditStatus("A");
+				R sumbit = orderDescClient.passCheckTH(auditProecess.getSrcBillId());
+				if (!sumbit.isSuccess()) {
+					throw new SecurityException(sumbit.getMsg());
+				}
+				if ("中电采购退货审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的采购退货审批已通过" + ",单号:" + proecessTemp.getBillNo() + ",请继续操作");
+				} else if ("中电销售退货审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的销售退货审批已通过" + ",单号:" + proecessTemp.getBillNo() + ",请继续操作");
+				}
+
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+			//不通过
+			else if (operate == 2) {
+				//todo 调用feign取消
+				auditProecess.setAuditStatus("B");
+				R sumbit = orderDescClient.passCancelTH(auditProecess.getSrcBillId());
+				if (!sumbit.isSuccess()) {
+					throw new SecurityException("修改审核状态失败");
+				}
+				if ("中电采购退货审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的销售退货审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("中电销售退货审批".equals(proecessTemp.getProcessType())) {
+					sendMessage.setMessageBody("您的采购退货审批未通过" + ",单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}
+
+				R save = messageClient.save(sendMessage);
+				if (!save.isSuccess()) {
+					throw new SecurityException("发送消息失败");
+				}
+			}
+		} else {
+			throw new SecurityException("审批异常,请联系管理员");
+		}
+
+		cleanMsg(proecessTemp.getAuditUserId(), AuthUtil.getUserId(), proecessTemp.getSrcBillId());
+
+		//保存操作记录
+		auditProecess.setAuditMsg(auditProecess.getAuditMsg());
+		auditProecess.setAuditItem(new Date());
+		baseMapper.updateById(auditProecess);
+	}
+
 	private void sendMsgToGroup(Message message, String group) {
 		List<String> userList = Arrays.asList(group.split(","));
 		userList.forEach(user -> {

+ 6 - 0
blade-service/blade-purchase-sales/pom.xml

@@ -83,6 +83,12 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-land-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 1 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/dealer/DealerOrderController.java

@@ -407,7 +407,7 @@ public class DealerOrderController extends BladeController {
 		order.setTradeType(OrderTypeEnum.DEALER.getType());
 		return R.data(orderService.createMarket(order));
 	}
-	@PostMapping("checkOrder")
+	@PostMapping("/checkOrder")
 	public R checkOrder(@RequestBody Order order) {
 
 		orderService.checkOrder(order);

+ 47 - 14
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/partsapp/AppPartsController.java

@@ -156,7 +156,7 @@ public class AppPartsController extends BladeController {
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getCreateUser()), Order::getCreateUser, order.getCreateUser());//制单人
 		lambdaQueryWrapper.ge(Func.isNotEmpty(order.getOrderStartDate()), Order::getBusinesDate, order.getOrderStartDate());//订单日期开始
 		lambdaQueryWrapper.le(Func.isNotEmpty(order.getOrderEndDate()), Order::getBusinesDate, order.getOrderEndDate());//订单日期结束
-		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getBillType()), Order::getBillType, order.getBillType());
+		lambdaQueryWrapper.apply(Func.isNotEmpty(order.getBillType()),"find_in_set(bill_type,'" + order.getBillType() + "')");
 		lambdaQueryWrapper.eq(Func.isNotEmpty(order.getTradeType()), Order::getTradeType, order.getTradeType());
 		if ("1".equals(order.getModular())) {
 			lambdaQueryWrapper.apply("balance_amount > 0");
@@ -430,18 +430,6 @@ public class AppPartsController extends BladeController {
 		return R.data(page);
 	}
 
-
-	/**
-	 * 新增或修改 经销商销售或采购订单表(app)
-	 */
-	@PostMapping("/quickBilling")
-	@ApiOperationSupport(order = 6)
-	@ApiOperation(value = "新增或修改", notes = "传入order")
-	public R quickBilling(@Valid @RequestBody Order order) {
-		order.setTradeType(OrderTypeEnum.PARTS.getType());
-		return orderService.quickBilling(order);
-	}
-
 	/**
 	 * app营业分析
 	 *
@@ -614,7 +602,7 @@ public class AppPartsController extends BladeController {
 	@ApiOperation(value = "新增或修改", notes = "传入order")
 	public R shippingOrder(@Valid @RequestBody Order order) {
 		order.setTradeType(OrderTypeEnum.PARTS.getType());
-		return orderService.shippingOrder(order);
+		return R.data(orderService.shippingOrder(order));
 	}
 
 	/**
@@ -629,4 +617,49 @@ public class AppPartsController extends BladeController {
 		return orderService.personalInformation(tenantId);
 	}
 
+	/**
+	 * 新增或修改 经销商销售或采购订单表(app)
+	 */
+	@PostMapping("/quickBilling")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入order")
+	public R quickBilling(@Valid @RequestBody Order order) {
+		order.setTradeType(OrderTypeEnum.PARTS.getType());
+		return orderService.quickBilling(order);
+	}
+
+	/**
+	 * 确认发货,收货(配件系统)
+	 *
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/collectHairGoods")
+	@ApiOperation(value = "获得小程序个人信息", notes = "传入order")
+	public R personalInformation(@Valid @RequestBody Order order) {
+		return orderService.collectHairGoods(order);
+	}
+
+	/**
+	 * 抵消(配件系统-中电)
+	 *
+	 * @param order
+	 * @return
+	 */
+	@PostMapping("/offset")
+	@ApiOperation(value = "获得小程序个人信息", notes = "传入order")
+	public R offset(@Valid @RequestBody Order order) {
+		return orderService.offset(order);
+	}
+
+	/**
+	 * 取消订单(app)
+	 */
+	@PostMapping("/cancelOrder")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "取消订单", notes = "传入order")
+	public R cancelOrder(@Valid @RequestBody Order order) {
+		return orderService.cancelOrder(order);
+	}
+
 }

+ 3 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -25,6 +25,7 @@ import org.springblade.purchase.sales.excel.*;
 import org.springblade.purchase.sales.vo.*;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -224,4 +225,6 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 */
 	R salesOrderEntry(SalesOrderEntryDto salesOrderEntryDto);
 
+	public List<OrderItems> saveOrderItemsMessage(List<OrderItems> list, Date date, Long pid);
+
 }

+ 7 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderService.java

@@ -390,5 +390,11 @@ public interface IOrderService extends IService<Order> {
 
 	R personalInformation(String tenantId);
 
-	R shippingOrder(Order order);
+	boolean shippingOrder(Order order);
+
+	R collectHairGoods(Order order);
+
+	R offset(Order order);
+
+	R cancelOrder(Order order);
 }

File diff suppressed because it is too large
+ 681 - 410
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java


+ 3 - 10
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/tonglianPayment/controller/TongLianPaymentController.java

@@ -102,16 +102,9 @@ public class TongLianPaymentController extends BladeController {
 				if (trxstatus.equals("0000")) {
 
 					System.out.println("订单" + AnalysisMapUtils.getString("cusorderid", params) + "支付成功");
-					// 业务处理
-					LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-					lambdaQueryWrapper.eq(Order::getSysNo, AnalysisMapUtils.getString("cusorderid", params))
-						.eq(Order::getTenantId, AuthUtil.getTenantId())
-						.eq(Order::getIsDeleted, 0);
-					Order orderInfo = orderService.getOne(lambdaQueryWrapper);
-					orderInfo.setActualPaymentStatus(2);
-					orderInfo.setStatus(2);
-					orderInfo.setAccountsCollectionDate(new Date());
-					orderService.updateById(orderInfo);
+					Order order = new Order();
+					order.setSysNo(AnalysisMapUtils.getString("cusorderid", params));
+					orderService.shippingOrder(order);
 					response.getWriter().write(AnalysisMapUtils.setXML("SUCCESS", "OK"));
 				} else {
 					//订单编号

+ 6 - 0
blade-service/trade-finance/pom.xml

@@ -115,6 +115,12 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-land-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 

+ 162 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -27,6 +27,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.box.tube.entity.Transport;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.entity.FeesDesc;
 import org.springblade.client.feign.ICorpsDescClient;
@@ -179,15 +180,38 @@ public class AccController extends BladeController {
 		accLambdaQueryWrapper.orderByDesc(Acc::getCreateTime);
 		IPage<Acc> pages = accService.page(Condition.getPage(query), accLambdaQueryWrapper);
 		String corpIds = "";
+		String fleetName = "";
 		for (Acc accOne : pages.getRecords()) {
 			if (ObjectUtil.isNotEmpty(accOne.getCorpId())) {
 				corpIds = corpIds + accOne.getCorpId() + ",";
 			}
+			if (ObjectUtil.isNotEmpty(accOne.getFleetId())) {
+				fleetName = fleetName + accOne.getFleetId() + ",";
+			}
 		}
 		List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds);
-		for (Acc acc_:pages.getRecords()) {
+
+		List<CorpsDesc> fleetNameList = corpsDescClient.selectByCorpIds(fleetName);
+		for (Acc acc_ : pages.getRecords()) {
+			if (acc_.getTradeType().equals("ZDLU")) {
+				if (acc_.getCurrency().equals("1")) {
+					acc_.setCurrency("CNY");
+				} else if (acc_.getCurrency().equals("2")) {
+					acc_.setCurrency("USD");
+				} else {
+					acc_.setCurrency("CNY");
+				}
+
+				if (ObjectUtils.isNull(acc_.getItemName())){
+					acc_.setItemName("运费");
+				}
+			}
 			//录入人
 			acc_.setCreateUserName(iUserClient.userInfoById(acc_.getCreateUser()).getData().getRealName());
+			//业务员
+			if(ObjectUtils.isNotNull(acc_.getShipName())){
+				acc_.setShipName(iUserClient.userInfoById(Long.parseLong(acc_.getShipName())).getData().getRealName());
+			}
 			//费用名称
 			if (StringUtils.isNotBlank(acc_.getCostType())) {
 				R<FeesDesc> detail = iFeesDescClient.detail(Long.valueOf(acc_.getCostType()));
@@ -204,6 +228,15 @@ public class AccController extends BladeController {
 					}
 				}
 			}
+			//车队
+			if (acc_.getFleetId() != null) {
+				if (ObjectUtil.isNotEmpty(fleetNameList)) {
+					CorpsDesc corpsDesc = fleetNameList.stream().filter(d -> d.getId().equals(acc_.getFleetId())).findFirst().orElse(null);
+					if (ObjectUtils.isNotNull(corpsDesc)) {
+						acc_.setFleetName(corpsDesc.getCname());
+					}
+				}
+			}
 			acc_.setOutstandingAmount(acc_.getAmount().subtract(acc_.getSettlementAmount()));
 			//获取所属公司中文名
 			if (acc_.getCompanyid() != null) {
@@ -708,4 +741,132 @@ public class AccController extends BladeController {
 
 	}
 
+	/**
+	 * 分页 财务账单
+	 */
+	@GetMapping("/listLandOrder")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入acc")
+	public R<IPage<Acc>> listLandOrder(Acc acc, Query query) {
+		LambdaQueryWrapper<Acc> accLambdaQueryWrapper = new LambdaQueryWrapper<>();
+
+		if (ObjectUtil.isNotEmpty(acc.getSrcParentId())) {
+			if (acc.getFlag() != null && acc.getFlag() == 1) {
+				accLambdaQueryWrapper.apply(" Amount >= Settlement_Amount");
+			} else if (acc.getFlag() != null && acc.getFlag() == 2) {
+				accLambdaQueryWrapper.apply(" Amount >= Invoice_Amount");
+			}
+		} else if (ObjectUtil.isNotEmpty(acc.getCorpId())) {
+			if (acc.getFlag() != null && acc.getFlag() == 1) {
+				accLambdaQueryWrapper.apply(" Amount > Settlement_Amount");
+			} else if (acc.getFlag() != null && acc.getFlag() == 2) {
+				accLambdaQueryWrapper.apply(" Amount > Invoice_Amount");
+			}
+		} else {
+			if (acc.getFlag() != null && acc.getFlag() == 1) {
+				accLambdaQueryWrapper.apply(" Amount >= Settlement_Amount");
+			} else if (acc.getFlag() != null && acc.getFlag() == 2) {
+				accLambdaQueryWrapper.apply(" Amount >= Invoice_Amount");
+			}
+		}
+		accLambdaQueryWrapper.between(StringUtils.isNotBlank(acc.getCreateStartDate()) && StringUtils.isNotBlank(acc.getCreateEndDate()), Acc::getCreateTime, acc.getCreateStartDate(), acc.getCreateEndDate())
+			.like(StringUtils.isNotBlank(acc.getBillType()), Acc::getBillType, acc.getBillType())
+			.like(StringUtils.isNotBlank(acc.getAccSysNo()), Acc::getAccSysNo, acc.getAccSysNo())
+			.like(StringUtils.isNotBlank(acc.getSrcBillNo()), Acc::getSrcBillNo, acc.getSrcBillNo())
+			.like(StringUtils.isNotBlank(acc.getDepartureHarbor()), Acc::getDepartureHarbor, acc.getDepartureHarbor())
+			.like(StringUtils.isNotBlank(acc.getPlateNo()), Acc::getPlateNo, acc.getPlateNo())
+			.like(StringUtils.isNotBlank(acc.getObjectiveHarbor()), Acc::getObjectiveHarbor, acc.getObjectiveHarbor())
+			.eq(acc.getCorpId() != null, Acc::getCorpId, acc.getCorpId())
+			.eq(StringUtils.isNotBlank(acc.getItemType()), Acc::getItemType, acc.getItemType())
+			.eq(StringUtils.isNotBlank(acc.getCostType()), Acc::getCostType, acc.getCostType())
+			.eq(acc.getCreateUser() != null, Acc::getCreateUser, acc.getCreateUser())
+			.eq(acc.getSrcParentId() != null, Acc::getSrcParentId, acc.getSrcParentId())
+			.eq(ObjectUtils.isNotNull(acc.getSrcSysno()), Acc::getSrcSysno, acc.getSrcSysno())
+			.eq(ObjectUtils.isNotNull(acc.getFleetId()), Acc::getFleetId, acc.getFleetId())
+			.eq(StringUtils.isNotBlank(acc.getDc()), Acc::getDc, acc.getDc())
+			.like(ObjectUtil.isNotEmpty(acc.getQuantity()), Acc::getQuantity, acc.getQuantity())
+			.like(ObjectUtil.isNotEmpty(acc.getSettlementAmount()), Acc::getSettlementAmount, acc.getSettlementAmount());
+		accLambdaQueryWrapper.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getCheckAmount, 0)
+			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getCheckAmount, 0)
+			.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getSettlementAmount, 0)
+			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getSettlementAmount, 0)
+			.gt(acc.getCheckStatus() != null && acc.getCheckStatus() == 1, Acc::getInvoiceAmount, 0)
+			.eq(acc.getCheckStatus() != null && acc.getCheckStatus() == 2, Acc::getInvoiceAmount, 0);
+		if (acc.getSrcDateList() != null && acc.getSrcDateList().size() > 1) {//来源业务日期
+			accLambdaQueryWrapper.ge(Acc::getSrcDate, acc.getSrcDateList().get(0));
+			accLambdaQueryWrapper.le(Acc::getSrcDate, acc.getSrcDateList().get(1));
+		}
+		accLambdaQueryWrapper.eq(Acc::getTenantId, SecureUtil.getTenantId())
+			.eq(Acc::getIsDeleted, 0);
+		if (acc.getSettlementStatus() != null && acc.getSettlementStatus() == 1) {
+			accLambdaQueryWrapper.apply("Amount = Settlement_Amount");
+		} else if (acc.getSettlementStatus() != null && acc.getSettlementStatus() == 2) {
+			accLambdaQueryWrapper.apply("Amount != Settlement_Amount");
+		}
+		accLambdaQueryWrapper.eq(Acc::getStatus, 0);
+		accLambdaQueryWrapper.orderByDesc(Acc::getCreateTime);
+		IPage<Acc> pages = accService.page(Condition.getPage(query), accLambdaQueryWrapper);
+		String corpIds = "";
+		String fleetName = "";
+		for (Acc accOne : pages.getRecords()) {
+			if (ObjectUtil.isNotEmpty(accOne.getCorpId())) {
+				corpIds = corpIds + accOne.getCorpId() + ",";
+			}
+			if (ObjectUtil.isNotEmpty(accOne.getFleetId())) {
+				fleetName = fleetName + accOne.getFleetId() + ",";
+			}
+		}
+		List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds);
+
+		List<CorpsDesc> fleetNameList = corpsDescClient.selectByCorpIds(fleetName);
+		for (Acc acc_ : pages.getRecords()) {
+			if (acc_.getTradeType().equals("ZDLU")) {
+				if (acc_.getCurrency().equals("1")) {
+					acc_.setCurrency("CNY");
+				} else if (acc_.getCurrency().equals("2")) {
+					acc_.setCurrency("USD");
+				} else {
+					acc_.setCurrency("CNY");
+				}
+
+				if (ObjectUtils.isNull(acc_.getItemName())){
+					acc_.setItemName("运费");
+				}
+			}
+			//录入人
+			acc_.setCreateUserName(iUserClient.userInfoById(acc_.getCreateUser()).getData().getRealName());
+			//业务员
+			if (ObjectUtils.isNotNull(acc_.getShipName())){
+				acc_.setShipName(iUserClient.userInfoById(Long.parseLong(acc_.getShipName())).getData().getRealName());
+			}
+			//费用名称
+			if (StringUtils.isNotBlank(acc_.getCostType())) {
+				R<FeesDesc> detail = iFeesDescClient.detail(Long.valueOf(acc_.getCostType()));
+				if (detail.isSuccess() && detail.getData() != null) {
+					acc_.setItemName(detail.getData().getCname());
+				}
+			}
+			//客户名称
+			if (acc_.getCorpId() != null) {
+				if (ObjectUtil.isNotEmpty(corpsDescList)) {
+					CorpsDesc corpsDesc = corpsDescList.stream().filter(d -> d.getId().equals(acc_.getCorpId())).findFirst().orElse(null);
+					if (ObjectUtils.isNotNull(corpsDesc)) {
+						acc_.setCorpName(corpsDesc.getCname());
+					}
+				}
+			}
+			//车队
+			if (acc_.getFleetId() != null) {
+				if (ObjectUtil.isNotEmpty(fleetNameList)) {
+					CorpsDesc corpsDesc = fleetNameList.stream().filter(d -> d.getId().equals(acc_.getFleetId())).findFirst().orElse(null);
+					if (ObjectUtils.isNotNull(corpsDesc)) {
+						acc_.setFleetName(corpsDesc.getCname());
+					}
+				}
+			}
+			acc_.setOutstandingAmount(acc_.getAmount().subtract(acc_.getSettlementAmount()));
+		}
+		return R.data(pages);
+	}
+
 }

+ 11 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -739,4 +739,15 @@ public class SettlementController extends BladeController {
 		return R.success("操作成功");
 	}
 
+	/**
+	 * 收付款(陆运)
+	 */
+	@PostMapping("/paymentApplyLandOrder")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "付销售-收款结算-生成-销售收费账单", notes = "传入销售申请对象")
+	public R paymentApplyLandOrder(@RequestBody ApplyDTO dto) {
+		settlementService.paymentApplyLandOrder(dto.getItemsList());
+		return R.success("操作成功");
+	}
+
 }

+ 2 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/service/ISettlementService.java

@@ -104,4 +104,6 @@ public interface ISettlementService extends IService<Settlement> {
 	Settlement modifyParts(SettlementDTO dto);
 
     void paymentApplyBoxTube(List<Items> itemsList, String billType, String belongCompany, String tradeType);
+
+	void paymentApplyLandOrder(List<Items> itemsList);
 }

+ 107 - 1
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -67,6 +67,8 @@ import org.springblade.finance.tool.JdyTool;
 import org.springblade.finance.vo.CollectionPayment;
 import org.springblade.finance.vo.SettlementVO;
 import org.springblade.finance.vojo.*;
+import org.springblade.land.entity.OrderFee;
+import org.springblade.land.feign.ILandClient;
 import org.springblade.mocha.entity.BusinessOverpaymentItem;
 import org.springblade.mocha.entity.Overpayment;
 import org.springblade.mocha.feign.IBusinessOverpaymentClient;
@@ -138,6 +140,8 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 
 	private final IRepairClient repairClient;
 
+	private final ILandClient landClient;
+
 	private final IDeclareCustomsClient declareCustomsClient;
 
 	/**
@@ -718,6 +722,29 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			declareCustomsFeesR.getData().setSettlementAmount(decimal);
 			declareCustomsFeesR.getData().setSettlementDate(null);
 			declareCustomsClient.updateDeclareCustomsFees(declareCustomsFeesR.getData());
+		}else if (type == 9) {//金港报关
+
+		} else if (type == 10) {
+			Long srcFeesId = acc.getSrcFeesId();
+			if (srcFeesId == null) {
+				throw new SecurityException("操作失败,未获取到原业务信息");
+			}
+
+			R<OrderFee> orderFeeR = landClient.getOrderFeeById(srcFeesId);
+			if (!orderFeeR.isSuccess() && ObjectUtils.isNull(orderFeeR.getData())) {
+				throw new SecurityException("修改原单据失败");
+			}
+			//回退原业务表数据
+			if (orderFeeR.getData().getSettlementAmount() == null) {
+				throw new SecurityException("撤销账单失败,原业务表已收金额为空");
+			}
+			BigDecimal decimal = orderFeeR.getData().getSettlementAmount().subtract(items.getThisAmount());
+			if (decimal.compareTo(BigDecimal.ZERO) < 0) {
+				throw new SecurityException("撤销账单失败,剩余已收金额不够本次扣款");
+			}
+			orderFeeR.getData().setSettlementAmount(decimal);
+			orderFeeR.getData().setSettlementDate(null);
+			landClient.updateOrderFee(orderFeeR.getData());
 		}
 
 	}
@@ -929,6 +956,27 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			BeanUtils.copyProperties(feesR.getData(), declareCustomsFees);
 			declareCustomsFees.setSettlementDate(new Date());
 			declareCustomsClient.updateDeclareCustomsFees(declareCustomsFees);
+		}  else if (type == 9) {//金港报关
+			Long srcFeesId = acc.getSrcFeesId();
+			if (srcFeesId == null) {
+				throw new SecurityException("操作失败,未获取到原业务信息");
+			}
+			acc.setSettlementAmount(acc.getSettlementAmount() != null ? acc.getSettlementAmount().add(items.getThisAmount()) : new BigDecimal("0").add(items.getThisAmount()));
+			accMapper.updateById(acc);
+		} else if (type == 10) {
+			Long srcFeesId = acc.getSrcFeesId();
+			if (srcFeesId == null) {
+				throw new SecurityException("操作失败,未获取到原业务信息");
+			}
+			R<OrderFee> orderFeeR = landClient.getOrderFeeById(srcFeesId);
+			if (!orderFeeR.isSuccess() && ObjectUtils.isNull(orderFeeR.getData())) {
+				throw new SecurityException("修改原单据失败");
+			}
+			acc.setSettlementAmount(acc.getSettlementAmount() != null ? acc.getSettlementAmount().add(items.getThisAmount()) : new BigDecimal("0").add(items.getThisAmount()));
+			orderFeeR.getData().setSettlementAmount(orderFeeR.getData().getSettlementAmount() != null ? orderFeeR.getData().getSettlementAmount().add(items.getThisAmount()) : new BigDecimal("0").add(items.getThisAmount()));
+			accMapper.updateById(acc);
+			orderFeeR.getData().setSettlementDate(new Date());
+			landClient.updateOrderFee(orderFeeR.getData());
 		} else {
 			throw new SecurityException("操作失败,财务类型为空无法结算");
 		}
@@ -2488,6 +2536,10 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			acc.setCreateUser(AuthUtil.getUserId());
 			accMapper.insert(acc);
 		} else {
+			BigDecimal s = new BigDecimal("0.00");
+			if (ObjectUtils.isNotNull(selectAcc.getSettlementAmount())){
+				s = s.add(selectAcc.getSettlementAmount()).add(dto.getSettlementAmount());
+			}
 			BeanUtils.copyProperties(selectAcc, acc);
 			BeanUtils.copyProperties(dto, acc);
 			Long id = selectAcc.getId();
@@ -2557,7 +2609,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 					itemsMapper.insert(items);
 
 				}
-				acc.setSettlementAmount(dto.getSettlementAmount());
+				acc.setSettlementAmount(s);
 				acc.setId(id);
 				acc.setUpdateTime(new Date());
 				acc.setUpdateUser(AuthUtil.getUserId());
@@ -2710,4 +2762,58 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		});
 
 	}
+
+	@Override
+	public void paymentApplyLandOrder(List<Items> itemsList) {
+		itemsList.forEach(e -> {
+			Acc acc = new Acc();
+			acc.setAccDate(new Date());
+			if ("申请".equals(e.getSrcFeesType())) {
+				acc.setDc("c");
+			} else {
+				acc.setDc("d");
+			}
+			acc.setBillType(e.getSrcFeesType());
+			acc.setSrcDate(e.getStockTime());
+			BeanUtils.copyProperties(e, acc);
+			acc.setId(null);
+			acc.setCompanyid(e.getBelongToCorpId());
+			acc.setItemType(e.getItemType());
+			acc.setAccSysNo(e.getSrcOrderno());
+			acc.setSrcRefno(e.getSrcOrderno());
+			acc.setSrcParentId(e.getSrcParentId());
+			acc.setSrcBillNo(e.getBillNo());
+			acc.setCreateTime(new Date());
+			acc.setTradeType(e.getTradeType());
+			if (ObjectUtils.isNotNull(e.getStatusJT())) {
+				acc.setStatus(e.getStatusJT());
+			} else {
+				acc.setStatus(0);
+			}
+			acc.setRemarks(e.getRemarks());
+			acc.setCostType(e.getCostType());
+			acc.setCreateUser(AuthUtil.getUserId());
+			acc.setSrcType(e.getSrcType());
+			acc.setSrcFeesId(e.getSrcFeesId());
+
+			LambdaQueryWrapper<Acc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(Acc::getIsDeleted, 0)
+				.eq(Acc::getTenantId, AuthUtil.getTenantId())
+				.eq(Acc::getSrcParentId, e.getSrcParentId())
+				.eq(Acc::getSrcSysno, e.getSrcSysNo());
+			Acc selectAcc = accMapper.selectOne(lambdaQueryWrapper);
+			if (ObjectUtils.isNull(selectAcc)) {
+				accMapper.insert(acc);
+			} else {
+				Long id = selectAcc.getId();
+				if (!selectAcc.getSettlementAmount().equals(new BigDecimal("0.00"))) {
+					throw new SecurityException("订单已结算,不允许撤销");
+				} else {
+					BeanUtils.copyProperties(acc, selectAcc);
+					selectAcc.setId(id);
+					accMapper.updateById(selectAcc);
+				}
+			}
+		});
+	}
 }

Some files were not shown because too many files changed in this diff