1bb12f83 张雷

feat(equipment): 添加设备维修流程列表查询功能

- 在 EquipmentRepairController 中添加 getListByEquip 接口
- 在 IEquipmentRepairService 和 EquipmentRepairServiceImpl 中实现 getListByEquip 方法
- 在 EquipmentRepairMapper 中添加 getListByEquip 查询接口- 在 EquipmentRepairMapper.xml 中编写 getListByEquip 查询语句
- 优化 EquipmentMaintainTaskMapper接口和 XML 文件,添加新的查询方法
1 个父辈 bb42072a
......@@ -71,6 +71,18 @@ public class EquipmentRepairController {
result.setSuccess(true);
return result;
}
@AutoLog(value = "设备维修流程列表查询")
@ApiOperation(value = "设备维修流程列表查询", notes = "设备维修流程列表查询")
@GetMapping(value = "/getListByEquip")
public Result<List<EquipmentRepairVO>> getListByEquip(String equipId) {
Result<List<EquipmentRepairVO>> result = new Result<List<EquipmentRepairVO>>();
List<EquipmentRepairVO> list = equipmentRepairService.getListByEquip(equipId);
result.setResult(list);
result.setSuccess(true);
return result;
}
/**
* <pre>
* 设备流程状态统计
......
......@@ -83,4 +83,6 @@ public interface EquipmentMaintainTaskMapper extends BaseMapper<EquipmentMaintai
@Param("param") EquipmentMaintainTaskForm maintainTaskForm);
List<Map<String, Object>> getList(@Param("startTime") String startTime, @Param("endTime") String endTime);
List<EquipmentMaintainTaskVO> queryPageList(Page<EquipmentMaintainTaskVO> pageList, @Param("equipmentMaintainTask") EquipmentMaintainTaskDTO equipmentMaintainTask);
}
......
......@@ -58,4 +58,6 @@ public interface EquipmentRepairMapper extends BaseMapper<EquipmentRepair> {
* @return
*/
List<EquipmentRepairForm> queryRepairFormList( EquipmentRepairForm equipmentRepairForm);
List<EquipmentRepairVO> getListByEquip(@Param(value = "equipId") String equipId);
}
......
......@@ -289,5 +289,102 @@
AND DATE_FORMAT(t.start_time,'%Y-%m-%d %H:%i:%s') &gt;= #{startTime}
AND DATE_FORMAT(t.start_time,'%Y-%m-%d %H:%i:%s') &lt;= #{endTime}
</select>
<select id="queryPageList" parameterType="com.skua.modules.equipment.dto.EquipmentMaintainTaskDTO"
resultType="com.skua.modules.equipment.vo.EquipmentMaintainTaskVO">
SELECT
ei.equipment_name as equipmentName,
emt.id AS id ,
emt.downtime AS downtime,
emt.end_time AS endTime,
emt.start_time AS startTime,
emt.depart_id,
(select depart_name from sys_depart where id = emt.depart_id) AS depart_name,
emt.maintain_plan_name AS maintainPlanName,
emt.maintain_mode AS maintainMode,
emt.maintain_level AS maintainLevel,
emt.maintainer_id AS maintainerId,
(select realname from sys_user where id = emt.maintainer_id) AS maintainerName,
emt.maintain_time AS maintainTime,
emt.plan_id AS planId,
emt.maintenance_cost AS maintenanceCost,
emt.real_start_time AS realStartTime,
emt.real_end_time AS realEndTime,
emt.working_hours AS workingHours,
case when (emt.real_end_time &lt;= emt.end_time and CAST(emt.working_hours AS DECIMAL(10, 2)) &lt;= CAST(emp.limit_duration AS DECIMAL(10, 2))) then 1 else 2 end AS complete_tag,
emt.picture_url AS pictureUrl,
emt.equipment_id AS equipmentId,
emt.results_enforcement AS resultsEnforcement,
emp.plan_cost AS planCost,
emp.plan_accepter_id AS planAccepterId,
emp.plan_arranger_id,
emt.device_administrator_id AS deviceAdministratorId,
emp.maintenance_type,
emp.cycle AS cycle,
emp.cycle_unit AS cycleUnit
FROM
equipment_maintain_task emt
LEFT JOIN equipment_maintain_plan emp ON emp.id=emt.plan_id
LEFT JOIN equipment_info ei ON ei.id=emt.equipment_id
<where>
emt.del_flag=0
<if test="equipmentMaintainTask.planArrangerId !=null and equipmentMaintainTask.planArrangerId!='' and equipmentMaintainTask.getType==0">
AND (emt.maintainer_id = #{equipmentMaintainTask.planArrangerId} or (emp.plan_accepter_id= #{equipmentMaintainTask.planArrangerId}))
AND results_enforcement!='4'
</if>
<if test="equipmentMaintainTask.getType==1 and equipmentMaintainTask.planArrangerId !=null and equipmentMaintainTask.planArrangerId!=''">
AND emt.maintainer_id = #{equipmentMaintainTask.planArrangerId}
</if>
<if test="equipmentMaintainTask.equipmentId !=null and equipmentMaintainTask.equipmentId !=''">
and emt.equipment_id=#{equipmentMaintainTask.equipmentId}
</if>
<if test="equipmentMaintainTask.equipmentName !=null and equipmentMaintainTask.equipmentName !=''">
and ei.equipment_name like concat('%',#{equipmentMaintainTask.equipmentName},'%')
</if>
<if test="equipmentMaintainTask.planId !=null and equipmentMaintainTask.planId !=''">
and emt.plan_id=#{equipmentMaintainTask.planId}
</if>
<if test="equipmentMaintainTask.departId !=null and equipmentMaintainTask.departId !=''">
and emt.depart_id in
<foreach item="item" index="index" collection="equipmentMaintainTask.departId.split(',')" open="("
separator="," close=")">
'${item}'
</foreach>
</if>
<if test="equipmentMaintainTask.maintainPlanName !=null and equipmentMaintainTask.maintainPlanName !=''">
and emt.maintain_plan_name like concat('%',#{equipmentMaintainTask.maintainPlanName},'%')
</if>
<if test="equipmentMaintainTask.maintainMode !=null and equipmentMaintainTask.maintainMode !=''">
and emt.maintain_mode=#{equipmentMaintainTask.maintainMode}
</if>
<if test="equipmentMaintainTask.maintainLevel !=null and equipmentMaintainTask.maintainLevel !=''">
and emt.maintain_level like concat('%',#{equipmentMaintainTask.maintainLevel},'%')
</if>
<if test="equipmentMaintainTask.maintainerId !=null and equipmentMaintainTask.maintainerId !=''">
and emt.maintainer_id=#{equipmentMaintainTask.maintainerId}
</if>
<if test="equipmentMaintainTask.maintenanceType !=null and equipmentMaintainTask.maintenanceType !=''">
and emp.maintenance_type = #{equipmentMaintainTask.maintenanceType}
</if>
<if test="equipmentMaintainTask.taskStartTime !=null and equipmentMaintainTask.taskStartTime !=''">
and emt.real_end_time BETWEEN #{equipmentMaintainTask.taskStartTime} and
#{equipmentMaintainTask.taskEndTime}
</if>
<if test="equipmentMaintainTask.resultsEnforcement !=null and equipmentMaintainTask.resultsEnforcement !=''">
and emt.results_enforcement=#{equipmentMaintainTask.resultsEnforcement}
</if>
<if test="equipmentMaintainTask.maintainTime !=null ">
and #{equipmentMaintainTask.maintainTime}>= emt.maintain_time
</if>
<!-- 按时完成 -->
<if test="equipmentMaintainTask.completeTag ==1">
and (emt.real_end_time &lt;= emt.end_time and emt.working_hours &lt;= emp.limit_duration)
</if>
<!-- 延期完成 -->
<if test="equipmentMaintainTask.completeTag ==2">
and emt.working_hours &gt; emp.limit_duration
</if>
</where>
order BY emt.depart_id asc,ei.equipment_name asc,emt.start_time desc
</select>
</mapper>
......
......@@ -26,6 +26,24 @@
AND positions = 'manager'
</select>
<select id="getListByEquip" resultType="com.skua.modules.equipment.vo.EquipmentRepairVO">
SELECT
b.depart_name,
c.equipment_name,
c.equipment_code,
c.install_Position,
c.equipment_type,
a.*
FROM
equipment_repair a
LEFT JOIN sys_depart b ON a.depart_id = b.id
LEFT JOIN equipment_info c ON a.info_id = c.id
WHERE
a.info_id = #{equipId}
and a.fault_type != 'yys'
order by a.depart_id desc , c.equipment_name asc ,c.structures
</select>
<select id="queryCustomPageList" parameterType="com.skua.modules.equipment.vo.EquipmentRepairVO" resultType="com.skua.modules.equipment.vo.EquipmentRepairVO">
SELECT
b.depart_name,
......
......@@ -92,4 +92,6 @@ public interface IEquipmentRepairService extends IService<EquipmentRepair> {
IPage<EquipmentRepairForm> queryRepairFormByPage(Page<EquipmentRepairForm> page, EquipmentRepairForm equipmentRepairForm);
List<EquipmentRepairForm> queryRepairFormList( EquipmentRepairForm equipmentRepairForm);
List<EquipmentRepairVO> getListByEquip(String equipId);
}
......
......@@ -149,21 +149,25 @@ public class EquipmentMaintainTaskServiceImpl extends ServiceImpl<EquipmentMaint
@Override
public Page<EquipmentMaintainTaskVO> queryCustomPageList(Page<EquipmentMaintainTaskVO> pageList, EquipmentMaintainTaskDTO equipmentMaintainTask) {
List<EquipmentMaintainTaskVO> equipmentMaintainTasks = new ArrayList<>();
// 查询前先改变当前时间之前的任务改变状态为进行中
//baseMapper.updateResultsEnforcement(new Date(), 1, 2, "");
String userCode = BaseContextHandler.getUserId();
if (null != equipmentMaintainTask.getType() && equipmentMaintainTask.getType() == 0) {
//type=0表示保养任务查询,type=1表示保养记录查询
equipmentMaintainTask.setPlanArrangerId(userCode);
equipmentMaintainTasks = baseMapper.queryCustomPageList(pageList, equipmentMaintainTask);
}else{
if (null == equipmentMaintainTask.getType()) {
if(ConvertUtils.isEmpty(equipmentMaintainTask.getDepartId())){
equipmentMaintainTask.setDepartId(BaseContextHandler.getDeparts());
}
equipmentMaintainTask.setResultsEnforcement(1);
equipmentMaintainTasks = baseMapper.queryPageList(pageList, equipmentMaintainTask);
}else{
equipmentMaintainTasks = baseMapper.queryCustomPageList(pageList, equipmentMaintainTask);
}
}
List<EquipmentMaintainTaskVO> equipmentMaintainTasks = baseMapper.queryCustomPageList(pageList, equipmentMaintainTask);
equipmentMaintainTasks.forEach(e -> {
e.setCycleUnit(UnitUtils.getCycleUnitName(e.getCycleUnit()));
//状态<=2的时候,执行人 具有操作权限,其他人查看权限
......
......@@ -114,6 +114,7 @@ public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMappe
return flowProcessFormFieldInfoVOs;
}
@Override
public List<Map<String, Object>> getUserByPositions(String userId) {
return this.baseMapper.getUserByPositions(userId);
}
......@@ -301,18 +302,56 @@ public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMappe
* @param equipmentRepairForm
* @return
*/
@Override
public IPage<EquipmentRepairForm> queryRepairFormByPage(Page<EquipmentRepairForm> page, EquipmentRepairForm equipmentRepairForm){
List<EquipmentRepairForm> dataList = this.baseMapper.queryRepairFormByPage(page,equipmentRepairForm);
page.setRecords(dataList);
return page;
}
@Override
public List<EquipmentRepairForm> queryRepairFormList( EquipmentRepairForm equipmentRepairForm){
List<EquipmentRepairForm> dataList = this.baseMapper.queryRepairFormList(equipmentRepairForm);
return dataList;
}
@Override
public List<EquipmentRepairVO> getListByEquip(String equipId) {
List<EquipmentRepairVO> list = equipmentRepairMapper.getListByEquip(equipId);
//获取流程实例id集合
Set<String> processInstanceIdSet = new HashSet<String>();
//查询备品备件接口,填充到VO对象中
if(list!=null) {
list.forEach(vo ->{
String id = vo.getId();
vo.setEquipmentRepairChildList(equipmentRepairChildService.getSparepartListByRepairId(id));
processInstanceIdSet.add(vo.getProcessInstanceId());
});
}
//添加流程关键信息
Map<String, Map<String, String>> processInstanceMap = new HashMap<String, Map<String, String>>();
if(processInstanceIdSet!=null&&processInstanceIdSet.size()>0) {
processInstanceMap = flowBusinessService.getProcessState(processInstanceIdSet);
}
if(list!=null) {
for(EquipmentRepairVO vo : list) {
String processInstanceId = vo.getProcessInstanceId();
Map<String, String> processInfoMap = processInstanceMap.getOrDefault(processInstanceId,new HashMap<>());
BladeFlow flow = vo.getFlow();
flow.setBusinessId(vo.getId());
flow.setTaskDefinitionKey(processInfoMap.get("taskDefinitionKey"));
flow.setProcessDefinitionKey(processInfoMap.get("processDefinitionKey"));
flow.setProcessDefinitionId(processInfoMap.get("processDefinitionId"));
flow.setProcessDefinitionName(processInfoMap.get("processDefinitionName"));
flow.setProcessInstanceId(processInstanceId);
vo.setFlow(flow);
}
}
return list;
}
@Override
public Map<String, Object> statistics(EquipmentRepairVO equipmentRepairVO) {
Map<String,Object> statisticsMap = new HashMap<String,Object>();
//初始化
......
......@@ -14,7 +14,7 @@
<dependency>
<groupId>com.kingtroldata</groupId>
<artifactId>flow</artifactId>
<version>2.0.3</version>
<version>2.0.9</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
</project>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!