增加根据协议ID和结算类型修改设备状态为丢失的功能,优化相关数据处理逻辑

This commit is contained in:
syruan 2025-10-10 21:05:36 +08:00
parent 2e50eb1ad0
commit 43499b4a45
4 changed files with 28 additions and 3 deletions

View File

@ -504,8 +504,6 @@ public class ClzSltAgreementInfoServiceImpl implements ClzSltAgreementInfoServic
/**
* 提交结算清单
* @param sltInfoVo
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)

View File

@ -29,6 +29,11 @@ public interface SltAgreementInfoMapper {
*/
int updateSltInfoByAgreementIdType(SltAgreementInfo sltAgreementInfo);
/**
* 根据协议ID+结算类型去修改设备状态为丢失
*/
int updateMaStatusLoseByAgreementIdType(SltAgreementInfo sltAgreementInfo);
/**
* 查询结算信息
*

View File

@ -1022,12 +1022,23 @@ public class SltAgreementInfoServiceImpl implements ISltAgreementInfoService {
int countThree = sltAgreementInfoMapper.updateSltInfoByAgreementIdType(
new SltAgreementInfo()
.setAgreementId(sltAgreementApply.getAgreementId())
.setSettlementType(Integer.valueOf(sltAgreementApplyFromDb.getSettlementType()))
.setSettlementType(sltAgreementApplyFromDb.getSettlementType())
);
if (countThree == 0) {
throw new ServiceException("slt_agreement_info修改失败");
}
// 修改未退还设备状态为丢失
int countFour = sltAgreementInfoMapper.updateMaStatusLoseByAgreementIdType(
new SltAgreementInfo()
.setAgreementId(sltAgreementApply.getAgreementId())
.setSettlementType(sltAgreementApplyFromDb.getSettlementType())
);
if (countFour == 0) {
log.warn("协议ID" + sltAgreementApply.getAgreementId() + "" +
"结算类型:" + sltAgreementApplyFromDb.getSettlementType() + ",无未归还设备,无需更新为丢失状态");
}
if (examNum == GlobalConstants.INT_0) {
return AjaxResult.error("结算审批失败");
} else {

View File

@ -1434,4 +1434,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE
sai.agreement_id = #{agreementId} AND mt.jiju_type = #{settlementType}
</update>
<update id="updateMaStatusLoseByAgreementIdType">
update
ma_machine mi
INNER JOIN slt_agreement_info sai ON mi.ma_id = sai.ma_id AND sai.end_time is null AND sai.status = '0'
INNER JOIN ma_type mt ON sai.type_id = mt.type_id AND mt.`level` = '4'
set
mi.status = '18', mi.update_time = NOW()
where
sai.agreement_id = #{agreementId} AND mt.jiju_type = #{settlementType}
</update>
</mapper>