Browse Source

[SBBJ-1226]删除点检维修工单三十天以上工单完成的缓存图片

master
zengqinyuan 3 weeks ago
parent
commit
8c8623dba3
  1. 3
      sql/mysql/product_publish.sql
  2. 6
      win-module-eam/win-module-eam-biz/pom.xml
  3. 5
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/dataobject/devicemaintenancejob/DeviceMaintenanceJobMainDO.java
  4. 5
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/dataobject/devicespotinspectionrecord/DeviceSpotInspectionRecordDetailDO.java
  5. 5
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/dataobject/devicespotinspectionrecord/DeviceSpotInspectionRecordMainDO.java
  6. 72
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/job/DeleteFileJob.java
  7. 16
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/job/vo/DeleteFileVO.java
  8. 9
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/common/DeleteFileService.java
  9. 88
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/devicemaintenancejob/DeviceMaintenanceJobMainServiceImpl.java
  10. 170
      win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/moldspotinspectionrecord/MoldSpotInspectionRecordMainServiceImpl.java

3
sql/mysql/product_publish.sql

@ -252,3 +252,6 @@ ALTER TABLE basic_attachment_file ADD COLUMN specifications VARCHAR(50) COMMENT
-- 备件表增加名称索引 -- 备件表增加名称索引
ALTER TABLE `basic_item` ADD INDEX name (name); ALTER TABLE `basic_item` ADD INDEX name (name);
--- ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 已发布 2025-06-16 13:40 --- ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 已发布 2025-06-16 13:40
ALTER TABLE job_maintenance_main ADD COLUMN is_delete_file bit(1) COMMENT '是否已删除过期文件';
ALTER TABLE record_spot_inspection_main ADD COLUMN is_delete_file bit(1) COMMENT '是否已删除过期文件';
ALTER TABLE record_spot_inspection_detail ADD COLUMN is_delete_file bit(1) COMMENT '是否已删除过期文件';

6
win-module-eam/win-module-eam-biz/pom.xml

@ -140,6 +140,12 @@
<version>3.0.0</version> <version>3.0.0</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>com.win</groupId>
<artifactId>win-module-infra-biz</artifactId>
<version>3.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>

5
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/dataobject/devicemaintenancejob/DeviceMaintenanceJobMainDO.java

@ -253,4 +253,9 @@ public class DeviceMaintenanceJobMainDO extends BaseDO {
*/ */
private Boolean outTimeEmailStatus; private Boolean outTimeEmailStatus;
/**
* 是否已删除过去文件
*/
private Integer isDeleteFile;
} }

5
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/dataobject/devicespotinspectionrecord/DeviceSpotInspectionRecordDetailDO.java

@ -73,4 +73,9 @@ public class DeviceSpotInspectionRecordDetailDO extends BaseDO {
@TableField(exist = false) @TableField(exist = false)
private List<String> filePathList; private List<String> filePathList;
/**
* 是否已删除过去文件
*/
private Integer isDeleteFile;
} }

5
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/dal/dataobject/devicespotinspectionrecord/DeviceSpotInspectionRecordMainDO.java

@ -150,5 +150,10 @@ public class DeviceSpotInspectionRecordMainDO extends BaseDO {
@TableField(exist = false) @TableField(exist = false)
private String verifyName; private String verifyName;
/**
* 是否已删除过去文件
*/
private Integer isDeleteFile;
} }

72
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/job/DeleteFileJob.java

@ -0,0 +1,72 @@
package com.win.module.eam.job;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.win.framework.common.exception.ErrorCode;
import com.win.framework.common.exception.util.ServiceExceptionUtil;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import com.win.framework.quartz.core.handler.JobHandler;
import com.win.module.eam.dal.dataobject.attachmentfile.AttachmentFileDO;
import com.win.module.eam.dal.mysql.attachmentfile.AttachmentFileMapper;
import com.win.module.eam.job.vo.DeleteFileVO;
import com.win.module.eam.service.common.DeleteFileService;
import com.win.module.infra.service.file.FileService;
import com.win.module.system.util.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Component
public class DeleteFileJob implements JobHandler {
@Resource
private List<DeleteFileService> list;
@Resource
private AttachmentFileMapper attachmentFileMapper;
@Resource
private FileService fileService;
@Override
public String execute(String param) throws Exception {
list.forEach(item -> {
DeleteFileVO<?> deleteVO = item.findeDeleteFileVO();
deleteFile(deleteVO);
});
return "删除成功";
}
public <T extends BaseDO> void deleteFile(DeleteFileVO<T> vo) {
if (vo == null) {
return;
}
List<?> ids = vo.getIds();
DeleteFileVO<?> subVO = vo.getSubVO();
deleteFile(subVO);
String funcCode = subVO.getFuncCode();
if (StringUtils.isNotBlank(funcCode)) {
List<AttachmentFileDO> attachmentFileDOS = attachmentFileMapper.selectList(
new LambdaQueryWrapper<AttachmentFileDO>()
.eq(AttachmentFileDO::getFuncCode, funcCode)
.in(AttachmentFileDO::getNumber, vo.getNumberList()));
for (AttachmentFileDO attachmentFileDO : attachmentFileDOS) {
try {
fileService.deleteFile(attachmentFileDO.getId());
} catch (Exception e) {
ServiceExceptionUtil.exception(new ErrorCode(50001, String.format("删除文件失败:%s", ExceptionUtils.getStackTrace(e))));
}
}
}
BaseMapper<T> baseMapper = vo.getBaseMapper();
UpdateWrapper<T> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", ids);
updateWrapper.set("is_file_delete", 1);
baseMapper.update(null, updateWrapper);
}
}

16
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/job/vo/DeleteFileVO.java

@ -0,0 +1,16 @@
package com.win.module.eam.job.vo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;
import java.util.List;
@Data
public class DeleteFileVO<T extends BaseDO> {
private List<?> ids;
private List<?> numberList;
private BaseMapper<T> baseMapper;
private String funcCode;
private DeleteFileVO<?> subVO;
}

9
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/common/DeleteFileService.java

@ -0,0 +1,9 @@
package com.win.module.eam.service.common;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import com.win.module.eam.job.vo.DeleteFileVO;
public interface DeleteFileService {
<T extends BaseDO> DeleteFileVO<T> findeDeleteFileVO();
}

88
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/devicemaintenancejob/DeviceMaintenanceJobMainServiceImpl.java

