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}