This commit is contained in:
linfso 2024-06-17 16:53:38 +08:00
parent c677363714
commit 5156fccac7
9 changed files with 195 additions and 5 deletions

View File

@ -13,6 +13,8 @@ package com.xdadan.erp.web.emis;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.collection.CollectionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
@ -134,4 +136,43 @@ public class EmisSitePrepaidRechargeController extends EmisBaseController
{
return toAjax(emisSitePrepaidRechargeService.deleteEmisSitePrepaidRechargeByIds(ids));
}
/**
* 审核通过
*/
@PreAuthorize("@ss.hasPermi('emis:emisSitePrepaidRecharge:pass')")
@Log(title = "审核通过", businessType = BusinessType.UPDATE)
@PostMapping("/auditPass/{ids}")
public AjaxResult auditPass(@PathVariable Long[] ids)
{
if(ids!=null && ids.length>0){
for(int i=0;i<ids.length;i++){
long id=ids[i];
EmisSitePrepaidRecharge emisSitePrepaidRecharge = new EmisSitePrepaidRecharge();
emisSitePrepaidRecharge.setId(id);
emisSitePrepaidRechargeService.auditPass(emisSitePrepaidRecharge);
}
}
return AjaxResult.success("操作成功");
}
/**
* 审核通过
*/
@PreAuthorize("@ss.hasPermi('emis:emisSitePrepaidRecharge:nopass')")
@Log(title = "审核不通过", businessType = BusinessType.UPDATE)
@PostMapping("/auditNoPass/{ids}")
public AjaxResult auditPass(@PathVariable Long[] ids,String remark)
{
if(ids!=null && ids.length>0){
for(int i=0;i<ids.length;i++){
long id=ids[i];
EmisSitePrepaidRecharge emisSitePrepaidRecharge = new EmisSitePrepaidRecharge();
emisSitePrepaidRecharge.setId(id);
emisSitePrepaidRecharge.setAuditDesc(remark);
emisSitePrepaidRechargeService.auditNoPass(emisSitePrepaidRecharge);
}
}
return AjaxResult.success("操作成功");
}
}

View File

@ -39,7 +39,7 @@ public class EmisSiteSettleRecord extends BaseEntity
private String accCode;
/* 运单号 */
private String billCode;
/* 结算类型:应收 应付 */
/* 结算类型:1-应收 2-应付 */
private String recPayType;
/* 结算类型: 充值等 */
private String settleType;

View File

@ -83,4 +83,13 @@ public interface EmisSiteAccountMapper extends BaseMapper<EmisSiteAccount>
* @return
*/
public String getHasAddSite();
/**
* 调整账户余额
*
* @param emisSiteAccount
* @return
*/
public int updateSiteAccountBalance(EmisSiteAccount emisSiteAccount);
}

View File

@ -77,4 +77,12 @@ public interface EmisSitePrepaidRechargeMapper extends BaseMapper<EmisSitePrepai
* @return 结果
*/
public int deleteEmisSitePrepaidRechargeByIds(Long[] ids);
public int auditPass(EmisSitePrepaidRecharge emisSitePrepaidRecharge);
public int auditNoPass(EmisSitePrepaidRecharge emisSitePrepaidRecharge);
}

View File

@ -24,6 +24,7 @@ package com.xdadan.erp.emis.service;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.domain.entity.SysUser;
import com.xdadan.erp.common.core.redis.RedissonService;
import com.xdadan.erp.common.utils.DateUtils;
import com.xdadan.erp.common.utils.DictUtils;
import com.xdadan.erp.common.utils.HTTPHelper;
@ -147,6 +148,14 @@ public class EmisBaseService {
@Autowired
private AliyunSMSService aliyunSMSService;
@Autowired
private EmisSiteSettleRecordMapper emisSiteSettleRecordMapper;
@Autowired
RedissonService redissonService;
/**
@ -544,6 +553,66 @@ public class EmisBaseService {
}
/**
* 增加站点结算记录
* @param emisSiteSettleRecord
*/
public void addSiteSettleRecord(EmisSiteSettleRecord emisSiteSettleRecord) throws EmisBizError {
String lockKey="LOCK:SITEACCOUNT:CHANGE-"+emisSiteSettleRecord.getAccCode();
// 加锁操作
redissonService.lock(lockKey,300);
try {
// 调整账户总余额
EmisSiteAccount emisSiteAccount = getSiteAccountBySiteCode(emisSiteSettleRecord.getSiteCode());
if (emisSiteAccount == null) {
throw new EmisBizError(EmisBizErrorType.FAIL, "网点账户不存在,请先建立网点账户");
}
BigDecimal curMoney=emisSiteAccount.getCurMoney();
BigDecimal confirmMoney=emisSiteAccount.getConfirmMoney();
// 变动前余额
emisSiteSettleRecord.setPreBalance(curMoney);
emisSiteSettleRecord.setPreConfirmBalance(confirmMoney);
// 总账户变动
// 增加
if("1".equals(emisSiteSettleRecord.getChangeType())){
curMoney.add(emisSiteSettleRecord.getCurMoney());
confirmMoney.add(emisSiteSettleRecord.getCurConfirmMoney());
}
// 减少
else if("1".equals(emisSiteSettleRecord.getChangeType())){
curMoney.subtract(emisSiteSettleRecord.getCurMoney());
confirmMoney.subtract(emisSiteSettleRecord.getCurConfirmMoney());
}
else{
throw new EmisBizError(EmisBizErrorType.FAIL, "费用增减类型错误!");
}
// 变动后余额
emisSiteSettleRecord.setBackBalance(curMoney);
emisSiteSettleRecord.setBackConfirmBalance(confirmMoney);
// 插入明细记录
emisSiteSettleRecordMapper.insertEmisSiteSettleRecord(emisSiteSettleRecord);
// 调整总账户余额
emisSiteAccount.setCurMoney(curMoney);
emisSiteAccount.setConfirmMoney(confirmMoney);
emisSiteAccountMapper.updateSiteAccountBalance(emisSiteAccount);
}catch(Exception ex){
ex.printStackTrace();
}
redissonService.unlock(lockKey);
}
/**
* 更新打印状态
* @param billCode

View File

@ -75,4 +75,9 @@ public interface IEmisSitePrepaidRechargeService
* @return 结果
*/
public int deleteEmisSitePrepaidRechargeById(Long id);
public int auditPass(EmisSitePrepaidRecharge emisSitePrepaidRecharge);
public int auditNoPass(EmisSitePrepaidRecharge emisSitePrepaidRecharge);
}

