Browse Source

fix

release_toaliyun_real
winter 1 year ago
parent
commit
fd2194ff9a
8 changed files with 103 additions and 1 deletions
  1. +14
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java
  2. +11
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java
  3. +2
    -0
      mallinkService/src/main/java/com/iformall/service/WxAllBillService.java
  4. +1
    -0
      mallinkService/src/main/java/com/iformall/service/WxFinanceService.java
  5. +4
    -0
      mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java
  6. +18
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java
  7. +51
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java
  8. +2
    -1
      mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml

+ 14
- 0
mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java View File

@@ -298,6 +298,20 @@ public class WxFinanceController extends BaseController {
return new ResultData(map);
}
@ApiOperation("新增减免")
@PostMapping("createCut")
public ResultData createCut(@RequestBody WxFinanceReceive record) {
record.updateTenantInfo(getTenantInfo());
if (null == record.getMerchantId()) {
return new ResultData(Result.ERROR,"请选择商户");
}
if (null == record.getBills()) {
return new ResultData(Result.ERROR,"请选择账单");
}
Map map = wxFinanceService.createCut(record,this.getUser());
return new ResultData(map);
}
@ApiOperation("新增付款单")
@PostMapping("createPay")
public ResultData createPay(@RequestBody WxFinanceReceive record) {


+ 11
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java View File

@@ -83,6 +83,17 @@ public class WxFinanceReceive extends TenantEntity {
return setOffMoneyChinese;
}
@io.swagger.annotations.ApiModelProperty(value = "减免金额", name = "cutMoney")
private String cutMoney;
@TableField(exist = false)
private String cutMoneyChinese;
public String getCutMoneyChinese() {
if (StringUtils.isNotBlank(cutMoney)) {
cutMoneyChinese = PriceUtilV2.number2CNMontrayUnit(new BigDecimal(cutMoney));
}
return cutMoneyChinese;
}
@TableField(exist = false)
private String allReceiveMoney;
public String getAllReceiveMoney() {


+ 2
- 0
mallinkService/src/main/java/com/iformall/service/WxAllBillService.java View File

@@ -47,6 +47,8 @@ public interface WxAllBillService {
void updatePayByMerchant(WxBillPayDTO dto,WxMerchantBUser user,boolean isOnline);
void updateCut(WxBillPayDTO dto,MallUserInfo user);
void updatePayToMerchant(WxBillPayDTO dto, MallUserInfo user);
void bad(WxBillPayDTO dto,MallUserInfo user);


+ 1
- 0
mallinkService/src/main/java/com/iformall/service/WxFinanceService.java View File

@@ -36,6 +36,7 @@ public interface WxFinanceService {
PageInfo<WxFinanceReceiveBill> receiveBillListAsPage(WxFinanceReceiveBill record, Integer pageIndex, Integer pageSize);
List<WxFinanceReceive> findReceiveList(WxFinanceReceive record);
Map createReceive(WxFinanceReceive record,MallUserInfo user);
Map createCut(WxFinanceReceive record,MallUserInfo user);
Map createPay(WxFinanceReceive record,MallUserInfo user);
WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id);
void invalidReceive(WxFinanceReceive record,MallUserInfo user,String remark);


+ 4
- 0
mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java View File

@@ -343,6 +343,10 @@ public class WxBillAllHelper {
wxAllBillService.updatePay(dto, user);
}
public void updateCut(WxBillPayDTO dto,MallUserInfo user) {
wxAllBillService.updateCut(dto, user);
}
public void updatePayByMerchant(WxBillPayDTO dto,WxMerchantBUser user,boolean isOnline) {
wxAllBillService.updatePayByMerchant(dto, user,isOnline);
}


+ 18
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java View File

@@ -404,6 +404,24 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
dto.getRemark(),null,null, user);
}
@Override
public void updateCut(WxBillPayDTO dto, MallUserInfo user) {
WxAllBill dbBill = wxAllBillMapper.selectById(dto.getId(),dto.getTenantId());
BigDecimal oldReceivePay = new BigDecimal(0);
if (StringUtils.isNotBlank(dbBill.getReceivePay())) {
oldReceivePay = new BigDecimal(dbBill.getReceivePay());
}
WxAllBill wxBillRent = new WxAllBill();
wxBillRent.setId(dto.getId());
wxBillRent.updateTenantInfo(dto);
wxBillRent.setUpdatetime(new Date());
wxBillRent.setReceivePay(oldReceivePay.subtract(new BigDecimal(dto.getCut())).toPlainString());
wxAllBillMapper.updateById(wxBillRent);
this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(),
oldReceivePay.toPlainString(), dto.getCut(),null,null,null,null,
dto.getRemark(),null,null, user);
}
@Override
public void updatePayToMerchant(WxBillPayDTO dto, MallUserInfo user) {
WxAllBill dbBill = wxAllBillMapper.selectById(dto.getId(),dto.getTenantId());


+ 51
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java View File

@@ -944,6 +944,57 @@ public class WxFinanceServiceImpl implements WxFinanceService {
}
}
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@Override
public Map createCut(WxFinanceReceive record,MallUserInfo user) {
//单保存冲抵的时候,实收金额为0
BigDecimal receiveTotal = new BigDecimal(0);
//WxBillPayWay payWay0 = null;
final IdWorker idWorker = IdWorker.get();
Long receiveId = idWorker.nextId();
List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>();
//冲抵总金额
List<WxAllBill> bills = record.getBills();
//创建主收款单
WxFinanceReceive addreceive = generateReceive(receiveId,user, EnumFinanceCashierType.RECEIVE,"0",null, record.getMerchantId(), null, record.getRemark(),new Date());
WxMerchant merchant = new WxMerchant();
merchant.updateTenantInfo(record);
boolean isAllEmpity = true;
FinanceReceiveCalcuteDTO calcuteDto = new FinanceReceiveCalcuteDTO();
calcuteDto.setTotalCut(new BigDecimal(0));
//建立子账单关联单
for (int i = 0 ; i < record.getBills().size(); i++) {
WxAllBill be = record.getBills().get(i);
if(StringUtils.isNotBlank(be.getCurrentCut())) {
WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(addreceive);
payDto.setId(be.getId());
payDto.setBillTypeValue(be.getBillType());
payDto.setCut(be.getCurrentCut());
payDto.setRemark("减免,关联收款单["+addreceive.getId()+"]");
//创建一个减免收款单
createFinanceReceiveBill(addreceive,be,be.getCurrentCut(),null,Constant.bill_pay_way_cut);
wxBillAllHelper.updateCut(payDto, user);
calcuteDto.setTotalCut(calcuteDto.getTotalCut().add(new BigDecimal(be.getCurrentCut())));
isAllEmpity = false;
}
}
if (isAllEmpity) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请收款或者冲抵");
}
addreceive.setMerchantId(record.getMerchantId());
addreceive.setRemark(record.getRemark());
addreceive.setCutMoney(calcuteDto.getTotalCut().toPlainString());
wxFinanceReceiveMapper.insert(addreceive);
Map retMap = new HashMap();
retMap.put("addreceive", addreceive);
retMap.put("billlist", bills);
return retMap;
}
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@Override
public Map createPay(WxFinanceReceive record,MallUserInfo user) {


+ 2
- 1
mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml View File

@@ -11,6 +11,7 @@
<result column="receive_money" jdbcType="VARCHAR" property="receiveMoney"/>
<result column="pay_money" jdbcType="VARCHAR" property="payMoney"/>
<result column="set_off_money" jdbcType="VARCHAR" property="setOffMoney"/>
<result column="cut_money" jdbcType="VARCHAR" property="cutMoney"/>
<result column="status" jdbcType="INTEGER" property="status"/>
<result column="type" jdbcType="INTEGER" property="type"/>
<result column="money_detail" jdbcType="VARCHAR" property="moneyDetail"/>
@@ -27,7 +28,7 @@
</resultMap>

<sql id="allColumns">
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`receive_date`,`receive_money`,`pay_money`,`set_off_money`,`status`,`type`,
`id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`receive_date`,`receive_money`,`pay_money`,`set_off_money`,`cut_money`,`status`,`type`,
`money_detail`,`create_by`,`create_by_name`,`update_by`,`update_by_name`,`merchant_id`,`rent_shop_type`,`remark`,
`fees_id`,`is_print`,`is_finish`
</sql>


Loading…
Cancel
Save