Bläddra i källkod

贸易代理 2024年7月17日17:29:50

纪新园 1 år sedan
förälder
incheckning
b9147de83f
27 ändrade filer med 1477 tillägg och 138 borttagningar
  1. 5 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IMessageClient.java
  2. 5 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/check/entity/LosAuditProecess.java
  3. 0 5
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java
  4. 32 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/Agent.java
  5. 0 1
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/AgentItems.java
  6. 74 11
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/AgentView.java
  7. 23 0
      blade-service/blade-client/src/main/java/org/springblade/client/message/controller/MessageController.java
  8. 11 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/units/controller/BUnitsController.java
  9. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/units/service/IBUnitsService.java
  10. 35 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/units/service/impl/BUnitsServiceImpl.java
  11. 7 5
      blade-service/blade-los/src/main/java/org/springblade/los/check/controller/AuditProecessController.java
  12. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/check/mapper/AuditProecessMapper.java
  13. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/check/mapper/AuditProecessMapper.xml
  14. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/IAuditProecessService.java
  15. 86 12
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java
  16. 22 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FeeCenterController.java
  17. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/IFeeCenterService.java
  18. 80 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  19. 44 3
      blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentController.java
  20. 13 1
      blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentItemsController.java
  21. 15 5
      blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentViewController.java
  22. 0 2
      blade-service/blade-los/src/main/java/org/springblade/los/trade/mapper/AgentViewMapper.xml
  23. 6 0
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/IAgentItemsService.java
  24. 8 0
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/IAgentService.java
  25. 84 3
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentItemsServiceImpl.java
  26. 913 89
      blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java
  27. 1 1
      blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java

+ 5 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IMessageClient.java

@@ -7,6 +7,8 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 @FeignClient(
 	value = LauncherConstant.APPLICATION_CLIENT_NAME
 )
