fix(dms): 修复保养工单相关问题

- 修复保养项目名称为空的问题
- 优化保养工单明细项目查询逻辑
- 修复工作流启动和推进相关问题
- 优化数据更新逻辑,使用最新查询到的数据进行更新
- 添加创建者、创建时间等字段到 DmsBillsMaintDetailProjectVo
master
zangchenhao 2 weeks ago
parent a09bc48429
commit c7b73fc540

@ -2,6 +2,8 @@ package org.dromara.dms.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
@ -10,6 +12,7 @@ import org.dromara.dms.domain.DmsBillsMaintDetailProject;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@ -73,4 +76,29 @@ public class DmsBillsMaintDetailProjectVo implements Serializable {
/** 保养工单明细项目信息;检查每个项目的点巡检结果详情信息 */
/* private List<DmsBillsMaintDetailProject> dmsBillsMaintDetailProjectList;*/
/**
*
*/
private Long createDept;
/**
*
*/
private Long createBy;
/**
*
*/
private Date createTime;
/**
*
*/
private Long updateBy;
/**
*
*/
private Date updateTime;
}

@ -4,6 +4,8 @@ import org.dromara.dms.domain.DmsBillsMaintDetailProject;
import org.dromara.dms.domain.vo.DmsBillsMaintDetailProjectVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import java.util.List;
/**
* ;Mapper
*
@ -12,4 +14,12 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface DmsBillsMaintDetailProjectMapper extends BaseMapperPlus<DmsBillsMaintDetailProject, DmsBillsMaintDetailProjectVo> {
/**
*
*
* @param dmsBillsMaintDetailProject
* @return
*/
List<DmsBillsMaintDetailProjectVo> selectDmsBillsMaintDetailProjectWithProjectName(DmsBillsMaintDetailProject dmsBillsMaintDetailProject);
}

@ -65,6 +65,25 @@ public class DmsBillsMaintDetailProjectServiceImpl implements IDmsBillsMaintDeta
*/
@Override
public List<DmsBillsMaintDetailProjectVo> queryList(DmsBillsMaintDetailProjectBo bo) {
// 【修复保养项目名称为空问题】优先使用关联查询方法获取完整项目信息
if (bo.getBillsMaintDetailId() != null) {
// 转换为实体对象用于查询
DmsBillsMaintDetailProject queryEntity = MapstructUtils.convert(bo, DmsBillsMaintDetailProject.class);
queryEntity.setBillsMaintDetailId(bo.getBillsMaintDetailId());
queryEntity.setMaintDetailProjectId(bo.getMaintDetailProjectId());
queryEntity.setMaintProjectId(bo.getMaintProjectId());
queryEntity.setMaintProjectStatus(bo.getMaintProjectStatus());
// 使用关联查询方法,确保获取到项目名称
List<DmsBillsMaintDetailProjectVo> result = baseMapper.selectDmsBillsMaintDetailProjectWithProjectName(queryEntity);
// 如果关联查询有结果,直接返回
if (result != null && !result.isEmpty()) {
return result;
}
}
// 降级到默认查询方法
MPJLambdaWrapper<DmsBillsMaintDetailProject> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
@ -132,6 +151,6 @@ public class DmsBillsMaintDetailProjectServiceImpl implements IDmsBillsMaintDeta
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
return baseMapper.deleteBatchIds(ids) > 0;
}
}