@ -1,6 +1,7 @@
package com.win.module.eam.service.devicemaintenancejob; package com.win.module.eam.service.devicemaintenancejob;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -17,6 +18,7 @@ import com.win.module.eam.dal.dataobject.devicemaintenancejob.DeviceMaintenanceJ
import com.win.module.eam.dal.dataobject.devicemaintenancejob.DeviceMaintenanceJobDetailItemDO; import com.win.module.eam.dal.dataobject.devicemaintenancejob.DeviceMaintenanceJobDetailItemDO;
import com.win.module.eam.dal.dataobject.devicemaintenancejob.DeviceMaintenanceJobMainDO; import com.win.module.eam.dal.dataobject.devicemaintenancejob.DeviceMaintenanceJobMainDO;
import com.win.module.eam.dal.dataobject.devicerepairrequest.DeviceRepairRequestDO; import com.win.module.eam.dal.dataobject.devicerepairrequest.DeviceRepairRequestDO;
import com.win.module.eam.dal.dataobject.devicespotinspectionrecord.DeviceSpotInspectionRecordDetailDO;
import com.win.module.eam.dal.dataobject.item.ItemDO; import com.win.module.eam.dal.dataobject.item.ItemDO;
import com.win.module.eam.dal.dataobject.maintenanceturnto.MaintenanceTurntoDO; import com.win.module.eam.dal.dataobject.maintenanceturnto.MaintenanceTurntoDO;
import com.win.module.eam.dal.dataobject.moldaccounts.MoldAccountsDO; import com.win.module.eam.dal.dataobject.moldaccounts.MoldAccountsDO;
@ -34,7 +36,9 @@ import com.win.module.eam.dal.mysql.questionsharingplatform.QuestionSharingPlatf
import com.win.module.eam.enums.DictTypeConstants; import com.win.module.eam.enums.DictTypeConstants;
import com.win.module.eam.enums.basic.BasicStatusEnum; import com.win.module.eam.enums.basic.BasicStatusEnum;
import com.win.module.eam.enums.order.OrderStatusEnum; import com.win.module.eam.enums.order.OrderStatusEnum;
import com.win.module.eam.job.vo.DeleteFileVO;
import com.win.module.eam.service.attachmentfile.AttachmentFileService; import com.win.module.eam.service.attachmentfile.AttachmentFileService;
import com.win.module.eam.service.common.DeleteFileService;
import com.win.module.eam.service.deviceaccounts.DeviceAccountsService; import com.win.module.eam.service.deviceaccounts.DeviceAccountsService;
import com.win.module.eam.service.devicerepairrequest.DeviceRepairRequestService; import com.win.module.eam.service.devicerepairrequest.DeviceRepairRequestService;
import com.win.module.eam.service.moldaccounts.MoldAccountsService; import com.win.module.eam.service.moldaccounts.MoldAccountsService;
@ -58,6 +62,7 @@ import org.apache.commons.lang3.ObjectUtils;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -79,7 +84,7 @@ import static com.win.module.eam.enums.ErrorCodeConstants.*;
*/ */
@Service @Service
@Validated @Validated
public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJobMainService { public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJobMainService, DeleteFileService {
@Resource @Resource
private DeviceMaintenanceJobMainMapper deviceMaintenanceJobMainMapper; private DeviceMaintenanceJobMainMapper deviceMaintenanceJobMainMapper;
@ -160,7 +165,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
DeviceMaintenanceJobMainDO deviceMaintenanceMain = DeviceMaintenanceJobMainConvert.INSTANCE.convert(createReqVO); DeviceMaintenanceJobMainDO deviceMaintenanceMain = DeviceMaintenanceJobMainConvert.INSTANCE.convert(createReqVO);
String number = serialNumberApi.generateCode(RuleCodeEnum.WEI_XIU_ORDER.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.WEI_XIU_ORDER.getCode());
deviceMaintenanceMain.setNumber(number); deviceMaintenanceMain.setNumber(number);
deviceMaintenanceMain.setSourceType(createReqVO.getSourceType()==null?"0":createReqVO.getSourceType()); deviceMaintenanceMain.setSourceType(createReqVO.getSourceType() == null ? "0" : createReqVO.getSourceType());
if (OrderStatusEnum.RECEIVED_ORDER_STATUS.getCode().equals(deviceMaintenanceMain.getStatus())) {//手动创建的是已接单 if (OrderStatusEnum.RECEIVED_ORDER_STATUS.getCode().equals(deviceMaintenanceMain.getStatus())) {//手动创建的是已接单
//通过controller手动创建工单直接直接已接单 //通过controller手动创建工单直接直接已接单
deviceMaintenanceMain.setReceivingTime(LocalDateTime.now()); deviceMaintenanceMain.setReceivingTime(LocalDateTime.now());
@ -217,7 +222,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
String number = serialNumberApi.generateCode(RuleCodeEnum.WEI_XIU_ORDER.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.WEI_XIU_ORDER.getCode());
deviceMaintenanceMain.setNumber(number); deviceMaintenanceMain.setNumber(number);
deviceMaintenanceMain.setDeptId(user.getDeptId()); deviceMaintenanceMain.setDeptId(user.getDeptId());
deviceMaintenanceMain.setSourceType(createReqVO.getSourceType()==null?"0":createReqVO.getSourceType()); deviceMaintenanceMain.setSourceType(createReqVO.getSourceType() == null ? "0" : createReqVO.getSourceType());
if (deviceMaintenanceMain.getStatus() == null || "".equals(deviceMaintenanceMain.getStatus())) {//状态为空说明手动创建工单直接已接单 if (deviceMaintenanceMain.getStatus() == null || "".equals(deviceMaintenanceMain.getStatus())) {//状态为空说明手动创建工单直接已接单
//通过controller手动创建工单直接直接已接单 //通过controller手动创建工单直接直接已接单
deviceMaintenanceMain.setMaintenance(getLoginUserId());//添加接单人 deviceMaintenanceMain.setMaintenance(getLoginUserId());//添加接单人
@ -251,7 +256,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
} }
} }
} else { } else {
if(OrderStatusEnum.RECEIVED_ORDER_STATUS.getCode().equals(deviceMaintenanceMain.getStatus())){ if (OrderStatusEnum.RECEIVED_ORDER_STATUS.getCode().equals(deviceMaintenanceMain.getStatus())) {
deviceMaintenanceMain.setReceivingTime(LocalDateTime.now()); deviceMaintenanceMain.setReceivingTime(LocalDateTime.now());
} }
deviceMaintenanceJobMainMapper.insert(deviceMaintenanceMain); deviceMaintenanceJobMainMapper.insert(deviceMaintenanceMain);
@ -429,7 +434,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int turnTo(String deviceNumber, Long id, String receiverType, Long receiverUserId, String status,String factoryAreaNumberNew) { public int turnTo(String deviceNumber, Long id, String receiverType, Long receiverUserId, String status, String factoryAreaNumberNew) {
DeviceMaintenanceJobMainDO Do = deviceMaintenanceJobMainMapper.selectById(id); DeviceMaintenanceJobMainDO Do = deviceMaintenanceJobMainMapper.selectById(id);
String oldtype = Do.getType(); String oldtype = Do.getType();
String olddeviceNumber = Do.getDeviceNumber(); String olddeviceNumber = Do.getDeviceNumber();
@ -554,7 +559,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
deviceAccountsDO.setStatus("0"); deviceAccountsDO.setStatus("0");
deviceAccountsDO.setNumber(deviceNumber); deviceAccountsDO.setNumber(deviceNumber);
i = deviceAccountsMapper.updateById(deviceAccountsDO); i = deviceAccountsMapper.updateById(deviceAccountsDO);
}else if (Do.getType().equals("MOLD")) { } else if (Do.getType().equals("MOLD")) {
MoldAccountsDO moldAccountsDO = moldAccountsMapper.selectOne("number", deviceNumber, "deleted", 0); MoldAccountsDO moldAccountsDO = moldAccountsMapper.selectOne("number", deviceNumber, "deleted", 0);
moldAccountsDO.setStatus("0"); moldAccountsDO.setStatus("0");
moldAccountsDO.setNumber(deviceNumber); moldAccountsDO.setNumber(deviceNumber);
@ -612,19 +617,19 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
// 判断是否超过30分钟 // 判断是否超过30分钟
if (duration.toMinutes() > timeoutMinutes) { if (duration.toMinutes() > timeoutMinutes) {
// 超过30分钟,执行相应的逻辑 // 超过30分钟,执行相应的逻辑
System.out.println("超过"+ timeoutMinutes +"分钟,记录问题分享平台"); System.out.println("超过" + timeoutMinutes + "分钟,记录问题分享平台");
// 记录问题分享平台的逻辑 // 记录问题分享平台的逻辑
AdminUserRespDTO user = userApi.getUser(getLoginUserId()); AdminUserRespDTO user = userApi.getUser(getLoginUserId());
AdminUserRespDTO userApplyer = userApi.getUser(mainDo.getApplyer()); AdminUserRespDTO userApplyer = userApi.getUser(mainDo.getApplyer());
DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("app_device_mold_type",mainDo.getType()); DictDataRespDTO dictDataRespDTO = dictDataApi.getDictData("app_device_mold_type", mainDo.getType());
// 插入 // 插入
QuestionSharingPlatformDO sharingPlatform = new QuestionSharingPlatformDO(); QuestionSharingPlatformDO sharingPlatform = new QuestionSharingPlatformDO();
sharingPlatform.setQuestionName("报修工单完成超过"+timeoutMinutes+"分钟"); sharingPlatform.setQuestionName("报修工单完成超过" + timeoutMinutes + "分钟");
sharingPlatform.setQuestionType("repair_outtime"); sharingPlatform.setQuestionType("repair_outtime");
if(userApplyer != null){ if (userApplyer != null) {
sharingPlatform.setQuestionDescription("报修人为"+userApplyer.getNickname()+"单号为"+mainDo.getNumber()+"的"+dictDataRespDTO.getLabel()+"类型的维修工单完成时间已超过"+timeoutMinutes+"分钟,共用时"+duration.toMinutes()+"分钟,关联"+dictDataRespDTO.getLabel()+"编号为"+mainDo.getDeviceNumber()+"."); sharingPlatform.setQuestionDescription("报修人为" + userApplyer.getNickname() + "单号为" + mainDo.getNumber() + "的" + dictDataRespDTO.getLabel() + "类型的维修工单完成时间已超过" + timeoutMinutes + "分钟,共用时" + duration.toMinutes() + "分钟,关联" + dictDataRespDTO.getLabel() + "编号为" + mainDo.getDeviceNumber() + ".");
}else{ } else {
sharingPlatform.setQuestionDescription("单号为"+mainDo.getNumber()+"的"+dictDataRespDTO.getLabel()+"类型的维修工单完成时间已超过"+timeoutMinutes+"分钟,共用时"+duration.toMinutes()+"分钟,关联"+dictDataRespDTO.getLabel()+"编号为"+mainDo.getDeviceNumber()+"."); sharingPlatform.setQuestionDescription("单号为" + mainDo.getNumber() + "的" + dictDataRespDTO.getLabel() + "类型的维修工单完成时间已超过" + timeoutMinutes + "分钟,共用时" + duration.toMinutes() + "分钟,关联" + dictDataRespDTO.getLabel() + "编号为" + mainDo.getDeviceNumber() + ".");
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.PROBLEM_SHARING_PLATFORM_CODE.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PROBLEM_SHARING_PLATFORM_CODE.getCode());
@ -640,7 +645,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int orderClickConfirm(Long id,String result, String content) { public int orderClickConfirm(Long id, String result, String content) {
DeviceMaintenanceJobMainDO Do = deviceMaintenanceJobMainMapper.selectById(id); DeviceMaintenanceJobMainDO Do = deviceMaintenanceJobMainMapper.selectById(id);
validateSQ(id);//校验 validateSQ(id);//校验
Do.setApplyTime(LocalDateTime.now()); Do.setApplyTime(LocalDateTime.now());
@ -677,10 +682,9 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int orderClickVerify(Long id,String status, String content) { public int orderClickVerify(Long id, String status, String content) {
DeviceMaintenanceJobMainDO Do = deviceMaintenanceJobMainMapper.selectById(id); DeviceMaintenanceJobMainDO Do = deviceMaintenanceJobMainMapper.selectById(id);
validateYZ(id);//验证 validateYZ(id);//验证
Do.setVerifyTime(LocalDateTime.now()); Do.setVerifyTime(LocalDateTime.now());
@ -747,17 +751,18 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
// respVO.setApplyer(maintenanceJobMainDO.getApplyer()); // respVO.setApplyer(maintenanceJobMainDO.getApplyer());
// uniappPushMessageService.uniappSend(respVO); // uniappPushMessageService.uniappSend(respVO);
// } else {//工程师验证 // } else {//工程师验证
//// try {
//// UniappPushMessageRespVO respVO = new UniappPushMessageRespVO(); //// try {
//// respVO.setType(maintenanceJobMainDO.getType()); //// UniappPushMessageRespVO respVO = new UniappPushMessageRespVO();
//// respVO.setStatus("2"); //// respVO.setType(maintenanceJobMainDO.getType());
//// respVO.setNumber(number); //// respVO.setStatus("2");
//// respVO.setFactoryAreaNumber(maintenanceJobMainDO.getFactoryAreaNumber()); //// respVO.setNumber(number);
//// respVO.setType(maintenanceJobMainDO.getType()); //// respVO.setFactoryAreaNumber(maintenanceJobMainDO.getFactoryAreaNumber());
//// uniappPushMessageService.uniappSend(respVO); //// respVO.setType(maintenanceJobMainDO.getType());
//// } catch (Exception e) { //// uniappPushMessageService.uniappSend(respVO);
//// info("手机消息推送异常:{}",e); //// } catch (Exception e) {
//// } //// info("手机消息推送异常:{}",e);
//// }
// try { // try {
// sendEmails(maintenanceJobMainDO, 1); // sendEmails(maintenanceJobMainDO, 1);
// } catch (Exception e) { // } catch (Exception e) {
@ -811,7 +816,6 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
// } // }
// return i; // return i;
// } // }
@Override @Override
public int deleteStatus(String request_number) { public int deleteStatus(String request_number) {
return deviceMaintenanceJobMainMapper.deleteStatus(request_number); return deviceMaintenanceJobMainMapper.deleteStatus(request_number);
@ -820,7 +824,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
@Override @Override
public PageResult<DeviceMaintenanceJobMainDO> getAppPage(DeviceMaintenanceJobMainPageReqVO pageReqVO) { public PageResult<DeviceMaintenanceJobMainDO> getAppPage(DeviceMaintenanceJobMainPageReqVO pageReqVO) {
pageReqVO.setUserId(getLoginUserId().toString()); pageReqVO.setUserId(getLoginUserId().toString());
if(!"2".equals(pageReqVO.getFlag())){//非报修确认列表进入 if (!"2".equals(pageReqVO.getFlag())) {//非报修确认列表进入
Long factoryAreaNumber = userApi.getUser(getLoginUserId()).getDeptId();//厂区号查询当前厂区下的数据 Long factoryAreaNumber = userApi.getUser(getLoginUserId()).getDeptId();//厂区号查询当前厂区下的数据
pageReqVO.setFactoryAreaNumber(factoryAreaNumber.toString()); pageReqVO.setFactoryAreaNumber(factoryAreaNumber.toString());
pageReqVO.setClassType("DEVICE"); pageReqVO.setClassType("DEVICE");
@ -1059,7 +1063,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId())); mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId()));
mailSendSingleToUserReqDTO.setTemplateCode("job-maintenance-template"); mailSendSingleToUserReqDTO.setTemplateCode("job-maintenance-template");
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("typeName","设备"); params.put("typeName", "设备");
params.put("name", item.getNickname()); params.put("name", item.getNickname());
params.put("number", deviceMaintenanceJobMainDO.getNumber()); params.put("number", deviceMaintenanceJobMainDO.getNumber());
mailSendSingleToUserReqDTO.setTemplateParams(params); mailSendSingleToUserReqDTO.setTemplateParams(params);
@ -1072,8 +1076,6 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
} }
@Override @Override
public void checkTimeoutSendEmail() { public void checkTimeoutSendEmail() {
// 获取超时分钟数配置 // 获取超时分钟数配置
@ -1146,6 +1148,24 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
} }
@Override
public DeleteFileVO<?> findeDeleteFileVO() {
List<DeviceMaintenanceJobMainDO> deviceRepairRequestDOS = deviceMaintenanceJobMainMapper.selectList(
new LambdaQueryWrapper<DeviceMaintenanceJobMainDO>()
.eq(DeviceMaintenanceJobMainDO::getStatus, OrderStatusEnum.COMPLETED_STATUS.getCode())
.ne(DeviceMaintenanceJobMainDO::getIsDeleteFile, 1)
.lt(DeviceMaintenanceJobMainDO::getCreateTime, LocalDateTime.now().minusDays(30))
);
if (CollectionUtils.isEmpty(deviceRepairRequestDOS)) {
return null;
}
List<Long> list = deviceRepairRequestDOS.stream().map(DeviceMaintenanceJobMainDO::getId).toList();
DeleteFileVO<DeviceMaintenanceJobMainDO> deleteFileVO = new DeleteFileVO<>();
deleteFileVO.setIds(list);
deleteFileVO.setNumberList(deviceRepairRequestDOS.stream().map(DeviceMaintenanceJobMainDO::getRequestNumber).toList());
deleteFileVO.setFuncCode("request_repair");
deleteFileVO.setBaseMapper(deviceMaintenanceJobMainMapper);
return deleteFileVO;
}
} }

170
win-module-eam/win-module-eam-biz/src/main/java/com/win/module/eam/service/moldspotinspectionrecord/MoldSpotInspectionRecordMainServiceImpl.java

@ -2,6 +2,7 @@ package com.win.module.eam.service.moldspotinspectionrecord;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -40,10 +41,11 @@ import com.win.module.eam.dal.mysql.planMasterDtbl.PlanMasterDtblMapper;
import com.win.module.eam.dal.mysql.repairrelation.RepairRelationMapper; import com.win.module.eam.dal.mysql.repairrelation.RepairRelationMapper;
import com.win.module.eam.enums.basic.BasicStatusEnum; import com.win.module.eam.enums.basic.BasicStatusEnum;
import com.win.module.eam.enums.order.OrderStatusEnum; import com.win.module.eam.enums.order.OrderStatusEnum;
import com.win.module.eam.job.vo.DeleteFileVO;
import com.win.module.eam.service.attachmentfile.AttachmentFileService; import com.win.module.eam.service.attachmentfile.AttachmentFileService;
import com.win.module.eam.service.common.DeleteFileService;
import com.win.module.eam.service.deviceaccounts.DeviceAccountsService; import com.win.module.eam.service.deviceaccounts.DeviceAccountsService;
import com.win.module.eam.service.devicemolditems.DeviceMoldItemsService; import com.win.module.eam.service.devicemolditems.DeviceMoldItemsService;
import com.win.module.eam.service.devicemoldmaintenanceconfig.DeviceMoldMaintenanceConfigService;
import com.win.module.eam.service.devicerepairrequest.DeviceRepairRequestService; import com.win.module.eam.service.devicerepairrequest.DeviceRepairRequestService;
import com.win.module.eam.service.moldaccounts.MoldAccountsService; import com.win.module.eam.service.moldaccounts.MoldAccountsService;
import com.win.module.eam.service.moldmaintenancejob.MoldMaintenanceJobMainService; import com.win.module.eam.service.moldmaintenancejob.MoldMaintenanceJobMainService;
@ -86,7 +88,7 @@ import static com.win.module.eam.enums.ErrorCodeConstants.XUN_JIAN_ORDER_NOT_EXI
@Slf4j @Slf4j
@Service @Service
@Validated @Validated
public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspectionRecordMainService { public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspectionRecordMainService, DeleteFileService {
@Resource @Resource
private DeviceSpotInspectionRecordMainMapper deviceSpotInspectionRecordMainMapper; private DeviceSpotInspectionRecordMainMapper deviceSpotInspectionRecordMainMapper;
@ -161,12 +163,12 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
deviceSpotInspectionRecordMain.setMaintenance(getLoginUserId()); deviceSpotInspectionRecordMain.setMaintenance(getLoginUserId());
deviceSpotInspectionRecordMain.setStatus(OrderStatusEnum.JX_COMPLETED_STATUS.getCode());//完成 deviceSpotInspectionRecordMain.setStatus(OrderStatusEnum.JX_COMPLETED_STATUS.getCode());//完成
deviceSpotInspectionRecordMain.setCompletionTime(LocalDateTime.now()); deviceSpotInspectionRecordMain.setCompletionTime(LocalDateTime.now());
if("MOLD".equals(createReqVO.getType())){//模具 if ("MOLD".equals(createReqVO.getType())) {//模具
QueryWrapper<MoldAccountsDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<MoldAccountsDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("number", createReqVO.getDeviceNumber()); queryWrapper.eq("number", createReqVO.getDeviceNumber());
MoldAccountsDO deviceAccountsDO = moldAccountsMapper.selectOne(queryWrapper); MoldAccountsDO deviceAccountsDO = moldAccountsMapper.selectOne(queryWrapper);
deviceSpotInspectionRecordMain.setDeptId(Long.parseLong(deviceAccountsDO.getFactoryAreaNumber())); deviceSpotInspectionRecordMain.setDeptId(Long.parseLong(deviceAccountsDO.getFactoryAreaNumber()));
}else{ } else {
QueryWrapper<DeviceAccountsDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<DeviceAccountsDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("number", createReqVO.getDeviceNumber()); queryWrapper.eq("number", createReqVO.getDeviceNumber());
DeviceAccountsDO deviceAccountsDO = deviceAccountsMapper.selectOne(queryWrapper); DeviceAccountsDO deviceAccountsDO = deviceAccountsMapper.selectOne(queryWrapper);
@ -177,28 +179,28 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
//子巡检项信息录入 //子巡检项信息录入
DeviceMoldMaintenanceConfigDO deviceMoldMaintenanceConfigDO = DeviceMoldMaintenanceConfigDO deviceMoldMaintenanceConfigDO =
moldMaintenanceConfigMapper.selectOne(new LambdaQueryWrapperX<DeviceMoldMaintenanceConfigDO>() moldMaintenanceConfigMapper.selectOne(new LambdaQueryWrapperX<DeviceMoldMaintenanceConfigDO>()
.eq(DeviceMoldMaintenanceConfigDO::getDeviceNumber,createReqVO.getDeviceNumber()) .eq(DeviceMoldMaintenanceConfigDO::getDeviceNumber, createReqVO.getDeviceNumber())
.eq(DeviceMoldMaintenanceConfigDO::getStatus,createReqVO.getStatus())); .eq(DeviceMoldMaintenanceConfigDO::getStatus, createReqVO.getStatus()));
if(deviceMoldMaintenanceConfigDO == null || StringUtils.isEmpty(deviceMoldMaintenanceConfigDO.getMaintenanceItemId())){ if (deviceMoldMaintenanceConfigDO == null || StringUtils.isEmpty(deviceMoldMaintenanceConfigDO.getMaintenanceItemId())) {
return 1L; return 1L;
} }
List<Long> maintenanceItemIds = Arrays.stream( deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(",")) List<Long> maintenanceItemIds = Arrays.stream(deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(","))
.map(Long::valueOf).collect(Collectors.toList()); .map(Long::valueOf).collect(Collectors.toList());
List<DeviceMoldItemsDO> deviceMoldItemsDOS = deviceMoldItemsService.getDeviceMoldItemsList(maintenanceItemIds); List<DeviceMoldItemsDO> deviceMoldItemsDOS = deviceMoldItemsService.getDeviceMoldItemsList(maintenanceItemIds);
List<DeviceMoldItemsDO> moldItemslist = new ArrayList<>(); List<DeviceMoldItemsDO> moldItemslist = new ArrayList<>();
for(DeviceMoldItemsDO en:deviceMoldItemsDOS){ for (DeviceMoldItemsDO en : deviceMoldItemsDOS) {
DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO = new DeviceSpotInspectionRecordDetailDO(); DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO = new DeviceSpotInspectionRecordDetailDO();
List<Map<String, Object>> subList = createReqVO.getSubList(); List<Map<String, Object>> subList = createReqVO.getSubList();
Map<String, Object> mapMatch = new HashMap<>(); Map<String, Object> mapMatch = new HashMap<>();
if(!subList.isEmpty()){ if (!subList.isEmpty()) {
for(Map<String, Object> map:subList){ for (Map<String, Object> map : subList) {
mapMatch = map; mapMatch = map;
long id = Long.parseLong(map.get("id").toString()); long id = Long.parseLong(map.get("id").toString());
if(id==en.getId()){ if (id == en.getId()) {
inspectionRecordDetailDO.setIsConform(map.get("isConform")==null?"FALSE":map.get("isConform").toString()); inspectionRecordDetailDO.setIsConform(map.get("isConform") == null ? "FALSE" : map.get("isConform").toString());
inspectionRecordDetailDO.setRecords(map.get("records")==null?null:map.get("records").toString()); inspectionRecordDetailDO.setRecords(map.get("records") == null ? null : map.get("records").toString());
en.setSpotDescription(map.get("records")==null?null:map.get("records").toString()); en.setSpotDescription(map.get("records") == null ? null : map.get("records").toString());
if("FALSE".equals(inspectionRecordDetailDO.getIsConform())){ if ("FALSE".equals(inspectionRecordDetailDO.getIsConform())) {
moldItemslist.add(en); moldItemslist.add(en);
} }
inspectionRecordDetailDO.setMasterId(deviceSpotInspectionRecordMain.getId()); inspectionRecordDetailDO.setMasterId(deviceSpotInspectionRecordMain.getId());
@ -207,24 +209,23 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
inspectionRecordDetailDO.setEquipmentPosition(en.getEquipmentParts()); inspectionRecordDetailDO.setEquipmentPosition(en.getEquipmentParts());
deviceSpotInspectionRecordDetailMapper.insert(inspectionRecordDetailDO); deviceSpotInspectionRecordDetailMapper.insert(inspectionRecordDetailDO);
//维护上传的文件 //维护上传的文件
createSpotInspectionUploadFile(number, mapMatch,inspectionRecordDetailDO); createSpotInspectionUploadFile(number, mapMatch, inspectionRecordDetailDO);
} }
} }
} }
} }
dealApplyRepired(deviceSpotInspectionRecordMain,moldItemslist); dealApplyRepired(deviceSpotInspectionRecordMain, moldItemslist);
Long id = deviceSpotInspectionRecordMain.getId(); Long id = deviceSpotInspectionRecordMain.getId();
//发送邮件 //发送邮件
try { try {
sendEmails(deviceSpotInspectionRecordMain); sendEmails(deviceSpotInspectionRecordMain);
} catch (Exception e) { } catch (Exception e) {
info("发送邮件异常:{}",e); info("发送邮件异常:{}", e);
} }
return id; return id;
} }
private void createSpotInspectionUploadFile(String number, Map<String, Object> map, DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO) { private void createSpotInspectionUploadFile(String number, Map<String, Object> map, DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO) {
// 文件入库处理 // 文件入库处理
UploadFileRequest fileUploadRequest = new UploadFileRequest(); UploadFileRequest fileUploadRequest = new UploadFileRequest();
@ -262,34 +263,33 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
} }
@Resource @Resource
private MoldMaintenanceJobMainService moldMaintenanceJobMainService; private MoldMaintenanceJobMainService moldMaintenanceJobMainService;
private void dealApplyRepired(DeviceSpotInspectionRecordMainDO mainDO, List<DeviceMoldItemsDO> moldItemslist){ private void dealApplyRepired(DeviceSpotInspectionRecordMainDO mainDO, List<DeviceMoldItemsDO> moldItemslist) {
if(moldItemslist.size()>0){ if (moldItemslist.size() > 0) {
//校验设备是否已经维修中,是:则不再创建报修工单,否:则创建 //校验设备是否已经维修中,是:则不再创建报修工单,否:则创建
Boolean isRepair = false; Boolean isRepair = false;
//创建报修工单 //创建报修工单
if(BasicStatusEnum.BASIC_DEVICE.getCode().equals( mainDO.getType())){ if (BasicStatusEnum.BASIC_DEVICE.getCode().equals(mainDO.getType())) {
DeviceAccountsExportReqVO deviceAccountsExportReqVO = new DeviceAccountsExportReqVO(); DeviceAccountsExportReqVO deviceAccountsExportReqVO = new DeviceAccountsExportReqVO();
deviceAccountsExportReqVO.setNumber(mainDO.getDeviceNumber()); deviceAccountsExportReqVO.setNumber(mainDO.getDeviceNumber());
deviceAccountsExportReqVO.setStatus(BasicStatusEnum.BASIC_STATUS_1.getCode()); deviceAccountsExportReqVO.setStatus(BasicStatusEnum.BASIC_STATUS_1.getCode());
List<DeviceAccountsDO> list = deviceAccountsService.getDeviceAccountsList(deviceAccountsExportReqVO); List<DeviceAccountsDO> list = deviceAccountsService.getDeviceAccountsList(deviceAccountsExportReqVO);
if(list.size()>0){ if (list.size() > 0) {
isRepair = true; isRepair = true;
} }
}else if(BasicStatusEnum.BASIC_MOLD.getCode().equals( mainDO.getType())){ } else if (BasicStatusEnum.BASIC_MOLD.getCode().equals(mainDO.getType())) {
MoldAccountsExportReqVO moldAccountsExportReqVO = new MoldAccountsExportReqVO(); MoldAccountsExportReqVO moldAccountsExportReqVO = new MoldAccountsExportReqVO();
moldAccountsExportReqVO.setNumber(mainDO.getDeviceNumber()); moldAccountsExportReqVO.setNumber(mainDO.getDeviceNumber());
moldAccountsExportReqVO.setStatus(BasicStatusEnum.BASIC_STATUS_1.getCode()); moldAccountsExportReqVO.setStatus(BasicStatusEnum.BASIC_STATUS_1.getCode());
List<MoldAccountsDO> list = moldAccountsService.getMoldAccountsList(moldAccountsExportReqVO); List<MoldAccountsDO> list = moldAccountsService.getMoldAccountsList(moldAccountsExportReqVO);
if(list.size()>0){ if (list.size() > 0) {
isRepair = true; isRepair = true;
} }
} }
//已经有维修工单则不再创建 //已经有维修工单则不再创建
if(isRepair){ if (isRepair) {
return; return;
} }
// 拼接 moldItemslist 中每项的 name // 拼接 moldItemslist 中每项的 name
@ -297,7 +297,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
describesBuilder.append("点检问题报修:"); describesBuilder.append("点检问题报修:");
for (int i = 0; i < moldItemslist.size(); i++) { for (int i = 0; i < moldItemslist.size(); i++) {
DeviceMoldItemsDO item = moldItemslist.get(i); DeviceMoldItemsDO item = moldItemslist.get(i);
describesBuilder.append(i + 1).append("、").append(item.getName()+":【"+item.getSpotDescription()+"】"); describesBuilder.append(i + 1).append("、").append(item.getName() + ":【" + item.getSpotDescription() + "】");
if (i < moldItemslist.size() - 1) { if (i < moldItemslist.size() - 1) {
describesBuilder.append("; "); describesBuilder.append("; ");
} }
@ -312,7 +312,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
Long repairRequestId = deviceRepairRequestService.createDeviceRepair(createReqVO); Long repairRequestId = deviceRepairRequestService.createDeviceRepair(createReqVO);
DeviceMaintenanceJobMainDO deviceMaintenanceJobMainDO = moldMaintenanceJobMainService.getDeviceMaintenanceMain(repairRequestId); DeviceMaintenanceJobMainDO deviceMaintenanceJobMainDO = moldMaintenanceJobMainService.getDeviceMaintenanceMain(repairRequestId);
List<RepairRelationDO> repairRelationList = new ArrayList<>(); List<RepairRelationDO> repairRelationList = new ArrayList<>();
moldItemslist.stream().forEach(en->{ moldItemslist.stream().forEach(en -> {
RepairRelationDO repairRelationDO = new RepairRelationDO(); RepairRelationDO repairRelationDO = new RepairRelationDO();
repairRelationDO.setSpotInspectionId(en.getId()); repairRelationDO.setSpotInspectionId(en.getId());
repairRelationDO.setSpotInspectionName(en.getName()); repairRelationDO.setSpotInspectionName(en.getName());
@ -326,12 +326,10 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
} }
@Override @Override
public Integer updateDeviceSpotInspectionRecordMain(DeviceSpotInspectionRecordMainUpdateReqVO updateReqVO) { public Integer updateDeviceSpotInspectionRecordMain(DeviceSpotInspectionRecordMainUpdateReqVO updateReqVO) {
// 校验存在 // 校验存在
validateDeviceSpotInspectionRecordMainExists(updateReqVO.getId()); validateDeviceSpotInspectionRecordMainExists(updateReqVO.getId());
// 更新 // 更新
DeviceSpotInspectionRecordMainDO updateObj = DeviceSpotInspectionRecordMainConvert.INSTANCE.convert(updateReqVO); DeviceSpotInspectionRecordMainDO updateObj = DeviceSpotInspectionRecordMainConvert.INSTANCE.convert(updateReqVO);
return deviceSpotInspectionRecordMainMapper.updateById(updateObj); return deviceSpotInspectionRecordMainMapper.updateById(updateObj);
@ -448,19 +446,19 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
pageReqVO.setClassType("MOLD"); pageReqVO.setClassType("MOLD");
IPage<DeviceSpotInspectionRecordMainDO> pageInfo = deviceSpotInspectionRecordMainMapper.getAppPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO); IPage<DeviceSpotInspectionRecordMainDO> pageInfo = deviceSpotInspectionRecordMainMapper.getAppPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO);
if (pageInfo != null) { if (pageInfo != null) {
for(DeviceSpotInspectionRecordMainDO en :pageInfo.getRecords()){ for (DeviceSpotInspectionRecordMainDO en : pageInfo.getRecords()) {
String deviceNumber = en.getDeviceNumber(); String deviceNumber = en.getDeviceNumber();
String type = en.getType(); String type = en.getType();
if("MOLD".equals(type)){//模具 if ("MOLD".equals(type)) {//模具
Map<String, Object> detailsByNumber = moldAccountsMapper.getDetailsByNumber(deviceNumber); Map<String, Object> detailsByNumber = moldAccountsMapper.getDetailsByNumber(deviceNumber);
en.setFactoryAreaNumber(detailsByNumber==null?"":detailsByNumber.get("factoryAreaNumber").toString()); en.setFactoryAreaNumber(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaNumber").toString());
en.setFactoryAreaName(detailsByNumber==null?"":detailsByNumber.get("factoryAreaName").toString()); en.setFactoryAreaName(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaName").toString());
en.setName(detailsByNumber==null?"":detailsByNumber.get("name").toString()); en.setName(detailsByNumber == null ? "" : detailsByNumber.get("name").toString());
}else{//设备 } else {//设备
Map<String, Object> detailsByNumber = deviceAccountsMapper.getDetailsByNumber(deviceNumber); Map<String, Object> detailsByNumber = deviceAccountsMapper.getDetailsByNumber(deviceNumber);
en.setFactoryAreaNumber(detailsByNumber==null?"":detailsByNumber.get("factoryAreaNumber").toString()); en.setFactoryAreaNumber(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaNumber").toString());
en.setFactoryAreaName(detailsByNumber==null?"":detailsByNumber.get("factoryAreaName").toString()); en.setFactoryAreaName(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaName").toString());
en.setName(detailsByNumber==null?"":detailsByNumber.get("name").toString()); en.setName(detailsByNumber == null ? "" : detailsByNumber.get("name").toString());
} }
} }
@ -470,32 +468,31 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
} }
@Override @Override
public void createSpotInspectionTask(int type) { public void createSpotInspectionTask(int type) {
String times = null; String times = null;
String classes = "0"; String classes = "0";
if(0==type){//早班巡检 if (0 == type) {//早班巡检
// 设置为当天的 8:30 // 设置为当天的 8:30
ConfigDTO configByKey = apiConfigApi.getConfigByKey("record_spot_inspection.start_time"); ConfigDTO configByKey = apiConfigApi.getConfigByKey("record_spot_inspection.start_time");
String value = configByKey.getValue(); String value = configByKey.getValue();
times = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd"); times = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd");
times = times+" "+value; times = times + " " + value;
}else{//晚班巡检 } else {//晚班巡检
classes = "1"; classes = "1";
// 设置为当天的 17:30 // 设置为当天的 17:30
ConfigDTO configByKey = apiConfigApi.getConfigByKey("record_spot_inspection.end_time"); ConfigDTO configByKey = apiConfigApi.getConfigByKey("record_spot_inspection.end_time");
String value = configByKey.getValue(); String value = configByKey.getValue();
times = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd"); times = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd");
times = times+" "+value; times = times + " " + value;
} }
List<Map<String, Object>> list2 = deptApi.selectAllFactoryArea(); List<Map<String, Object>> list2 = deptApi.selectAllFactoryArea();
for (Map<String, Object> map : list2) { for (Map<String, Object> map : list2) {
// 如果Map中已存在该键,则添加 // 如果Map中已存在该键,则添加
String factoryAreaNumber = map.get("id").toString(); String factoryAreaNumber = map.get("id").toString();
List<DeviceSpotInspectionRecordMainDO> list = deviceSpotInspectionRecordMainMapper.selectSpotInspectionTask(times,factoryAreaNumber,classes); List<DeviceSpotInspectionRecordMainDO> list = deviceSpotInspectionRecordMainMapper.selectSpotInspectionTask(times, factoryAreaNumber, classes);
StringBuilder str = new StringBuilder(); StringBuilder str = new StringBuilder();
for(DeviceSpotInspectionRecordMainDO en:list){ for (DeviceSpotInspectionRecordMainDO en : list) {
str.append("<p>&nbsp;&nbsp;设备名称("); str.append("<p>&nbsp;&nbsp;设备名称(");
String name = en.getName(); String name = en.getName();
str.append(name); str.append(name);
@ -507,11 +504,11 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
} }
//发送邮件 //发送邮件
try { try {
if(!list.isEmpty()){ if (!list.isEmpty()) {
sendEmails(times,str.toString(),factoryAreaNumber); sendEmails(times, str.toString(), factoryAreaNumber);
} }
} catch (Exception e) { } catch (Exception e) {
info("发送邮件异常:{}",e); info("发送邮件异常:{}", e);
} }
} }
} }
@ -522,9 +519,9 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
* @param str * @param str
* @param factoryAreaNumber * @param factoryAreaNumber
*/ */
private void sendEmails(String times,String str,String factoryAreaNumber){ private void sendEmails(String times, String str, String factoryAreaNumber) {
List<ClassTypeDO> userBeanList = classTypeMapper.JudgeIdentity(null, "DEVICE", "1", factoryAreaNumber); List<ClassTypeDO> userBeanList = classTypeMapper.JudgeIdentity(null, "DEVICE", "1", factoryAreaNumber);
userBeanList.stream().forEach(item ->{ userBeanList.stream().forEach(item -> {
try { try {
MailSendSingleToUserReqDTO mailSendSingleToUserReqDTO = new MailSendSingleToUserReqDTO(); MailSendSingleToUserReqDTO mailSendSingleToUserReqDTO = new MailSendSingleToUserReqDTO();
mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId())); mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId()));
@ -534,8 +531,8 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
params.put("times", times); params.put("times", times);
mailSendSingleToUserReqDTO.setTemplateParams(params); mailSendSingleToUserReqDTO.setTemplateParams(params);
mailSendApi.sendSingleMailToAdmin(mailSendSingleToUserReqDTO); mailSendApi.sendSingleMailToAdmin(mailSendSingleToUserReqDTO);
}catch(RuntimeException e){ } catch (RuntimeException e) {
info("巡检点检的日期为"+times+",来自"+factoryAreaNumber+"给设备工程师发送的邮件通知失败:{}", e); info("巡检点检的日期为" + times + ",来自" + factoryAreaNumber + "给设备工程师发送的邮件通知失败:{}", e);
} }
}); });
} }
@ -544,21 +541,21 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
* 巡检点验证给工程师发邮件 * 巡检点验证给工程师发邮件
* @param mainDO * @param mainDO
*/ */
private void sendEmails(DeviceSpotInspectionRecordMainDO mainDO){ private void sendEmails(DeviceSpotInspectionRecordMainDO mainDO) {
List<ClassTypeDO> userBeanList = classTypeMapper.JudgeIdentity(null, mainDO.getType(), "1", mainDO.getFactoryAreaNumber()); List<ClassTypeDO> userBeanList = classTypeMapper.JudgeIdentity(null, mainDO.getType(), "1", mainDO.getFactoryAreaNumber());
userBeanList.stream().forEach(item ->{ userBeanList.stream().forEach(item -> {
try { try {
MailSendSingleToUserReqDTO mailSendSingleToUserReqDTO = new MailSendSingleToUserReqDTO(); MailSendSingleToUserReqDTO mailSendSingleToUserReqDTO = new MailSendSingleToUserReqDTO();
mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId())); mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId()));
mailSendSingleToUserReqDTO.setTemplateCode("record_spot_inspection_verify"); mailSendSingleToUserReqDTO.setTemplateCode("record_spot_inspection_verify");
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("typeName","设备"); params.put("typeName", "设备");
params.put("number", mainDO.getNumber()); params.put("number", mainDO.getNumber());
params.put("name", item.getNickname()); params.put("name", item.getNickname());
mailSendSingleToUserReqDTO.setTemplateParams(params); mailSendSingleToUserReqDTO.setTemplateParams(params);
mailSendApi.sendSingleMailToAdmin(mailSendSingleToUserReqDTO); mailSendApi.sendSingleMailToAdmin(mailSendSingleToUserReqDTO);
}catch(RuntimeException e){ } catch (RuntimeException e) {
info("工单编号为"+mainDO.getNumber()+"的名为:"+mainDO.getDescribes()+"的工单给"+item.getNickname()+"发送的邮件通知失败:{}", e); info("工单编号为" + mainDO.getNumber() + "的名为:" + mainDO.getDescribes() + "的工单给" + item.getNickname() + "发送的邮件通知失败:{}", e);
} }
}); });
} }
@ -574,7 +571,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
String shift = currentTime.isAfter(startTime) && currentTime.isBefore(endTime) ? "白班" : "夜班"; String shift = currentTime.isAfter(startTime) && currentTime.isBefore(endTime) ? "白班" : "夜班";
List<ProducePlanDO> producePlanDOList = producePlanService.getProducePlan(planDate, shift); List<ProducePlanDO> producePlanDOList = producePlanService.getProducePlan(planDate, shift);
if(CollectionUtils.isEmpty(producePlanDOList)){ if (CollectionUtils.isEmpty(producePlanDOList)) {
return; return;
} }
@ -582,7 +579,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
planMasterDtblMapper.insertBatch(planMasterDtblDOList); planMasterDtblMapper.insertBatch(planMasterDtblDOList);
String previousPlanDate, previouseShift; String previousPlanDate, previouseShift;
if(currentTime.isAfter(startTime) && currentTime.isBefore(endTime)){ if (currentTime.isAfter(startTime) && currentTime.isBefore(endTime)) {
LocalDate previousDate = currentDate.minusDays(1); LocalDate previousDate = currentDate.minusDays(1);
previousPlanDate = previousDate.format(formatter); previousPlanDate = previousDate.format(formatter);
previouseShift = "夜班"; previouseShift = "夜班";
@ -597,7 +594,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
.orderByAsc(PlanMasterDtblDO::getPlanCode).orderByAsc(PlanMasterDtblDO::getSeq)); .orderByAsc(PlanMasterDtblDO::getPlanCode).orderByAsc(PlanMasterDtblDO::getSeq));
PlanMasterDtblDO previousPlan = null; PlanMasterDtblDO previousPlan = null;
if(!CollectionUtils.isEmpty(previousPlanList)){ if (!CollectionUtils.isEmpty(previousPlanList)) {
previousPlan = previousPlanList.get(previousPlanList.size() - 1); previousPlan = previousPlanList.get(previousPlanList.size() - 1);
} }
@ -605,7 +602,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
.map(PlanMasterDtblDO::getItemCode) .map(PlanMasterDtblDO::getItemCode)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
if(previousPlan != null){ if (previousPlan != null) {
itemCodeSet.add(previousPlan.getItemCode()); itemCodeSet.add(previousPlan.getItemCode());
} }
@ -619,9 +616,9 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
(existing, replacement) -> existing)); (existing, replacement) -> existing));
String moldCode = previousPlan != null ? itemCodeMoldNumberMap.get(previousPlan.getItemCode()) : itemCodeMoldNumberMap.get(planMasterDtblDOList.get(0).getItemCode()); String moldCode = previousPlan != null ? itemCodeMoldNumberMap.get(previousPlan.getItemCode()) : itemCodeMoldNumberMap.get(planMasterDtblDOList.get(0).getItemCode());
for(PlanMasterDtblDO planMasterDtblDO : planMasterDtblDOList){ for (PlanMasterDtblDO planMasterDtblDO : planMasterDtblDOList) {
String nextMoldCode = itemCodeMoldNumberMap.get(planMasterDtblDO.getItemCode()); String nextMoldCode = itemCodeMoldNumberMap.get(planMasterDtblDO.getItemCode());
if(!StringUtils.isEmpty(moldCode) && !moldCode.equals(nextMoldCode)){ if (!StringUtils.isEmpty(moldCode) && !moldCode.equals(nextMoldCode)) {
createModlInspection(moldCode); createModlInspection(moldCode);
} }
moldCode = nextMoldCode; moldCode = nextMoldCode;
@ -635,10 +632,10 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
.eq(DeviceMoldMaintenanceConfigDO::getType, "MOLD") .eq(DeviceMoldMaintenanceConfigDO::getType, "MOLD")
.eq(DeviceMoldMaintenanceConfigDO::getStatus, "INSPECTION")); .eq(DeviceMoldMaintenanceConfigDO::getStatus, "INSPECTION"));
if(deviceMoldMaintenanceConfigDO == null){ if (deviceMoldMaintenanceConfigDO == null) {
return; return;
} }
List<Long> maintenanceItemIds = Arrays.stream( deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(",")) List<Long> maintenanceItemIds = Arrays.stream(deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(","))
.map(Long::valueOf).collect(Collectors.toList()); .map(Long::valueOf).collect(Collectors.toList());
List<DeviceMoldItemsDO> deviceMoldItemsDOList = deviceMoldItemsService.getDeviceMoldItemsList(maintenanceItemIds); List<DeviceMoldItemsDO> deviceMoldItemsDOList = deviceMoldItemsService.getDeviceMoldItemsList(maintenanceItemIds);
@ -658,7 +655,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
deviceSpotInspectionRecordMainMapper.insert(deviceSpotInspectionRecordMain); deviceSpotInspectionRecordMainMapper.insert(deviceSpotInspectionRecordMain);
List<DeviceSpotInspectionRecordDetailDO> detailDOList = new ArrayList<>(); List<DeviceSpotInspectionRecordDetailDO> detailDOList = new ArrayList<>();
for(DeviceMoldItemsDO deviceMoldItemsDO : deviceMoldItemsDOList){ for (DeviceMoldItemsDO deviceMoldItemsDO : deviceMoldItemsDOList) {
DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO = new DeviceSpotInspectionRecordDetailDO(); DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO = new DeviceSpotInspectionRecordDetailDO();
inspectionRecordDetailDO.setMasterId(deviceSpotInspectionRecordMain.getId()); inspectionRecordDetailDO.setMasterId(deviceSpotInspectionRecordMain.getId());
inspectionRecordDetailDO.setNumber(number); inspectionRecordDetailDO.setNumber(number);
@ -668,4 +665,37 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
} }
deviceSpotInspectionRecordDetailMapper.insertBatch(detailDOList); deviceSpotInspectionRecordDetailMapper.insertBatch(detailDOList);
} }
@Override
public DeleteFileVO<?> findeDeleteFileVO() {
List<DeviceSpotInspectionRecordMainDO> mainList = deviceSpotInspectionRecordMainMapper.selectList(
new LambdaQueryWrapper<DeviceSpotInspectionRecordMainDO>()
.eq(DeviceSpotInspectionRecordMainDO::getStatus, OrderStatusEnum.COMPLETED_STATUS.getCode())
.ne(DeviceSpotInspectionRecordMainDO::getIsDeleteFile, 1)
.lt(DeviceSpotInspectionRecordMainDO::getCreateTime, LocalDateTime.now().minusDays(30))
);
if (CollectionUtils.isEmpty(mainList)) {
return null;
}
List<Long> mainVoList = mainList.stream().map(DeviceSpotInspectionRecordMainDO::getId).toList();
DeleteFileVO<DeviceSpotInspectionRecordMainDO> mainDeleteFileVO = new DeleteFileVO<>();
mainDeleteFileVO.setIds(mainVoList);
mainDeleteFileVO.setNumberList(mainList.stream().map(DeviceSpotInspectionRecordMainDO::getNumber).toList());
mainDeleteFileVO.setBaseMapper(deviceSpotInspectionRecordMainMapper);
List<String> mainIdList = mainList.stream().map(DeviceSpotInspectionRecordMainDO::getNumber).toList();
List<DeviceSpotInspectionRecordDetailDO> detailList = deviceSpotInspectionRecordDetailMapper.selectList(
new LambdaQueryWrapper<DeviceSpotInspectionRecordDetailDO>()
.ne(DeviceSpotInspectionRecordDetailDO::getIsDeleteFile, 1)
.in(DeviceSpotInspectionRecordDetailDO::getMasterId, mainIdList));
List<Long> detailVoList = detailList.stream().map(DeviceSpotInspectionRecordDetailDO::getId).toList();
DeleteFileVO<DeviceSpotInspectionRecordDetailDO> detailDeleteFileVO = new DeleteFileVO<>();
detailDeleteFileVO.setIds(detailVoList);
detailDeleteFileVO.setNumberList(detailList.stream().map(DeviceSpotInspectionRecordDetailDO::getNumber).toList());
detailDeleteFileVO.setFuncCode("INSPECTION_CREATE");
detailDeleteFileVO.setBaseMapper(deviceSpotInspectionRecordDetailMapper);
mainDeleteFileVO.setSubVO(detailDeleteFileVO);
return mainDeleteFileVO;
}
} }

Loading…
Cancel
Save