@@ -18,6 +20,9 @@ public interface IMessageClient {
 	@PostMapping("message/save")
 	R save(@RequestBody Message message);
 
+	@PostMapping("message/saveList")
+	R saveList(@RequestBody List<Message> message);
+
 	@PostMapping("message/clean")
 	R clean(@RequestBody Message message);
 

+ 5 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/check/entity/LosAuditProecess.java

@@ -313,6 +313,11 @@ public class LosAuditProecess implements Serializable {
 	 */
 	@ApiModelProperty(value = "利润合计")
 	private BigDecimal grossProfitLoc;
+	/**
+	 * 付费申请类型  SK  WK
+	 */
+	@ApiModelProperty(value = "付费申请类型  SK  WK")
+	private String paidApplication;
 
 
 }

+ 0 - 5
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenter.java

@@ -881,11 +881,6 @@ public class FeeCenter implements Serializable {
 	private Long amendSrcItemId;
 
 	/**
-	 * 收费标准
-	 */
-	@ApiModelProperty(value = "收费标准")
-	private String feeStandards;
-	/**
 	 * 优惠汇率
 	 */
 	@ApiModelProperty(value = "优惠汇率")

+ 32 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/Agent.java

@@ -232,6 +232,7 @@ public class Agent implements Serializable {
 	 */
 	@ApiModelProperty(value = "业务日期")
 	private Date businessDate;
+	@TableField(exist = false)
 	private List<String> businessDateList;
 	/**
 	 * 业务类型
@@ -389,48 +390,75 @@ public class Agent implements Serializable {
 	private String orderNoJoin;
 
 	/**
+	 * 首款审核状态 录入 审核提交  审核中  审核通过
+	 */
+	@ApiModelProperty(value = "首款审核状态")
+	private String firstStatus;
+
+	/**
+	 * 尾款审核状态 录入 审核提交  审核中  审核通过
+	 */
+	@ApiModelProperty(value = "尾款审核状态")
+	private String finalStatus;
+
+	/**
+	 * 单据类型
+	 */
+	@ApiModelProperty(value = "单据类型")
+	private String documentType;
+
+	/**
 	 * 收费
 	 */
+	@TableField(exist = false)
 	private List<FeeCenter> feeCenterListD;
 
 	/**
 	 * 付费
 	 */
+	@TableField(exist = false)
 	private List<FeeCenter> feeCenterListC;
 
 	/**
 	 * 明细
 	 */
+	@TableField(exist = false)
 	private List<AgentItems> agentItemsList;
 
 	/**
 	 * 收款记录
 	 */
+	@TableField(exist = false)
 	private List<Record> recordListD;
 
 	/**
 	 * 付款记录
 	 */
+	@TableField(exist = false)
 	private List<Record> recordListC;
 
 	/**
 	 * 开票记录
 	 */
+	@TableField(exist = false)
 	private List<Record> recordInvoiceList;
 
 	/**
 	 * 付费记录
 	 */
+	@TableField(exist = false)
 	private List<Record> recordRateList;
 
 	/**
 	 * 通关记录
 	 */
+	@TableField(exist = false)
 	private List<Record> recordClearanceList;
 
 	/**
 	 * 附件
 	 */
+	@TableField(exist = false)
 	private List<FilesCenter> filesCenterList;
 
 	/**
@@ -464,5 +492,9 @@ public class Agent implements Serializable {
 	@TableField(exist = false)
 	private BigDecimal exchangeRate;
 
+	//付费申请类型
+	@TableField(exist = false)
+	private String paidApplication;
+
 
 }

+ 0 - 1
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/AgentItems.java

@@ -133,7 +133,6 @@ public class AgentItems implements Serializable {
 	 * 发票号
 	 */
 	@ApiModelProperty(value = "发票号")
-	@TableField("Invoice_no")
 	private String invoiceNo;
 	/**
 	 * 订单号

+ 74 - 11
blade-service-api/blade-los-api/src/main/java/org/springblade/los/trade/entity/AgentView.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.trade.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -107,16 +108,6 @@ public class AgentView implements Serializable {
 	@ApiModelProperty(value = "预付金额")
 	private BigDecimal prepaidAmount;
 	/**
-	 * 首付实收
-	 */
-	@ApiModelProperty(value = "首付实收")
-	private BigDecimal downPaymentsNetReceipts;
-	/**
-	 * 尾款实收
-	 */
-	@ApiModelProperty(value = "尾款实收")
-	private BigDecimal balancePaymentNetReceipts;
-	/**
 	 * 国家名称
 	 */
 	@ApiModelProperty(value = "国家名称")
@@ -201,19 +192,21 @@ public class AgentView implements Serializable {
 	 */
 	@ApiModelProperty(value = "开船日期")
 	private Date etd;
-
+	@TableField(exist = false)
 	private List<String> etdList;
 	/**
 	 * 预计到港日期
 	 */
 	@ApiModelProperty(value = "预计到港日期")
 	private Date estimateReachHarbor;
+	@TableField(exist = false)
 	private List<String> estimateReachHarborList;
 	/**
 	 * 实际到港日期
 	 */
 	@ApiModelProperty(value = "实际到港日期")
 	private Date actualReachHarbor;
+	@TableField(exist = false)
 	private List<String> actualReachHarborList;
 	/**
 	 * 铅封号
@@ -287,5 +280,75 @@ public class AgentView implements Serializable {
 	@ApiModelProperty(value = "订单状态")
 	private String orderStatus;
 
+	/**
+	 * 单据类型
+	 */
+	@ApiModelProperty(value = "单据类型")
+	private String documentType;
+
+	/**
+	 * 首款应收
+	 */
+	@ApiModelProperty(value = "首款应收")
+	private BigDecimal firstAccountsReceivable;
+	/**
+	 * 首款应付
+	 */
+	@ApiModelProperty(value = "首款应付")
+	private BigDecimal firstPaymentPayable;
+
+	/**
+	 * 首款实收
+	 */
+	@ApiModelProperty(value = "首款实收")
+	private BigDecimal firstPaidInPayment;
+	/**
+	 * 首款实收时间
+	 */
+	@ApiModelProperty(value = "首款实收时间")
+	private Date firstPaidInPaymentDate;
+	/**
+	 * 首款实付
+	 */
+	@ApiModelProperty(value = "首款实付")
+	private BigDecimal firstActualPayment;
+	/**
+	 * 首款实付时间
+	 */
+	@ApiModelProperty(value = "首款实付时间")
+	private Date firstActualPaymentDate;
+
+	/**
+	 * 尾款应收
+	 */
+	@ApiModelProperty(value = "尾款应收")
+	private BigDecimal finalPaymentReceivable;
+	/**
+	 * 尾款应付
+	 */
+	@ApiModelProperty(value = "尾款应付")
+	private BigDecimal finalPaymentPayable;
+
+	/**
+	 * 尾款实收
+	 */
+	@ApiModelProperty(value = "尾款实收")
+	private BigDecimal finalPaymentReceived;
+	/**
+	 * 尾款实收时间
+	 */
+	@ApiModelProperty(value = "尾款实收时间")
+	private Date finalPaymentReceivedDate;
+	/**
+	 * 尾款实付
+	 */
+	@ApiModelProperty(value = "尾款实付")
+	private BigDecimal finalPaymentInFull;
+	/**
+	 * 尾款实付时间
+	 */
+	@ApiModelProperty(value = "尾款实付时间")
+	private Date finalPaymentInFullDate;
+
 
 }

+ 23 - 0
blade-service/blade-client/src/main/java/org/springblade/client/message/controller/MessageController.java

@@ -179,5 +179,28 @@ public class MessageController extends BladeController {
 		return R.success("操作成功");
 	}
 
+	/**
+	 * 新增
+	 */
+	@PostMapping("/saveList")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入message")
+	public R saveList(@Valid @RequestBody List<Message> messageList) {
+		for (Message message :messageList){
+			if (message.getUserId() == null) {
+				message.setUserId(AuthUtil.getUserId());
+			}
+			if (StringUtils.isBlank(message.getUserName())) {
+				message.setUserName(AuthUtil.getUserName());
+			}
+			if (ObjectUtils.isNull(message.getTenantId())){
+				message.setTenantId(AuthUtil.getTenantId());
+			}
+			message.setCreateTime(new Date());
+			message.setCreateUser(AuthUtil.getUserId());
+		}
+		return R.status(messageService.saveBatch(messageList));
+	}
+
 
 }

+ 11 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/units/controller/BUnitsController.java

@@ -112,6 +112,17 @@ public class BUnitsController extends BladeController {
 	}
 
 	/**
+	 * 基础资料-计量单位
+	 */
+	@GetMapping("/selectList")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入bUnits")
+	public R<List<BUnits>> selectList(BUnits bUnits) {
+		List<BUnits> pages = bUnitsService.selectListV1(bUnits);
+		return R.data(pages);
+	}
+
+	/**
 	 * 新增 基础资料-计量单位
 	 */
 	@PostMapping("/save")

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/units/service/IBUnitsService.java

@@ -65,4 +65,6 @@ public interface IBUnitsService extends IService<BUnits> {
 	 * @return
 	 */
 	List<BUnits> selectList(BUnits bUnits);
+
+	List<BUnits> selectListV1(BUnits bUnits);
 }

+ 35 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/units/service/impl/BUnitsServiceImpl.java

@@ -37,6 +37,7 @@ import org.springblade.los.excel.BUnitsExcel;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -162,4 +163,38 @@ public class BUnitsServiceImpl extends ServiceImpl<UnitsMapper, BUnits> implemen
 		return list;
 	}
 
+	@Override
+	public List<BUnits> selectListV1(BUnits bUnits) {
+		List<BUnits> list = new ArrayList<>();
+		List<BUnits> bUnitsList = baseMapper.selectList(new LambdaQueryWrapper<BUnits>()
+			.eq(BUnits::getTenantId, AuthUtil.getTenantId())
+			.eq(BUnits::getIsDeleted, 0)
+			.eq(BUnits::getStatus, 0));
+		if (!bUnitsList.isEmpty()){
+			list.addAll(bUnitsList);
+		}
+		Bills bills = billsMapper.selectById(bUnits.getSrcBillId());
+		List<PreContainers> preContainersList = new ArrayList<>();
+		if (bills != null) {
+			preContainersList = preContainersMapper.selectList(new LambdaQueryWrapper<PreContainers>()
+				.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+				.eq(PreContainers::getIsDeleted, 0)
+				.eq(PreContainers::getPid, bills.getId()));
+		}
+
+		if (!preContainersList.isEmpty()) {
+			for (PreContainers item:preContainersList){
+				BUnits units = new BUnits();
+				units.setId(item.getId());
+				units.setCode(item.getCntrTypeCode());
+				units.setCnName(item.getCntrTypeCode());
+				units.setEnName(item.getCntrTypeCode());
+				units.setQuantityRule("1");
+				units.setQuantity(new BigDecimal(item.getQuantity()));
+				list.add(units);
+			}
+		}
+		return list;
+	}
+
 }

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

