@ -1,21 +1,5 @@
package com.aucma.dms.service.impl ;
//import com.hw.common.core.constant.DmsConstants;
//import com.hw.common.core.constant.WfConstants;
//import com.hw.common.core.exception.ServiceException;
//import com.hw.common.core.utils.DateUtils;
//import com.hw.common.core.utils.uuid.Seq;
//import com.hw.common.security.utils.SecurityUtils;
//import com.aucma.dms.domain.DmsBillsFaultInstance;
//import com.aucma.dms.domain.DmsFaultCompentsParts;
//import com.aucma.dms.domain.DmsFaultInstanceActivity;
//import com.aucma.dms.domain.DmsInstanceFile;
//import com.aucma.dms.domain.vo.DmsBillsFaultInstanceScanVo;
//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 com.aucma.common.constant.DmsConstants ;
import com.aucma.common.exception.ServiceException ;
import com.aucma.common.utils.DateUtils ;
@ -68,39 +52,67 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
* /
@Override
public DmsBillsFaultInstance selectDmsBillsFaultInstanceByRepairInstanceId ( Long repairInstanceId ) {
// DmsFaultInstanceActivity dmsFaultInstanceActivity = dmsFaultInstanceActivityMapper.selectDmsFaultInstanceActivityByRepairIdMin(repairInstanceId);
// DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId);
DmsBillsFaultInstance dmsBillsFaultInstance = dmsBillsFaultInstanceMapper . selectFaultInstanceJoinFirstAndDeviceById ( repairInstanceId ) ;
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 ) ;
// 使用包含完整操作记录列表的查询方法
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" ) ;
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 ( ) ) ;
}
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 ) ;
}
dmsBillsFaultInstance . setDmsInstanceFiles ( dmsInstanceFiles ) ;
// 为每个操作记录加载附件
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 ( ) ) ;
}
}
// dmsBillsFaultInstance.setFaultType(dmsFaultInstanceActivity.getFaultType());
// dmsBillsFaultInstance.setFaultDescription(dmsFaultInstanceActivity.getFaultDescription());
// dmsBillsFaultInstance.setDesignOperations(dmsFaultInstanceActivity.getDesignOperations());
// dmsBillsFaultInstance.setDeviceId(dmsFaultInstanceActivity.getDeviceId());
// dmsBillsFaultInstance.setRepairType(dmsFaultInstanceActivity.getRepairType());
// // 设置附件数量和文件列表
// activity.setFileCount(activityFiles.size());
// activity.setDmsInstanceFiles(activityFiles);
}
}
return dmsBillsFaultInstance ;
}
@ -126,16 +138,17 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
@Transactional
@Override
public int insertDmsBillsFaultInstance ( DmsBillsFaultInstance dmsBillsFaultInstance ) {
Date curre t nDate = new Date ( ) ;
Date curre nt Date = 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 ) ;
dmsBillsFaultInstance . setApplyTime ( curre t nDate) ;
dmsBillsFaultInstance . setCreateTime ( curre t nDate) ;
dmsBillsFaultInstance . setApplyTime ( curre nt Date) ;
dmsBillsFaultInstance . setCreateTime ( curre nt Date) ;
dmsBillsFaultInstance . setCreateBy ( SecurityUtils . getUserId ( ) ) ;
dmsBillsFaultInstance . setBillsFaultCode ( Seq . getId ( Seq . dmsBillsFaultInstanceSeqType , Seq . dmsBillsFaultInstanceSeqCode ) ) ;
dmsBillsFaultInstance . setBillsStatus ( DmsConstants . DMS_BILLS_FAULT_INSTANCE_STATUS_TO_REPAIR ) ;
dmsBillsFaultInstance . setInstanceType ( DmsConstants . DMS_BILLS_FAULT_INSTANCE_TYPE_MAUAL ) ;
dmsBillsFaultInstance . setIsFlag ( "1" ) ;
int rows = dmsBillsFaultInstanceMapper . insertDmsBillsFaultInstance ( dmsBillsFaultInstance ) ;
@ -158,7 +171,30 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
//存储图片
List < String > fileUrls = dmsBillsFaultInstance . getFileUrls ( ) ;
batchInsertInstanceFiles ( fileUrls , dmsFaultInstanceActivity . getInstanceActivityId ( ) ) ;
if ( fileUrls ! = null & & ! fileUrls . isEmpty ( ) ) {
batchInsertInstanceFiles ( fileUrls , dmsFaultInstanceActivity . getInstanceActivityId ( ) ) ;
}
// 保存前端传来的操作记录列表(如果有)
List < DmsFaultInstanceActivity > activityList = dmsBillsFaultInstance . getDmsFaultInstanceActivityList ( ) ;
if ( ! CollectionUtils . isEmpty ( activityList ) ) {
for ( int i = 0 ; i < activityList . size ( ) ; i + + ) {
DmsFaultInstanceActivity activity = activityList . get ( i ) ;
activity . setRepairInstanceId ( dmsBillsFaultInstance . getRepairInstanceId ( ) ) ;
activity . setProcessStepOrder ( ( long ) ( i + 2 ) ) ; // 从第2步开始, 第1步已经创建
activity . setCreateTime ( currentDate ) ;
activity . setCreateBy ( SecurityUtils . getUserId ( ) ) ;
activity . setProcessHandleStatus ( DmsConstants . DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_TO_PICK ) ;
// 插入操作记录
dmsFaultInstanceActivityMapper . insertDmsFaultInstanceActivity ( activity ) ;
// 处理操作记录的附件
if ( activity . getFileUrls ( ) ! = null & & ! activity . getFileUrls ( ) . isEmpty ( ) ) {
batchInsertInstanceFiles ( activity . getFileUrls ( ) , activity . getInstanceActivityId ( ) ) ;
}
}
}
return rows ;
}
@ -169,18 +205,72 @@ public class DmsBillsFaultInstanceServiceImpl implements IDmsBillsFaultInstanceS
* @param dmsBillsFaultInstance 报 修 工 单
* @return 结 果
* /
@Transactional
@Override
public int updateDmsBillsFaultInstance ( DmsBillsFaultInstance dmsBillsFaultInstance ) {
String username = SecurityUtils . getLoginUser ( ) = = null ? SecurityUtils . getUsername ( ) : SecurityUtils . getLoginUser ( ) . getUser ( ) . getNickName ( ) ;
if ( dmsBillsFaultInstance . getRepairConfirm ( ) ! = null ) {
dmsBillsFaultInstance . setConfirmer ( username ) ;
}
dmsBillsFaultInstance . setUpdateTime ( DateUtils . getNowDate ( ) ) ;
dmsInstanceFileMapper . deleteDmsInstanceFileByUpdate ( dmsBillsFaultInstance . getRepairInstanceId ( ) ) ;
Date currentDate = DateUtils . getNowDate ( ) ;
dmsBillsFaultInstance . setUpdateTime ( currentDate ) ;
dmsBillsFaultInstance . setUpdateBy ( SecurityUtils . getUserId ( ) ) ;
// 更新主工单
int i = dmsBillsFaultInstanceMapper . updateDmsBillsFaultInstance ( dmsBillsFaultInstance ) ;
//存储图片
List < String > fileUrls = dmsBillsFaultInstance . getFileUrls ( ) ;
batchInsertInstanceFiles ( fileUrls , dmsBillsFaultInstance . getInstanceActivityId ( ) ) ;
// 处理主工单的附件(如果有)
if ( dmsBillsFaultInstance . getInstanceActivityId ( ) ! = null ) {
dmsInstanceFileMapper . deleteDmsInstanceFileByUpdate ( dmsBillsFaultInstance . getRepairInstanceId ( ) ) ;
List < String > fileUrls = dmsBillsFaultInstance . getFileUrls ( ) ;
if ( fileUrls ! = null & & ! fileUrls . isEmpty ( ) ) {
batchInsertInstanceFiles ( fileUrls , dmsBillsFaultInstance . getInstanceActivityId ( ) ) ;
}
}
// 处理操作记录列表
List < DmsFaultInstanceActivity > activityList = dmsBillsFaultInstance . getDmsFaultInstanceActivityList ( ) ;
if ( ! CollectionUtils . isEmpty ( activityList ) ) {
for ( DmsFaultInstanceActivity activity : activityList ) {
if ( activity . getInstanceActivityId ( ) ! = null & & activity . getInstanceActivityId ( ) > 0 ) {
// 更新已有记录
activity . setUpdateTime ( currentDate ) ;
activity . setUpdateBy ( SecurityUtils . getUserId ( ) ) ;
dmsFaultInstanceActivityMapper . updateDmsFaultInstanceActivity ( activity ) ;
// 更新附件:先删除旧的,再插入新的
if ( activity . getFileUrls ( ) ! = null & & ! activity . getFileUrls ( ) . isEmpty ( ) ) {
dmsInstanceFileMapper . deleteDmsInstanceFileByTargetId ( activity . getInstanceActivityId ( ) ) ;
batchInsertInstanceFiles ( activity . getFileUrls ( ) , activity . getInstanceActivityId ( ) ) ;
}
} else {
// 新增记录
activity . setRepairInstanceId ( dmsBillsFaultInstance . getRepairInstanceId ( ) ) ;
activity . setCreateTime ( currentDate ) ;
activity . setCreateBy ( SecurityUtils . getUserId ( ) ) ;
activity . setProcessHandleStatus ( DmsConstants . DMS_BILLS_FAULT_INSTANCE_ACTIVITY_HANDLE_STATUS_TO_PICK ) ;
// 设置步骤顺序(查询当前最大步骤号+1)
DmsFaultInstanceActivity queryActivity = new DmsFaultInstanceActivity ( ) ;
queryActivity . setRepairInstanceId ( dmsBillsFaultInstance . getRepairInstanceId ( ) ) ;
List < DmsFaultInstanceActivity > existingList = dmsFaultInstanceActivityMapper . selectDmsFaultInstanceActivityList ( queryActivity ) ;
long maxOrder = existingList . stream ( )
. mapToLong ( a - > a . getProcessStepOrder ( ) ! = null ? a . getProcessStepOrder ( ) : 0 )
. max ( )
. orElse ( 0 ) ;
activity . setProcessStepOrder ( maxOrder + 1 ) ;
// 插入新记录
dmsFaultInstanceActivityMapper . insertDmsFaultInstanceActivity ( activity ) ;
// 插入附件
if ( activity . getFileUrls ( ) ! = null & & ! activity . getFileUrls ( ) . isEmpty ( ) ) {
batchInsertInstanceFiles ( activity . getFileUrls ( ) , activity . getInstanceActivityId ( ) ) ;
}
}
}
}
return i ;
}