费用减免调整

This commit is contained in:
syruan 2026-01-15 13:58:15 +08:00
parent aaed24ffcb
commit 0c2cf7ac71
5 changed files with 70 additions and 26 deletions

View File

@ -137,8 +137,8 @@ public class SltAgreementInfoController extends BaseController {
public AjaxResult getSltAgreementInfo4Project(SltAgreementInfo bean) { public AjaxResult getSltAgreementInfo4Project(SltAgreementInfo bean) {
Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1); Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10); Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
Long deptId = typeService.getUserDeptId(); // Long deptId = typeService.getUserDeptId();
bean.setCompanyId(deptId); // bean.setCompanyId(deptId);
// int loginUserHasSettlementPermission = sltAgreementInfoService.checkLoginUserHasSettlementPermission(); // int loginUserHasSettlementPermission = sltAgreementInfoService.checkLoginUserHasSettlementPermission();
// if (bean != null) { // if (bean != null) {
// bean.setSettlementType(loginUserHasSettlementPermission); // bean.setSettlementType(loginUserHasSettlementPermission);
@ -1607,8 +1607,8 @@ public class SltAgreementInfoController extends BaseController {
@ApiOperation(value = "结算审批列表") @ApiOperation(value = "结算审批列表")
@GetMapping("/getSltList") @GetMapping("/getSltList")
public TableDataInfo getSltList(SltAgreementInfo bean) { public TableDataInfo getSltList(SltAgreementInfo bean) {
Long deptId = typeService.getUserDeptId(); // Long deptId = typeService.getUserDeptId();
bean.setCompanyId(deptId); // bean.setCompanyId(deptId);
startPage(); startPage();
List<SltAgreementInfo> list = sltAgreementInfoService.getSltList(bean); List<SltAgreementInfo> list = sltAgreementInfoService.getSltList(bean);
return getDataTable(list); return getDataTable(list);
@ -1733,8 +1733,8 @@ public class SltAgreementInfoController extends BaseController {
@ApiOperation(value = "已结算报表list查询") @ApiOperation(value = "已结算报表list查询")
@GetMapping("/getSltReportedList") @GetMapping("/getSltReportedList")
public TableDataInfo getSltReportedList(SltAgreementInfo bean) { public TableDataInfo getSltReportedList(SltAgreementInfo bean) {
Long deptId = typeService.getUserDeptId(); //Long deptId = typeService.getUserDeptId();
bean.setCompanyId(deptId); //bean.setCompanyId(deptId);
startPage(); startPage();
List<SltAgreementInfo> list = sltAgreementInfoService.getSltReportedList(bean); List<SltAgreementInfo> list = sltAgreementInfoService.getSltReportedList(bean);
return getDataTable(list); return getDataTable(list);
@ -1751,9 +1751,6 @@ public class SltAgreementInfoController extends BaseController {
if (query == null) { if (query == null) {
query = new SltAgreementInfo(); query = new SltAgreementInfo();
} }
Long deptId = typeService.getUserDeptId();
query.setCompanyId(deptId);
startPage(); startPage();
// ----------- 查询未结算的全部协议 --------------- // ----------- 查询未结算的全部协议 ---------------
@ -1793,7 +1790,8 @@ public class SltAgreementInfoController extends BaseController {
// 查询每个协议的各项费用明细 // 查询每个协议的各项费用明细
SltInfoVo vo = sltAgreementInfoService.getSltInfoReportBatch(info); SltInfoVo vo = sltAgreementInfoService.getSltInfoReportBatch(info);
vo.setIsFinish(info.getIsFinish()); vo.setIsFinish(info.getIsFinish());
if (vo != null && !ObjectUtil.isEmpty(vo)) { vo.setActualEndDate(info.getActualEndDate());
if (!ObjectUtil.isEmpty(vo)) {
vo.setAgreementId(info.getAgreementId()); vo.setAgreementId(info.getAgreementId());
vo.setAgreementCode(info.getAgreementCode()); vo.setAgreementCode(info.getAgreementCode());
vo.setSettlementType(settlementType); vo.setSettlementType(settlementType);
@ -2046,7 +2044,7 @@ public class SltAgreementInfoController extends BaseController {
return getDataTable(list); return getDataTable(list);
} catch (Exception e) { } catch (Exception e) {
log.error("查询区间费用失败", e); log.error("查询区间费用失败", e);
return getDataTable(new ArrayList<>()); return getDataTable(Collections.emptyList());
} }
} }

View File

@ -1,5 +1,6 @@
package com.bonus.material.settlement.controller; package com.bonus.material.settlement.controller;
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.core.web.page.TableDataInfo;
@ -7,13 +8,21 @@ import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.material.settlement.domain.SltAgreementReduce; import com.bonus.material.settlement.domain.SltAgreementReduce;
import com.bonus.material.settlement.domain.dto.PeriodCostQueryDto;
import com.bonus.material.settlement.domain.vo.PeriodCostResultVo;
import com.bonus.material.settlement.service.ISltAgreementInfoService;
import com.bonus.material.settlement.service.ISltAgreementReduceService; import com.bonus.material.settlement.service.ISltAgreementReduceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 结算协议申请Controller * 结算协议申请Controller
@ -25,9 +34,13 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/slt_agreement_reduce") @RequestMapping("/slt_agreement_reduce")
public class SltAgreementReduceController extends BaseController { public class SltAgreementReduceController extends BaseController {
@Autowired @Autowired
private ISltAgreementReduceService sltAgreementReduceService; private ISltAgreementReduceService sltAgreementReduceService;
@Autowired
private ISltAgreementInfoService sltAgreementInfoService;
/** /**
* 查询结算协议减免申请列表 * 查询结算协议减免申请列表
*/ */
@ -59,18 +72,47 @@ public class SltAgreementReduceController extends BaseController {
@ApiOperation(value = "查询协议申请减免明细") @ApiOperation(value = "查询协议申请减免明细")
// @RequiresPermissions("settlement:apply:list") // @RequiresPermissions("settlement:apply:list")
@GetMapping("/applyByParam") @GetMapping("/applyByParam")
public AjaxResult applyByParam(SltAgreementReduce sltAgreement) { public AjaxResult applyByParam(SltAgreementReduce sltAgreement) throws ParseException {
List<SltAgreementReduce> list = null; if (null == sltAgreement || null == sltAgreement.getAgreementId()) {
if(sltAgreement!=null){ return AjaxResult.success(Collections.emptyList());
if (sltAgreement.getAgreementId()!=null){
list = sltAgreementReduceService.getApplyReduceList(sltAgreement);
}
}else{
} }
return success(list); Date currentDate = new Date();
PeriodCostQueryDto periodCostQueryDto = new PeriodCostQueryDto();
periodCostQueryDto.setAgreementId(sltAgreement.getAgreementId());
if (null == sltAgreement.getStartTime()) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
periodCostQueryDto.setStartDate(sdf.parse("2018-01-01 01:00:00"));
}
if (null == sltAgreement.getEndTime()) {
periodCostQueryDto.setEndDate(currentDate);
}
List<PeriodCostResultVo> resultVos = sltAgreementInfoService.selectPeriodCostList(periodCostQueryDto);
if (CollectionUtils.isEmpty(resultVos)) {
return AjaxResult.success(Collections.emptyList());
}
resultVos.removeIf(Objects::isNull);
for (PeriodCostResultVo periodCostResultVo : resultVos) {
if (Objects.isNull(periodCostResultVo.getEndTime())) {
periodCostResultVo.setEndTime(currentDate);
}
}
return success(resultVos);
// List<SltAgreementReduce> list;
// if (sltAgreement != null) {
// if (sltAgreement.getAgreementId() != null) {
// list = sltAgreementReduceService.getApplyReduceList(sltAgreement);
// return success(list);
// }
// }
// return AjaxResult.success(Collections.emptyList());
} }

View File

@ -957,7 +957,9 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
row.setEnableQuerySltData(enableQuerySltData); row.setEnableQuerySltData(enableQuerySltData);
sltInfoVo = getSltInfo(row); sltInfoVo = getSltInfo(row);
if (sltInfoVo != null) { if (sltInfoVo != null) {
row.setCosts(sum(sltInfoVo.getLeaseCost(), sltInfoVo.getRepairCost(), sltInfoVo.getScrapCost(), sltInfoVo.getLoseCost())); row.setCosts(sum(sltInfoVo.getLeaseCost(), sltInfoVo.getRepairCost(), sltInfoVo.getScrapCost(), sltInfoVo.getLoseCost())
.subtract(sltInfoVo.getReductionCost())
);
} }
} }
} }
@ -1011,7 +1013,6 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
RequestContext.set("unSltAgreementListCount", listCount); RequestContext.set("unSltAgreementListCount", listCount);
// 优化后处理逻辑
if (list != null && !list.isEmpty()) { if (list != null && !list.isEmpty()) {
// 使用并行流处理大数据量当数据量大于1000时 // 使用并行流处理大数据量当数据量大于1000时
if (list.size() > 1000) { if (list.size() > 1000) {

View File

@ -23,6 +23,7 @@
<result property="trimDay" column="trim_day" /> <result property="trimDay" column="trim_day" />
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="actualEndDate" column="actual_end_date" />
</resultMap> </resultMap>
<!-- 区间费用计算查询 --> <!-- 区间费用计算查询 -->
@ -950,7 +951,8 @@
and bai.agreement_code = #{agreementCode} and bai.agreement_code = #{agreementCode}
</if> </if>
<if test="startTime != null and endTime != null"> <if test="startTime != null and endTime != null">
and saa.create_time between #{startTime} and #{endTime} and saa.create_time >= #{startTime}
and saa.create_time <![CDATA[ < ]]> DATE_ADD(#{endTime}, INTERVAL 1 DAY)
</if> </if>
<if test="agreementIds != null and agreementIds.size() > 0"> <if test="agreementIds != null and agreementIds.size() > 0">
and bai.agreement_id in and bai.agreement_id in
@ -1001,6 +1003,7 @@
bai.protocol, bai.protocol,
SUM(IFNULL(saa.`status`,0)) as num, SUM(IFNULL(saa.`status`,0)) as num,
sai.is_slt as sltStatus, sai.is_slt as sltStatus,
bp.actual_end_date as actual_end_date,
CASE CASE
WHEN bp.actual_end_date is not null THEN '1' WHEN bp.actual_end_date is not null THEN '1'
WHEN bp.actual_end_date is null and bp.external_id is null THEN '2' WHEN bp.actual_end_date is null and bp.external_id is null THEN '2'

View File

@ -274,8 +274,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.unit_name as unitName, mt.unit_name as unitName,
srd.lease_price as leasePrice, srd.lease_price as leasePrice,
srd.reduce_num as reduceNum, srd.reduce_num as reduceNum,
srd.start_time as startTime, srd.r_start_time as startTime,
srd.end_time as endTime, srd.r_end_time as endTime,
srd.days as days, srd.days as days,
srd.lease_money as leaseMoney, srd.lease_money as leaseMoney,
sra.remark sra.remark