@@ -229,19 +229,21 @@ public class AuditProecessController extends BladeController {
 		}
 		if ("HYCK-DJ".equals(proecess.getCheckType()) || "HYJK-DJ".equals(proecess.getCheckType())) {
 			auditProecessService.losBillsCheck(auditProecess);
-		}else if ("KYCK-DJ".equals(proecess.getCheckType()) || "KYJK-DJ".equals(proecess.getCheckType())) {
+		} else if ("KYCK-DJ".equals(proecess.getCheckType()) || "KYJK-DJ".equals(proecess.getCheckType())) {
 			auditProecessService.losAeBillsCheck(auditProecess);
-		}else if ("BGSE".equals(proecess.getCheckType()) || "BGSI".equals(proecess.getCheckType()) ||
+		} else if ("BGSE".equals(proecess.getCheckType()) || "BGSI".equals(proecess.getCheckType()) ||
 			"BGAE".equals(proecess.getCheckType()) || "BGAI".equals(proecess.getCheckType())) {
 			auditProecessService.losCustomsDeclarationCheck(auditProecess);
 		} else if ("HYCK-FFSQ".equals(proecess.getCheckType())) {
 			auditProecessService.losStlBillsCheck(auditProecess);
-		}else if ("HYCK-FPSQ".equals(proecess.getCheckType())) {
+		} else if ("HYCK-FPSQ".equals(proecess.getCheckType())) {
 			auditProecessService.losFinInvoicesCheck(auditProecess);
-		}else if ("sea-approve".equals(proecess.getCheckType()) || "sia-approve".equals(proecess.getCheckType())||
+		} else if ("sea-approve".equals(proecess.getCheckType()) || "sia-approve".equals(proecess.getCheckType()) ||
 			"aea-approve".equals(proecess.getCheckType()) || "aia-approve".equals(proecess.getCheckType())) {
 			auditProecessService.amendsCheck(auditProecess);
-		}else if ("MYDL".equals(proecess.getCheckType())) {
+		} else if ("MYDL".equals(proecess.getCheckType()) || "FFSQ-SK".equals(proecess.getCheckType())
+			|| "FFSQ-WK".equals(proecess.getCheckType())|| "YSQR-SK".equals(proecess.getCheckType())
+			|| "YSQR-WK".equals(proecess.getCheckType())) {
 			auditProecessService.agentCheck(auditProecess);
 		}
 		return R.data(auditProecess);

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/check/mapper/AuditProecessMapper.java

@@ -44,4 +44,6 @@ public interface AuditProecessMapper extends BaseMapper<LosAuditProecess> {
 	void deteleByBillId(@Param("billId") Long billId);
 
 	void deteleByBillIdOrGrade(@Param("billId") Long billId, @Param("times") Integer times);
+
+	void deteleByBillIdAndType(@Param("billId")Long billId, @Param("paidApplication")String paidApplication);
 }

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/check/mapper/AuditProecessMapper.xml

@@ -30,6 +30,9 @@
     <delete id="deteleByBillIdOrGrade">
         delete from los_audit_proecess where bill_id = #{billId} and times = #{times}
     </delete>