View File

@ -10,21 +10,27 @@
package com.xdadan.erp.emis.service.impl;
import java.util.Date;
import java.util.List;
import com.xdadan.erp.emis.domain.EmisSite;
import com.xdadan.erp.emis.domain.EmisSiteSettleRecord;
import com.xdadan.erp.emis.service.EmisBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.domain.EmisSitePrepaidRecharge;
import com.xdadan.erp.emis.mapper.EmisSitePrepaidRechargeMapper;
import com.xdadan.erp.emis.service.IEmisSitePrepaidRechargeService;
import org.springframework.transaction.annotation.Transactional;
/**
/**
* 站点预付款充值Service业务层处理
*
* @author linfso
* @date 2024-06-16 13:43:48
*/
@Service
public class EmisSitePrepaidRechargeServiceImpl implements IEmisSitePrepaidRechargeService
public class EmisSitePrepaidRechargeServiceImpl extends EmisBaseService implements IEmisSitePrepaidRechargeService
{
@Autowired
private EmisSitePrepaidRechargeMapper emisSitePrepaidRechargeMapper;
@ -114,4 +120,44 @@ public class EmisSitePrepaidRechargeServiceImpl implements IEmisSitePrepaidRecha
return emisSitePrepaidRechargeMapper.deleteEmisSitePrepaidRechargeById(id);
}
@Transactional
@Override
public int auditPass(EmisSitePrepaidRecharge emisSitePrepaidRecharge){
// 重新从数据库取信息
emisSitePrepaidRecharge = emisSitePrepaidRechargeMapper.selectEmisSitePrepaidRechargeById(emisSitePrepaidRecharge.getId());
// 增加结算账户额度,插入明细数据
EmisSiteSettleRecord emisSiteSettleRecord=new EmisSiteSettleRecord();
emisSiteSettleRecord.setAccCode(emisSitePrepaidRecharge.getRechargeSiteCode()+"001");
emisSiteSettleRecord.setRecPayType("1"); // 收入
emisSiteSettleRecord.setSettleType("001");// 充值
emisSiteSettleRecord.setSettleName("预付款-充值");
emisSiteSettleRecord.setCurMoney(emisSitePrepaidRecharge.getRechargeAmount());
emisSiteSettleRecord.setCurConfirmMoney(emisSitePrepaidRecharge.getRechargeAmount());
emisSiteSettleRecord.setChangeType("1"); // 增加
emisSiteSettleRecord.setCurrency("CNY");
emisSiteSettleRecord.setChangeDate(new Date());
emisSiteSettleRecord.setSiteCode(emisSitePrepaidRecharge.getRechargeSiteCode());
emisSiteSettleRecord.setSourceType("pc");
emisSiteSettleRecord.setOperataDate(new Date());
emisSiteSettleRecord.setFinanceDate(new Date());
emisSiteSettleRecord.setBlCenter("1");
emisSiteSettleRecord.setCenterCode(getCurrentUser().getOwnerSiteCode());
emisSiteSettleRecord.setCenterManCode(getCurrentUser().getEmpCode());
emisSiteSettleRecord.setBlChargeFee("1");
addSiteSettleRecord(emisSiteSettleRecord);
// 审核通过
return emisSitePrepaidRechargeMapper.auditPass(emisSitePrepaidRecharge);
}
@Override
public int auditNoPass(EmisSitePrepaidRecharge emisSitePrepaidRecharge){
return emisSitePrepaidRechargeMapper.auditNoPass(emisSitePrepaidRecharge);
}
}

View File

@ -224,6 +224,10 @@
where id = #{id}
</update>
<update id="updateSiteAccountBalance" parameterType="EmisSiteAccount">
update emis_site_account set cur_money = #{curMoney},confirm_money = #{confirmMoney} where id = #{id}
</update>
<delete id="deleteEmisSiteAccountById" parameterType="Long">
update emis_site_account set del_flag='0' where id = #{id}
</delete>

View File

@ -221,12 +221,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
</update>
<update id="auditPass" parameterType="EmisSitePrepaidRecharge">
update emis_site_prepaid_recharge set audit_status='1',audit_date=now() where id = #{id}
</update>
<update id="auditNoPass" parameterType="EmisSitePrepaidRecharge">
update emis_site_prepaid_recharge set audit_status='2',audit_desc = #{auditDesc},audit_date=now() where id = #{id}
</update>
<delete id="deleteEmisSitePrepaidRechargeById" parameterType="Long">
delete from emis_site_prepaid_recharge where id = #{id}
update emis_site_prepaid_recharge set del_flag='1' where id = #{id}
</delete>
<delete id="deleteEmisSitePrepaidRechargeByIds" parameterType="String">
delete from emis_site_prepaid_recharge where id in
update emis_site_prepaid_recharge set del_flag='1' where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>