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 eb0606400..2db40e1eb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -312,6 +312,38 @@ public class WxFinanceController extends BaseController { return new ResultData(map); } + @ApiOperation("更新收款单时间") + @PostMapping("updateReceiveDate") + public ResultData updateReceiveDate(@RequestBody WxFinanceReceive record) { + record.updateTenantInfo(getTenantInfo()); + if (null == record.getId()) { + return new ResultData(Result.ERROR,"请选择单据"); + } + if (null == record.getReceiveDate()) { + return new ResultData(Result.ERROR,"请选择支付时间"); + } + if (!this.isValidPayTime(record.getReceiveDate())) { + return new ResultData(Result.ERROR,"支付时间请在结账截止时间之后"); + } + wxFinanceService.updateReceive(record,this.getUser()); + return new ResultData(); + } + + @ApiOperation("更新收款单付款方式") + @PostMapping("updateReceivePayway") + public ResultData updateReceivePayway(@RequestBody WxFinanceReceive record) { + record.updateTenantInfo(getTenantInfo()); + if (null == record.getId()) { + return new ResultData(Result.ERROR,"请选择单据"); + } + try { + wxFinanceService.updateReceivePayways(record,this.getUser()); + }catch(Exception e) { + return new ResultData(Result.ERROR,e.getMessage()); + } + return new ResultData(); + } + @ApiOperation("新增减免") @PostMapping("createCut") public ResultData createCut(@RequestBody WxFinanceReceive record) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java index e6fb32ed8..81096aa6b 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxFinanceService.java @@ -44,6 +44,8 @@ public interface WxFinanceService { void exportReceiveBill(WxFinanceReceiveBill record,HttpServletRequest request, HttpServletResponse response); List findReceiveList(WxFinanceReceive record); Map createReceive(WxFinanceReceive record,MallUserInfo user); + void updateReceive(WxFinanceReceive record,MallUserInfo user); + void updateReceivePayways(WxFinanceReceive record,MallUserInfo user); Map createCut(WxFinanceReceive record,MallUserInfo user); Map createPay(WxFinanceReceive record,MallUserInfo user); WxFinanceReceive getReceiveById(TenantEntity tenantEntity,Long id); 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 657ac56e6..086efd63c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -979,6 +979,61 @@ public class WxFinanceServiceImpl implements WxFinanceService { } } + @Override + public void updateReceive(WxFinanceReceive record,MallUserInfo user) { + record.setUpdateTime(new Date()); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + wxFinanceReceiveMapper.updateById(record); + } + + @Override + public void updateReceivePayways(WxFinanceReceive record,MallUserInfo user) { + WxFinanceReceive receive = this.getReceiveById(record, record.getId()); + record.setUpdateTime(new Date()); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + List receivePayWayList = new ArrayList(); + StringBuffer moneyDetail = new StringBuffer(); + BigDecimal receiveTotal = new BigDecimal(0); + if (null != record.getPayWays()) { + final IdWorker idWorker = IdWorker.get(); + for (int i = 0 ; i < record.getPayWays().size() ; i ++) { + WxBillPayWay payWay = record.getPayWays().get(i); + if (StringUtils.isNotBlank(payWay.getMoney())) { + if (null == payWay.getId()) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"收款方式不能为空"); + } + receiveTotal = receiveTotal.add(new BigDecimal(payWay.getMoney())); + WxFinanceReceivePayway rpw = new WxFinanceReceivePayway(); + rpw.setId(idWorker.nextId()); + rpw.updateTenantInfo(record); + rpw.setReceiveId(record.getId()); + rpw.setReceive(payWay.getMoney()); + rpw.setPayWay(payWay.getId()); + rpw.setPayWayName(payWay.getName()); + rpw.setCreateTime(new Date()); + rpw.setUpdateTime(new Date()); + rpw.setIsDel(EnumYesOrNo.NO.getCode()); + receivePayWayList.add(rpw); + moneyDetail.append(payWay.getName()).append(":").append(payWay.getMoney()).append("元"); + } + } + if (receiveTotal.compareTo(new BigDecimal(receive.getReceiveMoney())) != 0) { + throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"总收款金额不正确"); + }else { + record.setMoneyDetail(moneyDetail.toString()); + //删除之前的收款方式 + WxFinanceReceivePayway pd = new WxFinanceReceivePayway(); + pd.updateTenantInfo(record); + pd.setReceiveId(record.getId()); + wxFinanceReceivePaywayMapper.deleteByConditon(pd); + wxFinanceReceivePaywayMapper.insertPayWays(record.getTenantId(),receivePayWayList); + } + wxFinanceReceiveMapper.updateById(record); + } + } + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override