+    <delete id="deteleByBillIdAndType">
+        delete from los_audit_proecess where bill_id = #{billId} and paid_application = #{paidApplication}
+    </delete>
 
     <select id="selectAuditProecessPage" resultMap="auditProecessResultMap">
         select * from los_audit_proecess where is_deleted = 0

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

@@ -68,4 +68,6 @@ public interface IAuditProecessService extends IService<LosAuditProecess> {
 	void losCustomsDeclarationCheck(LosAuditProecess auditProecess);
 
 	void agentCheck(LosAuditProecess auditProecess);
+
+	R deteleByBillIdAndType(Long id, String paidApplication);
 }

+ 86 - 12
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -81,8 +81,6 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.lang.reflect.Field;
 import java.math.BigDecimal;
-import java.math.MathContext;
-import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
@@ -1468,7 +1466,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 		bCurrencyC.setCode("USD");
 		bCurrencyC.setType("1");
 		BCurrency currencyC = bCurrencyService.getExrateDetails(bCurrencyC);
-		if (currencyC != null){
+		if (currencyC != null) {
 			rateC = currencyC.getExrate();
 		}
 		/*BigDecimal rateCRmb = new BigDecimal("0.00");
@@ -1485,7 +1483,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 		bCurrencyD.setCode("USD");
 		bCurrencyD.setType("1");
 		BCurrency currencyD = bCurrencyService.getExrateDetails(bCurrencyD);
-		if (currencyD != null){
+		if (currencyD != null) {
 			rateD = currencyD.getExrate();
 		}
 		/*BigDecimal rateDRmb = new BigDecimal("0.00");
@@ -2616,16 +2614,16 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 		BigDecimal amountDrUSD = new BigDecimal("0.00");
 		BigDecimal amountCrUSD = new BigDecimal("0.00");
 		amountDrCNY = amountDrCNY.add(finVouchersItemsList.stream().filter(e -> "CNY".equals(e.getCurCode())
-				&& "D".equals(e.getDc())).map(FinVouchersItems::getAmountDr).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			&& "D".equals(e.getDc())).map(FinVouchersItems::getAmountDr).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		finVouchers.setAmountDr(amountDrCNY);
 		amountCrCNY = amountCrCNY.add(finVouchersItemsList.stream().filter(e -> "CNY".equals(e.getCurCode())
-				&& "C".equals(e.getDc())).map(FinVouchersItems::getAmountCr).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			&& "C".equals(e.getDc())).map(FinVouchersItems::getAmountCr).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		finVouchers.setAmountCr(amountCrCNY);
 		amountDrUSD = amountDrUSD.add(finVouchersItemsList.stream().filter(e -> "USD".equals(e.getCurCode())
-					&& "D".equals(e.getDc())).map(FinVouchersItems::getAmountDrUsd).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			&& "D".equals(e.getDc())).map(FinVouchersItems::getAmountDrUsd).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		finVouchers.setAmountDrUsd(amountDrUSD);
 		amountCrUSD = amountCrUSD.add(finVouchersItemsList.stream().filter(e -> "USD".equals(e.getCurCode())
-					&& "C".equals(e.getDc())).map(FinVouchersItems::getAmountCrUsd).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+			&& "C".equals(e.getDc())).map(FinVouchersItems::getAmountCrUsd).filter(ObjectUtils::isNotNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 		finVouchers.setAmountCrUsd(amountCrUSD);
 		finVouchers.setAmountDrLoc(amountDrCNY.add(bCurrencyService.converterCny("USD", amountDrUSD, "D", "1")));
 		finVouchers.setAmountCrLoc(amountCrCNY.add(bCurrencyService.converterCny("USD", amountCrUSD, "C", "1")));
@@ -3248,7 +3246,13 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 					if (detail == null) {
 						throw new SecurityException("审批通过失败");
 					}
-					detail.setBusinessStatus("审核中");
+					if ("FFSQ-SK".equals(auditProecess.getPaidApplication())) {
+						detail.setFirstStatus("审核中");
+					} else if ("FFSQ-WK".equals(auditProecess.getPaidApplication())) {
+						detail.setFinalStatus("审核中");
+					} else {
+						detail.setBusinessStatus("审核中");
+					}
 					int count = agentMapper.updateById(detail);
 					if (count == 0) {
 						throw new SecurityException("审批开始修改审核状态失败");
@@ -3299,6 +3303,26 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 						+ "单据日期:" + billsDate + ",请审核。"
 						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
 					);
+				} else if ("贸易代理首款付费申请".equals(auditProecess.getProcessType())) {
+					message.setMessageBody("您有新的贸易代理首款付费申请,业务单号:" + proecessTemp.getBillNo() + ","
+						+ "单据日期:" + billsDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				} else if ("贸易代理尾款付费申请".equals(auditProecess.getProcessType())) {
+					message.setMessageBody("您有新的贸易代理尾款付费申请,业务单号:" + proecessTemp.getBillNo() + ","
+						+ "单据日期:" + billsDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				}else if ("贸易代理首款应收确认".equals(auditProecess.getProcessType())) {
+					message.setMessageBody("您有新的贸易代理首款应收待确认,业务单号:" + proecessTemp.getBillNo() + ","
+						+ "单据日期:" + billsDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
+				}else if ("贸易代理尾款应收确认".equals(auditProecess.getProcessType())) {
+					message.setMessageBody("您有新的贸易代理尾款应收待确认,业务单号:" + proecessTemp.getBillNo() + ","
+						+ "单据日期:" + billsDate + ",请审核。"
+						+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
+					);
 				}
 				message.setUrl(auditProecess.getUrl());
 				message.setPageLabel(auditProecess.getPageLabel());
@@ -3316,13 +3340,27 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				if (detail == null) {
 					throw new SecurityException("审批通过失败");
 				}
-				detail.setBusinessStatus("审核驳回");
+				if ("FFSQ-SK".equals(auditProecess.getPaidApplication())) {
+					detail.setFirstStatus("录入");
+				} else if ("FFSQ-WK".equals(auditProecess.getPaidApplication())) {
+					detail.setFinalStatus("录入");
+				} else {
+					detail.setBusinessStatus("录入");
+				}
 				int count = agentMapper.updateById(detail);
 				if (count == 0) {
 					throw new SecurityException("修改订单数据失败");
 				}
 				if ("贸易代理单据审核".equals(auditProecess.getProcessType())) {
 					sendMessage.setMessageBody("您的贸易代理审核未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("贸易代理首款付费申请".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理首款付费申请未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("贸易代理尾款付费申请".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理尾款付费申请未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}else if ("贸易代理首款应收确认".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理首款应收确认未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}else if ("贸易代理尾款应收确认".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理尾款应收确认未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
@@ -3340,13 +3378,29 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				if (detail == null) {
 					throw new SecurityException("审批通过失败");
 				}
-				detail.setBusinessStatus("审核通过");
+				if ("FFSQ-SK".equals(auditProecess.getPaidApplication())) {
+					detail.setFirstStatus("审核通过");
+
+				} else if ("FFSQ-WK".equals(auditProecess.getPaidApplication())) {
+					detail.setFinalStatus("审核通过");
+
+				} else {
+					detail.setBusinessStatus("审核通过");
+				}
 				int count = agentMapper.updateById(detail);
 				if (count == 0) {
 					throw new SecurityException("修改订单数据失败");
 				}
 				if ("贸易代理单据审核".equals(auditProecess.getProcessType())) {
 					sendMessage.setMessageBody("您的贸易代理审核已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("贸易代理首款付费申请".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理首款付费申请已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("贸易代理尾款付费申请".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理尾款付费申请已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}else if ("贸易代理首款应收确认".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理首款应收确认已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}else if ("贸易代理尾款应收确认".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理尾款应收确认已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
@@ -3361,13 +3415,27 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				if (detail == null) {
 					throw new SecurityException("审批通过失败");
 				}
-				detail.setBusinessStatus("审核驳回");
+				if ("FFSQ-SK".equals(auditProecess.getPaidApplication())) {
+					detail.setFirstStatus("录入");
+				} else if ("FFSQ-WK".equals(auditProecess.getPaidApplication())) {
+					detail.setFinalStatus("录入");
+				} else {
+					detail.setBusinessStatus("录入");
+				}
 				int count = agentMapper.updateById(detail);
 				if (count == 0) {
 					throw new SecurityException("修改订单数据失败");
 				}
 				if ("贸易代理单据审核".equals(auditProecess.getProcessType())) {
 					sendMessage.setMessageBody("您的贸易代理审核未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("贸易代理首款付费申请".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理首款付费申请未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				} else if ("贸易代理尾款付费申请".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理尾款付费申请未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}else if ("贸易代理首款应收确认".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理首款应收确认未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				}else if ("贸易代理尾款应收确认".equals(auditProecess.getProcessType())) {
+					sendMessage.setMessageBody("您的贸易代理尾款应收确认未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				}
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
@@ -3387,6 +3455,12 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 	}
 
 	@Override
+	public R deteleByBillIdAndType(Long billId, String paidApplication) {
+		baseMapper.deteleByBillIdAndType(billId, paidApplication);
+		return R.data("操作成功");
+	}
+
+	@Override
 	public R deteleByBillId(Long billId) {
 		baseMapper.deteleByBillId(billId);
 		return R.data("操作成功");

+ 22 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FeeCenterController.java

@@ -186,6 +186,28 @@ public class FeeCenterController extends BladeController {
 		return feeCenterService.submitList(feeCenter);
 	}
 
+	/**
+	 * 新增或修改 物流-费用中心-所有业务费用集中在该表中
+	 */
+	@PostMapping("/submitTrade")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入feeCenter")
+	@RepeatSubmit
+	public R submitTrade(@Valid @RequestBody FeeCenter feeCenter) {
+		return feeCenterService.submitTrade(feeCenter);
+	}
+
+	/**
+	 * 新增或修改 物流-费用中心-所有业务费用集中在该表中(批量)
+	 */
+	@PostMapping("/submitListTrade")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入feeCenter")
+	@RepeatSubmit
+	public R submitListTrade(@Valid @RequestBody List<FeeCenter> feeCenter) {
+		return feeCenterService.submitListTrade(feeCenter);
+	}
+
 
 	/**
 	 * 删除 物流-费用中心-所有业务费用集中在该表中

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/IFeeCenterService.java

@@ -78,4 +78,8 @@ public interface IFeeCenterService extends IService<FeeCenter> {
 	 * @return
 	 */
 	List<BCorps> getFeeCenterCorpIds(Long billId,String dc,String type);
+
+	R submitTrade(FeeCenter feeCenter);
+
+	R submitListTrade(List<FeeCenter> feeCenter);
 }

