| @@ -12,6 +12,7 @@ import com.iformall.domain.po.WxAllBill; | |||||
| import com.iformall.domain.po.WxBillPayWay; | import com.iformall.domain.po.WxBillPayWay; | ||||
| import com.iformall.domain.po.WxEnergyFees; | import com.iformall.domain.po.WxEnergyFees; | ||||
| import com.iformall.domain.po.WxFinanceFinish; | import com.iformall.domain.po.WxFinanceFinish; | ||||
| import com.iformall.domain.po.WxFinanceFinishReceive; | |||||
| import com.iformall.domain.po.WxFinanceReceive; | import com.iformall.domain.po.WxFinanceReceive; | ||||
| import com.iformall.domain.po.WxFinanceReceiveBill; | import com.iformall.domain.po.WxFinanceReceiveBill; | ||||
| import com.iformall.domain.po.WxFinanceReceivePayway; | import com.iformall.domain.po.WxFinanceReceivePayway; | ||||
| @@ -695,48 +696,42 @@ public class WxFinanceController extends BaseController { | |||||
| return new ResultData(list); | return new ResultData(list); | ||||
| } | } | ||||
| @ApiOperation("新增交款") | |||||
| @ApiOperation("新增/修改交款") | |||||
| @PostMapping("saveFinish") | @PostMapping("saveFinish") | ||||
| public ResultData saveFinish(@RequestBody WxFinanceFinish record) { | public ResultData saveFinish(@RequestBody WxFinanceFinish record) { | ||||
| record.updateTenantInfo(getTenantInfo()); | record.updateTenantInfo(getTenantInfo()); | ||||
| if (null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { | if (null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { | ||||
| return new ResultData(Result.ERROR,"无关联的单据"); | return new ResultData(Result.ERROR,"无关联的单据"); | ||||
| } | } | ||||
| //如果单据已经存在了,则不允许提交。 | |||||
| List<WxFinanceFinishReceive> list = wxFinanceService.findFinishReceiveList(record); | |||||
| if (null != list && list.size() > 0 ) { | |||||
| return new ResultData(Result.ERROR,"单据已经存在交款批次"); | |||||
| } | |||||
| wxFinanceService.saveOrUpdateFinish(record, getUser()); | wxFinanceService.saveOrUpdateFinish(record, getUser()); | ||||
| return new ResultData(); | 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()) { | if (null == record.getId()) { | ||||
| return new ResultData(Result.ERROR,"finishId参数不能为空"); | return new ResultData(Result.ERROR,"finishId参数不能为空"); | ||||
| } | } | ||||
| record.updateTenantInfo(getTenantInfo()); | record.updateTenantInfo(getTenantInfo()); | ||||
| wxFinanceService.finishReceive(record, getUser()); | |||||
| wxFinanceService.auditReceive(record, getUser()); | |||||
| return new ResultData(); | return new ResultData(); | ||||
| } | } | ||||
| @ApiOperation("批次结账") | |||||
| @ApiOperation("批次审核/反审核单据结账") | |||||
| @PostMapping("batchReceiveFinish") | @PostMapping("batchReceiveFinish") | ||||
| public ResultData batchReceiveFinish(@RequestBody WxFinanceFinish record) { | public ResultData batchReceiveFinish(@RequestBody WxFinanceFinish record) { | ||||
| if (null == record.getId() || null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { | if (null == record.getId() || null == record.getReceiveIds() || record.getReceiveIds().size() <= 0 ) { | ||||
| return new ResultData(Result.ERROR,"请选择"); | return new ResultData(Result.ERROR,"请选择"); | ||||
| } | } | ||||
| record.updateTenantInfo(getTenantInfo()); | 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(); | return new ResultData(); | ||||
| } | } | ||||
| @@ -167,4 +167,7 @@ public class WxFinanceFinish extends TenantEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private Integer isReceive; | private Integer isReceive; | ||||
| @TableField(exist = false) | |||||
| private List<Long> deleteReceiveIds; | |||||
| } | } | ||||
| @@ -54,4 +54,8 @@ public class WxFinanceFinishReceive extends TenantEntity { | |||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private String receiveIdLike; | private String receiveIdLike; | ||||
| @TableField(exist = false) | |||||
| private List<Long> receiveIds; | |||||
| @TableField(exist = false) | |||||
| private Long ownFinishId; | |||||
| } | } | ||||
| @@ -195,5 +195,7 @@ public class WxFinanceReceive extends TenantEntity { | |||||
| private Map<String, Object> flowParams; | private Map<String, Object> flowParams; | ||||
| @TableField(exist = false) | @TableField(exist = false) | ||||
| private String rentName; | private String rentName; | ||||
| @TableField(exist = false) | |||||
| private List<Long> notInIds; | |||||
| } | } | ||||
| @@ -22,7 +22,7 @@ public interface WxFinanceReceiveMapper extends CommonMapper<WxFinanceReceive, L | |||||
| void setIsDel(@Param("id")Long id,@Param("tenantId")String tenantId,@Param("isDel")Integer isDel); | void setIsDel(@Param("id")Long id,@Param("tenantId")String tenantId,@Param("isDel")Integer isDel); | ||||
| void finish(WxFinanceReceive wxBillRent); | |||||
| void updateFinish(WxFinanceReceive wxBillRent); | |||||
| WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); | WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); | ||||
| @@ -17,6 +17,7 @@ import com.iformall.domain.po.WxAllBill; | |||||
| import com.iformall.domain.po.WxBillPayWay; | import com.iformall.domain.po.WxBillPayWay; | ||||
| import com.iformall.domain.po.WxEnergyFeesShop; | import com.iformall.domain.po.WxEnergyFeesShop; | ||||
| import com.iformall.domain.po.WxFinanceFinish; | import com.iformall.domain.po.WxFinanceFinish; | ||||
| import com.iformall.domain.po.WxFinanceFinishReceive; | |||||
| import com.iformall.domain.po.WxFinanceReceive; | import com.iformall.domain.po.WxFinanceReceive; | ||||
| import com.iformall.domain.po.WxFinanceReceiveBill; | import com.iformall.domain.po.WxFinanceReceiveBill; | ||||
| import com.iformall.domain.po.WxFinanceReceivePayway; | import com.iformall.domain.po.WxFinanceReceivePayway; | ||||
| @@ -72,6 +73,7 @@ public interface WxFinanceService { | |||||
| PageInfo<WxFinanceFinish> finishListAsPage(WxFinanceFinish record, Integer pageIndex, Integer pageSize); | PageInfo<WxFinanceFinish> finishListAsPage(WxFinanceFinish record, Integer pageIndex, Integer pageSize); | ||||
| WxFinanceFinish getFinishById(TenantEntity tenantEntity,Long id); | WxFinanceFinish getFinishById(TenantEntity tenantEntity,Long id); | ||||
| void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user); | void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user); | ||||
| List<WxFinanceFinishReceive> findFinishReceiveList(WxFinanceFinish record); | |||||
| WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); | WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); | ||||
| List<WxFinanceReceiveCountVo> getReceiveFinishCount(WxFinanceFinish record); | List<WxFinanceReceiveCountVo> getReceiveFinishCount(WxFinanceFinish record); | ||||
| List<WxFinanceReceiveCountVo> getReceiveCount(WxFinanceFinish record); | List<WxFinanceReceiveCountVo> getReceiveCount(WxFinanceFinish record); | ||||
| @@ -79,9 +81,8 @@ public interface WxFinanceService { | |||||
| List<WxFinanceReceiveBill> getReceiveFeesSum(WxFinanceFinish record); | List<WxFinanceReceiveBill> getReceiveFeesSum(WxFinanceFinish record); | ||||
| WxFinanceReceiveSumVo getReceiveSumByFinish(WxFinanceFinish record); | WxFinanceReceiveSumVo getReceiveSumByFinish(WxFinanceFinish record); | ||||
| List<WxFinanceReceiveVo> getReceiveVoListByFinish(WxFinanceFinish record); | List<WxFinanceReceiveVo> getReceiveVoListByFinish(WxFinanceFinish record); | ||||
| void finishReceive(WxFinanceFinish record,MallUserInfo user); | |||||
| void auditReceive(WxFinanceFinish record,MallUserInfo user); | |||||
| Integer getReceiveUnFinisedCount(WxFinanceReceive record); | Integer getReceiveUnFinisedCount(WxFinanceReceive record); | ||||
| void batchFinishReceive(WxFinanceFinish record,MallUserInfo user,boolean isAll); | |||||
| void batchAuditFinishReceive(WxFinanceFinish record,MallUserInfo user); | |||||
| SysConfig getFinishEndTime(TenantEntity tenantEntity); | SysConfig getFinishEndTime(TenantEntity tenantEntity); | ||||
| } | } | ||||
| @@ -1617,24 +1617,36 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| @Override | @Override | ||||
| public void finishReceive(WxFinanceFinish record, MallUserInfo user) { | |||||
| public void auditReceive(WxFinanceFinish record, MallUserInfo user) { | |||||
| WxFinanceFinish finish = this.getFinishById(record, record.getId()); | WxFinanceFinish finish = this.getFinishById(record, record.getId()); | ||||
| //更新批次, | //更新批次, | ||||
| WxFinanceFinish ff = new WxFinanceFinish(); | WxFinanceFinish ff = new WxFinanceFinish(); | ||||
| ff.updateTenantInfo(record); | ff.updateTenantInfo(record); | ||||
| ff.setId(finish.getId()); | ff.setId(finish.getId()); | ||||
| ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); | |||||
| //ff.setStatus(EnumFinanceFinishStatus.AUDITED.getCode()); | |||||
| ff.setStatus(record.getStatus()); | |||||
| ff.setUpdateTime(new Date()); | ff.setUpdateTime(new Date()); | ||||
| ff.setUpdateBy(user.getId()); | ff.setUpdateBy(user.getId()); | ||||
| ff.setUpdateByName(user.getName()); | ff.setUpdateByName(user.getName()); | ||||
| wxFinanceFinishMapper.updateById(ff); | 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<Long> 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 | @Override | ||||
| @@ -1644,23 +1656,18 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) | ||||
| @Override | @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(); | WxFinanceReceive fr = new WxFinanceReceive(); | ||||
| fr.updateTenantInfo(record); | fr.updateTenantInfo(record); | ||||
| fr.setIds(record.getReceiveIds()); | 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 | @Override | ||||
| @@ -1678,6 +1685,11 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| WxFinanceReceive fr = new WxFinanceReceive(); | WxFinanceReceive fr = new WxFinanceReceive(); | ||||
| fr.updateTenantInfo(record); | fr.updateTenantInfo(record); | ||||
| if (null != record.getId()) { | if (null != record.getId()) { | ||||
| if (null != record.getDeleteReceiveIds() && record.getDeleteReceiveIds().size() > 0 ) { | |||||
| fr.setNotInIds(record.getDeleteReceiveIds()); | |||||
| } | |||||
| WxFinanceFinishReceive ffr = new WxFinanceFinishReceive(); | WxFinanceFinishReceive ffr = new WxFinanceFinishReceive(); | ||||
| ffr.updateTenantInfo(record); | ffr.updateTenantInfo(record); | ||||
| ffr.setFinishId(record.getId()); | ffr.setFinishId(record.getId()); | ||||
| @@ -1867,4 +1879,15 @@ public class WxFinanceServiceImpl implements WxFinanceService { | |||||
| } | } | ||||
| @Override | |||||
| public List<WxFinanceFinishReceive> 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); | |||||
| } | |||||
| } | } | ||||
| @@ -31,6 +31,13 @@ | |||||
| <if test=" null != receiveIdLike and '' != receiveIdLike"> | <if test=" null != receiveIdLike and '' != receiveIdLike"> | ||||
| and receive_id like concat('%', #{receiveIdLike},'%') | and receive_id like concat('%', #{receiveIdLike},'%') | ||||
| </if> | </if> | ||||
| <if test=" null != ownFinishId ">and `finish_id` != #{ownFinishId}</if> | |||||
| <if test=" null != receiveIds "> | |||||
| and receive_id in | |||||
| <foreach collection="receiveIds" index="index" item="ridItem" open="(" separator="," close=")"> | |||||
| #{ridItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -73,6 +73,12 @@ | |||||
| #{fidItem} | #{fidItem} | ||||
| </foreach> | </foreach> | ||||
| </if> | </if> | ||||
| <if test=" null != notInIds "> | |||||
| and id not in | |||||
| <foreach collection="notInIds" index="index" item="nidItem" open="(" separator="," close=")"> | |||||
| #{nidItem} | |||||
| </foreach> | |||||
| </if> | |||||
| <if test=" null != ids "> | <if test=" null != ids "> | ||||
| and id in | and id in | ||||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | ||||
| @@ -163,8 +169,8 @@ | |||||
| group by fees_id | group by fees_id | ||||
| </select> | </select> | ||||
| <update id="finish" parameterType="com.iformall.domain.po.WxFinanceReceive"> | |||||
| update wx_finance_receive set is_finish = 1 | |||||
| <update id="updateFinish" parameterType="com.iformall.domain.po.WxFinanceReceive"> | |||||
| update wx_finance_receive set is_finish = #{isFinish} | |||||
| <include refid="dynamicWhereConditions"/> | <include refid="dynamicWhereConditions"/> | ||||
| and status not in (2,3,4) | and status not in (2,3,4) | ||||
| </update> | </update> | ||||