This commit is contained in:
linfso 2025-03-11 14:38:46 +08:00
parent 26bbfdc50e
commit a48e307830
9 changed files with 106 additions and 6 deletions

View File

@ -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 <p> 客户信用额度表 Mapper 接口 </p>
@ -62,6 +65,8 @@ public interface EmisCreditCustomerMapper extends BaseMapper<EmisCreditCustomer>
*/
public int updateEmisCreditCustomer(EmisCreditCustomer emisCreditCustomer);
public int changeBalance(@Param("accCode") String accCode,@Param("changeMoney") BigDecimal changeMoney);
/**
* 删除
*

View File

@ -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 <p> 销售信用额度 Mapper 接口 </p>
@ -62,6 +65,8 @@ public interface EmisCreditSalesmenMapper extends BaseMapper<EmisCreditSalesmen>
*/
public int updateEmisCreditSalesmen(EmisCreditSalesmen emisCreditSalesmen);
public int changeBalance(@Param("accCode") String accCode, @Param("changeMoney") BigDecimal changeMoney);
/**
* 删除
*

View File

@ -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<EmisCreditCustomer> 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<EmisCreditSalesmen> 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);
}
}
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -201,6 +201,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
</update>
<update id="changeBalance" >
update emis_credit_customer set cur_money = cur_money + #{changeMoney} where acc_code = #{accCode}
</update>
<delete id="deleteEmisCreditCustomerById" parameterType="Long">
update emis_credit_customer set del_flag='1' where id = #{id}
</delete>

View File

@ -180,6 +180,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
</update>
<update id="changeBalance" >
update emis_credit_salesmen set cur_money = cur_money + #{changeMoney} where acc_code = #{accCode}
</update>
<delete id="deleteEmisCreditSalesmenById" parameterType="Long">
update emis_credit_salesmen set del_flag='1' where id = #{id}
</delete>