+ 80 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -90,6 +90,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submit(FeeCenter feeCenter) {
 		String deptId = "";
 		String deptName = "";
@@ -510,6 +512,8 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public R submitList(List<FeeCenter> list) {
 		String deptId = "";
 		String deptName = "";
@@ -974,4 +978,80 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R submitTrade(FeeCenter feeCenter) {
+		String deptId = "";
+		String deptName = "";
+		String branchId = deptUtils.getDeptPid() + "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(deptUtils.getDeptPid() + "")) {
+			deptId = AuthUtil.getDeptId();
+			R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = String.join(",", res.getData());
+			}
+		}
+		if (feeCenter.getId() == null) {
+			feeCenter.setCreateTime(new Date());
+			feeCenter.setCreateUser(AuthUtil.getUserId());
+			feeCenter.setCreateUserName(AuthUtil.getUserName());
+			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+				feeCenter.setCreateDept(deptId);
+				feeCenter.setBranchId(branchId);
+				feeCenter.setCreateDeptName(deptName);
+			}
+		} else {
+			feeCenter.setUpdateUser(AuthUtil.getUserId());
+			feeCenter.setUpdateTime(new Date());
+			feeCenter.setUpdateUserName(AuthUtil.getUserName());
+		}
+		feeCenter.setUnsettledAmount(feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()));
+		this.saveOrUpdate(feeCenter);
+		return R.data(feeCenter);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R submitListTrade(List<FeeCenter> list) {
+		String deptId = "";
+		String deptName = "";
+		String branchId = deptUtils.getDeptPid() + "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+			deptId = AuthUtil.getDeptId();
+			R<List<String>> res = sysClient.getDeptNames(AuthUtil.getDeptId());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = String.join(",", res.getData());
+			}
+		}
+		List<FeeCenter> feeCenterList = new ArrayList<>();
+		if (ObjectUtils.isNotNull(list) && !list.isEmpty()) {
+			for (FeeCenter feeCenter : list) {
+				if (feeCenter.getId() == null) {
+					feeCenter.setCreateTime(new Date());
+					feeCenter.setCreateUser(AuthUtil.getUserId());
+					feeCenter.setCreateUserName(AuthUtil.getUserName());
+					if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+						feeCenter.setCreateDept(deptId);
+						feeCenter.setBranchId(branchId);
+						feeCenter.setCreateDeptName(deptName);
+					}
+				} else {
+					feeCenter.setUpdateUser(AuthUtil.getUserId());
+					feeCenter.setUpdateTime(new Date());
+					feeCenter.setUpdateUserName(AuthUtil.getUserName());
+				}
+				feeCenter.setUnsettledAmount(feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()));
+				feeCenterList.add(feeCenter);
+			}
+			this.saveOrUpdateBatch(feeCenterList);
+		} else {
+			R.fail("请选择明细");
+		}
+		return R.data(feeCenterList);
+	}
+
 }

