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 501ba1a06..c2da30ef9 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/market/WxFinanceController.java @@ -12,6 +12,7 @@ import com.iformall.domain.po.WxAllBill; import com.iformall.domain.po.WxBillPayWay; import com.iformall.domain.po.WxEnergyFees; import com.iformall.domain.po.WxFinanceFinish; +import com.iformall.domain.po.WxFinanceFinishReceive; import com.iformall.domain.po.WxFinanceReceive; import com.iformall.domain.po.WxFinanceReceiveBill; import com.iformall.domain.po.WxFinanceReceivePayway; @@ -695,48 +696,42 @@ public class WxFinanceController extends BaseController { return new ResultData(list); } - @ApiOperation("新增交款") + @ApiOperation("新增/修改交款") @PostMapping("saveFinish") public ResultData saveFinish(@RequestBody WxFinanceFinish record) { record.updateTenantInfo(getTenantInfo()); if (null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { return new ResultData(Result.ERROR,"无关联的单据"); } + //如果单据已经存在了,则不允许提交。 + + List list = wxFinanceService.findFinishReceiveList(record); + if (null != list && list.size() > 0 ) { + return new ResultData(Result.ERROR,"单据已经存在交款批次"); + } wxFinanceService.saveOrUpdateFinish(record, getUser()); return new ResultData(); } - @ApiOperation("结账") - @PostMapping("receiveFinish") - public ResultData receiveFinish(@RequestBody WxFinanceFinish record) { + @ApiOperation("审核/反审核交款") + @PostMapping("auditFinish") + public ResultData auditFinish(@RequestBody WxFinanceFinish record) { if (null == record.getId()) { return new ResultData(Result.ERROR,"finishId参数不能为空"); } record.updateTenantInfo(getTenantInfo()); - wxFinanceService.finishReceive(record, getUser()); + wxFinanceService.auditReceive(record, getUser()); return new ResultData(); } - @ApiOperation("批次结账") + @ApiOperation("批次审核/反审核单据结账") @PostMapping("batchReceiveFinish") public ResultData batchReceiveFinish(@RequestBody WxFinanceFinish record) { if (null == record.getId() || null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { return new ResultData(Result.ERROR,"请选择"); } record.updateTenantInfo(getTenantInfo()); - WxFinanceFinish finish = wxFinanceService.getFinishById(record, record.getId()); - WxFinanceReceive rq = new WxFinanceReceive(); - rq.setCreateTimeBegin(finish.getStartDate()); - rq.setCreateTimeEnd(finish.getEndDate()); - rq.setIsFinish(EnumYesOrNo.NO.getCode()); - rq.updateTenantInfo(record); - Integer count = wxFinanceService.getReceiveUnFinisedCount(rq); - boolean isAll = false; - if (null != count && count > record.getReceiveIds().size()) { - }else { - isAll = true; - } - wxFinanceService.batchFinishReceive(record, getUser(),isAll); + wxFinanceService.batchAuditFinishReceive(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 37621bf90..726ae144a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinish.java @@ -167,4 +167,7 @@ public class WxFinanceFinish extends TenantEntity { @TableField(exist = false) private Integer isReceive; + @TableField(exist = false) + private List deleteReceiveIds; + } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinishReceive.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinishReceive.java index 3d70a97a5..e511e88e6 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinishReceive.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceFinishReceive.java @@ -54,4 +54,8 @@ public class WxFinanceFinishReceive extends TenantEntity { @TableField(exist = false) private String receiveIdLike; + @TableField(exist = false) + private List receiveIds; + @TableField(exist = false) + private Long ownFinishId; } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java index 5f188f86c..5adb6b357 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxFinanceReceive.java @@ -195,5 +195,7 @@ public class WxFinanceReceive extends TenantEntity { private Map flowParams; @TableField(exist = false) private String rentName; + @TableField(exist = false) + private List notInIds; } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java index 7291edd5d..f930b533a 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxFinanceReceiveMapper.java @@ -22,7 +22,7 @@ public interface WxFinanceReceiveMapper extends CommonMapper finishListAsPage(WxFinanceFinish record, Integer pageIndex, Integer pageSize); WxFinanceFinish getFinishById(TenantEntity tenantEntity,Long id); void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user); + List findFinishReceiveList(WxFinanceFinish record); WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); List getReceiveFinishCount(WxFinanceFinish record); List getReceiveCount(WxFinanceFinish record); @@ -79,9 +81,8 @@ public interface WxFinanceService { List getReceiveFeesSum(WxFinanceFinish record); WxFinanceReceiveSumVo getReceiveSumByFinish(WxFinanceFinish record); List getReceiveVoListByFinish(WxFinanceFinish record); - - void finishReceive(WxFinanceFinish record,MallUserInfo user); + void auditReceive(WxFinanceFinish record,MallUserInfo user); Integer getReceiveUnFinisedCount(WxFinanceReceive record); - void batchFinishReceive(WxFinanceFinish record,MallUserInfo user,boolean isAll); + void batchAuditFinishReceive(WxFinanceFinish record,MallUserInfo user); SysConfig getFinishEndTime(TenantEntity tenantEntity); } 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 99844c88c..02c498cd1 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java @@ -1617,24 +1617,36 @@ public class WxFinanceServiceImpl implements WxFinanceService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public void finishReceive(WxFinanceFinish record, MallUserInfo user) { + public void auditReceive(WxFinanceFinish record, MallUserInfo user) { WxFinanceFinish finish = this.getFinishById(record, record.getId()); //更新批次, WxFinanceFinish ff = new WxFinanceFinish(); ff.updateTenantInfo(record); ff.setId(finish.getId()); - ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); + //ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); + ff.setStatus(record.getStatus()); ff.setUpdateTime(new Date()); ff.setUpdateBy(user.getId()); ff.setUpdateByName(user.getName()); wxFinanceFinishMapper.updateById(ff); //更新收付款记录 - WxFinanceReceive fr = new WxFinanceReceive(); - fr.updateTenantInfo(record); - fr.setReceiveDateBegin(finish.getStartDate()); - fr.setReceiveDateEnd(finish.getEndDate()); - fr.setIsFinish(EnumYesOrNo.NO.getCode()); - wxFinanceReceiveMapper.finish(fr); + WxFinanceFinishReceive ffr = new WxFinanceFinishReceive(); + ffr.updateTenantInfo(record); + ffr.setFinishId(finish.getId()); + + Integer isFinish = EnumYesOrNo.YES.getCode(); + if (record.getStatus() == EnumFinanceFinishStatus.UN_AUDIT.getCode()) { + isFinish = EnumYesOrNo.NO.getCode(); + } + + List receiveIds = wxFinanceFinishReceiveMapper.findReceiveIdList(ffr); + if (null != receiveIds && receiveIds.size() > 0 ) { + WxFinanceReceive fr = new WxFinanceReceive(); + fr.updateTenantInfo(record); + fr.setIds(receiveIds); + fr.setIsFinish(isFinish); + wxFinanceReceiveMapper.updateFinish(fr); + } } @Override @@ -1644,23 +1656,18 @@ public class WxFinanceServiceImpl implements WxFinanceService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Override - public void batchFinishReceive(WxFinanceFinish record, MallUserInfo user,boolean isAll) { + public void batchAuditFinishReceive(WxFinanceFinish record, MallUserInfo user) { + Integer isFinish = EnumYesOrNo.YES.getCode(); + if (record.getStatus() == EnumFinanceFinishStatus.UN_AUDIT.getCode()) { + isFinish = EnumYesOrNo.NO.getCode(); + } + //更新收付款记录 WxFinanceReceive fr = new WxFinanceReceive(); fr.updateTenantInfo(record); fr.setIds(record.getReceiveIds()); - wxFinanceReceiveMapper.finish(fr); - //如果主 - if (isAll) { - WxFinanceFinish ff = new WxFinanceFinish(); - ff.updateTenantInfo(record); - ff.setId(record.getId()); - ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); - ff.setUpdateTime(new Date()); - ff.setUpdateBy(user.getId()); - ff.setUpdateByName(user.getName()); - wxFinanceFinishMapper.updateById(ff); - } + fr.setIsFinish(isFinish);; + wxFinanceReceiveMapper.updateFinish(fr); } @Override @@ -1678,6 +1685,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { WxFinanceReceive fr = new WxFinanceReceive(); fr.updateTenantInfo(record); if (null != record.getId()) { + + if (null != record.getDeleteReceiveIds() && record.getDeleteReceiveIds().size() > 0 ) { + fr.setNotInIds(record.getDeleteReceiveIds()); + } + WxFinanceFinishReceive ffr = new WxFinanceFinishReceive(); ffr.updateTenantInfo(record); ffr.setFinishId(record.getId()); @@ -1867,4 +1879,15 @@ public class WxFinanceServiceImpl implements WxFinanceService { } + @Override + public List findFinishReceiveList(WxFinanceFinish record) { + WxFinanceFinishReceive ffrq = new WxFinanceFinishReceive(); + ffrq.updateTenantInfo(record); + ffrq.setReceiveIds(record.getReceiveIds()); + if (null != record.getId()) { + ffrq.setOwnFinishId(record.getId()); + }; + return wxFinanceFinishReceiveMapper.findList(ffrq); + } + } diff --git a/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml index f620ca8b7..7663913fb 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceFinishReceiveMapper.xml @@ -31,6 +31,13 @@ and receive_id like concat('%', #{receiveIdLike},'%') + and `finish_id` != #{ownFinishId} + + and receive_id in + + #{ridItem} + + and id in diff --git a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml index 5676a27db..074c94f95 100644 --- a/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxFinanceReceiveMapper.xml @@ -73,6 +73,12 @@ #{fidItem} + + and id not in + + #{nidItem} + + and id in @@ -163,8 +169,8 @@ group by fees_id - - update wx_finance_receive set is_finish = 1 + + update wx_finance_receive set is_finish = #{isFinish} and status not in (2,3,4)