From a48e307830f24965f76d8c6461c6eb0d9f078475 Mon Sep 17 00:00:00 2001 From: linfso Date: Tue, 11 Mar 2025 14:38:46 +0800 Subject: [PATCH] md --- .../emis/mapper/EmisCreditCustomerMapper.java | 5 ++ .../emis/mapper/EmisCreditSalesmenMapper.java | 5 ++ .../erp/emis/service/EmisBaseService.java | 66 +++++++++++++++++-- .../impl/EmisCreditCustomerServiceImpl.java | 5 ++ .../EmisCreditSalesmenRecordServiceImpl.java | 5 ++ .../service/impl/EmisWaybillServiceImpl.java | 4 ++ .../xdadan/erp/emis/utils/WaybillHelper.java | 11 ++++ .../mapper/EmisCreditCustomerMapper.xml | 6 ++ .../mapper/EmisCreditSalesmenMapper.xml | 5 ++ 9 files changed, 106 insertions(+), 6 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditCustomerMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditCustomerMapper.java index 27ff6af7c..0d0725355 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditCustomerMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditCustomerMapper.java @@ -10,9 +10,12 @@ */ package com.xdadan.erp.emis.mapper; +import java.math.BigDecimal; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xdadan.erp.emis.domain.EmisCreditCustomer; +import org.apache.ibatis.annotations.Param; + /** * @ClassName EmisCreditCustomerMapper * @Description

客户信用额度表 Mapper 接口

@@ -62,6 +65,8 @@ public interface EmisCreditCustomerMapper extends BaseMapper */ public int updateEmisCreditCustomer(EmisCreditCustomer emisCreditCustomer); + public int changeBalance(@Param("accCode") String accCode,@Param("changeMoney") BigDecimal changeMoney); + /** * 删除 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditSalesmenMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditSalesmenMapper.java index a2dc43e71..ae0b04b27 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditSalesmenMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCreditSalesmenMapper.java @@ -10,9 +10,12 @@ */ package com.xdadan.erp.emis.mapper; +import java.math.BigDecimal; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xdadan.erp.emis.domain.EmisCreditSalesmen; +import org.apache.ibatis.annotations.Param; + /** * @ClassName EmisCreditSalesmenMapper * @Description

销售信用额度 Mapper 接口

@@ -62,6 +65,8 @@ public interface EmisCreditSalesmenMapper extends BaseMapper */ public int updateEmisCreditSalesmen(EmisCreditSalesmen emisCreditSalesmen); + public int changeBalance(@Param("accCode") String accCode, @Param("changeMoney") BigDecimal changeMoney); + /** * 删除 * diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index 240f3d5a6..e454f6b67 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -58,9 +58,13 @@ public class EmisBaseService { @Autowired private EmisCreditCustomerMapper emisCreditCustomerMapper; + @Autowired + private EmisCreditCustomerRecordMapper emisCreditCustomerRecordMapper; @Autowired private EmisCreditSalesmenMapper emisCreditSalesmenMapper; + @Autowired + private EmisCreditSalesmenRecordMapper emisCreditSalesmenRecordMapper; @Autowired private ISysConfigService configService; @@ -211,10 +215,10 @@ public class EmisBaseService { } /** - * 占用下单额度 + * 新占用下单额度 * @param emisWaybill */ - public void occupyQuotaCredit(EmisWaybill emisWaybill) throws EmisBizError { + public void newUseQuotaCredit(EmisWaybill emisWaybill) throws EmisBizError { String paymentType=emisWaybill.getPaymentType(); // 月结客户 if("2".equals(paymentType) @@ -227,22 +231,72 @@ public class EmisBaseService { queryCreditCustomer.getParams().put("sendDate",emisWaybill.getSendDate()); queryCreditCustomer.setTransType(emisWaybill.getTransType()); List listCreditCustomer=emisCreditCustomerMapper.selectEmisCreditCustomerList(queryCreditCustomer); + if(!CollectionUtils.isEmpty(listCreditCustomer)){ EmisCreditCustomer item0=listCreditCustomer.get(0); if(emisWaybill.getFreight().compareTo(item0.getCurMoney()) == 1 ){ // 提示异常 throw new EmisBizError(EmisBizErrorType.FAIL, "超出信用额度"); }else{ + + // 当前余额,变动后余额,变动金额 + BigDecimal curMoney=item0.getCurMoney(); + BigDecimal backBalance=curMoney.subtract(emisWaybill.getFreight()); + BigDecimal changeMoney=BigDecimal.ZERO.subtract(emisWaybill.getFreight()); + // 扣减额度,插入扣额度数据明细 - // 重算总额度 + EmisCreditCustomerRecord itemRecord=new EmisCreditCustomerRecord(); + itemRecord.setAccCode(item0.getAccCode()); + itemRecord.setCustomerCode(item0.getCustomerCode()); + itemRecord.setBillCode(emisWaybill.getBillCode()); + itemRecord.setPreBalance(curMoney); + itemRecord.setChangeMoney(emisWaybill.getFreight()); + itemRecord.setChangeType("2"); + itemRecord.setBackBalance(backBalance); + emisCreditCustomerRecordMapper.insertEmisCreditCustomerRecord(itemRecord); + + // 更新余额 + emisCreditCustomerMapper.changeBalance(item0.getAccCode(),changeMoney); } } - }else{ + }else if("1".equals(paymentType) + || "3".equals(paymentType) + ){ // 现金额度占用 + EmisCreditSalesmen queryCreditSalesmen= new EmisCreditSalesmen(); + queryCreditSalesmen.setSalesmen(emisWaybill.getSalesmen()); + queryCreditSalesmen.getParams().put("sendDate",emisWaybill.getSendDate()); + queryCreditSalesmen.setTransType(emisWaybill.getTransType()); + List listCreditSalesmen=emisCreditSalesmenMapper.selectEmisCreditSalesmenList(queryCredit); + if(!CollectionUtils.isEmpty(listCreditSalesmen)){ + EmisCreditSalesmen item0=listCreditSalesmen.get(0); + if(emisWaybill.getFreight().compareTo(item0.getCurMoney()) == 1 ){ + // 提示异常 + throw new EmisBizError(EmisBizErrorType.FAIL, "超出信用额度"); + }else{ + + // 当前余额,变动后余额,变动金额 + BigDecimal curMoney=item0.getCurMoney(); + BigDecimal backBalance=curMoney.subtract(emisWaybill.getFreight()); + BigDecimal changeMoney=BigDecimal.ZERO.subtract(emisWaybill.getFreight()); + + // 扣减额度,插入扣额度数据明细 + EmisCreditSalesmenRecord itemRecord=new EmisCreditSalesmenRecord(); + itemRecord.setAccCode(item0.getAccCode()); + itemRecord.setSalesmen(item0.getSalesmen()); + itemRecord.setBillCode(emisWaybill.getBillCode()); + itemRecord.setPreBalance(curMoney); + itemRecord.setChangeMoney(emisWaybill.getFreight()); + itemRecord.setChangeType("2"); + itemRecord.setBackBalance(backBalance); + emisCreditSalesmenRecordMapper.insertEmisCreditSalesmenRecord(itemRecord); + + // 更新余额 + emisCreditSalesmenMapper.changeBalance(item0.getAccCode(),changeMoney); + } + } } - - } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditCustomerServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditCustomerServiceImpl.java index 593e3613e..9f4562846 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditCustomerServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditCustomerServiceImpl.java @@ -11,6 +11,8 @@ package com.xdadan.erp.emis.service.impl; import java.util.List; + +import com.xdadan.erp.emis.utils.WaybillHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xdadan.erp.emis.domain.EmisCreditCustomer; @@ -75,6 +77,9 @@ public class EmisCreditCustomerServiceImpl implements IEmisCreditCustomerService @Override public int insertEmisCreditCustomer(EmisCreditCustomer emisCreditCustomer) { + // 生成accCode + String accCode= WaybillHelper.genCreditAccCode(); + emisCreditCustomer.setAccCode(accCode); return emisCreditCustomerMapper.insertEmisCreditCustomer(emisCreditCustomer); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenRecordServiceImpl.java index 268271935..127bd22ae 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenRecordServiceImpl.java @@ -11,6 +11,8 @@ package com.xdadan.erp.emis.service.impl; import java.util.List; + +import com.xdadan.erp.emis.utils.WaybillHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xdadan.erp.emis.domain.EmisCreditSalesmenRecord; @@ -75,6 +77,9 @@ public class EmisCreditSalesmenRecordServiceImpl implements IEmisCreditSalesmenR @Override public int insertEmisCreditSalesmenRecord(EmisCreditSalesmenRecord emisCreditSalesmenRecord) { + // 生成accCode + String accCode= WaybillHelper.genCreditAccCode(); + emisCreditSalesmenRecord.setAccCode(accCode); return emisCreditSalesmenRecordMapper.insertEmisCreditSalesmenRecord(emisCreditSalesmenRecord); } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index d51b61eae..001316908 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -3010,11 +3010,15 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb calcWayBillCommonInfo(emisWaybillSave,null,true); + // 图片标识 String goodsPicsStr=emisWaybillSave.getGoodsPics(); if(!StringUtils.isEmpty(goodsPicsStr)) { emisWaybillSave.setGoodsPics("1"); } + // 新占用信用额度 + newUseQuotaCredit(emisWaybillSave); + //插入新单 emisWaybillMapper.insertEmisWaybill(emisWaybillSave); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java index c3371ab42..336df588f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/utils/WaybillHelper.java @@ -59,6 +59,17 @@ public class WaybillHelper { return payId.toString(); } + /** + * 信用账户号生成 + * @return + */ + public static String genCreditAccCode(){ + Snowflake snowflake = IdUtil.getSnowflake(0, 0); + Long payId = snowflake.nextId(); + return payId.toString(); + } + + /** * 成本号生成 * @return diff --git a/emis-biz/src/main/resources/mapper/EmisCreditCustomerMapper.xml b/emis-biz/src/main/resources/mapper/EmisCreditCustomerMapper.xml index c03eaa3d7..c09dc1918 100644 --- a/emis-biz/src/main/resources/mapper/EmisCreditCustomerMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisCreditCustomerMapper.xml @@ -201,6 +201,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + + update emis_credit_customer set cur_money = cur_money + #{changeMoney} where acc_code = #{accCode} + + + update emis_credit_customer set del_flag='1' where id = #{id} diff --git a/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml b/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml index b5c243215..daf922c2c 100644 --- a/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisCreditSalesmenMapper.xml @@ -180,6 +180,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + + update emis_credit_salesmen set cur_money = cur_money + #{changeMoney} where acc_code = #{accCode} + + update emis_credit_salesmen set del_flag='1' where id = #{id}