@ -17,6 +17,7 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.uuid.Seq;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.dms.domain.*;
import org.dromara.dms.domain.bo.DmsBillsMaintDetailBo;
import org.dromara.dms.domain.bo.DmsBillsMaintDetailProjectBo;
@ -385,6 +386,7 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
}
}
} else if (latestInstance != null) {
// 【关键修复】工作流已启动根据流程实例ID查询当前活跃任务
// 使用最新查询到的工作流ID
Long processInstanceId = latestInstance.getWfDefinitionId();
@ -429,13 +431,15 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
// 更新保养明细信息
dmsBillsMaintDetailMapper.updateById(dmsBillsMaintDetail);
// 更新保养工单信息
baseMapper.updateById(dmsBillsMaintInstance);
}
else {//保养中
// 更新人不为空,则设置更新人为当前用户,更新时间为当前时间
dmsBillsMaintDetail.setUpdateBy(LoginHelper.getUserId());
dmsBillsMaintDetail.setUpdateTime(currentDate);
dmsBillsMaintDetailMapper.updateById(dmsBillsMaintDetail);
}
// else {//保养中
// // 更新人不为空,则设置更新人为当前用户,更新时间为当前时间
// dmsBillsMaintDetail.setUpdateBy(userName);
// dmsBillsMaintDetail.setUpdateTime(currentDate);
// dmsBillsMaintDetailMapper.updateDmsBillsMaintDetail(dmsBillsMaintDetail);
// }
// 创建查询保养明细项目的对象
DmsBillsMaintDetailProjectBo queryBillsMaintDetailProject = new DmsBillsMaintDetailProjectBo();
@ -500,7 +504,7 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
if (!b){
return false;
}else{
// 更新保养实例信息
// 更新保养工单信息
int i = baseMapper.updateById(dmsBillsMaintInstance);
return i > 0;
}

@ -129,7 +129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
dfia.repair_content repair_content,
dfia.protected_method protected_method,
dfia.repairer repairer,
dfia.repair_confirm repair_confirm,
dbfi.repair_confirm repair_confirm,
dfia.confirm_time confirm_time,dfia.components_parts_id components_parts_id
from dms_bills_fault_instance dbfi
left join prod_base_machine_info dbdl on dbfi.machine_id=dbdl.machine_id

@ -4,4 +4,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.dms.mapper.DmsBillsMaintDetailProjectMapper">
<resultMap type="DmsBillsMaintDetailProjectVo" id="DmsBillsMaintDetailProjectResult">
<result property="maintDetailProjectId" column="maint_detail_project_id" />
<result property="billsMaintDetailId" column="bills_maint_detail_id" />
<result property="maintProjectId" column="maint_project_id" />
<result property="maintProjectName" column="maint_project_name" />
<result property="maintProjectDesc" column="maint_project_desc" />
<result property="maintProjectStatus" column="maint_project_status" />
<result property="remark" column="remark" />
<result property="createTime" column="create_time" />
</resultMap>
<sql id="selectDmsBillsMaintDetailProjectVo">
select
dbmdp.maint_detail_project_id,
dbmdp.bills_maint_detail_id,
dbmdp.maint_project_id,
COALESCE(dbmdp.maint_project_name, dbmp.maint_project_name) as maint_project_name,
COALESCE(dbmdp.maint_project_desc, dbmp.maint_project_desc) as maint_project_desc,
dbmdp.maint_project_status,
dbmdp.remark,
dbmdp.create_time
from
dms_bills_maint_detail_project dbmdp
left join dms_base_maint_project dbmp on dbmdp.maint_project_id = dbmp.maint_project_id
</sql>
<select id="selectDmsBillsMaintDetailProjectWithProjectName" parameterType="DmsBillsMaintDetailProject" resultMap="DmsBillsMaintDetailProjectResult">
<include refid="selectDmsBillsMaintDetailProjectVo"/>
<where>
<if test="maintDetailProjectId != null"> and dbmdp.maint_detail_project_id = #{maintDetailProjectId}</if>
<if test="billsMaintDetailId != null"> and dbmdp.bills_maint_detail_id = #{billsMaintDetailId}</if>
<if test="maintProjectId != null"> and dbmdp.maint_project_id = #{maintProjectId}</if>
<if test="maintProjectStatus != null and maintProjectStatus != ''"> and dbmdp.maint_project_status = #{maintProjectStatus}</if>
</where>
order by dbmdp.create_time desc
</select>
</mapper>

Loading…
Cancel
Save