+ 44 - 3
blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentController.java

@@ -87,7 +87,7 @@ public class AgentController extends BladeController {
 			lambdaQueryWrapper.gt(Agent::getBusinessDate, agent.getBusinessDateList().get(0));
 			lambdaQueryWrapper.lt(Agent::getBusinessDate, agent.getBusinessDateList().get(1));
 		}
-		IPage<Agent> pages = agentService.page(Condition.getPage(query), Condition.getQueryWrapper(agent));
+		IPage<Agent> pages = agentService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}
 
@@ -173,7 +173,7 @@ public class AgentController extends BladeController {
 	}
 
 	/**
-	 * 生成首付款账单
+	 * 生成首付款费用应收
 	 */
 	@PostMapping("/generateDownPaymentBill")
 	@RepeatSubmit
@@ -183,7 +183,7 @@ public class AgentController extends BladeController {
 	}
 
 	/**
-	 * 生成尾款账单
+	 * 生成尾款费用应收
 	 */
 	@PostMapping("/generateBalancePaymentBill")
 	@RepeatSubmit
@@ -193,6 +193,27 @@ public class AgentController extends BladeController {
 	}
 
 	/**
+	 * 生成账单
+	 */
+	@PostMapping("/generateBill")
+	@RepeatSubmit
+	public R generateBill(@RequestBody Agent agent) {
+		Agent declare = agentService.generateBill(agent);
+		return R.data(declare);
+	}
+
+	/**
+	 * 撤销账单
+	 */
+	@PostMapping("/revokeBill")
+	@RepeatSubmit
+	public R revokeBill(@RequestBody Agent agent) {
+		Agent declare = agentService.revokeBill(agent);
+		return R.data(declare);
+	}
+
+
+	/**
 	 * 确认收款
 	 */
 	@PostMapping("/confirmCollectionOfPayments")
@@ -213,6 +234,16 @@ public class AgentController extends BladeController {
 	}
 
 	/**
+	 * 撤销申请付款
+	 */
+	@PostMapping("/revokeApplyForPayment")
+	@RepeatSubmit
+	public R revokeApplyForPayment(@RequestBody Agent agent) {
+		Agent declare = agentService.revokeApplyForPayment(agent);
+		return R.data(declare);
+	}
+
+	/**
 	 * 确认付款
 	 */
 	@PostMapping("/confirmThePayment")
@@ -223,6 +254,16 @@ public class AgentController extends BladeController {
 	}
 
 	/**
+	 * 首款/尾款应收待确认通知
+	 */
+	@PostMapping("/confirmationNotification")
+	@RepeatSubmit
+	public R confirmationNotification(@RequestBody Agent agent) {
+		Agent declare = agentService.confirmationNotification(agent);
+		return R.data(declare);
+	}
+
+	/**
 	 * 生成货代
 	 */
 	@PostMapping("/generateFreightForwarder")

+ 13 - 1
blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentItemsController.java

@@ -35,6 +35,8 @@ import org.springblade.los.trade.vo.AgentItemsVO;
 import org.springblade.los.trade.service.IAgentItemsService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.List;
+
 /**
  * 贸易代理明细表 控制器
  *
@@ -109,7 +111,17 @@ public class AgentItemsController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入agentItems")
 	public R submit(@Valid @RequestBody AgentItems agentItems) {
-		return R.status(agentItemsService.saveOrUpdate(agentItems));
+		return agentItemsService.submit(agentItems);
+	}
+
+	/**
+	 * 新增或修改 贸易代理明细表-批量
+	 */
+	@PostMapping("/submitList")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入agentItems")
+	public R submitList(@Valid @RequestBody List<AgentItems> agentItems) {
+		return agentItemsService.submitList(agentItems);
 	}
 
 

+ 15 - 5
blade-service/blade-los/src/main/java/org/springblade/los/trade/controller/AgentViewController.java

