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 3dc54976c..501ba1a06 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -611,9 +611,9 @@ public class WxFinanceController extends BaseController { public ResultData finishList(@ModelAttribute WxFinanceFinish record, Integer pageNum, Integer pageSize) { record.updateTenantInfo(getTenantInfo()); record.setSortColumns(BaseEntity.SortField.CreateTime_DESC); - if (null != record.getIsMyCreate() && EnumYesOrNo.YES.getCode() == record.getIsMyCreate()) { - record.setCreateBy(this.getUser().getId()); - } +// if (null != record.getIsMyCreate() && EnumYesOrNo.YES.getCode() == record.getIsMyCreate()) { +// record.setCreateBy(this.getUser().getId()); +// } PageInfo page = wxFinanceService.finishListAsPage(record, pageNum, pageSize); return new ResultData(page); } @@ -687,7 +687,7 @@ public class WxFinanceController extends BaseController { return new ResultData(page); } - @ApiOperation("交款收付款总计") + @ApiOperation("交款收付单列表") @PostMapping("finishReceiveList") public ResultData finishReceiveList(@RequestBody WxFinanceFinish record) { record.updateTenantInfo(getTenantInfo()); @@ -699,6 +699,9 @@ public class WxFinanceController extends BaseController { @PostMapping("saveFinish") public ResultData saveFinish(@RequestBody WxFinanceFinish record) { record.updateTenantInfo(getTenantInfo()); + if (null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { + return new ResultData(Result.ERROR,"无关联的单据"); + } wxFinanceService.saveOrUpdateFinish(record, getUser()); return new ResultData(); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java index 3c4a6607a..37621bf90 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java @@ -146,6 +146,9 @@ public class WxFinanceFinish extends TenantEntity { return null; } + @io.swagger.annotations.ApiModelProperty(value="总金额",name="total") + private String total; + @TableField(exist = false) private List receiveIds; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFinanceFinishStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumFinanceFinishStatus.java index 3b110f898..b2a8fb711 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFinanceFinishStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFinanceFinishStatus.java @@ -5,9 +5,8 @@ package com.iformall.enums; public enum EnumFinanceFinishStatus { - READY(1,"待审核结账"), - COMPLETE(2,"已审核结账"), - REREADY(3, "重新结账中") + UN_AUDIT(1,"未审核"), + AUDITED(2,"已审核") ; public static EnumFinanceFinishStatus getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceFinishReceiveMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceFinishReceiveMapper.java index 404f871b0..9559498b2 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceFinishReceiveMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceFinishReceiveMapper.java @@ -17,5 +17,7 @@ public interface WxFinanceFinishReceiveMapper extends CommonMapper findReceiveIdList(WxFinanceFinishReceive wxBillRent); List findFinishIdList(WxFinanceFinishReceive wxBillRent); + + void deleteByCondition(WxFinanceFinishReceive wxBillRent); } 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 c8ec15ef5..99844c88c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -1608,33 +1608,6 @@ public class WxFinanceServiceImpl implements WxFinanceService { return wxFinanceFinishMapper.selectById(id, tenantEntity.getTenantId()); } - @Override - public void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user) { - Date date = new Date(); - if (record.getId() == null) { - final IdWorker idWorker = IdWorker.get(); - record.setId(idWorker.nextId()); - record.setCreateTime(date); - record.setCreateBy(user.getId()); - record.setCreateByName(user.getName()); - record.setUpdateTime(date); - record.setUpdateBy(user.getId()); - record.setUpdateByName(user.getName()); - record.setStatus(EnumFinanceFinishStatus.READY.getCode()); - try { - wxFinanceFinishMapper.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); - record.setUpdateBy(user.getId()); - record.setUpdateByName(user.getName()); - wxFinanceFinishMapper.updateById(record); - } - } - @Override public WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record) { initQueryParam(record); @@ -1650,7 +1623,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { WxFinanceFinish ff = new WxFinanceFinish(); ff.updateTenantInfo(record); ff.setId(finish.getId()); - ff.setStatus(EnumFinanceFinishStatus.COMPLETE.getCode()); + ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); ff.setUpdateTime(new Date()); ff.setUpdateBy(user.getId()); ff.setUpdateByName(user.getName()); @@ -1682,7 +1655,7 @@ public class WxFinanceServiceImpl implements WxFinanceService { WxFinanceFinish ff = new WxFinanceFinish(); ff.updateTenantInfo(record); ff.setId(record.getId()); - ff.setStatus(EnumFinanceFinishStatus.COMPLETE.getCode()); + ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); ff.setUpdateTime(new Date()); ff.setUpdateBy(user.getId()); ff.setUpdateByName(user.getName()); @@ -1830,5 +1803,68 @@ public class WxFinanceServiceImpl implements WxFinanceService { } return null; } + + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + @Override + public void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user) { + WxFinanceReceive fr = new WxFinanceReceive(); + fr.updateTenantInfo(record); + fr.setIds(record.getReceiveIds()); + WxFinanceReceiveSumVo vo = wxFinanceReceiveMapper.getReceiveSum(fr); + BigDecimal receive = new BigDecimal(0); + if (StringUtils.isNotBlank(vo.getTotalReceive())){ + receive = new BigDecimal(vo.getTotalReceive()); + } + BigDecimal pay = new BigDecimal(0); + if (StringUtils.isNotBlank(vo.getTotalPay())){ + pay = new BigDecimal(vo.getTotalPay()); + } + record.setTotal(receive.subtract(pay).toPlainString()); + + //删除之前的单据关联 + WxFinanceFinishReceive frdel = new WxFinanceFinishReceive(); + frdel.updateTenantInfo(record); + frdel.setFinishId(record.getId());; + wxFinanceFinishReceiveMapper.deleteByCondition(frdel); + + final IdWorker idWorker = IdWorker.get(); + Date date = new Date(); + if (record.getId() == null) { + record.setId(idWorker.nextId()); + record.setCreateTime(date); + record.setCreateBy(user.getId()); + record.setCreateByName(user.getName()); + record.setUpdateTime(date); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + record.setStatus(EnumFinanceFinishStatus.UN_AUDIT.getCode()); + try { + wxFinanceFinishMapper.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); + record.setUpdateBy(user.getId()); + record.setUpdateByName(user.getName()); + wxFinanceFinishMapper.updateById(record); + } + + //新增关联 + for (int i = 0 ; i < record.getReceiveIds().size() ; i ++) { + Long receiveId = record.getReceiveIds().get(i); + WxFinanceFinishReceive ffr = new WxFinanceFinishReceive(); + ffr.updateTenantInfo(record); + ffr.setId(idWorker.nextId()); + ffr.setCreateTime(new Date()); + ffr.setUpdateTime(new Date()); + ffr.setStatus(record.getStatus()); + ffr.setFinishId(record.getId()); + ffr.setReceiveId(receiveId); + wxFinanceFinishReceiveMapper.insert(ffr); + } + + } } diff --git a/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml index 750e874fc..f5bae7468 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceFinishMapper.xml @@ -22,11 +22,12 @@ + `id`,`tenant_id`,`parent_tenant_id`,`create_time`,`update_time`,`create_by`,`create_by_name`,`update_by`,`update_by_name`, - `status`,`remark`,`audit_remark`,`start_date`,`end_date`,`audit_time`,`audit_by`,`audit_by_name`,`buildings,`fees`,`payways` + `status`,`remark`,`audit_remark`,`start_date`,`end_date`,`audit_time`,`audit_by`,`audit_by_name`,`buildings,`fees`,`payways`,`total` diff --git a/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml index c3ef99547..f620ca8b7 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml @@ -65,5 +65,10 @@ from wx_finance_finish_receive where id = #{id} and `tenant_id` = #{tenantId} + + delete from wx_finance_finish_receive + + +