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