@@ -91,15 +91,15 @@ public class AgentViewController extends BladeController {
 			.like(ObjectUtils.isNotNull(agentView.getOrderNo()), AgentView::getOrderNo, agentView.getOrderNo())
 			.like(ObjectUtils.isNotNull(agentView.getBoxNo()), AgentView::getBoxNo, agentView.getBoxNo())
 			.like(ObjectUtils.isNotNull(agentView.getInvoiceNo()), AgentView::getInvoiceNo, agentView.getInvoiceNo());
-		if (!agentView.getEtdList().isEmpty()) {
+		if (ObjectUtils.isNotNull(agentView.getEtdList()) && !agentView.getEtdList().isEmpty()) {
 			lambdaQueryWrapper.gt(AgentView::getEtd, agentView.getEtdList().get(0));
 			lambdaQueryWrapper.lt(AgentView::getEtd, agentView.getEtdList().get(1));
 		}
-		if (!agentView.getEstimateReachHarborList().isEmpty()) {
+		if (ObjectUtils.isNotNull(agentView.getEstimateReachHarborList()) && !agentView.getEstimateReachHarborList().isEmpty()) {
 			lambdaQueryWrapper.gt(AgentView::getEstimateReachHarbor, agentView.getEstimateReachHarborList().get(0));
 			lambdaQueryWrapper.lt(AgentView::getEstimateReachHarbor, agentView.getEstimateReachHarborList().get(1));
 		}
-		if (!agentView.getActualReachHarborList().isEmpty()) {
+		if (ObjectUtils.isNotNull(agentView.getActualReachHarborList()) && !agentView.getActualReachHarborList().isEmpty()) {
 			lambdaQueryWrapper.gt(AgentView::getActualReachHarbor, agentView.getActualReachHarborList().get(0));
 			lambdaQueryWrapper.lt(AgentView::getActualReachHarbor, agentView.getActualReachHarborList().get(1));
 		}
@@ -115,8 +115,18 @@ public class AgentViewController extends BladeController {
 						item.setGoodsValue(null);
 						item.setAdvanceRatio(null);
 						item.setPrepaidAmount(null);
-						item.setDownPaymentsNetReceipts(null);
-						item.setBalancePaymentNetReceipts(null);
+						item.setFirstAccountsReceivable(null);
+						item.setFirstPaymentPayable(null);
+						item.setFirstPaidInPayment(null);
+						item.setFirstPaidInPaymentDate(null);
+						item.setFirstActualPayment(null);
+						item.setFirstActualPaymentDate(null);
+						item.setFinalPaymentReceivable(null);
+						item.setFinalPaymentPayable(null);
+						item.setFinalPaymentReceived(null);
+						item.setFinalPaymentReceivedDate(null);
+						item.setFinalPaymentInFull(null);
+						item.setFinalPaymentInFullDate(null);
 					}
 				}
 				pageList.add(item);

+ 0 - 2
blade-service/blade-los/src/main/java/org/springblade/los/trade/mapper/AgentViewMapper.xml

@@ -18,8 +18,6 @@
         <result column="sum_amount" property="sumAmount"/>
         <result column="advance_ratio" property="advanceRatio"/>
         <result column="prepaid_amount" property="prepaidAmount"/>
-        <result column="down_payments_net_receipts" property="downPaymentsNetReceipts"/>
-        <result column="balance_payment_net_receipts" property="balancePaymentNetReceipts"/>
         <result column="country" property="country"/>
         <result column="pol_id" property="polId"/>
         <result column="pol_code" property="polCode"/>

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/IAgentItemsService.java

@@ -16,11 +16,14 @@
  */
 package org.springblade.los.trade.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.los.trade.entity.AgentItems;
 import org.springblade.los.trade.vo.AgentItemsVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 贸易代理明细表 服务类
  *
@@ -38,4 +41,7 @@ public interface IAgentItemsService extends IService<AgentItems> {
 	 */
 	IPage<AgentItemsVO> selectAgentItemsPage(IPage<AgentItemsVO> page, AgentItemsVO agentItems);
 
+    R submit(AgentItems agentItems);
+
+	R submitList(List<AgentItems> agentItems);
 }

+ 8 - 0
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/IAgentService.java

@@ -60,4 +60,12 @@ public interface IAgentService extends IService<Agent> {
 	Agent confirmThePayment(Agent agent);
 
 	Agent generateFreightForwarder(Agent agent);
+
+	Agent generateBill(Agent agent);
+
+	Agent revokeBill(Agent agent);
+
+	Agent revokeApplyForPayment(Agent agent);
+
+	Agent confirmationNotification(Agent agent);
 }

+ 84 - 3
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentItemsServiceImpl.java

@@ -16,13 +16,25 @@
  */
 package org.springblade.los.trade.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.los.Util.IDeptUtils;
 import org.springblade.los.trade.entity.AgentItems;
-import org.springblade.los.trade.vo.AgentItemsVO;
 import org.springblade.los.trade.mapper.AgentItemsMapper;
 import org.springblade.los.trade.service.IAgentItemsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.los.trade.vo.AgentItemsVO;
+import org.springblade.system.entity.Dept;
+import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
 
 /**
  * 贸易代理明细表 服务实现类
@@ -31,11 +43,80 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
  * @since 2024-07-12
  */
 @Service
+@AllArgsConstructor
 public class AgentItemsServiceImpl extends ServiceImpl<AgentItemsMapper, AgentItems> implements IAgentItemsService {
 
+	private final ISysClient sysClient;
+
+	private final IDeptUtils deptUtils;
+
 	@Override
 	public IPage<AgentItemsVO> selectAgentItemsPage(IPage<AgentItemsVO> page, AgentItemsVO agentItems) {
 		return page.setRecords(baseMapper.selectAgentItemsPage(page, agentItems));
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R submit(AgentItems agentItems) {
+		Long deptId = 0L;
+		String deptName = "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(deptUtils.getDeptPid())) {
+			deptId = deptUtils.getDeptPid();
+			R<Dept> res = sysClient.getDept(deptUtils.getDeptPid());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = res.getData().getDeptName();
+			}
+		}
+		if (agentItems.getId() == null) {
+			agentItems.setCreateTime(new Date());
+			agentItems.setCreateUser(AuthUtil.getUserId());
+			agentItems.setCreateUserName(AuthUtil.getUserName());
+			if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+				agentItems.setCreateDept(deptId);
+				agentItems.setCreateDeptName(deptName);
+			}
+		} else {
+			agentItems.setUpdateUser(AuthUtil.getUserId());
+			agentItems.setUpdateTime(new Date());
+			agentItems.setUpdateUserName(AuthUtil.getUserName());
+		}
+		this.saveOrUpdate(agentItems);
+		return R.data(agentItems);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public R submitList(List<AgentItems> list) {
+		Long deptId = 0L;
+		String deptName = "";
+		//获取部门ids对应中文名
+		if (ObjectUtils.isNotNull(deptUtils.getDeptPid())) {
+			deptId = deptUtils.getDeptPid();
+			R<Dept> res = sysClient.getDept(deptUtils.getDeptPid());
+			if (res.isSuccess() && ObjectUtils.isNotNull(res.getData())) {
+				deptName = res.getData().getDeptName();
+			}
+		}
+		for (AgentItems agentItems : list) {
+			if (agentItems.getId() == null) {
+				agentItems.setCreateTime(new Date());
+				agentItems.setCreateUser(AuthUtil.getUserId());
+				agentItems.setCreateUserName(AuthUtil.getUserName());
+				if (ObjectUtils.isNotNull(AuthUtil.getDeptId())) {
+					agentItems.setCreateDept(deptId);
+					agentItems.setCreateDeptName(deptName);
+				}
+			} else {
+				agentItems.setUpdateUser(AuthUtil.getUserId());
+				agentItems.setUpdateTime(new Date());
+				agentItems.setUpdateUserName(AuthUtil.getUserName());
+			}
+		}
+		this.saveOrUpdateBatch(list);
+		return R.data(list);
+	}
+
 }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 913 - 89
blade-service/blade-los/src/main/java/org/springblade/los/trade/service/impl/AgentServiceImpl.java


+ 1 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/stock/controller/StockDescController.java

@@ -101,7 +101,7 @@ public class StockDescController extends BladeController {
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getBrandId()), PjStockDesc::getBrandId, stockDesc.getBrandId())
 			.eq(ObjectUtil.isNotEmpty(stockDesc.getGoodsTypeId()), PjStockDesc::getGoodsTypeId, stockDesc.getGoodsTypeId())
 			.like(ObjectUtil.isNotEmpty(stockDesc.getDot()), PjStockDesc::getDot, stockDesc.getDot())
-			.orderByAsc(PjStockDesc::getCreateTime);
+			.orderByDesc(PjStockDesc::getBalanceQuantity);
 		if ("0".equals(stockDesc.getWhether())) {
 			lambdaQueryWrapper.ne(PjStockDesc::getBalanceQuantity, 0);
 		}

Vissa filer visades inte eftersom för många filer har ändrats