| @@ -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<WxFinanceFinishReceive> 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(); | |||
| } | |||
| @@ -167,4 +167,7 @@ public class WxFinanceFinish extends TenantEntity { | |||
| @TableField(exist = false) | |||
| private Integer isReceive; | |||
| @TableField(exist = false) | |||
| private List<Long> deleteReceiveIds; | |||
| } | |||
| @@ -54,4 +54,8 @@ public class WxFinanceFinishReceive extends TenantEntity { | |||
| @TableField(exist = false) | |||
| 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; | |||
| @TableField(exist = false) | |||
| 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 finish(WxFinanceReceive wxBillRent); | |||
| void updateFinish(WxFinanceReceive wxBillRent); | |||
| 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.WxEnergyFeesShop; | |||
| 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; | |||
| @@ -72,6 +73,7 @@ public interface WxFinanceService { | |||
| PageInfo<WxFinanceFinish> finishListAsPage(WxFinanceFinish record, Integer pageIndex, Integer pageSize); | |||
| WxFinanceFinish getFinishById(TenantEntity tenantEntity,Long id); | |||
| void saveOrUpdateFinish(WxFinanceFinish record,MallUserInfo user); | |||
| List<WxFinanceFinishReceive> findFinishReceiveList(WxFinanceFinish record); | |||
| WxFinanceReceiveSumVo getReceiveSum(WxFinanceReceive record); | |||
| List<WxFinanceReceiveCountVo> getReceiveFinishCount(WxFinanceFinish record); | |||
| List<WxFinanceReceiveCountVo> getReceiveCount(WxFinanceFinish record); | |||
| @@ -79,9 +81,8 @@ public interface WxFinanceService { | |||
| List<WxFinanceReceiveBill> getReceiveFeesSum(WxFinanceFinish record); | |||
| WxFinanceReceiveSumVo getReceiveSumByFinish(WxFinanceFinish record); | |||
| List<WxFinanceReceiveVo> 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); | |||
| } | |||
| @@ -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<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 | |||
| @@ -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<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"> | |||
| and receive_id like concat('%', #{receiveIdLike},'%') | |||
| </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 "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| @@ -73,6 +73,12 @@ | |||
| #{fidItem} | |||
| </foreach> | |||
| </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 "> | |||
| and id in | |||
| <foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||
| @@ -163,8 +169,8 @@ | |||
| group by fees_id | |||
| </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"/> | |||
| and status not in (2,3,4) | |||
| </update> | |||