Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
6ba1e886f3
|
|
@ -59,6 +59,9 @@ public class PeriodCostResultVo {
|
|||
@ApiModelProperty(value = "采购单价 原值")
|
||||
private BigDecimal buyPrice;
|
||||
|
||||
@ApiModelProperty(value = "冲账日期,必须区间计算开始日期与冲账日期一致才冲账")
|
||||
private Date markTime;
|
||||
|
||||
@ApiModelProperty(value = "计算开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date calcStartTime;
|
||||
|
|
|
|||
|
|
@ -281,4 +281,11 @@ public interface SltAgreementInfoMapper {
|
|||
* @return 区间费用计算结果列表
|
||||
*/
|
||||
List<PeriodCostResultVo> selectLeasePeriodCostList(PeriodCostQueryDto queryDto);
|
||||
|
||||
/**
|
||||
* 查询区间费用-- 冲账记录表
|
||||
* @param queryDto 查询条件
|
||||
* @return 冲账记录
|
||||
*/
|
||||
List<PeriodCostResultVo> selectPeriodCostListForCharge(PeriodCostQueryDto queryDto);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1148,11 +1148,20 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
|
|||
// 从数据库查询基础数据
|
||||
List<PeriodCostResultVo> rawResults = sltAgreementInfoMapper.selectLeasePeriodCostList(queryDto);
|
||||
|
||||
// 从数据库查询冲账数据,冲账查询的时候直接过滤了协议和限制具体日期,所以不需要再进行范围过滤
|
||||
List<PeriodCostResultVo> markResults = sltAgreementInfoMapper.selectPeriodCostListForCharge(queryDto);
|
||||
|
||||
// 先过滤掉不在查询范围内的数据
|
||||
List<PeriodCostResultVo> filteredResults = filterDataInRange(rawResults, queryDto.getStartDate(), queryDto.getEndDate());
|
||||
|
||||
// 进行时间及费用计算统计
|
||||
return calculatePeriodCosts(filteredResults, queryDto.getStartDate(), queryDto.getEndDate());
|
||||
List<PeriodCostResultVo> periodCostResultVos = calculatePeriodCosts(filteredResults, queryDto.getStartDate(), queryDto.getEndDate());
|
||||
|
||||
// 添加冲账数据
|
||||
periodCostResultVos.addAll(markResults);
|
||||
|
||||
// 返回结果
|
||||
return periodCostResultVos;
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException("查询区间费用失败:" + e.getMessage());
|
||||
}
|
||||
|
|
@ -1447,6 +1456,7 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
|
|||
// 按协议ID分组汇总
|
||||
return aggregateByAgreement(detailList, queryDto.getStartDate(), queryDto.getEndDate());
|
||||
} catch (Exception e) {
|
||||
System.err.println(e);
|
||||
throw new ServiceException("查询区间费用汇总失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
|
@ -1546,6 +1556,13 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
|
|||
summaryList.add(summary);
|
||||
}
|
||||
|
||||
if (!summaryList.isEmpty()) {
|
||||
List<PeriodCostSummaryVo> collect = summaryList.stream().filter(item -> Objects.isNull(item.getAgreementCode())).collect(Collectors.toList());
|
||||
if (!collect.isEmpty()) {
|
||||
throw new ServiceException("存在未填写协议编号的协议");
|
||||
}
|
||||
}
|
||||
|
||||
// 按协议编号排序
|
||||
summaryList.sort(Comparator.comparing(PeriodCostSummaryVo::getAgreementCode));
|
||||
|
||||
|
|
|
|||
|
|
@ -191,13 +191,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
ELSE NULL
|
||||
END) AS TimeoutNum
|
||||
FROM ma_machine mm
|
||||
LEFT JOIN slt_agreement_info sai on sai.ma_id = mm.ma_id and mm.type_id = sai.type_id and sai.`status`='0' and sai.end_time is null
|
||||
LEFT JOIN slt_agreement_info sai on sai.ma_id = mm.ma_id and mm.type_id = sai.type_id
|
||||
LEFT JOIN bm_agreement_info bai ON sai.agreement_id = bai.agreement_id
|
||||
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
|
||||
LEFT JOIN ma_type mt ON sai.type_id = mt.type_id
|
||||
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
|
||||
left join sys_dept sd ON sd.dept_id = bp.imp_unit
|
||||
where mm.next_check_time is not null and mt.`level` = '4'
|
||||
and sai.`status`='0' and sai.end_time is null
|
||||
and bp.external_id is not null
|
||||
and mm.ma_status = 2
|
||||
<if test="deptId != null">
|
||||
AND sd.dept_id = #{deptId}
|
||||
</if>
|
||||
|
|
@ -220,13 +223,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
ELSE NULL
|
||||
END AS daysDiff
|
||||
FROM ma_machine mm
|
||||
LEFT JOIN slt_agreement_info sai on sai.ma_id = mm.ma_id and mm.type_id = sai.type_id and sai.`status`='0' and sai.end_time is null
|
||||
LEFT JOIN slt_agreement_info sai on sai.ma_id = mm.ma_id and mm.type_id = sai.type_id
|
||||
LEFT JOIN bm_agreement_info bai ON sai.agreement_id = bai.agreement_id
|
||||
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
|
||||
LEFT JOIN sys_dept sd on bp.imp_unit = sd.dept_id
|
||||
LEFT JOIN ma_type mt ON sai.type_id = mt.type_id
|
||||
LEFT JOIN ma_type mt2 ON mt.parent_id = mt2.type_id
|
||||
WHERE mm.next_check_time is not null AND mt.`level`=4
|
||||
and bp.external_id is not null
|
||||
and sai.`status`='0' and sai.end_time is null
|
||||
and mm.ma_status = 2
|
||||
<if test="proId != null">
|
||||
AND bp.pro_id = #{proId}
|
||||
</if>
|
||||
|
|
@ -254,30 +260,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<if test="proId != null">
|
||||
GROUP BY bp.pro_id
|
||||
</if>
|
||||
order by mt.jiju_type desc
|
||||
</select>
|
||||
<select id="getCompletionNotRefunded" resultType="com.bonus.material.push.domain.MachineInfoBean">
|
||||
select
|
||||
bp.pro_name as proName,
|
||||
count(bp.pro_id) num,
|
||||
mt2.type_id as typeId,
|
||||
count(bp.pro_id) as num,
|
||||
sd.dept_name as deptName,
|
||||
sd.dept_id as deptId
|
||||
from slt_agreement_info sai
|
||||
left join bm_agreement_info bai on sai.agreement_id = bai.agreement_id
|
||||
left join bm_project bp on bai.project_id = bp.pro_id
|
||||
from bm_project bp
|
||||
left join sys_dept sd on bp.imp_unit = sd.dept_id
|
||||
left join ma_type mt on sai.type_id = mt.type_id
|
||||
left join ma_type mt2 on mt.parent_id = mt2.type_id
|
||||
where sai.is_slt = 0 and sai.end_time is null and bp.actual_end_date is not null AND sd.dept_name in
|
||||
('送电一分公司','送电二分公司','检修试验分公司','建筑分公司(消防分公司)','安徽宏源电力建设有限公司','变电分公司')
|
||||
<if test="proId != null">
|
||||
AND bp.pro_id = #{proId}
|
||||
</if>
|
||||
GROUP BY
|
||||
<if test="proId != null">
|
||||
bp.pro_id,
|
||||
</if>
|
||||
bp.imp_unit
|
||||
where bp.external_id is not null
|
||||
GROUP BY bp.imp_unit
|
||||
</select>
|
||||
<select id="getCompletionNotRefundedDetails" resultType="com.bonus.material.push.domain.MachineInfoBean">
|
||||
select
|
||||
|
|
|
|||
|
|
@ -49,6 +49,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="remark" column="remark"/>
|
||||
<result property="comsumable" column="comsumable"/>
|
||||
<result property="buyPrice" column="buy_price"/>
|
||||
<result property="leaseDays" column="lease_day"/>
|
||||
<result property="markTime" column="mark_time"/>
|
||||
<result property="leaseCost" column="lease_cost"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSltAgreementInfoVo">
|
||||
|
|
@ -1241,4 +1244,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</if>
|
||||
ORDER BY bai.create_time DESC
|
||||
</select>
|
||||
|
||||
<select id="selectPeriodCostListForCharge" parameterType="com.bonus.material.settlement.domain.dto.PeriodCostQueryDto" resultMap="PeriodCostResultMap">
|
||||
select
|
||||
ptc.agreement_id, bai.agreement_code, ptc.type_id, ptc.lease_num as num, ptc.start_time, ptc.end_time, ptc.day as lease_day,
|
||||
ptc.price, ptc.lease_money as lease_cost, ptc.cost_type, ptc.mark_time, mt.type_name as model_name, mt1.type_name as type_name
|
||||
from project_temp_cost ptc
|
||||
inner join bm_agreement_info bai on ptc.agreement_id = bai.agreement_id
|
||||
LEFT JOIN ma_type mt ON ptc.type_id = mt.type_id AND mt.`level` = '4'
|
||||
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id AND mt1.`level` = '3'
|
||||
where ptc.mark_time = #{startDate}
|
||||
<if test="agreementId != null">
|
||||
and ptc.agreement_id = #{agreementId}
|
||||
</if>
|
||||
<if test="agreementCode != null">
|
||||
and bai.agreement_code = #{agreementCode}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue