| @@ -521,7 +521,8 @@ public class WxAllBillController extends BillBaseController { | |||||
| if (null == payWay) { | if (null == payWay) { | ||||
| return new ResultData(Result.ERROR,"支付方式未查询到"); | return new ResultData(Result.ERROR,"支付方式未查询到"); | ||||
| } | } | ||||
| dto.setPayWayObject(payWay); | |||||
| dto.setPayWay(payWay.getId()); | |||||
| dto.setPayWayName(payWay.getName()); | |||||
| billAllHelper.updatePay(dto, getUser()); | billAllHelper.updatePay(dto, getUser()); | ||||
| return new ResultData(); | return new ResultData(); | ||||
| //return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false); | //return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false); | ||||
| @@ -39,7 +39,6 @@ public class WxUserDataRuleController extends BaseController { | |||||
| @ApiOperation("编辑") | @ApiOperation("编辑") | ||||
| @PostMapping("/modify") | @PostMapping("/modify") | ||||
| @SystemControllerLog(description = "用户数据权限-新增") | |||||
| public ResultData modify(@RequestBody WxUserDataRule wxUserDataRule) { | public ResultData modify(@RequestBody WxUserDataRule wxUserDataRule) { | ||||
| logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify"); | logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify"); | ||||
| MallUserInfo currentUser = getUser(); | MallUserInfo currentUser = getUser(); | ||||
| @@ -55,7 +54,6 @@ public class WxUserDataRuleController extends BaseController { | |||||
| @ApiOperation("根据用户ID查看") | @ApiOperation("根据用户ID查看") | ||||
| @GetMapping("/findByUserId") | @GetMapping("/findByUserId") | ||||
| @ApiImplicitParam(name = "userId", value = "userId", dataType = "Long", paramType = "query", required = true) | @ApiImplicitParam(name = "userId", value = "userId", dataType = "Long", paramType = "query", required = true) | ||||
| @SystemControllerLog(description = "用户数据权限-根据用户ID查看") | |||||
| public ResultData findByUserId(Long userId) { | public ResultData findByUserId(Long userId) { | ||||
| logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify"); | logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify"); | ||||
| WxUserDataRule wxUserDataRule = wxUserDataRuleService.findByUserId(userId); | WxUserDataRule wxUserDataRule = wxUserDataRuleService.findByUserId(userId); | ||||
| @@ -17,8 +17,8 @@ public class WxBillPayDTO extends TenantEntity{ | |||||
| private String addpay;//支付金额 | private String addpay;//支付金额 | ||||
| private String payToMerchant;//支付给商户金额 | private String payToMerchant;//支付给商户金额 | ||||
| private String setOff="0";//冲抵金额 | private String setOff="0";//冲抵金额 | ||||
| private WxBillPayWay payWayObject;//支付方式 | |||||
| private Long payWay;//传值 | private Long payWay;//传值 | ||||
| private String payWayName;//传值 | |||||
| private String remark; | private String remark; | ||||
| private String image; | private String image; | ||||
| } | } | ||||
| @@ -46,18 +46,18 @@ public enum EnumBillAction { | |||||
| return message; | return message; | ||||
| } | } | ||||
| public String getDescription(String oldMoney,String newMoney,String setoffMoney,WxBillPayWay payWay,EnumBillStatus oldStatus,EnumBillStatus newStatus) { | |||||
| public String getDescription(String oldMoney,String newMoney,String setoffMoney,String payWay,EnumBillStatus oldStatus,EnumBillStatus newStatus) { | |||||
| StringBuffer sb = new StringBuffer("[").append(this.message).append("]"); | StringBuffer sb = new StringBuffer("[").append(this.message).append("]"); | ||||
| if (code.intValue() == SELF_SERVICE_PAY.code.intValue()) { | if (code.intValue() == SELF_SERVICE_PAY.code.intValue()) { | ||||
| if (null != payWay) { | if (null != payWay) { | ||||
| sb.append(payWay.getName()).append("支付"); | |||||
| sb.append(payWay).append("支付"); | |||||
| } | } | ||||
| sb.append(newMoney).append("元"); | sb.append(newMoney).append("元"); | ||||
| }else if (code.intValue() == UPDATE_BILL.code.intValue()) { | }else if (code.intValue() == UPDATE_BILL.code.intValue()) { | ||||
| sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); | sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); | ||||
| }else if (code.intValue() == OFFLINE_PAY.code.intValue()) { | }else if (code.intValue() == OFFLINE_PAY.code.intValue()) { | ||||
| if (null != payWay) { | if (null != payWay) { | ||||
| sb.append(payWay.getName()).append("支付"); | |||||
| sb.append(payWay).append("支付"); | |||||
| } | } | ||||
| sb.append(newMoney).append("元"); | sb.append(newMoney).append("元"); | ||||
| if (StringUtils.isNotBlank(setoffMoney) && new BigDecimal(setoffMoney).compareTo(new BigDecimal(0)) > 0 ) { | if (StringUtils.isNotBlank(setoffMoney) && new BigDecimal(setoffMoney).compareTo(new BigDecimal(0)) > 0 ) { | ||||
| @@ -236,7 +236,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| wxBillRent.setLastOweCallUser(user.getName()+"(账号:"+user.getUsername()+")"); | wxBillRent.setLastOweCallUser(user.getName()+"(账号:"+user.getUsername()+")"); | ||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| this.addBillAction(EnumBillAction.NOTIFY, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(EnumBillAction.NOTIFY, dto.getBillTypeValue(),dto.getId(), | ||||
| null, null,null,null,null,dto.getRemark(),null,null, user); | |||||
| null, null,null,null,null,null,dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -253,23 +253,25 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | ||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| String remark = StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单被强制为支付完成,自动归结为结清。"; | String remark = StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单被强制为支付完成,自动归结为结清。"; | ||||
| this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), dbBill.getPay(),null,null,null,remark,null,null, user); | |||||
| this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), dbBill.getPay(),null,null,null,null,remark,null,null, user); | |||||
| }else { | }else { | ||||
| if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { | if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { | ||||
| wxBillRent.setBillLatePay(dto.getNewLatePrice()); | wxBillRent.setBillLatePay(dto.getNewLatePrice()); | ||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(), | this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(), | ||||
| dto.getOldLatePrice(), dto.getNewLatePrice(),null,null,null,dto.getRemark(),null,null, user); | |||||
| dto.getOldLatePrice(), dto.getNewLatePrice(),null,null,null,null,dto.getRemark(),null,null, user); | |||||
| }else if (StringUtils.isNotBlank(dto.getServiceChargePayBefore()) && StringUtils.isNotBlank(dto.getServiceChargePayUpdate())) { | }else if (StringUtils.isNotBlank(dto.getServiceChargePayBefore()) && StringUtils.isNotBlank(dto.getServiceChargePayUpdate())) { | ||||
| wxBillRent.setServiceChargePay(dto.getServiceChargePayUpdate()); | wxBillRent.setServiceChargePay(dto.getServiceChargePayUpdate()); | ||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| this.addBillAction(EnumBillAction.UPDATE_SERVICE_MONEY, dto.getBillTypeValue(), dto.getId(), | this.addBillAction(EnumBillAction.UPDATE_SERVICE_MONEY, dto.getBillTypeValue(), dto.getId(), | ||||
| dto.getServiceChargePayBefore(), dto.getServiceChargePayUpdate(),null,null,null,dto.getRemark(),null,null, user); | |||||
| dto.getServiceChargePayBefore(), dto.getServiceChargePayUpdate(),null,null,null,null,dto.getRemark(),null,null, user); | |||||
| }else { | }else { | ||||
| //租赁账单更新 | //租赁账单更新 | ||||
| wxBillRent.setReceivePay(dto.getNewPrice()); | wxBillRent.setReceivePay(dto.getNewPrice()); | ||||
| Date payDate = null; | Date payDate = null; | ||||
| WxBillPayWay payWay = null; | WxBillPayWay payWay = null; | ||||
| Long paywayId = null; | |||||
| String paywayname = null; | |||||
| String remark = StringUtils.trimToEmpty(dto.getRemark()); | String remark = StringUtils.trimToEmpty(dto.getRemark()); | ||||
| if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) <= 0) { | if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) <= 0) { | ||||
| wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); | ||||
| @@ -279,8 +281,12 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| } | } | ||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| //账单日志 | //账单日志 | ||||
| if (null != payWay) { | |||||
| paywayId = payWay.getId(); | |||||
| paywayname = payWay.getName(); | |||||
| } | |||||
| this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), | ||||
| dto.getOldPrice(), dto.getNewPrice(),null,payDate,payWay,remark,null,null, user); | |||||
| dto.getOldPrice(), dto.getNewPrice(),null,payDate,paywayId,paywayname,remark,null,null, user); | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -289,8 +295,9 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| public void updatePay(WxBillPayDTO dto, MallUserInfo user) { | public void updatePay(WxBillPayDTO dto, MallUserInfo user) { | ||||
| WxAllBill wxBillRent = updateBillPay(dto); | WxAllBill wxBillRent = updateBillPay(dto); | ||||
| EnumBillAction action = EnumBillAction.OFFLINE_PAY; | EnumBillAction action = EnumBillAction.OFFLINE_PAY; | ||||
| this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | |||||
| dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); | |||||
| this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), dto.getAddpay(), dto.getAddpay(), | |||||
| dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(), | |||||
| dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| private WxAllBill updateBillPay(WxBillPayDTO dto) { | private WxAllBill updateBillPay(WxBillPayDTO dto) { | ||||
| @@ -369,7 +376,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| } | } | ||||
| wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString()); | wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString()); | ||||
| wxBillRent.setPayDate(new Date()); | wxBillRent.setPayDate(new Date()); | ||||
| wxBillRent.setPayWay(dto.getPayWayObject().getId()); | |||||
| wxBillRent.setPayWay(dto.getPayWay()); | |||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| dto.setRemark(sb.toString()); | dto.setRemark(sb.toString()); | ||||
| return wxBillRent; | return wxBillRent; | ||||
| @@ -385,7 +392,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| action = EnumBillAction.OFFLINE_PAY; | action = EnumBillAction.OFFLINE_PAY; | ||||
| } | } | ||||
| this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | ||||
| dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); | |||||
| dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(), | |||||
| dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -425,7 +433,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(), | ||||
| dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); | |||||
| dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(), | |||||
| dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -441,7 +450,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| String badMoney = dbBill.getOwe(); | String badMoney = dbBill.getOwe(); | ||||
| this.addBillAction(EnumBillAction.BAD, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(EnumBillAction.BAD, dto.getBillTypeValue(),dto.getId(), | ||||
| badMoney, badMoney,null,null,null,dto.getRemark(),null,null, user); | |||||
| badMoney, badMoney,null,null,null,null,dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -518,7 +527,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| EnumBillAction action = EnumBillAction.RETURN; | EnumBillAction action = EnumBillAction.RETURN; | ||||
| this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | ||||
| dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user); | |||||
| dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(), | |||||
| dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -536,7 +546,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill | |||||
| wxAllBillMapper.updateById(wxBillRent); | wxAllBillMapper.updateById(wxBillRent); | ||||
| EnumBillAction action = EnumBillAction.RETURN; | EnumBillAction action = EnumBillAction.RETURN; | ||||
| this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), | ||||
| oldreturnPay.toPlainString(), dto.getPayToMerchant(),null,null,null,dto.getRemark(),null,null, user); | |||||
| oldreturnPay.toPlainString(), dto.getPayToMerchant(),null,null,null,null,dto.getRemark(),null,null, user); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -24,35 +24,31 @@ public class WxBillBaseService{ | |||||
| @Autowired | @Autowired | ||||
| private WxBillActionService wxBillActionService; | private WxBillActionService wxBillActionService; | ||||
| protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,WxBillPayWay payWay,String remark, EnumBillStatus oldStatus,EnumBillStatus newStatus,MallUserInfo mallUserInfo) { | |||||
| protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,Long payWayId,String payWayName,String remark, EnumBillStatus oldStatus,EnumBillStatus newStatus,MallUserInfo mallUserInfo) { | |||||
| WxBillAction wxBillAction = new WxBillAction(); | WxBillAction wxBillAction = new WxBillAction(); | ||||
| wxBillAction.setBillId(billId); | wxBillAction.setBillId(billId); | ||||
| wxBillAction.setBillType(billType); | wxBillAction.setBillType(billType); | ||||
| wxBillAction.setOldMoney(oldMoney); | wxBillAction.setOldMoney(oldMoney); | ||||
| wxBillAction.setNewMoney(newMoney); | wxBillAction.setNewMoney(newMoney); | ||||
| wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWay,oldStatus,newStatus)); | |||||
| wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWayName,oldStatus,newStatus)); | |||||
| wxBillAction.setAction(billAction.getCode()); | wxBillAction.setAction(billAction.getCode()); | ||||
| wxBillAction.setPayDate(payDate); | wxBillAction.setPayDate(payDate); | ||||
| if (null != payWay) { | |||||
| wxBillAction.setPayWay(payWay.getId()); | |||||
| } | |||||
| wxBillAction.setPayWay(payWayId); | |||||
| wxBillAction.setRemark(remark); | wxBillAction.setRemark(remark); | ||||
| wxBillAction.setUserType(EnumSystemUserType.ADMIN.getCode()); | wxBillAction.setUserType(EnumSystemUserType.ADMIN.getCode()); | ||||
| wxBillActionService.modifyBill(wxBillAction, mallUserInfo); | wxBillActionService.modifyBill(wxBillAction, mallUserInfo); | ||||
| } | } | ||||
| protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,WxBillPayWay payWay,String remark,EnumBillStatus oldStatus,EnumBillStatus newStatus, WxMerchantBUser bUser) { | |||||
| protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,Long payWayId,String payWayName,String remark,EnumBillStatus oldStatus,EnumBillStatus newStatus, WxMerchantBUser bUser) { | |||||
| WxBillAction wxBillAction = new WxBillAction(); | WxBillAction wxBillAction = new WxBillAction(); | ||||
| wxBillAction.setBillId(billId); | wxBillAction.setBillId(billId); | ||||
| wxBillAction.setBillType(billType); | wxBillAction.setBillType(billType); | ||||
| wxBillAction.setOldMoney(oldMoney); | wxBillAction.setOldMoney(oldMoney); | ||||
| wxBillAction.setNewMoney(newMoney); | wxBillAction.setNewMoney(newMoney); | ||||
| wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWay,oldStatus,newStatus)); | |||||
| wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWayName,oldStatus,newStatus)); | |||||
| wxBillAction.setAction(billAction.getCode()); | wxBillAction.setAction(billAction.getCode()); | ||||
| wxBillAction.setPayDate(payDate); | wxBillAction.setPayDate(payDate); | ||||
| if (null != payWay) { | |||||
| wxBillAction.setPayWay(payWay.getId()); | |||||
| } | |||||
| wxBillAction.setPayWay(payWayId); | |||||
| wxBillAction.setRemark(remark); | wxBillAction.setRemark(remark); | ||||
| wxBillAction.setUserType(EnumSystemUserType.MERCHANT.getCode()); | wxBillAction.setUserType(EnumSystemUserType.MERCHANT.getCode()); | ||||
| wxBillActionService.modifyBill(wxBillAction, bUser); | wxBillActionService.modifyBill(wxBillAction, bUser); | ||||
| @@ -554,7 +554,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| //单保存冲抵的时候,实收金额为0 | //单保存冲抵的时候,实收金额为0 | ||||
| BigDecimal receiveTotal = new BigDecimal(0); | BigDecimal receiveTotal = new BigDecimal(0); | ||||
| WxBillPayWay payWay0 = null; | |||||
| //WxBillPayWay payWay0 = null; | |||||
| final IdWorker idWorker = IdWorker.get(); | final IdWorker idWorker = IdWorker.get(); | ||||
| Long receiveId = idWorker.nextId(); | Long receiveId = idWorker.nextId(); | ||||
| List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>(); | List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>(); | ||||
| @@ -567,14 +567,12 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"收款方式不能为空"); | throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"收款方式不能为空"); | ||||
| } | } | ||||
| receiveTotal = receiveTotal.add(new BigDecimal(payWay.getMoney())); | receiveTotal = receiveTotal.add(new BigDecimal(payWay.getMoney())); | ||||
| if (null == payWay0) { | |||||
| payWay0 = payWay; | |||||
| } | |||||
| WxFinanceReceivePayway rpw = new WxFinanceReceivePayway(); | WxFinanceReceivePayway rpw = new WxFinanceReceivePayway(); | ||||
| rpw.updateTenantInfo(record); | rpw.updateTenantInfo(record); | ||||
| rpw.setReceiveId(receiveId); | rpw.setReceiveId(receiveId); | ||||
| rpw.setReceive(payWay.getMoney()); | rpw.setReceive(payWay.getMoney()); | ||||
| rpw.setPayWay(payWay.getId()); | rpw.setPayWay(payWay.getId()); | ||||
| rpw.setPayWayName(payWay.getName()); | |||||
| rpw.setCreateTime(new Date()); | rpw.setCreateTime(new Date()); | ||||
| rpw.setUpdateTime(new Date()); | rpw.setUpdateTime(new Date()); | ||||
| rpw.setIsDel(EnumYesOrNo.NO.getCode()); | rpw.setIsDel(EnumYesOrNo.NO.getCode()); | ||||
| @@ -605,7 +603,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| for (int i = 0 ; i < record.getBills().size(); i++) { | for (int i = 0 ; i < record.getBills().size(); i++) { | ||||
| WxAllBill be = record.getBills().get(i); | WxAllBill be = record.getBills().get(i); | ||||
| //每个账单要创建一个收款关联单,如果有冲抵,要额外创建 | //每个账单要创建一个收款关联单,如果有冲抵,要额外创建 | ||||
| boolean noNeedCreate = createBillReceive(calcuteDto,user,addreceive,be,merchant,payWay0); | |||||
| boolean noNeedCreate = createBillReceive(calcuteDto,user,addreceive,be,merchant,receivePayWayList); | |||||
| if (!noNeedCreate) { | if (!noNeedCreate) { | ||||
| isAllEmpity = false; | isAllEmpity = false; | ||||
| } | } | ||||
| @@ -627,7 +625,36 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| return retMap; | return retMap; | ||||
| } | } | ||||
| public boolean createBillReceive(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,WxBillPayWay payWay0) { | |||||
| private void calcuteReceiveMoney(StringBuffer sb,WxFinanceReceive addreceive,WxAllBill bill,List<WxFinanceReceivePayway> receivePayWayList,BigDecimal moneyDecimal) { | |||||
| if (moneyDecimal.compareTo(new BigDecimal(0)) <= 0 ) { | |||||
| return ; | |||||
| } | |||||
| for (int i = 0 ; i < receivePayWayList.size(); i ++) { | |||||
| WxFinanceReceivePayway payway = receivePayWayList.get(i); | |||||
| //能够覆盖账单金额 | |||||
| if (moneyDecimal.compareTo(new BigDecimal(payway.getReceive())) <= 0 ) { | |||||
| //创建一个实收款单关联 | |||||
| createFinanceReceiveBill(addreceive,bill,moneyDecimal.toPlainString(),null,payway.getId()); | |||||
| sb.append(payway.getPayWayName()).append("收款").append(moneyDecimal.toPlainString()).append(","); | |||||
| BigDecimal remain = new BigDecimal(payway.getReceive()).subtract(moneyDecimal); | |||||
| if (remain.compareTo(new BigDecimal(0))==0) { | |||||
| receivePayWayList.remove(i); | |||||
| }else { | |||||
| payway.setReceive(remain.toPlainString()); | |||||
| } | |||||
| break; | |||||
| }else { | |||||
| //创建一个实收款单关联 | |||||
| createFinanceReceiveBill(addreceive,bill,payway.getReceive(),null,payway.getId()); | |||||
| sb.append(payway.getPayWayName()).append("收款").append(payway.getReceive()).append(","); | |||||
| receivePayWayList.remove(i); | |||||
| BigDecimal needlat = moneyDecimal.subtract(new BigDecimal(payway.getReceive())); | |||||
| calcuteReceiveMoney(sb,addreceive,bill,receivePayWayList,needlat); | |||||
| } | |||||
| } | |||||
| } | |||||
| public boolean createBillReceive(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,List<WxFinanceReceivePayway> receivePayWayList) { | |||||
| //如果既没有收款,也没有冲抵,则不更新 | //如果既没有收款,也没有冲抵,则不更新 | ||||
| boolean noNeedCreate = true; | boolean noNeedCreate = true; | ||||
| //计算账单收款费用,更新账单收款 | //计算账单收款费用,更新账单收款 | ||||
| @@ -654,18 +681,23 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| money = calcuteDto.getTotalRemainReceive().toPlainString(); | money = calcuteDto.getTotalRemainReceive().toPlainString(); | ||||
| calcuteDto.setTotalRemainReceive(new BigDecimal(0)); | calcuteDto.setTotalRemainReceive(new BigDecimal(0)); | ||||
| } | } | ||||
| WxFinanceReceivePayway payway0 = receivePayWayList.get(0); | |||||
| StringBuffer sb = new StringBuffer(); | |||||
| BigDecimal moneyDecimal = new BigDecimal(money); | |||||
| //根据金额循环创建 | |||||
| calcuteReceiveMoney(sb,addreceive, bill, receivePayWayList, moneyDecimal); | |||||
| WxBillPayDTO payDto = new WxBillPayDTO(); | WxBillPayDTO payDto = new WxBillPayDTO(); | ||||
| payDto.updateTenantInfo(addreceive); | payDto.updateTenantInfo(addreceive); | ||||
| payDto.setId(be.getId()); | payDto.setId(be.getId()); | ||||
| payDto.setBillTypeValue(be.getBillType()); | payDto.setBillTypeValue(be.getBillType()); | ||||
| payDto.setAddpay(money); | payDto.setAddpay(money); | ||||
| payDto.setPayWay(payWay0.getId()); | |||||
| payDto.setPayWayObject(payWay0); | |||||
| payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()); | |||||
| payDto.setPayWay(payway0.getId()); | |||||
| payDto.setPayWayName(payway0.getPayWayName()); | |||||
| payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()+"收款明细:"+sb.toString()); | |||||
| be.setCurrentReceive(money); | be.setCurrentReceive(money); | ||||
| //创建一个实收款单关联 | |||||
| createFinanceReceiveBill(addreceive,bill,money,null,payWay0.getId()); | |||||
| bill.setCurrentReceive(money); | bill.setCurrentReceive(money); | ||||
| //并且有抵扣 | //并且有抵扣 | ||||
| if(StringUtils.isNotBlank(be.getCurrentSetOff())) { | if(StringUtils.isNotBlank(be.getCurrentSetOff())) { | ||||
| @@ -693,11 +725,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| payDto.setAddpay("0"); | payDto.setAddpay("0"); | ||||
| payDto.setSetOff(be.getCurrentSetOff()); | payDto.setSetOff(be.getCurrentSetOff()); | ||||
| payDto.setPayWay(Constant.bill_pay_way_setoff); | payDto.setPayWay(Constant.bill_pay_way_setoff); | ||||
| if (null == payWay0) { | |||||
| payWay0 = new WxBillPayWay(); | |||||
| payWay0.setId(Constant.bill_pay_way_setoff); | |||||
| } | |||||
| payDto.setPayWayObject(payWay0); | |||||
| payDto.setPayWayName("冲抵"); | |||||
| payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark()); | payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark()); | ||||
| wxBillAllHelper.updatePay(payDto, user); | wxBillAllHelper.updatePay(payDto, user); | ||||
| } | } | ||||
| @@ -825,7 +853,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| for (int i = 0 ; i < record.getBills().size(); i++) { | for (int i = 0 ; i < record.getBills().size(); i++) { | ||||
| WxAllBill be = record.getBills().get(i); | WxAllBill be = record.getBills().get(i); | ||||
| //每个账单要创建一个收款关联单,如果有冲抵,要额外创建 | //每个账单要创建一个收款关联单,如果有冲抵,要额外创建 | ||||
| boolean noNeedCreate = createBillPay(calcuteDto,user,addreceive,be,merchant,payWay0); | |||||
| boolean noNeedCreate = createBillPay(calcuteDto,user,addreceive,be,merchant,receivePayWayList); | |||||
| if (!noNeedCreate) { | if (!noNeedCreate) { | ||||
| isAllEmpity = false; | isAllEmpity = false; | ||||
| } | } | ||||
| @@ -843,7 +871,36 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| return retMap; | return retMap; | ||||
| } | } | ||||
| public boolean createBillPay(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,WxBillPayWay payWay0) { | |||||
| private void calcutePayMoney(StringBuffer sb,WxFinanceReceive addreceive,WxAllBill bill,List<WxFinanceReceivePayway> receivePayWayList,BigDecimal moneyDecimal) { | |||||
| if (moneyDecimal.compareTo(new BigDecimal(0)) <= 0 ) { | |||||
| return ; | |||||
| } | |||||
| for (int i = 0 ; i < receivePayWayList.size(); i ++) { | |||||
| WxFinanceReceivePayway payway = receivePayWayList.get(i); | |||||
| //能够覆盖账单金额 | |||||
| if (moneyDecimal.compareTo(new BigDecimal(payway.getReceive())) <= 0 ) { | |||||
| //创建一个实收款单关联 | |||||
| createFinanceReceiveBill(addreceive,bill,null,moneyDecimal.toPlainString(),payway.getId()); | |||||
| sb.append(payway.getPayWayName()).append("付款").append(moneyDecimal.toPlainString()).append(","); | |||||
| BigDecimal remain = new BigDecimal(payway.getReceive()).subtract(moneyDecimal); | |||||
| if (remain.compareTo(new BigDecimal(0))==0) { | |||||
| receivePayWayList.remove(i); | |||||
| }else { | |||||
| payway.setReceive(remain.toPlainString()); | |||||
| } | |||||
| break; | |||||
| }else { | |||||
| //创建一个实收款单关联 | |||||
| createFinanceReceiveBill(addreceive,bill,null,payway.getReceive(),payway.getId()); | |||||
| sb.append(payway.getPayWayName()).append("付款").append(payway.getReceive()).append(","); | |||||
| receivePayWayList.remove(i); | |||||
| BigDecimal needlat = moneyDecimal.subtract(new BigDecimal(payway.getReceive())); | |||||
| calcutePayMoney(sb,addreceive,bill,receivePayWayList,needlat); | |||||
| } | |||||
| } | |||||
| } | |||||
| public boolean createBillPay(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,List<WxFinanceReceivePayway> receivePayWayList) { | |||||
| //如果既没有收款,也没有冲抵,则不更新 | //如果既没有收款,也没有冲抵,则不更新 | ||||
| boolean noNeedCreate = true; | boolean noNeedCreate = true; | ||||
| //计算账单收款费用,更新账单收款 | //计算账单收款费用,更新账单收款 | ||||
| @@ -868,18 +925,24 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| money = calcuteDto.getTotalRemainPay().toPlainString(); | money = calcuteDto.getTotalRemainPay().toPlainString(); | ||||
| calcuteDto.setTotalRemainPay(new BigDecimal(0)); | calcuteDto.setTotalRemainPay(new BigDecimal(0)); | ||||
| } | } | ||||
| WxFinanceReceivePayway payway0 = receivePayWayList.get(0); | |||||
| WxBillPayDTO payDto = new WxBillPayDTO(); | WxBillPayDTO payDto = new WxBillPayDTO(); | ||||
| payDto.updateTenantInfo(addreceive); | payDto.updateTenantInfo(addreceive); | ||||
| payDto.setId(be.getId()); | payDto.setId(be.getId()); | ||||
| payDto.setBillTypeValue(be.getBillType()); | payDto.setBillTypeValue(be.getBillType()); | ||||
| payDto.setPayToMerchant(money); | payDto.setPayToMerchant(money); | ||||
| payDto.setPayWay(payWay0.getId()); | |||||
| payDto.setPayWayObject(payWay0); | |||||
| payDto.setPayWay(payway0.getId()); | |||||
| payDto.setPayWayName(payway0.getPayWayName()); | |||||
| payDto.setRemark("付款单付款["+addreceive.getId()+"]"+addreceive.getRemark()); | payDto.setRemark("付款单付款["+addreceive.getId()+"]"+addreceive.getRemark()); | ||||
| be.setCurrentReceive(money); | be.setCurrentReceive(money); | ||||
| //创建一个实收款单关联 | |||||
| createFinanceReceiveBill(addreceive,bill,null,money,payWay0.getId()); | |||||
| //根据金额循环创建 | |||||
| StringBuffer sb = new StringBuffer(); | |||||
| BigDecimal moneyDecimal = new BigDecimal(money); | |||||
| calcutePayMoney(sb, addreceive, bill, receivePayWayList, moneyDecimal); | |||||
| bill.setCurrentReceive(money); | bill.setCurrentReceive(money); | ||||
| wxBillAllHelper.updatePayToMerchant(payDto, user); | wxBillAllHelper.updatePayToMerchant(payDto, user); | ||||
| @@ -24,7 +24,8 @@ public class PayBillBaseService { | |||||
| dto.setId(billId); | dto.setId(billId); | ||||
| dto.setBillTypeValue(billType.getCode()); | dto.setBillTypeValue(billType.getCode()); | ||||
| dto.setAddpay(paid); | dto.setAddpay(paid); | ||||
| dto.setPayWayObject(payWay); | |||||
| dto.setPayWay(payWay.getId()); | |||||
| dto.setPayWayName(payWay.getName()); | |||||
| dto.setRemark(remark); | dto.setRemark(remark); | ||||
| WxMerchantBUser buser = wxMerchantBUserService.getById(merchantBUserId); | WxMerchantBUser buser = wxMerchantBUserService.getById(merchantBUserId); | ||||