diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java index 13bfe521f..dcb8009f4 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -161,9 +161,10 @@ public class WxFinanceController extends BaseController { if (null == record.getFeesId()) { return new ResultData(Result.ERROR,"请选择科目"); } - record.setType(EnumFinanceReceiveType.ADVANCE.getCode()); - wxFinanceService.saveOrUpdateReceive(record,this.getUser()); - 1111 + if (null == record.getMerchantId()) { + return new ResultData(Result.ERROR,"请选择商户"); + } + wxFinanceService.createAdvance(record,this.getUser()); return new ResultData(); } @@ -199,6 +200,9 @@ public class WxFinanceController extends BaseController { @PostMapping("createReceive") public ResultData createReceive(@RequestBody WxFinanceReceive record) { record.updateTenantInfo(getTenantInfo()); + if (null == record.getMerchantId()) { + return new ResultData(Result.ERROR,"请选择商户"); + } if (null == record.getBills() || null == record.getPayWays()) { return new ResultData(Result.ERROR,"请选择账单和支付方式"); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceSetoffBill.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java similarity index 79% rename from mallinkService/src/main/java/com/iformall/domain/po/WxFinanceSetoffBill.java rename to mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java index be919e9b7..e9dd11f76 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceSetoffBill.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveBill.java @@ -8,11 +8,11 @@ import lombok.ToString; import java.util.Date; /** */ -@TableName(value = "wx_finance_setoff_bill") +@TableName(value = "wx_finance_receive_bill") @Data @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) -public class WxFinanceSetoffBill extends TenantEntity { +public class WxFinanceReceiveBill extends TenantEntity { private static final long serialVersionUID = 7009117540201976664L; @@ -34,13 +34,15 @@ public class WxFinanceSetoffBill extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "账单类型EnumBillAllType", name = "billType") private Integer billType; - @io.swagger.annotations.ApiModelProperty(value="归属收款单ID",name="advanceId") - private Long advanceId; - @io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId") private Long feesId; @io.swagger.annotations.ApiModelProperty(value="支付方式",name="payWay") private Long payWay; + @io.swagger.annotations.ApiModelProperty(value="实收金额",name="receive") + private String receive; + + @io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId") + private Long merchantId; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java new file mode 100644 index 000000000..6c8f7526b --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceiveSetoff.java @@ -0,0 +1,51 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.TenantEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.util.Date; +/** + */ +@TableName(value = "wx_finance_receive_setoff") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxFinanceReceiveSetoff extends TenantEntity { + + private static final long serialVersionUID = 7009117540201976664L; + + @io.swagger.annotations.ApiModelProperty(value="id",name="id") + private Long id; + + @io.swagger.annotations.ApiModelProperty(value="createTime",name="createTime") + private Date createTime; + + @io.swagger.annotations.ApiModelProperty(value="updateTime",name="updateTime") + private Date updateTime; + + @io.swagger.annotations.ApiModelProperty(value = "预收收款编号", name = "advanceId") + private Long advanceId; + + @io.swagger.annotations.ApiModelProperty(value = "账单编号", name = "billId") + private Long billId; + + @io.swagger.annotations.ApiModelProperty(value = "账单类型EnumBillAllType", name = "billType") + private Integer billType; + + @io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId") + private Long feesId; + + @io.swagger.annotations.ApiModelProperty(value="冲抵金额",name="setoff") + private String setoff; + + @io.swagger.annotations.ApiModelProperty(value="账单开始周期",name="starttime") + private Date starttime; + + @io.swagger.annotations.ApiModelProperty(value="账单结束周期",name="endtime") + private Date endtime; + + @io.swagger.annotations.ApiModelProperty(value="科目编号",name="feesId") + private Long merchantId; +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java new file mode 100644 index 000000000..c47ebff91 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveBillMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxFinanceReceiveBill; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + */ +public interface WxFinanceReceiveBillMapper extends CommonMapper { + + List findList(WxFinanceReceiveBill wxBillRent); + + WxFinanceReceiveBill selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java new file mode 100644 index 000000000..01bc863a5 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveSetoffMapper.java @@ -0,0 +1,16 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxFinanceReceiveSetoff; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + */ +public interface WxFinanceReceiveSetoffMapper extends CommonMapper { + + List findList(WxFinanceReceiveSetoff wxBillRent); + + WxFinanceReceiveSetoff selectById(@Param("id")Long id,@Param("tenantId")String tenantId); + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceSetoffBillMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceSetoffBillMapper.java deleted file mode 100644 index a6889af78..000000000 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceSetoffBillMapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.iformall.mapper; - -import com.iformall.common.CommonMapper; -import com.iformall.domain.po.WxFinanceSetoffBill; -import org.apache.ibatis.annotations.Param; -import java.util.List; - -/** - */ -public interface WxFinanceSetoffBillMapper extends CommonMapper { - - List findList(WxFinanceSetoffBill wxBillRent); - - WxFinanceSetoffBill selectById(@Param("id")Long id,@Param("tenantId")String tenantId); - -} diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index c0f477bd8..e18a41bd1 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -7,7 +7,7 @@ import com.iformall.domain.dto.FinanceSetOffDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillPayWay; import com.iformall.domain.po.WxFinanceReceive; -import com.iformall.domain.po.WxFinanceSetoffBill; +import com.iformall.domain.po.WxFinanceReceiveBill; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.WxBillBaseEntity; import com.iformall.domain.vo.FinanceBillSetoffSum; @@ -26,13 +26,12 @@ public interface WxFinanceService { //收款 PageInfo receiveListAsPage(WxFinanceReceive record, Integer pageIndex, Integer pageSize); List createReceive(WxFinanceReceive record,MallUserInfo user); - void saveOrUpdateReceive(WxFinanceReceive record,MallUserInfo user); - void saveOrUpdateReceiveBill(WxFinanceSetoffBill record); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); void invalidReceive(WxFinanceReceive record,MallUserInfo user); //预收款 List calcuetSetOff(FinanceSetOffDTO dto,MallUserInfo user); FinanceBillSetoffSum getBillSetoffSum(WxFinanceReceive record); List getSetOffList(FinanceSetOffDTO dto,boolean isMerge); + void createAdvance(WxFinanceReceive record,MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java index 01bfede35..2d97a3cb0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -16,7 +16,8 @@ import com.iformall.domain.po.WxBillPayWay; import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.WxEnergyFeesSetoff; import com.iformall.domain.po.WxFinanceReceive; -import com.iformall.domain.po.WxFinanceSetoffBill; +import com.iformall.domain.po.WxFinanceReceiveBill; +import com.iformall.domain.po.WxFinanceReceiveSetoff; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxShop; import com.iformall.domain.po.base.BaseEntity.SortField; @@ -32,8 +33,9 @@ import com.iformall.enums.EnumYesOrNo; import com.iformall.exception.MallinkException; import com.iformall.mapper.WxBillPayWayMapper; import com.iformall.mapper.WxEnergyFeesSetoffMapper; -import com.iformall.mapper.WxFinanceSetoffBillMapper; +import com.iformall.mapper.WxFinanceReceiveBillMapper; import com.iformall.mapper.WxFinanceReceiveMapper; +import com.iformall.mapper.WxFinanceReceiveSetoffMapper; import com.iformall.service.WxBillAdvanceService; import com.iformall.service.WxEnergyService; import com.iformall.service.WxFinanceService; @@ -71,7 +73,9 @@ public class WxFinanceServiceImpl implements WxFinanceService { @Autowired WxFinanceReceiveMapper wxFinanceReceiveMapper; @Autowired - WxFinanceSetoffBillMapper wxFinanceReceiveBillMapper; + WxFinanceReceiveBillMapper wxFinanceReceiveBillMapper; + @Autowired + WxFinanceReceiveSetoffMapper wxFinanceReceiveSetoffMapper; @Lazy @Autowired @@ -411,68 +415,6 @@ public class WxFinanceServiceImpl implements WxFinanceService { return page; } - @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - @Override - public void saveOrUpdateReceive(WxFinanceReceive record, MallUserInfo user) { - Date date = new Date(); - if (record.getId() == null) { - final IdWorker idWorker = IdWorker.get(); - record.setId(idWorker.nextId()); - record.setCreateTime(date); - record.setUpdateTime(date); - record.setCreateBy(user.getId()); - record.setCreateByName(user.getName()); - record.setUpdateBy(user.getId()); - record.setUpdateByName(user.getName()); - record.setStatus(EnumFinanceReceiveStatus.NORMAL.getCode()); - try { - wxFinanceReceiveMapper.insert(record); - } catch (Exception e) { - logger.error("保存失败,e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); - } -// //增加预收账单 -// WxBillAdvance billAdvance = new WxBillAdvance(); -// billAdvance.updateTenantInfo(user); -// billAdvance.setMerchantId(record.getMerchantId()); -// WxMerchant merchant = wxMerchantService.selectById(record.getMerchantId()); -// billAdvance.setRentShopType(merchant.getRentShopType()); -// billAdvance.setReceivePay(record.getTotalMoney()); -// billAdvance.setPay("0"); -// billAdvance.setStarttime(new Date()); -// billAdvance.setEndtime(new Date()); -// billAdvance.setStatus(EnumBillStatus.SET_OFF.getCode()); -// billAdvance.setEnergyFeesId(record.getFeesId()); -// wxBillAdvanceService.saveOrUpdate(billAdvance, user); - } else { - record.setUpdateBy(user.getId()); - record.setUpdateByName(user.getName()); - record.setUpdateTime(date); - wxFinanceReceiveMapper.updateById(record); - } - } - - @Override - public void saveOrUpdateReceiveBill(WxFinanceSetoffBill record) { - Date date = new Date(); - if (record.getId() == null) { - final IdWorker idWorker = IdWorker.get(); - record.setId(idWorker.nextId()); - record.setCreateTime(date); - record.setUpdateTime(date); - try { - wxFinanceReceiveBillMapper.insert(record); - } catch (Exception e) { - logger.error("保存失败,e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); - } - } else { - record.setUpdateTime(date); - wxFinanceReceiveBillMapper.updateById(record); - - } - } - private void sortBills(List billList) { Collections.sort(billList, new Comparator() { @Override @@ -500,9 +442,8 @@ public class WxFinanceServiceImpl implements WxFinanceService { //冲抵信息根据页面返回的账单抵扣信息直接保存入库 //费用计算自动优先匹配时间最早的那个 - BigDecimal b0 = new BigDecimal(0); //单保存冲抵的时候,实收金额为0 - BigDecimal receiveTotal = b0; + BigDecimal receiveTotal = new BigDecimal(0); WxBillPayWay payWay0 = null; if (null != record.getPayWays()) { for (int i = 0 ; i < record.getPayWays().size() ; i ++) { @@ -516,82 +457,166 @@ public class WxFinanceServiceImpl implements WxFinanceService { } } //冲抵总金额 - BigDecimal setOffTotal = b0; + BigDecimal setOffTotal = new BigDecimal(0); List bills = record.getBills(); sortBills(bills); - //创建一个收款单,关联账单 - WxFinanceReceive addreceive = new WxFinanceReceive(); - addreceive.updateTenantInfo(record); - addreceive.setStatus(EnumFinanceReceiveStatus.NORMAL.getCode()); - addreceive.setType(EnumFinanceReceiveType.RECEIVE.getCode()); - addreceive.setReceiveMoney(receiveTotal.toPlainString()); - if (receiveTotal.compareTo(b0) > 0) { + //创建一个收款单 + WxFinanceReceive addreceive = generateReceive(user, EnumFinanceReceiveType.RECEIVE, receiveTotal.toPlainString(), record.getMerchantId(), null, record.getRemark()); + if (receiveTotal.compareTo(new BigDecimal(0)) > 0) { addreceive.setMoneyDetail(JSON.toJSONString(record.getPayWays())); } WxMerchant merchant = new WxMerchant(); merchant.updateTenantInfo(record); + boolean isAllEmpity = true; for (int i = 0 ; i < record.getBills().size(); i++) { WxBillBaseEntity be = record.getBills().get(i); - //计算账单收款费用,更新账单收款 - if (receiveTotal.compareTo(b0) > 0) { - WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId()); - //有收款,就要更新账单的收款 - //更新账单收款信息 - String money = ""; - BigDecimal oweDecimal = new BigDecimal(bill.getOwe()); - if (oweDecimal.compareTo(receiveTotal) < 0 ) { - money = bill.getOwe(); - receiveTotal = receiveTotal.subtract(oweDecimal); - }else { - money = receiveTotal.toPlainString(); - receiveTotal = b0; - } - WxBillPayDTO payDto = new WxBillPayDTO(); - payDto.setId(be.getId()); - payDto.setBillTypeValue(be.getBillType()); - payDto.setAddpay(money); - payDto.setPayWay(payWay0.getId()); - payDto.setPayWayObject(payWay0); - payDto.setRemark("系统收款:收款单["+addreceive.getId()+"]"+record.getRemark()); - be.setCurrentReceive(money); - //并且有抵扣 - if(StringUtils.isNotBlank(be.getCurrentSetOff())) { - payDto.setSetOff(be.getCurrentSetOff()); - for (int j = 0 ; j < be.getSetOffDetailList().size(); j ++ ) { - FinanceSetOffDetailVo setoffdetail = be.getSetOffDetailList().get(j); - //关联冲抵 - WxFinanceSetoffBill rb = new WxFinanceSetoffBill(); - rb.updateTenantInfo(record); - rb.setReceiveId(addreceive.getId()); - rb.setBillId(bill.getId()); - rb.setBillType(bill.getBillType()); - rb.setFeesId(bill.getEnergyFeesId()); - rb.setPayWay(payWay0.getId()); - saveOrUpdateReceiveBill(rb); - } - - } - wxBillAllHelper.updatePay(payDto, user); - - }else if (StringUtils.isNotBlank(be.getCurrentSetOff())) { - setOffTotal = setOffTotal.add(new BigDecimal(be.getCurrentSetOff())); - //没收款,有冲抵,就要更新账单的冲抵,然后把对应的预充值使用金额更新,并进行关联 + //每个账单要创建一个收款关联单,如果有冲抵,要额外创建 + boolean noNeedCreate = createBillReceive(receiveTotal,setOffTotal,user,addreceive,be,merchant,payWay0); + if (!noNeedCreate) { + isAllEmpity = false; } } - + if (isAllEmpity) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请收款或者冲抵"); + } addreceive.setSetOffMoney(setOffTotal.toPlainString()); addreceive.setMerchantId(record.getMerchantId()); addreceive.setRemark(record.getRemark()); - this.saveOrUpdateReceive(record,user); + wxFinanceReceiveMapper.insert(record); return bills; } + + public boolean createBillReceive(BigDecimal receiveTotal,BigDecimal setOffTotal,MallUserInfo user,WxFinanceReceive addreceive,WxBillBaseEntity be,WxMerchant merchant,WxBillPayWay payWay0) { + //如果既没有收款,也没有冲抵,则不更新 + boolean noNeedCreate = true; + //计算账单收款费用,更新账单收款 + BigDecimal b0 = new BigDecimal(0); + WxBillBaseEntity bill = wxBillAllHelper.getBillDetail(EnumBillAllType.getEnum(be.getBillType()), merchant, be.getId()); + if (receiveTotal.compareTo(b0) > 0) { + noNeedCreate = false; + //有收款,就要更新账单的收款 + //更新账单收款信息 + String money = ""; + BigDecimal oweDecimal = new BigDecimal(bill.getOwe()); + if (oweDecimal.compareTo(receiveTotal) < 0 ) { + money = bill.getOwe(); + receiveTotal = receiveTotal.subtract(oweDecimal); + }else { + money = receiveTotal.toPlainString(); + receiveTotal = b0; + } + WxBillPayDTO payDto = new WxBillPayDTO(); + payDto.updateTenantInfo(addreceive); + payDto.setId(be.getId()); + payDto.setBillTypeValue(be.getBillType()); + payDto.setAddpay(money); + payDto.setPayWay(payWay0.getId()); + payDto.setPayWayObject(payWay0); + payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()); + be.setCurrentReceive(money); + + //创建一个实收款单关联 + createFinanceReceiveBill(addreceive,bill,money,payWay0.getId()); + //并且有抵扣 + if(StringUtils.isNotBlank(be.getCurrentSetOff())) { + payDto.setSetOff(be.getCurrentSetOff()); + //创建一个冲抵收款单 + createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),Constant.bill_pay_way_setoff); + //处理关联抵扣的预收单 + createFinanceReceiveSetoff(addreceive,be,bill); + } + wxBillAllHelper.updatePay(payDto, user); + + }else if (StringUtils.isNotBlank(be.getCurrentSetOff())) { + noNeedCreate = false; + setOffTotal = setOffTotal.add(new BigDecimal(be.getCurrentSetOff())); + //没收款,有冲抵,就要更新账单的冲抵,然后把对应的预充值使用金额更新,并进行关联 + //创建一个冲抵收款单 + createFinanceReceiveBill(addreceive,bill,be.getCurrentSetOff(),Constant.bill_pay_way_setoff); + //处理预充关联 + createFinanceReceiveSetoff(addreceive,be,bill); + } + return noNeedCreate; + } + + public WxFinanceReceive generateReceive(MallUserInfo user,EnumFinanceReceiveType type,String receiveMoney,Long merchantId,Long feesId,String remark) { + WxFinanceReceive addreceive = new WxFinanceReceive(); + final IdWorker idWorker = IdWorker.get(); + addreceive.setId(idWorker.nextId()); + addreceive.updateTenantInfo(user); + addreceive.setStatus(EnumFinanceReceiveStatus.NORMAL.getCode()); + addreceive.setType(type.getCode()); + addreceive.setReceiveMoney(receiveMoney); + addreceive.setMerchantId(merchantId); + addreceive.setCreateTime(new Date()); + addreceive.setCreateBy(user.getId()); + addreceive.setCreateByName(user.getName()); + addreceive.setUpdateTime(new Date()); + addreceive.setUpdateBy(user.getId()); + addreceive.setUpdateByName(user.getName()); + addreceive.setRemark(remark); + addreceive.setFeesId(feesId); + return addreceive; + } + + public void createFinanceReceiveBill(WxFinanceReceive addreceive,WxBillBaseEntity bill,String billMoney,Long payway) { + WxFinanceReceiveBill frbs = new WxFinanceReceiveBill(); + frbs.updateTenantInfo(addreceive); + final IdWorker idWorker = IdWorker.get(); + frbs.setId(idWorker.nextId()); + frbs.setReceiveId(addreceive.getId()); + frbs.setBillId(bill.getId()); + frbs.setBillType(bill.getBillType()); + frbs.setFeesId(bill.getEnergyFeesId()); + frbs.setPayWay(payway); + frbs.setReceive(billMoney); + frbs.setCreateTime(new Date()); + frbs.setUpdateTime(new Date()); + frbs.setMerchantId(bill.getMerchantId()); + wxFinanceReceiveBillMapper.insert(frbs); + } + + public void createFinanceReceiveSetoff(WxFinanceReceive addreceive,WxBillBaseEntity be,WxBillBaseEntity bill) { + for (int j = 0 ; j < be.getSetOffDetailList().size(); j ++ ) { + FinanceSetOffDetailVo setoffdetail = be.getSetOffDetailList().get(j); + WxFinanceReceive advance = this.getReceiveById(addreceive, setoffdetail.getAdvanceId()); + advance.setUseMoney(setoffdetail.getSetoff()); + advance.setUpdateTime(new Date()); + wxFinanceReceiveMapper.updateById(advance); + + //创建一个冲抵收款关联 + WxFinanceReceiveSetoff rb = new WxFinanceReceiveSetoff(); + rb.updateTenantInfo(addreceive); + rb.setAdvanceId(advance.getId()); + rb.setBillId(bill.getId()); + rb.setBillType(bill.getBillType()); + rb.setFeesId(bill.getEnergyFeesId()); + rb.setSetoff(setoffdetail.getSetoff()); + rb.setStarttime(bill.getStarttime()); + rb.setEndtime(bill.getEndtime()); + rb.setMerchantId(bill.getMerchantId()); + rb.setCreateTime(new Date()); + rb.setUpdateTime(new Date()); + wxFinanceReceiveSetoffMapper.insert(rb); + } + } + @Override public WxFinanceReceive getReceiveById(TenantEntity tenantEntity, Long id) { return wxFinanceReceiveMapper.selectById(id, tenantEntity.getTenantId()); } + + @Override + public void createAdvance(WxFinanceReceive record,MallUserInfo user) { + //创建预收主单 + WxFinanceReceive addreceive = generateReceive(user, EnumFinanceReceiveType.ADVANCE, record.getReceiveMoney(), + record.getMerchantId(), record.getFeesId(), record.getRemark()); + wxFinanceReceiveMapper.insert(addreceive); + //创建预收账单? WxBillAdvance + } @Override public void invalidReceive(WxFinanceReceive record, MallUserInfo user) { @@ -601,4 +626,6 @@ public class WxFinanceServiceImpl implements WxFinanceService { + + } diff --git a/mallinkService/src/main/resources/mapper/WxFinanceSetoffBillMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml similarity index 87% rename from mallinkService/src/main/resources/mapper/WxFinanceSetoffBillMapper.xml rename to mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml index d5abe67c5..db7b9ff52 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceSetoffBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveBillMapper.xml @@ -1,7 +1,7 @@ - - + + @@ -12,11 +12,13 @@ + + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`bill_id`,`bill_type`,`fees_id`, - `pay_way`,`receive_id` + `pay_way`,`receive_id`,`receive`,`merchant_id` @@ -33,6 +35,7 @@ and `fees_id` = #{feesId} and `pay_way` = #{payWay} and `receive_id` = #{receiveId} + and `merchant_id` = #{merchantId} and id in diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml new file mode 100644 index 000000000..c5169cd63 --- /dev/null +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveSetoffMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`bill_id`,`bill_type`,`fees_id`, + `advance_id`,`setoff`,`merchant_id`,`starttime`,`endtime` + + + + where 1=1 + and `id` = #{id} + + and `tenant_id` = #{tenantId} + + + and `parent_tenant_id` = #{parentTenantId} + + and `bill_id` = #{billId} + and `bill_type` = #{billType} + and `fees_id` = #{feesId} + and `advance_id` = #{advanceId} + and `merchant_id` = #{merchantId} + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + +