feat(dms): 新增故障报修字段与附件处理功能

- 增加申请人手机、故障等级等字段并完善数据库映射
- 扩展附件加载逻辑,支持维修开始和完成阶段的文件处理
- 优化字段同步机制,确保主对象与操作记录数据一致性
- 添加默认审批状态设置,防止查询时因NULL值被过滤
- 改进文件路径处理逻辑,统一URL规范化方法
- 完善空指针检查与条件判断,提高代码健壮性- 更新常量定义,区分不同阶段的附件类型标识
master
zangch@mesnac.com 1 month ago
parent b7fb47afe1
commit fb63bc0069

@ -56,6 +56,7 @@ public class DmsConstants {
/**工单文件关联类型*/
public static final String DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY = "1";//故障报修工单实例节点
public static final String DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY_AFTER = "2";//故障报修完成阶段附件

@ -50,6 +50,10 @@ public class DmsBillsFaultInstance extends DmsBaseEntity
/** 申请人 */
@Excel(name = "申请人")
private String applyUser;
/** 申请人手机 */
@Excel(name = "申请人手机")
private String applyUserPhone;
/** 申请时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@ -92,6 +96,9 @@ public class DmsBillsFaultInstance extends DmsBaseEntity
private Long instanceActivityId;
private String faultType;
/** 故障等级1一般 2紧急 3严重 */
private String faultLevel;
private String faultDescription;

@ -106,6 +106,8 @@ public class DmsFaultInstanceActivity extends DmsBaseEntity
private List<String> fileUrls;
private List<DmsInstanceFile> dmsInstanceFileList;
private List<DmsInstanceFile> dmsInstanceFiles;
private Integer fileCount;
private String checkedFault;
private String repairContent;
private String protectedMethod;

@ -14,6 +14,7 @@ import com.aucma.dms.mapper.DmsBillsFaultInstanceMapper;
import com.aucma.dms.mapper.DmsFaultInstanceActivityMapper;
import com.aucma.dms.mapper.DmsInstanceFileMapper;
import com.aucma.dms.service.IDmsBillsFaultInstanceService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@ -55,62 +56,19 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
// 使用包含完整操作记录列表的查询方法
DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper.selectFaultInstanceJoinActivityByRepairInstanceId(repairInstanceId);
// 获取第一步操作记录的附件
// 获取首条操作记录附件(合并前后阶段)
if (dmsBillsFaultInstance.getInstanceActivityId() != null) {
DmsInstanceFile queryInstanceFile = new DmsInstanceFile();
queryInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY);
queryInstanceFile.setTargetId(dmsBillsFaultInstance.getInstanceActivityId());
List<DmsInstanceFile> dmsInstanceFiles = dmsInstanceFileMapper.selectDmsInstanceFileList(queryInstanceFile);
for (DmsInstanceFile dmsInstanceFile : dmsInstanceFiles){
String filePath = dmsInstanceFile.getFilePath();
log.info("filePath1:"+filePath);
if(!filePath.contains("7309")){
if(filePath.contains("https")){
filePath.replaceFirst("https","http");
}
int index= filePath.indexOf("/statics");
filePath = "http://172.16.12.100:7309"+filePath.substring(index);
log.info("filePath2:"+filePath);
dmsInstanceFile.setUrl(filePath);
dmsInstanceFile.setFilePath(filePath);
}else{
dmsInstanceFile.setUrl(dmsInstanceFile.getFilePath());
}
}
dmsBillsFaultInstance.setDmsInstanceFiles(dmsInstanceFiles);
List<DmsInstanceFile> instanceFiles = loadActivityFiles(dmsBillsFaultInstance.getInstanceActivityId());
dmsBillsFaultInstance.setDmsInstanceFiles(instanceFiles);
}
// 为每个操作记录加载附件
List<DmsFaultInstanceActivity> activityList = dmsBillsFaultInstance.getDmsFaultInstanceActivityList();
if (!CollectionUtils.isEmpty(activityList)) {
for (DmsFaultInstanceActivity activity : activityList) {
DmsInstanceFile queryFile = new DmsInstanceFile();
queryFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY);
queryFile.setTargetId(activity.getInstanceActivityId());
List<DmsInstanceFile> activityFiles = dmsInstanceFileMapper.selectDmsInstanceFileList(queryFile);
// 处理文件路径
for (DmsInstanceFile file : activityFiles) {
String filePath = file.getFilePath();
if(!filePath.contains("7309")){
if(filePath.contains("https")){
filePath = filePath.replaceFirst("https","http");
}
int index= filePath.indexOf("/statics");
if (index > -1) {
filePath = "http://172.16.12.100:7309"+filePath.substring(index);
}
file.setUrl(filePath);
file.setFilePath(filePath);
}else{
file.setUrl(file.getFilePath());
}
}
// // 设置附件数量和文件列表
// activity.setFileCount(activityFiles.size());
// activity.setDmsInstanceFiles(activityFiles);
List<DmsInstanceFile> activityFiles = loadActivityFiles(activity.getInstanceActivityId());
activity.setFileCount(activityFiles.size());
activity.setDmsInstanceFiles(activityFiles);
}
}
@ -141,7 +99,9 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
Date currentDate = new Date();
String userName = SecurityUtils.getLoginUser()==null ? SecurityUtils.getUsername() :SecurityUtils.getLoginUser().getUser().getNickName() ;
// dmsBillsFaultInstance.setWfProcessId(WfConstants.WF_BILLS_FAULT_INSTANCE_PROCESS_ID);
dmsBillsFaultInstance.setApplyUser(userName);
if (StringUtils.isBlank(dmsBillsFaultInstance.getApplyUser())) {
dmsBillsFaultInstance.setApplyUser(userName);
}
dmsBillsFaultInstance.setApplyTime(currentDate);
dmsBillsFaultInstance.setCreateTime(currentDate);
dmsBillsFaultInstance.setCreateBy(SecurityUtils.getUserId());
@ -149,6 +109,10 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
dmsBillsFaultInstance.setBillsStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR);
dmsBillsFaultInstance.setInstanceType(DmsConstants.DMS_BILLS_FAULT_INSTANCE_TYPE_MAUAL);
dmsBillsFaultInstance.setIsFlag("1");
// 设置默认审批状态为未审批(避免 NULL 导致查询时被过滤)
if (dmsBillsFaultInstance.getApproveStatus() == null || dmsBillsFaultInstance.getApproveStatus().isEmpty()) {
dmsBillsFaultInstance.setApproveStatus("0");
}
int rows = dmsBillsFaultInstanceMapper.insertDmsBillsFaultInstance(dmsBillsFaultInstance);
@ -228,6 +192,28 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
}
}
// 兼容顶层字段将故障信息与处理意见同步到第1步操作记录便于前端直接从主对象读取展示
DmsFaultInstanceActivity first = dmsFaultInstanceActivityMapper.selectDmsFaultInstanceActivityByRepairIdMin(dmsBillsFaultInstance.getRepairInstanceId());
if (first != null) {
DmsFaultInstanceActivity updateFirst = new DmsFaultInstanceActivity();
updateFirst.setInstanceActivityId(first.getInstanceActivityId());
if (dmsBillsFaultInstance.getFaultType() != null) {
updateFirst.setFaultType(dmsBillsFaultInstance.getFaultType());
}
if (dmsBillsFaultInstance.getFaultDescription() != null) {
updateFirst.setFaultDescription(dmsBillsFaultInstance.getFaultDescription());
}
if (dmsBillsFaultInstance.getDesignOperations() != null) {
updateFirst.setDesignOperations(dmsBillsFaultInstance.getDesignOperations());
}
if (dmsBillsFaultInstance.getProcessHandleResolution() != null) {
updateFirst.setProcessHandleResolution(dmsBillsFaultInstance.getProcessHandleResolution());
}
updateFirst.setUpdateTime(currentDate);
updateFirst.setUpdateBy(SecurityUtils.getUserId());
dmsFaultInstanceActivityMapper.updateDmsFaultInstanceActivity(updateFirst);
}
// 处理操作记录列表
List<DmsFaultInstanceActivity> activityList = dmsBillsFaultInstance.getDmsFaultInstanceActivityList();
if (!CollectionUtils.isEmpty(activityList)) {
@ -342,10 +328,19 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
@Override
public DmsBillsFaultInstance getDmsBillsFaultInstance4Repair(Long repairInstanceId) {
DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper.selectFaultInstanceJoinActivityByRepairInstanceId(repairInstanceId);
if (dmsBillsFaultInstance == null) {
return null;
}
Long repairInstanceId1 = dmsBillsFaultInstance.getRepairInstanceId();
List<DmsFaultCompentsParts> parts = dmsFaultInstanceActivityMapper.selectPartsById(repairInstanceId1);
dmsBillsFaultInstance.setParts(parts);
List<DmsFaultInstanceActivity> dmsBillsFaultInstanceActivityList = dmsBillsFaultInstance.getDmsFaultInstanceActivityList();
if (CollectionUtils.isEmpty(dmsBillsFaultInstanceActivityList)) {
return dmsBillsFaultInstance;
}
DmsFaultInstanceActivity firstStepActivity = dmsBillsFaultInstanceActivityList.get(0);
DmsFaultInstanceActivity dmsFaultInstanceActivity;
if (dmsBillsFaultInstanceActivityList.size() == 1) {
@ -355,60 +350,26 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
dmsFaultInstanceActivity = dmsBillsFaultInstanceActivityList.get(1);
dmsBillsFaultInstance.setInstanceActivityId(dmsFaultInstanceActivity.getInstanceActivityId());
}
for (DmsFaultInstanceActivity activity : dmsBillsFaultInstanceActivityList) {
DmsFaultInstanceActivity instanceActivity = dmsFaultInstanceActivityMapper.selectDmsFaultInstanceActivityByInstanceActivityId(activity.getInstanceActivityId());
if (instanceActivity.getProcessActivityId()==1021l){
// 添加空指针检查
if (instanceActivity == null) {
continue;
}
// 检查 processActivityId 是否为 1021
if (instanceActivity.getProcessActivityId() != null && instanceActivity.getProcessActivityId() == 1021l) {
dmsBillsFaultInstance.setCheckedFault(instanceActivity.getCheckedFault());
DmsInstanceFile queryInstanceFile = new DmsInstanceFile();
// queryInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY);
queryInstanceFile.setTargetId(activity.getInstanceActivityId());
queryInstanceFile.setTargetType("1");
List<DmsInstanceFile> dmsInstanceFiles = dmsInstanceFileMapper.selectDmsInstanceFileList(queryInstanceFile);
dmsInstanceFiles.forEach(dif ->{
String filePath = dif.getFilePath();
log.info("filePath1:"+filePath);
if(!filePath.contains("7309")){
if(filePath.contains("https")){
filePath.replaceFirst("https","http");
}
int index= filePath.indexOf("/statics");
filePath = "http://172.16.12.100:7309"+filePath.substring(index);
log.info("filePath2:"+filePath);
dif.setUrl(filePath);
dif.setFilePath(filePath);
}else{
dif.setUrl(dif.getFilePath());
}
});
dmsBillsFaultInstance.setDmsInstanceFiles(dmsInstanceFiles);
List<DmsInstanceFile> instanceFiles = loadActivityFiles(activity.getInstanceActivityId());
dmsBillsFaultInstance.setDmsInstanceFiles(instanceFiles);
dmsBillsFaultInstance.setConfirmTime(instanceActivity.getConfirmTime());
dmsBillsFaultInstance.setRepairContent(instanceActivity.getRepairContent());
dmsBillsFaultInstance.setProtectedMethod(instanceActivity.getProtectedMethod());
dmsBillsFaultInstance.setRepairer(instanceActivity.getRepairer());
dmsBillsFaultInstance.setRepairConfirm(instanceActivity.getRepairConfirm());
dmsBillsFaultInstance.setProcessHandleResolution(instanceActivity.getProcessHandleResolution());
DmsInstanceFile queryInstanceFile1 = new DmsInstanceFile();
queryInstanceFile1.setTargetId(activity.getInstanceActivityId());
queryInstanceFile1.setTargetType("2");
List<DmsInstanceFile> dmsInstanceFiles1 = dmsInstanceFileMapper.selectDmsInstanceFileList(queryInstanceFile1);
dmsInstanceFiles1.forEach(dif ->{
String filePath = dif.getFilePath();
log.info("filePath1:"+filePath);
if(!filePath.contains("7309")){
if(filePath.contains("https")){
filePath.replaceFirst("https","http");
}
int index= filePath.indexOf("/statics");
filePath = "http://172.16.12.100:7309"+filePath.substring(index);
log.info("filePath2:"+filePath);
dif.setUrl(filePath);
dif.setFilePath(filePath);
}else{
dif.setUrl(dif.getFilePath());
}
});
dmsBillsFaultInstance.setDmsInstanceFiles1(dmsInstanceFiles1);
dmsBillsFaultInstance.setDmsInstanceFiles1(null);
}
}
dmsBillsFaultInstance.setFaultType(dmsFaultInstanceActivity.getFaultType());
@ -561,82 +522,92 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
@Override
@Transactional(rollbackFor = Exception.class)
public int completeRepair(DmsFaultInstanceActivity dmsFaultInstanceActivity) {
batchInsertInstanceAfterFiles(dmsFaultInstanceActivity.getFileUrls(),dmsFaultInstanceActivity.getInstanceActivityId());
batchInsertInstanceAfterFiles(dmsFaultInstanceActivity.getFileUrls(), dmsFaultInstanceActivity.getInstanceActivityId());
List<DmsFaultCompentsParts> parts = dmsFaultInstanceActivity.getParts();
if (!CollectionUtils.isEmpty(parts)){
if (!CollectionUtils.isEmpty(parts)) {
for (DmsFaultCompentsParts part : parts) {
part.setFaultId(dmsFaultInstanceActivity.getRepairInstanceId());
}
dmsFaultInstanceActivityMapper.insertParts(parts);
}
DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper.
selectDmsBillsFaultInstanceByRepairInstanceId(dmsFaultInstanceActivity.getRepairInstanceId());
DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper
.selectDmsBillsFaultInstanceByRepairInstanceId(dmsFaultInstanceActivity.getRepairInstanceId());
String dmsBillsStatus = dmsBillsFaultInstance.getBillsStatus();
if (dmsBillsStatus.equals(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_FINISH)) {//维修完成
if (DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_FINISH.equals(dmsBillsStatus)) {
throw new ServiceException("已经维修完成");
}
if (dmsBillsStatus.equals(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR)) {//待维修
if (DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR.equals(dmsBillsStatus)) {
throw new ServiceException("请先开始维修");
}
Date currentDate = new Date();
String userName = SecurityUtils.getLoginUser()==null ? SecurityUtils.getUsername() :SecurityUtils.getLoginUser().getUser().getNickName();
String userName = SecurityUtils.getLoginUser() == null ? SecurityUtils.getUsername() : SecurityUtils.getLoginUser().getUser().getNickName();
dmsBillsFaultInstance.setBillsStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_STATUS_FINISH);
dmsBillsFaultInstance.setRealEndTime(currentDate);
dmsBillsFaultInstance.setUpdateBy(SecurityUtils.getUserId());
dmsBillsFaultInstance.setUpdateTime(currentDate);
dmsBillsFaultInstanceMapper.updateDmsBillsFaultInstance(dmsBillsFaultInstance);
dmsFaultInstanceActivity.setProcessHandleStatus(DmsConstants.DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_FINISH);
dmsFaultInstanceActivity.setEndTime(currentDate);
dmsFaultInstanceActivity.setRepairer(userName);
if (StringUtils.isBlank(dmsFaultInstanceActivity.getRepairer())) {
dmsFaultInstanceActivity.setRepairer(userName);
}
if (dmsFaultInstanceActivity.getHandleUserId() == null) {
dmsFaultInstanceActivity.setHandleUserId(SecurityUtils.getUserId());
dmsFaultInstanceActivity.setHandleBy(userName);
}
dmsFaultInstanceActivity.setHandleTime(currentDate);
dmsFaultInstanceActivityMapper.updateDmsFaultInstanceActivity(dmsFaultInstanceActivity);
return 1;
}
public void batchInsertInstanceFiles(List<String> fileUrls, Long instanceActivityId) {
if (fileUrls != null && !fileUrls.isEmpty()) {
List<DmsInstanceFile> dmsInstanceFiles = new ArrayList<>();
for (String fileUrl : fileUrls) {
DmsInstanceFile dmsInstanceFile = new DmsInstanceFile();
dmsInstanceFile.setTargetId(instanceActivityId);
dmsInstanceFile.setTargetType(DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY);
dmsInstanceFile.setFilePath(fileUrl);
dmsInstanceFiles.add(dmsInstanceFile);
}
dmsInstanceFileMapper.batchDmsInstanceFile(dmsInstanceFiles);
}
}
public void batchInsertInstanceAfterFiles(List<String> fileUrls, Long instanceActivityId) {
if (fileUrls != null && !fileUrls.isEmpty()) {
List<DmsInstanceFile> dmsInstanceFiles = new ArrayList<>();
for (String fileUrl : fileUrls) {
DmsInstanceFile dmsInstanceFile = new DmsInstanceFile();
dmsInstanceFile.setTargetId(instanceActivityId);
dmsInstanceFile.setTargetType("2");
dmsInstanceFile.setFilePath(fileUrl);
dmsInstanceFiles.add(dmsInstanceFile);
}
dmsInstanceFileMapper.batchDmsInstanceFile(dmsInstanceFiles);
/**
* /
*/
private List<DmsInstanceFile> loadActivityFiles(Long instanceActivityId) {
List<DmsInstanceFile> result = new ArrayList<>();
if (instanceActivityId == null) {
return result;
}
result.addAll(loadFilesByType(instanceActivityId, DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY));
result.addAll(loadFilesByType(instanceActivityId, DmsConstants.DMS_INSTANCE_FILE_TARGET_TYPE_FAULT_INSTANCE_ACTIVITY_AFTER));
return result;
}
public static void main(String[] args) {
String filePath = "https://172.16.12.100/statics/2024/12/05/output_imgage20241205_215325_20241205215439A002.jpg";
if(!filePath.contains("7309")){
if(filePath.contains("https")){
filePath.replaceFirst("https","http");
}
int index= filePath.indexOf("/statics");
filePath = "http://172.16.12.100:7309"+filePath.substring(index);
private List<DmsInstanceFile> loadFilesByType(Long instanceActivityId, String targetType) {
DmsInstanceFile query = new DmsInstanceFile();
query.setTargetId(instanceActivityId);
query.setTargetType(targetType);
List<DmsInstanceFile> files = dmsInstanceFileMapper.selectDmsInstanceFileList(query);
for (DmsInstanceFile file : files) {
normalizeFilePath(file);
}
return files;
}
private void normalizeFilePath(DmsInstanceFile file) {
String filePath = file.getFilePath();
if (StringUtils.isBlank(filePath)) {
return;
}
log.info("filePath1:" + filePath);
if (!filePath.contains("7309")) {
if (filePath.contains("https")) {
filePath = filePath.replaceFirst("https", "http");
}
int index = filePath.indexOf("/statics");
if (index > -1) {
filePath = "http://172.16.12.100:7309" + filePath.substring(index);
}
log.info("filePath2:" + filePath);
file.setUrl(filePath);
file.setFilePath(filePath);
} else {
file.setUrl(filePath);
}
System.out.println(filePath);
}
}

@ -26,20 +26,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- <result property="wfProcessId" column="wf_process_id" /> -->
<result property="deviceId" column="device_id" />
<result property="approveStatus" column="approveStatus" />
<result property="repairConfirm" column="repair_confirm" />
<result property="confirmer" column="confirm_user" />
<result property="deviceCode" column="device_code" />
<result property="deviceName" column="device_name" />
<result property="deviceLocation" column="device_location" />
<result property="deviceSpec" column="device_spec" />
<result property="instanceActivityId" column="instance_activity_id" />
<result property="faultType" column="fault_type" />
<result property="faultLevel" column="fault_level" />
<result property="faultDescription" column="fault_description" />
<result property="applyUserPhone" column="apply_user_phone" />
<result property="designOperations" column="design_operations" />
<result property="repairType" column="repair_type" />
<result property="outsrcId" column="outsrc_id" />
<result property="processHandleResolution" column="process_handle_resolution" />
<result property="knowledgeRepairId" column="knowledge_repair_id" />
<result property="verifyMethod" column="verify_method" />
</resultMap>
<resultMap id="DmsBillsFaultInstanceDmsFaultInstanceActivityResult" type="DmsBillsFaultInstance" extends="DmsBillsFaultInstanceResult">
<collection property="dmsFaultInstanceActivityList" notNullColumn="sub_instance_activity_id" javaType="java.util.List" resultMap="DmsFaultInstanceActivityResult" />
</resultMap>
@ -67,17 +72,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="sub_create_time" />
<result property="transferUserId" column="sub_transfer_user_id" />
<result property="attr1" column="sub_attr1" />
<result property="repairContent" column="sub_repair_content" />
<result property="protectedMethod" column="sub_protected_method" />
<result property="repairer" column="sub_repairer" />
<result property="repairConfirm" column="sub_repair_confirm" />
<result property="confirmTime" column="sub_confirm_time" />
</resultMap>
<sql id="selectDmsBillsFaultInstanceVo">
select repair_instance_id, fault_source_type, fault_source_id, bills_fault_code, bills_status, apply_user, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, is_flag, remark, create_by, create_time, update_by, update_time,device_id,approveStatus from dms_bills_fault_instance
select repair_instance_id, fault_source_type, fault_source_id, bills_fault_code, bills_status, apply_user, apply_user_phone, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, is_flag, remark, create_by, create_time, update_by, update_time, device_id, APPROVESTATUS AS approveStatus, knowledge_repair_id, verify_method, repair_confirm, confirm_user from dms_bills_fault_instance
</sql>
<select id="selectDmsBillsFaultInstanceList" parameterType="DmsBillsFaultInstance" resultMap="DmsBillsFaultInstanceResult">
<include refid="selectDmsBillsFaultInstanceVo"/>
<where>
approveStatus != '4'
(approveStatus != '4' OR approveStatus IS NULL)
<if test="faultSourceType != null and faultSourceType != ''"> and fault_source_type = #{faultSourceType}</if>
<if test="faultSourceId != null "> and fault_source_id = #{faultSourceId}</if>
<if test="repairInstanceId != null "> and repair_instance_id = #{repairInstanceId}</if>
@ -114,6 +123,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="billsFaultCode != null and billsFaultCode != ''">bills_fault_code,</if>
<if test="billsStatus != null and billsStatus != ''">bills_status,</if>
<if test="applyUser != null">apply_user,</if>
<if test="applyUserPhone != null">apply_user_phone,</if>
<if test="faultLevel != null">fault_level,</if>
<if test="applyTime != null">apply_time,</if>
<if test="realBeginTime != null">real_begin_time,</if>
<if test="realEndTime != null">real_end_time,</if>
@ -126,6 +137,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="deviceId != null">device_id,</if>
<if test="knowledgeRepairId != null">knowledge_repair_id,</if>
<if test="verifyMethod != null">verify_method,</if>
<!-- 已废弃审批流 -->
<!-- <if test="wfProcessId != null">wf_process_id,</if> -->
</trim>
@ -136,6 +149,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="billsFaultCode != null and billsFaultCode != ''">#{billsFaultCode},</if>
<if test="billsStatus != null and billsStatus != ''">#{billsStatus},</if>
<if test="applyUser != null">#{applyUser},</if>
<if test="applyUserPhone != null">#{applyUserPhone},</if>
<if test="faultLevel != null">#{faultLevel},</if>
<if test="applyTime != null">#{applyTime},</if>
<if test="realBeginTime != null">#{realBeginTime},</if>
<if test="realEndTime != null">#{realEndTime},</if>
@ -148,6 +163,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="deviceId != null">#{deviceId},</if>
<if test="knowledgeRepairId != null">#{knowledgeRepairId},</if>
<if test="verifyMethod != null">#{verifyMethod},</if>
<!-- 已废弃审批流 -->
<!-- <if test="wfProcessId != null">#{wfProcessId},</if> -->
</trim>
@ -161,6 +178,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="billsFaultCode != null and billsFaultCode != ''">bills_fault_code = #{billsFaultCode},</if>
<if test="billsStatus != null and billsStatus != ''">bills_status = #{billsStatus},</if>
<if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="applyUserPhone != null">apply_user_phone = #{applyUserPhone},</if>
<if test="faultLevel != null">fault_level = #{faultLevel},</if>
<if test="applyTime != null">apply_time = #{applyTime},</if>
<if test="realBeginTime != null">real_begin_time = #{realBeginTime},</if>
<if test="realEndTime != null">real_end_time = #{realEndTime},</if>
@ -175,7 +194,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="deviceId != null">device_id = #{deviceId},</if>
<if test="approveStatus != null">approveStatus = #{approveStatus},</if>
<if test="repairConfirm != null">repair_confirm = #{repairConfirm},</if>
<if test="confirmer != null">confirmer = #{confirmer},</if>
<if test="confirmer != null">confirm_user = #{confirmer},</if>
<if test="knowledgeRepairId != null">knowledge_repair_id = #{knowledgeRepairId},</if>
<if test="verifyMethod != null">verify_method = #{verifyMethod},</if>
</trim>
where repair_instance_id = #{repairInstanceId}
</update>
@ -191,15 +212,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<sql id="selectDmsBillsFaultInstanceJoinVo">
select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, dbfi.bills_fault_code, dbfi.bills_status,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id,dbfi.approveStatus,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id, dbfi.APPROVESTATUS as approveStatus,
dbdl.device_code,
dbdl.device_name,
dbdl.device_address as device_location,
@ -226,12 +241,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by dbfi.repair_instance_id desc
</select>
<select id="selectFaultInstanceJoinFirstAndDeviceById" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, dbfi.bills_fault_code, dbfi.bills_status,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id,dbfi.approveStatus,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id, dbfi.APPROVESTATUS as approveStatus,
dbdl.device_code,
dbdl.device_name,
dbdl.device_address as device_location,
@ -248,31 +260,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dbfi.repair_instance_id = #{repairInstanceId} and dfia.process_step_order=1
</select>
<select id="selectFaultInstanceJoinActivityByRepairInstanceId" parameterType="Long" resultMap="DmsBillsFaultInstanceDmsFaultInstanceActivityResult">
select a.repair_instance_id, a.fault_source_type, a.fault_source_id, a.bills_fault_code, a.bills_status, a.apply_user, a.apply_time, a.real_begin_time, a.real_end_time, a.require_end_time, a.instance_type, a.is_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time,a.approveStatus,
select a.repair_instance_id, a.fault_source_type, a.fault_source_id, a.bills_fault_code, a.bills_status,
a.apply_user, a.apply_user_phone, a.apply_time, a.real_begin_time, a.real_end_time, a.require_end_time,
a.instance_type, a.is_flag, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.device_id,
a.APPROVESTATUS as approveStatus, a.knowledge_repair_id, a.verify_method, a.fault_level, a.confirm_user, a.repair_confirm,
dbdl.device_code,
dbdl.device_name,
dbdl.device_address as device_location,
dbdl.device_model as device_spec,
b.instance_activity_id as sub_instance_activity_id, b.repair_instance_id as sub_repair_instance_id, b.process_activity_id as sub_process_activity_id, b.fault_type as sub_fault_type, b.fault_description as sub_fault_description, b.design_operations as sub_design_operations, b.device_id as sub_device_id, b.repair_type as sub_repair_type, b.outsrc_id as sub_outsrc_id, b.process_handle_resolution as sub_process_handle_resolution, b.remark as sub_remark, b.process_handle_status as sub_process_handle_status, b.process_step_order as sub_process_step_order, b.start_time as sub_start_time, b.end_time as sub_end_time, b.handle_user_id as sub_handle_user_id, b.handle_by as sub_handle_by, b.handle_time as sub_handle_time,
a.approveStatus
b.instance_activity_id as sub_instance_activity_id, b.repair_instance_id as sub_repair_instance_id,
b.process_activity_id as sub_process_activity_id, b.fault_type as sub_fault_type,
b.fault_description as sub_fault_description, b.design_operations as sub_design_operations,
b.device_id as sub_device_id, b.repair_type as sub_repair_type, b.outsrc_id as sub_outsrc_id,
b.process_handle_resolution as sub_process_handle_resolution, b.remark as sub_remark,
b.process_handle_status as sub_process_handle_status, b.process_step_order as sub_process_step_order,
b.start_time as sub_start_time, b.end_time as sub_end_time, b.handle_user_id as sub_handle_user_id,
b.handle_by as sub_handle_by, b.handle_time as sub_handle_time,
b.repair_content as sub_repair_content, b.protected_method as sub_protected_method,
b.repairer as sub_repairer, b.repair_confirm as sub_repair_confirm, b.confirm_time as sub_confirm_time,
-- 将第1步的关键字段固定从首步别名表中读取避免被后续步骤的空值覆盖
bf.fault_type as fault_type, bf.fault_description as fault_description,
bf.design_operations as design_operations, bf.process_handle_resolution as process_handle_resolution
from dms_bills_fault_instance a
left join base_deviceledger dbdl on a.device_id=dbdl.OBJ_ID
left join dms_fault_instance_activity bf on bf.repair_instance_id = a.repair_instance_id and bf.process_step_order = 1
left join dms_fault_instance_activity b on b.repair_instance_id = a.repair_instance_id
where a.repair_instance_id = #{repairInstanceId} order by b.process_step_order
</select>
<select id="selectCountByRepairInstanceIdAndDeviceCode" resultType="Long">
select count(1) from dms_bills_fault_instance dbfi where dbfi.repair_instance_id=#{repairInstanceId}
and exists (select 1 from base_deviceledger dbdl where dbfi.device_id=dbdl.OBJ_ID and dbdl.device_code=#{deviceCode})
</select>
<select id="selectFaultInstanceJoinFirstById" parameterType="Long" resultMap="DmsBillsFaultInstanceResult">
select dbfi.repair_instance_id, dbfi.fault_source_type, dbfi.fault_source_id, dbfi.bills_fault_code, dbfi.bills_status,
dbfi.apply_user, dbfi.apply_time, dbfi.real_begin_time, dbfi.real_end_time, dbfi.require_end_time, dbfi.device_id,
@ -299,7 +321,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
b.real_end_time,
b.repair_confirm,
b.update_time,
b.confirmer
b.confirm_user as confirmer
from
dms_fault_instance_activity x left join base_deviceledger a on x.device_id = a.OBJ_ID
left join dms_bills_fault_instance b on x.repair_instance_id = b.repair_instance_id where x.repair_instance_id = #{repairInstanceId}
@ -310,7 +332,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectDmsBillsFaultInstanceCompletedList" resultType="com.aucma.dms.domain.DmsBillsFaultInstance"
parameterType="com.aucma.dms.domain.DmsBillsFaultInstance">
select repair_instance_id, fault_source_type, fault_source_id, bills_fault_code, bills_status, apply_user, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, is_flag, remark, create_by, create_time, update_by, update_time,device_id,approveStatus,repair_confirm from dms_bills_fault_instance
select repair_instance_id, fault_source_type, fault_source_id, bills_fault_code, bills_status, apply_user, apply_time, real_begin_time, real_end_time, require_end_time, instance_type, is_flag, remark, create_by, create_time, update_by, update_time, device_id, APPROVESTATUS as approveStatus, repair_confirm from dms_bills_fault_instance
<where>
bills_status = 2
<if test="faultSourceType != null and faultSourceType != ''"> and fault_source_type = #{faultSourceType}</if>
@ -340,6 +362,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
x.fault_id = a.repair_instance_id where x.fault_id = #{repairInstanceId}
</select>
</mapper>

@ -27,7 +27,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" />
<result property="transferUserId" column="transfer_user_id" />
<result property="attr1" column="attr1" />
<result property="approveStatus" column="approveStatus" />
<result property="checkedFault" column="checked_fault" />
<result property="repairContent" column="repair_content" />
<result property="protectedMethod" column="protected_method" />
<result property="repairer" column="repairer" />
<result property="repairConfirm" column="repair_confirm" />
<result property="confirmTime" column="confirm_time" />
<result property="componentsPartsId" column="components_parts_id" />
</resultMap>
<sql id="selectDmsFaultInstanceActivityVo">
@ -64,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
protected_method,
repairer,
repair_confirm,
confirm_time from dms_fault_instance_activity
confirm_time, components_parts_id from dms_fault_instance_activity
where instance_activity_id = #{instanceActivityId}
</select>
@ -96,6 +102,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">create_time,</if>
<if test="transferUserId != null">transfer_user_id,</if>
<if test="attr1 != null">attr1,</if>
<if test="checkedFault != null">checked_fault,</if>
<if test="repairContent != null">repair_content,</if>
<if test="protectedMethod != null">protected_method,</if>
<if test="repairer != null">repairer,</if>
<if test="repairConfirm != null">repair_confirm,</if>
<if test="confirmTime != null">confirm_time,</if>
<if test="componentsPartsId != null">components_parts_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
#{instanceActivityId},
@ -120,6 +133,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createTime != null">#{createTime},</if>
<if test="transferUserId != null">#{transferUserId},</if>
<if test="attr1 != null">#{attr1},</if>
<if test="checkedFault != null">#{checkedFault},</if>
<if test="repairContent != null">#{repairContent},</if>
<if test="protectedMethod != null">#{protectedMethod},</if>
<if test="repairer != null">#{repairer},</if>
<if test="repairConfirm != null">#{repairConfirm},</if>
<if test="confirmTime != null">#{confirmTime},</if>
<if test="componentsPartsId != null">#{componentsPartsId},</if>
</trim>
</insert>
<insert id="insertParts" parameterType="java.util.List">

@ -3,18 +3,18 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aucma.dms.mapper.DmsInstanceFileMapper">
<resultMap type="DmsInstanceFile" id="DmsInstanceFileResult">
<result property="instanceFileId" column="instance_file_id" />
<result property="targetType" column="target_type" />
<result property="targetId" column="target_id" />
<result property="filePath" column="file_path" />
</resultMap>
<sql id="selectDmsInstanceFileVo">
select instance_file_id, target_type, target_id, file_path from dms_instance_file
</sql>
<select id="selectDmsInstanceFileList" parameterType="DmsInstanceFile" resultMap="DmsInstanceFileResult">
<include refid="selectDmsInstanceFileVo"/>
<where>
@ -23,12 +23,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="filePath != null and filePath != ''"> and file_path = #{filePath}</if>
</where>
</select>
<select id="selectDmsInstanceFileByInstanceFileId" parameterType="Long" resultMap="DmsInstanceFileResult">
<include refid="selectDmsInstanceFileVo"/>
where instance_file_id = #{instanceFileId}
</select>
<insert id="insertDmsInstanceFile" parameterType="DmsInstanceFile" useGeneratedKeys="true" keyProperty="instanceFileId">
insert into dms_instance_file
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="filePath != null and filePath != ''">#{filePath},</if>
</trim>
</insert>
<update id="updateDmsInstanceFile" parameterType="DmsInstanceFile">
update dms_instance_file
<trim prefix="SET" suffixOverrides=",">
@ -52,21 +52,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim>
where instance_file_id = #{instanceFileId}
</update>
<delete id="deleteDmsInstanceFileByInstanceFileId" parameterType="Long">
delete from dms_instance_file where instance_file_id = #{instanceFileId}
</delete>
<delete id="deleteDmsInstanceFileByInstanceFileIds" parameterType="String">
delete from dms_instance_file where instance_file_id in
<foreach item="instanceFileId" collection="array" open="(" separator="," close=")">
#{instanceFileId}
</foreach>
</delete>
<insert id="batchDmsInstanceFile">
insert into dms_instance_file( instance_file_id, target_type, target_id, file_path) values
<foreach item="item" index="index" collection="list" separator=",">
@ -74,13 +74,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</insert>
<delete id="deleteDmsInstanceFileByUpdate">
delete from dms_instance_file where target_type = 1 and target_id =#{targetId}
delete from dms_instance_file where target_type = '1' and target_id = #{targetId}
</delete>
<delete id="deleteDmsInstanceFileByTargetId" parameterType="Long">
delete from dms_instance_file where target_id = #{targetId}
</delete>
<select id="selectDmsInstanceFileConvertList" parameterType="DmsInstanceFile" resultMap="DmsInstanceFileResult">
select instance_file_id, target_type, target_id, file_path as name,file_path as url from dms_instance_file
<where>
@ -89,5 +89,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="filePath != null and filePath != ''"> and file_path = #{filePath}</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save