审核优化
This commit is contained in:
parent
958a675a89
commit
5edcb90a8f
|
|
@ -62,7 +62,7 @@ public class EquipmentOutboundSelfCallback implements IApprovalCallback {
|
|||
// 4. 构造审批参数
|
||||
CsDeviceInfo approveParam = new CsDeviceInfo();
|
||||
approveParam.setId(changeId);
|
||||
approveParam.setTaskStatus("1"); // 1-通过
|
||||
approveParam.setTaskStatus("2"); // 2-通过
|
||||
|
||||
// 5. 调用原有的审批业务逻辑
|
||||
AjaxResult result = devChangeService.approve(approveParam);
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public class EquipmentRepairCallback implements IApprovalCallback {
|
|||
|
||||
// 4. 将所有明细的审批状态设置为"通过"
|
||||
for (ToBeRepair detail : detailsList) {
|
||||
detail.setAuditStatus("1"); // 1-通过
|
||||
detail.setAuditStatus("2"); // 2-通过
|
||||
}
|
||||
bean.setToBeRepairList(detailsList);
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ public class EquipmentReturnCallback implements IApprovalCallback {
|
|||
BackCsDeviceDetails approveParam = new BackCsDeviceDetails();
|
||||
approveParam.setChangeId(changeId);
|
||||
approveParam.setId(changeId);
|
||||
approveParam.setTaskStatus("1"); // 1-通过
|
||||
approveParam.setTaskStatus("2"); // 2-通过
|
||||
|
||||
// 5. 调用原有的审批业务逻辑
|
||||
AjaxResult result = backChangeService.approve(approveParam);
|
||||
|
|
|
|||
|
|
@ -2,10 +2,15 @@ package com.bonus.material.back.service.impl;
|
|||
|
||||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.bonus.common.biz.enums.ApprovalStatusEnum;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.approval.annotation.ApprovalRequired;
|
||||
import com.bonus.material.approval.domain.ApprovalInstance;
|
||||
import com.bonus.material.approval.domain.ApprovalRecord;
|
||||
import com.bonus.material.approval.mapper.ApprovalInstanceMapper;
|
||||
import com.bonus.material.approval.mapper.ApprovalRecordMapper;
|
||||
import com.bonus.material.back.domain.BackCsDeviceDetails;
|
||||
import com.bonus.material.back.domain.BackCsDeviceInfo;
|
||||
import com.bonus.material.back.domain.BackCsDeviceVo;
|
||||
|
|
@ -34,6 +39,12 @@ public class BackChangeServiceImpl implements BackChangeService {
|
|||
@Resource
|
||||
private BackChangeMapper mapper;
|
||||
|
||||
@Resource
|
||||
private ApprovalInstanceMapper instanceMapper;
|
||||
|
||||
@Resource
|
||||
private ApprovalRecordMapper recordMapper;
|
||||
|
||||
/**
|
||||
* 获取添加设备详情
|
||||
*
|
||||
|
|
@ -210,6 +221,38 @@ public class BackChangeServiceImpl implements BackChangeService {
|
|||
if (num < 1) {
|
||||
throw new RuntimeException("添加设备详情失败");
|
||||
}
|
||||
// 根据id,针对编辑进行审批流重置修改
|
||||
// 根据主id查询目前审批流是否存在驳回数据,驳回需重置审批
|
||||
ApprovalInstance approvalInstance = new ApprovalInstance();
|
||||
approvalInstance.setBusinessId(csDeviceVo.getDevInfo().getId().toString());
|
||||
List<ApprovalInstance> approvalInstances = instanceMapper.selectInstanceList(approvalInstance);
|
||||
if (CollectionUtils.isNotEmpty(approvalInstances)) {
|
||||
ApprovalInstance instance = approvalInstances.get(0);
|
||||
if ("3".equals(instance.getStatus())) {
|
||||
// 如果当前节点为第一节点,则状态修改为待审批
|
||||
if (instance.getCurrentNodeOrder() == 1) {
|
||||
num = instanceMapper.updateInstanceStatus(instance.getId(), ApprovalStatusEnum.PENDING.getCode());
|
||||
} else {
|
||||
// 审批中
|
||||
num = instanceMapper.updateInstanceStatus(instance.getId(), ApprovalStatusEnum.IN_PROGRESS.getCode());
|
||||
}
|
||||
if (num < 1) {
|
||||
throw new RuntimeException("修改审批实例状态失败");
|
||||
}
|
||||
// 根据当前节点及id去记录表查询是否存在驳回记录,存在即删除
|
||||
List<ApprovalRecord> approvalRecords = recordMapper.selectRecordListByNode(instance.getId(), instance.getCurrentNodeId());
|
||||
if (CollectionUtils.isNotEmpty(approvalRecords)) {
|
||||
ApprovalRecord approvalRecord = approvalRecords.get(0);
|
||||
// 如果是驳回状态,则删除
|
||||
if ("2".equals(approvalRecord.getApproveResult())) {
|
||||
num = recordMapper.deleteRecordById(approvalRecord.getId());
|
||||
if (num < 1) {
|
||||
throw new RuntimeException("删除审批记录失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException("修改失败");
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ public class CityScreenController extends BaseController {
|
|||
dateVO.setList(list);
|
||||
try {
|
||||
int total = cityScreenMapper.countEquipmentTurnoverRate(dto);
|
||||
dateVO.setTotal(total);
|
||||
dateVO.setTotal(list.size());
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException("获取装备周转率数据失败");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,10 +3,15 @@ package com.bonus.material.devchange.service;
|
|||
import com.alibaba.cloud.commons.lang.StringUtils;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.bonus.common.biz.enums.ApprovalStatusEnum;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.approval.annotation.ApprovalRequired;
|
||||
import com.bonus.material.approval.domain.ApprovalInstance;
|
||||
import com.bonus.material.approval.domain.ApprovalRecord;
|
||||
import com.bonus.material.approval.mapper.ApprovalInstanceMapper;
|
||||
import com.bonus.material.approval.mapper.ApprovalRecordMapper;
|
||||
import com.bonus.material.common.constants.TypeConstants;
|
||||
import com.bonus.material.common.enums.TypeEnums;
|
||||
import com.bonus.material.devchange.domain.*;
|
||||
|
|
@ -17,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -27,6 +33,12 @@ public class DevChangeServiceImpl implements DevChangeService {
|
|||
@Autowired
|
||||
private DevChangeMapper mapper;
|
||||
|
||||
@Resource
|
||||
private ApprovalInstanceMapper instanceMapper;
|
||||
|
||||
@Resource
|
||||
private ApprovalRecordMapper recordMapper;
|
||||
|
||||
/**
|
||||
* 查询设备 最大的数据
|
||||
*
|
||||
|
|
@ -359,6 +371,38 @@ public class DevChangeServiceImpl implements DevChangeService {
|
|||
if (num < 1) {
|
||||
throw new RuntimeException("添加设备详情失败");
|
||||
}
|
||||
// 根据id,针对编辑进行审批流重置修改
|
||||
// 根据主id查询目前审批流是否存在驳回数据,驳回需重置审批
|
||||
ApprovalInstance approvalInstance = new ApprovalInstance();
|
||||
approvalInstance.setBusinessId(csDeviceVo.getDevInfo().getId().toString());
|
||||
List<ApprovalInstance> approvalInstances = instanceMapper.selectInstanceList(approvalInstance);
|
||||
if (CollectionUtils.isNotEmpty(approvalInstances)) {
|
||||
ApprovalInstance instance = approvalInstances.get(0);
|
||||
if ("3".equals(instance.getStatus())) {
|
||||
// 如果当前节点为第一节点,则状态修改为待审批
|
||||
if (instance.getCurrentNodeOrder() == 1) {
|
||||
num = instanceMapper.updateInstanceStatus(instance.getId(), ApprovalStatusEnum.PENDING.getCode());
|
||||
} else {
|
||||
// 审批中
|
||||
num = instanceMapper.updateInstanceStatus(instance.getId(), ApprovalStatusEnum.IN_PROGRESS.getCode());
|
||||
}
|
||||
if (num < 1) {
|
||||
throw new RuntimeException("修改审批实例状态失败");
|
||||
}
|
||||
// 根据当前节点及id去记录表查询是否存在驳回记录,存在即删除
|
||||
List<ApprovalRecord> approvalRecords = recordMapper.selectRecordListByNode(instance.getId(), instance.getCurrentNodeId());
|
||||
if (CollectionUtils.isNotEmpty(approvalRecords)) {
|
||||
ApprovalRecord approvalRecord = approvalRecords.get(0);
|
||||
// 如果是驳回状态,则删除
|
||||
if ("2".equals(approvalRecord.getApproveResult())) {
|
||||
num = recordMapper.deleteRecordById(approvalRecord.getId());
|
||||
if (num < 1) {
|
||||
throw new RuntimeException("删除审批记录失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage());
|
||||
throw new RuntimeException("修改失败");
|
||||
|
|
|
|||
|
|
@ -121,4 +121,25 @@ public interface RepairMapper {
|
|||
* @return
|
||||
*/
|
||||
ToBeRepair selectMaDevInfoByTypeIdAndCode(ToBeRepair toBeRepair);
|
||||
|
||||
/**
|
||||
* 修改设备信息
|
||||
* @param bean
|
||||
* @return
|
||||
*/
|
||||
int updateRepairTask(ToBeRepair bean);
|
||||
|
||||
/**
|
||||
* 获取设备主表信息
|
||||
* @param toBeRepair
|
||||
* @return
|
||||
*/
|
||||
ToBeRepair selectInfoId(ToBeRepair toBeRepair);
|
||||
|
||||
/**
|
||||
* 审核主表
|
||||
* @param info
|
||||
* @return
|
||||
*/
|
||||
int auditInfoById(ToBeRepair info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,17 @@
|
|||
package com.bonus.material.repair.service.impl;
|
||||
|
||||
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.bonus.common.biz.domain.BmFileInfo;
|
||||
import com.bonus.common.biz.enums.ApprovalStatusEnum;
|
||||
import com.bonus.common.core.utils.DateUtils;
|
||||
import com.bonus.common.core.web.domain.AjaxResult;
|
||||
import com.bonus.common.security.utils.SecurityUtils;
|
||||
import com.bonus.material.approval.annotation.ApprovalRequired;
|
||||
import com.bonus.material.approval.domain.ApprovalInstance;
|
||||
import com.bonus.material.approval.domain.ApprovalRecord;
|
||||
import com.bonus.material.approval.mapper.ApprovalInstanceMapper;
|
||||
import com.bonus.material.approval.mapper.ApprovalRecordMapper;
|
||||
import com.bonus.material.common.constants.TypeConstants;
|
||||
import com.bonus.material.common.enums.TypeEnums;
|
||||
import com.bonus.material.devchange.domain.CsDeviceInfo;
|
||||
|
|
@ -32,6 +38,12 @@ public class RepairServiceImpl implements RepairService {
|
|||
@Resource
|
||||
private RepairMapper mapper;
|
||||
|
||||
@Resource
|
||||
private ApprovalInstanceMapper instanceMapper;
|
||||
|
||||
@Resource
|
||||
private ApprovalRecordMapper recordMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public List<ToBeRepair> getToBeRepairList(ToBeRepair bean) {
|
||||
|
|
@ -87,6 +99,12 @@ public class RepairServiceImpl implements RepairService {
|
|||
if (bean.getToBeRepairList().size() <= 0) {
|
||||
return AjaxResult.error("请添加维修数据");
|
||||
}
|
||||
//修改主表任务为待审核
|
||||
bean.setStatus("0");
|
||||
int num = mapper.updateRepairTask(bean);
|
||||
if (num < 1) {
|
||||
throw new Exception("修改设备任务失败");
|
||||
}
|
||||
String username = SecurityUtils.getLoginUser().getSysUser().getNickName();
|
||||
//先删除详情中被驳回的数据
|
||||
int re1 = mapper.deleteChangeDetailsByChangeId(bean);
|
||||
|
|
@ -116,6 +134,38 @@ public class RepairServiceImpl implements RepairService {
|
|||
throw new Exception("添加设备详情失败");
|
||||
}
|
||||
}
|
||||
// 根据id,针对编辑进行审批流重置修改
|
||||
// 根据主id查询目前审批流是否存在驳回数据,驳回需重置审批
|
||||
ApprovalInstance approvalInstance = new ApprovalInstance();
|
||||
approvalInstance.setBusinessId(bean.getChangeId().toString());
|
||||
List<ApprovalInstance> approvalInstances = instanceMapper.selectInstanceList(approvalInstance);
|
||||
if (CollectionUtils.isNotEmpty(approvalInstances)) {
|
||||
ApprovalInstance instance = approvalInstances.get(0);
|
||||
if ("3".equals(instance.getStatus())) {
|
||||
// 如果当前节点为第一节点,则状态修改为待审批
|
||||
if (instance.getCurrentNodeOrder() == 1) {
|
||||
num = instanceMapper.updateInstanceStatus(instance.getId(), ApprovalStatusEnum.PENDING.getCode());
|
||||
} else {
|
||||
// 审批中
|
||||
num = instanceMapper.updateInstanceStatus(instance.getId(), ApprovalStatusEnum.IN_PROGRESS.getCode());
|
||||
}
|
||||
if (num < 1) {
|
||||
throw new RuntimeException("修改审批实例状态失败");
|
||||
}
|
||||
// 根据当前节点及id去记录表查询是否存在驳回记录,存在即删除
|
||||
List<ApprovalRecord> approvalRecords = recordMapper.selectRecordListByNode(instance.getId(), instance.getCurrentNodeId());
|
||||
if (CollectionUtils.isNotEmpty(approvalRecords)) {
|
||||
ApprovalRecord approvalRecord = approvalRecords.get(0);
|
||||
// 如果是驳回状态,则删除
|
||||
if ("2".equals(approvalRecord.getApproveResult())) {
|
||||
num = recordMapper.deleteRecordById(approvalRecord.getId());
|
||||
if (num < 1) {
|
||||
throw new RuntimeException("删除审批记录失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return AjaxResult.success("修改成功");
|
||||
|
||||
} catch (Exception e) {
|
||||
|
|
@ -128,7 +178,7 @@ public class RepairServiceImpl implements RepairService {
|
|||
public List<ToBeRepair> getRepairList(ToBeRepair bean) {
|
||||
try {
|
||||
List<ToBeRepair> list = mapper.getRepairList(bean);
|
||||
for (ToBeRepair toBeRepair : list) {
|
||||
/*for (ToBeRepair toBeRepair : list) {
|
||||
List<ToBeRepair> detailsList = mapper.getDetailsList(toBeRepair);
|
||||
if (detailsList != null && !detailsList.isEmpty()) {
|
||||
boolean has0 = false;
|
||||
|
|
@ -193,7 +243,7 @@ public class RepairServiceImpl implements RepairService {
|
|||
list = list.stream()
|
||||
.filter(item -> statusFilter.equals(item.getStatus()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}*/
|
||||
|
||||
return list;
|
||||
} catch (Exception e) {
|
||||
|
|
@ -286,10 +336,19 @@ public class RepairServiceImpl implements RepairService {
|
|||
toBeRepair.setCreateUser(username);
|
||||
int res = mapper.auditData(toBeRepair);
|
||||
if (res <= 0) {
|
||||
throw new Exception("审核数据失败");
|
||||
throw new Exception("审核详情表数据失败");
|
||||
}
|
||||
// 根据id查询changeId
|
||||
ToBeRepair info = mapper.selectInfoId(toBeRepair);
|
||||
info.setAuditStatus(toBeRepair.getAuditStatus());
|
||||
info.setCreateBy(userId.toString());
|
||||
// 审核主表
|
||||
res = mapper.auditInfoById(info);
|
||||
if (res <= 0) {
|
||||
throw new Exception("审核主表数据失败");
|
||||
}
|
||||
//如果是审核通过,需要增加周期表数据以及更新台账信息
|
||||
if ("1".equals(toBeRepair.getAuditStatus())){
|
||||
if ("2".equals(toBeRepair.getAuditStatus())){
|
||||
if ("工具".equals(toBeRepair.getType())){
|
||||
//根据typeId和code查询台账信息
|
||||
ToBeRepair bean1 = mapper.selectByTypeIdAndCode(toBeRepair);
|
||||
|
|
|
|||
|
|
@ -418,6 +418,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
LEFT JOIN cs_device_change_details cdc ON cd.id = cdc.change_id
|
||||
WHERE
|
||||
cdc.del_flag = '0' and cd.type = '1'
|
||||
and cd.del_flag = '0'
|
||||
<if test="taskStatus != null and taskStatus != ''">
|
||||
and cd.review_status = #{taskStatus}
|
||||
</if>
|
||||
|
|
|
|||
|
|
@ -416,6 +416,8 @@
|
|||
pro_county as proCounty,
|
||||
use_time as useTime,
|
||||
code as code,
|
||||
use_start_time as useStartTime,
|
||||
use_end_time as useEndTime,
|
||||
CASE
|
||||
-- 已完成:所有子表记录 is_finished = 1
|
||||
WHEN NOT EXISTS (
|
||||
|
|
@ -481,6 +483,7 @@
|
|||
LEFT JOIN cs_device_change_details cdc ON cd.id = cdc.change_id
|
||||
WHERE
|
||||
cdc.del_flag = '0' and cd.type = '2'
|
||||
and cd.del_flag = '0'
|
||||
<if test="taskStatus != null and taskStatus != ''">
|
||||
and cd.review_status = #{taskStatus}
|
||||
</if>
|
||||
|
|
@ -612,7 +615,7 @@
|
|||
LEFT JOIN cs_device_change_details cdc
|
||||
ON cd.id = cdc.change_id
|
||||
AND cdc.del_flag = '0'
|
||||
WHERE cd.review_status = '1'
|
||||
WHERE cd.review_status = '2'
|
||||
AND cd.type = '2'
|
||||
AND cd.lease_type = '0'
|
||||
GROUP BY
|
||||
|
|
@ -973,10 +976,11 @@
|
|||
<insert id="addChangeInfoNew" keyProperty="id" useGeneratedKeys="true">
|
||||
insert into cs_device_change(change_status, type, lease_type, pro_code, pro_name,
|
||||
pro_type, voltage_level, use_unit, pro_province, pro_city,
|
||||
pro_county, create_time, create_user, del_flag, change_unit, code, use_time,review_status)
|
||||
pro_county, create_time, create_user, del_flag, change_unit, code, use_time,review_status,
|
||||
use_start_time, use_end_time)
|
||||
values ( #{changeStatus}, #{type}, #{leaseType}, #{proCode}, #{proName}, #{proType},
|
||||
#{voltageLevel}, #{useUnit}, #{proProvince}, #{proCity}, #{proCounty},
|
||||
now(), #{createBy}, 0, #{changeUnit}, #{code}, #{useTime}, #{taskStatus})
|
||||
now(), #{createBy}, 0, #{changeUnit}, #{code}, #{useTime}, #{taskStatus}, #{useStartTime}, #{useEndTime})
|
||||
</insert>
|
||||
|
||||
<insert id="addDetails">
|
||||
|
|
|
|||
|
|
@ -120,7 +120,22 @@
|
|||
update cs_device_change_details
|
||||
set del_flag = '1'
|
||||
where change_id = #{changeId}
|
||||
and review_status = '2'
|
||||
</update>
|
||||
|
||||
<update id="updateRepairTask">
|
||||
update cs_device_change
|
||||
set
|
||||
review_status = #{status},
|
||||
update_time = NOW()
|
||||
where id = #{changeId}
|
||||
</update>
|
||||
|
||||
<update id="auditInfoById">
|
||||
update cs_device_change
|
||||
set review_status = #{auditStatus},
|
||||
review_by = #{createUser},
|
||||
review_time=NOW()
|
||||
where id = #{changeId}
|
||||
</update>
|
||||
|
||||
<select id="selectToBeRepairList" resultType="com.bonus.material.repair.domain.ToBeRepair">
|
||||
|
|
@ -222,14 +237,19 @@
|
|||
ELSE 0
|
||||
END) as toolNum,
|
||||
cdc.create_user as createUser,
|
||||
cdc.create_time as createTime
|
||||
cdc.create_time as createTime,
|
||||
cdc.review_status as status
|
||||
FROM cs_device_change cdc
|
||||
LEFT JOIN cs_device_change_details cdcd ON cdcd.change_id = cdc.id
|
||||
WHERE cdc.type = '4'
|
||||
and cdc.del_flag='0'
|
||||
and cdc.del_flag = '0'
|
||||
and cdcd.del_flag = '0'
|
||||
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!='' ">
|
||||
AND cdc.create_time BETWEEN CONCAT(#{startTime}, ' 00:00:00') AND CONCAT(#{endTime}, ' 23:59:59')
|
||||
</if>
|
||||
<if test="status != null and status!=''">
|
||||
AND cdc.review_status = #{status}
|
||||
</if>
|
||||
GROUP BY cdc.id
|
||||
ORDER BY cdc.create_time DESC
|
||||
</select>
|
||||
|
|
@ -374,4 +394,15 @@
|
|||
`code`=#{code}
|
||||
and type_id=#{typeId}
|
||||
</select>
|
||||
|
||||
<select id="selectInfoId" resultType="com.bonus.material.repair.domain.ToBeRepair">
|
||||
SELECT
|
||||
id as id,
|
||||
change_id as changeId
|
||||
FROM
|
||||
cs_device_change_details
|
||||
WHERE
|
||||
id = #{id}
|
||||
LIMIT 1
|
||||
</select>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue