Browse Source

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

master
zengqinyuan 2 weeks ago
parent
commit
8c8623dba3
  1. 5
      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

5
sql/mysql/product_publish.sql

@ -251,4 +251,7 @@ ALTER TABLE basic_attachment_file ADD COLUMN name VARCHAR(50) COMMENT '名称';
ALTER TABLE basic_attachment_file ADD COLUMN specifications VARCHAR(50) COMMENT '规格型号';
-- 备件表增加名称索引
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>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.win</groupId>
<artifactId>win-module-infra-biz</artifactId>
<version>3.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
</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 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)
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)
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;
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.metadata.IPage;
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.DeviceMaintenanceJobMainDO;
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.maintenanceturnto.MaintenanceTurntoDO;
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.basic.BasicStatusEnum;
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.common.DeleteFileService;
import com.win.module.eam.service.deviceaccounts.DeviceAccountsService;
import com.win.module.eam.service.devicerepairrequest.DeviceRepairRequestService;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
@ -79,7 +84,7 @@ import static com.win.module.eam.enums.ErrorCodeConstants.*;
*/
@Service
@Validated
public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJobMainService {
public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJobMainService, DeleteFileService {
@Resource
private DeviceMaintenanceJobMainMapper deviceMaintenanceJobMainMapper;
@ -160,7 +165,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
DeviceMaintenanceJobMainDO deviceMaintenanceMain = DeviceMaintenanceJobMainConvert.INSTANCE.convert(createReqVO);
String number = serialNumberApi.generateCode(RuleCodeEnum.WEI_XIU_ORDER.getCode());
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())) {//手动创建的是已接单
//通过controller手动创建工单直接直接已接单
deviceMaintenanceMain.setReceivingTime(LocalDateTime.now());
@ -217,7 +222,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
String number = serialNumberApi.generateCode(RuleCodeEnum.WEI_XIU_ORDER.getCode());
deviceMaintenanceMain.setNumber(number);
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())) {//状态为空说明手动创建工单直接已接单
//通过controller手动创建工单直接直接已接单
deviceMaintenanceMain.setMaintenance(getLoginUserId());//添加接单人
@ -251,7 +256,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
}
}
} else {
if(OrderStatusEnum.RECEIVED_ORDER_STATUS.getCode().equals(deviceMaintenanceMain.getStatus())){
if (OrderStatusEnum.RECEIVED_ORDER_STATUS.getCode().equals(deviceMaintenanceMain.getStatus())) {
deviceMaintenanceMain.setReceivingTime(LocalDateTime.now());
}
deviceMaintenanceJobMainMapper.insert(deviceMaintenanceMain);
@ -429,7 +434,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
@Override
@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);
String oldtype = Do.getType();
String olddeviceNumber = Do.getDeviceNumber();
@ -554,7 +559,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
deviceAccountsDO.setStatus("0");
deviceAccountsDO.setNumber(deviceNumber);
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.setStatus("0");
moldAccountsDO.setNumber(deviceNumber);
@ -612,19 +617,19 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
// 判断是否超过30分钟
if (duration.toMinutes() > timeoutMinutes) {
// 超过30分钟,执行相应的逻辑
System.out.println("超过"+ timeoutMinutes +"分钟,记录问题分享平台");
System.out.println("超过" + timeoutMinutes + "分钟,记录问题分享平台");
// 记录问题分享平台的逻辑
AdminUserRespDTO user = userApi.getUser(getLoginUserId());
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();
sharingPlatform.setQuestionName("报修工单完成超过"+timeoutMinutes+"分钟");
sharingPlatform.setQuestionName("报修工单完成超过" + timeoutMinutes + "分钟");
sharingPlatform.setQuestionType("repair_outtime");
if(userApplyer != null){
sharingPlatform.setQuestionDescription("报修人为"+userApplyer.getNickname()+"单号为"+mainDo.getNumber()+"的"+dictDataRespDTO.getLabel()+"类型的维修工单完成时间已超过"+timeoutMinutes+"分钟,共用时"+duration.toMinutes()+"分钟,关联"+dictDataRespDTO.getLabel()+"编号为"+mainDo.getDeviceNumber()+".");
}else{
sharingPlatform.setQuestionDescription("单号为"+mainDo.getNumber()+"的"+dictDataRespDTO.getLabel()+"类型的维修工单完成时间已超过"+timeoutMinutes+"分钟,共用时"+duration.toMinutes()+"分钟,关联"+dictDataRespDTO.getLabel()+"编号为"+mainDo.getDeviceNumber()+".");
if (userApplyer != null) {
sharingPlatform.setQuestionDescription("报修人为" + userApplyer.getNickname() + "单号为" + mainDo.getNumber() + "的" + dictDataRespDTO.getLabel() + "类型的维修工单完成时间已超过" + timeoutMinutes + "分钟,共用时" + duration.toMinutes() + "分钟,关联" + dictDataRespDTO.getLabel() + "编号为" + mainDo.getDeviceNumber() + ".");
} else {
sharingPlatform.setQuestionDescription("单号为" + mainDo.getNumber() + "的" + dictDataRespDTO.getLabel() + "类型的维修工单完成时间已超过" + timeoutMinutes + "分钟,共用时" + duration.toMinutes() + "分钟,关联" + dictDataRespDTO.getLabel() + "编号为" + mainDo.getDeviceNumber() + ".");
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PROBLEM_SHARING_PLATFORM_CODE.getCode());
@ -640,7 +645,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
@Override
@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);
validateSQ(id);//校验
Do.setApplyTime(LocalDateTime.now());
@ -677,10 +682,9 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
}
@Override
@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);
validateYZ(id);//验证
Do.setVerifyTime(LocalDateTime.now());
@ -747,17 +751,18 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
// respVO.setApplyer(maintenanceJobMainDO.getApplyer());
// uniappPushMessageService.uniappSend(respVO);
// } else {//工程师验证
//// try {
//// UniappPushMessageRespVO respVO = new UniappPushMessageRespVO();
//// respVO.setType(maintenanceJobMainDO.getType());
//// respVO.setStatus("2");
//// respVO.setNumber(number);
//// respVO.setFactoryAreaNumber(maintenanceJobMainDO.getFactoryAreaNumber());
//// respVO.setType(maintenanceJobMainDO.getType());
//// uniappPushMessageService.uniappSend(respVO);
//// } catch (Exception e) {
//// info("手机消息推送异常:{}",e);
//// }
//// try {
//// UniappPushMessageRespVO respVO = new UniappPushMessageRespVO();
//// respVO.setType(maintenanceJobMainDO.getType());
//// respVO.setStatus("2");
//// respVO.setNumber(number);
//// respVO.setFactoryAreaNumber(maintenanceJobMainDO.getFactoryAreaNumber());
//// respVO.setType(maintenanceJobMainDO.getType());
//// uniappPushMessageService.uniappSend(respVO);
//// } catch (Exception e) {
//// info("手机消息推送异常:{}",e);
//// }
// try {
// sendEmails(maintenanceJobMainDO, 1);
// } catch (Exception e) {
@ -811,7 +816,6 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
// }
// return i;
// }
@Override
public int deleteStatus(String request_number) {
return deviceMaintenanceJobMainMapper.deleteStatus(request_number);
@ -820,7 +824,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
@Override
public PageResult<DeviceMaintenanceJobMainDO> getAppPage(DeviceMaintenanceJobMainPageReqVO pageReqVO) {
pageReqVO.setUserId(getLoginUserId().toString());
if(!"2".equals(pageReqVO.getFlag())){//非报修确认列表进入
if (!"2".equals(pageReqVO.getFlag())) {//非报修确认列表进入
Long factoryAreaNumber = userApi.getUser(getLoginUserId()).getDeptId();//厂区号查询当前厂区下的数据
pageReqVO.setFactoryAreaNumber(factoryAreaNumber.toString());
pageReqVO.setClassType("DEVICE");
@ -1059,7 +1063,7 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId()));
mailSendSingleToUserReqDTO.setTemplateCode("job-maintenance-template");
Map<String, Object> params = new HashMap<>();
params.put("typeName","设备");
params.put("typeName", "设备");
params.put("name", item.getNickname());
params.put("number", deviceMaintenanceJobMainDO.getNumber());
mailSendSingleToUserReqDTO.setTemplateParams(params);
@ -1072,8 +1076,6 @@ public class DeviceMaintenanceJobMainServiceImpl implements DeviceMaintenanceJob
}
@Override
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.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.enums.basic.BasicStatusEnum;
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.common.DeleteFileService;
import com.win.module.eam.service.deviceaccounts.DeviceAccountsService;
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.moldaccounts.MoldAccountsService;
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
@Service
@Validated
public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspectionRecordMainService {
public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspectionRecordMainService, DeleteFileService {
@Resource
private DeviceSpotInspectionRecordMainMapper deviceSpotInspectionRecordMainMapper;
@ -161,12 +163,12 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
deviceSpotInspectionRecordMain.setMaintenance(getLoginUserId());
deviceSpotInspectionRecordMain.setStatus(OrderStatusEnum.JX_COMPLETED_STATUS.getCode());//完成
deviceSpotInspectionRecordMain.setCompletionTime(LocalDateTime.now());
if("MOLD".equals(createReqVO.getType())){//模具
if ("MOLD".equals(createReqVO.getType())) {//模具
QueryWrapper<MoldAccountsDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("number", createReqVO.getDeviceNumber());
MoldAccountsDO deviceAccountsDO = moldAccountsMapper.selectOne(queryWrapper);
deviceSpotInspectionRecordMain.setDeptId(Long.parseLong(deviceAccountsDO.getFactoryAreaNumber()));
}else{
} else {
QueryWrapper<DeviceAccountsDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("number", createReqVO.getDeviceNumber());
DeviceAccountsDO deviceAccountsDO = deviceAccountsMapper.selectOne(queryWrapper);
@ -177,28 +179,28 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
//子巡检项信息录入
DeviceMoldMaintenanceConfigDO deviceMoldMaintenanceConfigDO =
moldMaintenanceConfigMapper.selectOne(new LambdaQueryWrapperX<DeviceMoldMaintenanceConfigDO>()
.eq(DeviceMoldMaintenanceConfigDO::getDeviceNumber,createReqVO.getDeviceNumber())
.eq(DeviceMoldMaintenanceConfigDO::getStatus,createReqVO.getStatus()));
if(deviceMoldMaintenanceConfigDO == null || StringUtils.isEmpty(deviceMoldMaintenanceConfigDO.getMaintenanceItemId())){
.eq(DeviceMoldMaintenanceConfigDO::getDeviceNumber, createReqVO.getDeviceNumber())
.eq(DeviceMoldMaintenanceConfigDO::getStatus, createReqVO.getStatus()));
if (deviceMoldMaintenanceConfigDO == null || StringUtils.isEmpty(deviceMoldMaintenanceConfigDO.getMaintenanceItemId())) {
return 1L;
}
List<Long> maintenanceItemIds = Arrays.stream( deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(","))
List<Long> maintenanceItemIds = Arrays.stream(deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(","))
.map(Long::valueOf).collect(Collectors.toList());
List<DeviceMoldItemsDO> deviceMoldItemsDOS = deviceMoldItemsService.getDeviceMoldItemsList(maintenanceItemIds);
List<DeviceMoldItemsDO> moldItemslist = new ArrayList<>();
for(DeviceMoldItemsDO en:deviceMoldItemsDOS){
for (DeviceMoldItemsDO en : deviceMoldItemsDOS) {
DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO = new DeviceSpotInspectionRecordDetailDO();
List<Map<String, Object>> subList = createReqVO.getSubList();
Map<String, Object> mapMatch = new HashMap<>();
if(!subList.isEmpty()){
for(Map<String, Object> map:subList){
if (!subList.isEmpty()) {
for (Map<String, Object> map : subList) {
mapMatch = map;
long id = Long.parseLong(map.get("id").toString());
if(id==en.getId()){
inspectionRecordDetailDO.setIsConform(map.get("isConform")==null?"FALSE":map.get("isConform").toString());
inspectionRecordDetailDO.setRecords(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 (id == en.getId()) {
inspectionRecordDetailDO.setIsConform(map.get("isConform") == null ? "FALSE" : map.get("isConform").toString());
inspectionRecordDetailDO.setRecords(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())) {
moldItemslist.add(en);
}
inspectionRecordDetailDO.setMasterId(deviceSpotInspectionRecordMain.getId());
@ -207,24 +209,23 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
inspectionRecordDetailDO.setEquipmentPosition(en.getEquipmentParts());
deviceSpotInspectionRecordDetailMapper.insert(inspectionRecordDetailDO);
//维护上传的文件
createSpotInspectionUploadFile(number, mapMatch,inspectionRecordDetailDO);
createSpotInspectionUploadFile(number, mapMatch, inspectionRecordDetailDO);
}
}
}
}
dealApplyRepired(deviceSpotInspectionRecordMain,moldItemslist);
dealApplyRepired(deviceSpotInspectionRecordMain, moldItemslist);
Long id = deviceSpotInspectionRecordMain.getId();
//发送邮件
try {
sendEmails(deviceSpotInspectionRecordMain);
} catch (Exception e) {
info("发送邮件异常:{}",e);
info("发送邮件异常:{}", e);
}
return id;
}
private void createSpotInspectionUploadFile(String number, Map<String, Object> map, DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO) {
// 文件入库处理
UploadFileRequest fileUploadRequest = new UploadFileRequest();
@ -262,34 +263,33 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
}
@Resource
private MoldMaintenanceJobMainService moldMaintenanceJobMainService;
private void dealApplyRepired(DeviceSpotInspectionRecordMainDO mainDO, List<DeviceMoldItemsDO> moldItemslist){
if(moldItemslist.size()>0){
private void dealApplyRepired(DeviceSpotInspectionRecordMainDO mainDO, List<DeviceMoldItemsDO> moldItemslist) {
if (moldItemslist.size() > 0) {
//校验设备是否已经维修中,是:则不再创建报修工单,否:则创建
Boolean isRepair = false;
//创建报修工单
if(BasicStatusEnum.BASIC_DEVICE.getCode().equals( mainDO.getType())){
if (BasicStatusEnum.BASIC_DEVICE.getCode().equals(mainDO.getType())) {
DeviceAccountsExportReqVO deviceAccountsExportReqVO = new DeviceAccountsExportReqVO();
deviceAccountsExportReqVO.setNumber(mainDO.getDeviceNumber());
deviceAccountsExportReqVO.setStatus(BasicStatusEnum.BASIC_STATUS_1.getCode());
List<DeviceAccountsDO> list = deviceAccountsService.getDeviceAccountsList(deviceAccountsExportReqVO);
if(list.size()>0){
if (list.size() > 0) {
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.setNumber(mainDO.getDeviceNumber());
moldAccountsExportReqVO.setStatus(BasicStatusEnum.BASIC_STATUS_1.getCode());
List<MoldAccountsDO> list = moldAccountsService.getMoldAccountsList(moldAccountsExportReqVO);
if(list.size()>0){
if (list.size() > 0) {
isRepair = true;
}
}
//已经有维修工单则不再创建
if(isRepair){
if (isRepair) {
return;
}
// 拼接 moldItemslist 中每项的 name
@ -297,7 +297,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
describesBuilder.append("点检问题报修:");
for (int i = 0; i < moldItemslist.size(); 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) {
describesBuilder.append("; ");
}
@ -312,7 +312,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
Long repairRequestId = deviceRepairRequestService.createDeviceRepair(createReqVO);
DeviceMaintenanceJobMainDO deviceMaintenanceJobMainDO = moldMaintenanceJobMainService.getDeviceMaintenanceMain(repairRequestId);
List<RepairRelationDO> repairRelationList = new ArrayList<>();
moldItemslist.stream().forEach(en->{
moldItemslist.stream().forEach(en -> {
RepairRelationDO repairRelationDO = new RepairRelationDO();
repairRelationDO.setSpotInspectionId(en.getId());
repairRelationDO.setSpotInspectionName(en.getName());
@ -326,12 +326,10 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
}
@Override
public Integer updateDeviceSpotInspectionRecordMain(DeviceSpotInspectionRecordMainUpdateReqVO updateReqVO) {
// 校验存在
validateDeviceSpotInspectionRecordMainExists(updateReqVO.getId());
validateDeviceSpotInspectionRecordMainExists(updateReqVO.getId());
// 更新
DeviceSpotInspectionRecordMainDO updateObj = DeviceSpotInspectionRecordMainConvert.INSTANCE.convert(updateReqVO);
return deviceSpotInspectionRecordMainMapper.updateById(updateObj);
@ -448,19 +446,19 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
pageReqVO.setClassType("MOLD");
IPage<DeviceSpotInspectionRecordMainDO> pageInfo = deviceSpotInspectionRecordMainMapper.getAppPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), pageReqVO);
if (pageInfo != null) {
for(DeviceSpotInspectionRecordMainDO en :pageInfo.getRecords()){
for (DeviceSpotInspectionRecordMainDO en : pageInfo.getRecords()) {
String deviceNumber = en.getDeviceNumber();
String type = en.getType();
if("MOLD".equals(type)){//模具
if ("MOLD".equals(type)) {//模具
Map<String, Object> detailsByNumber = moldAccountsMapper.getDetailsByNumber(deviceNumber);
en.setFactoryAreaNumber(detailsByNumber==null?"":detailsByNumber.get("factoryAreaNumber").toString());
en.setFactoryAreaName(detailsByNumber==null?"":detailsByNumber.get("factoryAreaName").toString());
en.setName(detailsByNumber==null?"":detailsByNumber.get("name").toString());
}else{//设备
en.setFactoryAreaNumber(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaNumber").toString());
en.setFactoryAreaName(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaName").toString());
en.setName(detailsByNumber == null ? "" : detailsByNumber.get("name").toString());
} else {//设备
Map<String, Object> detailsByNumber = deviceAccountsMapper.getDetailsByNumber(deviceNumber);
en.setFactoryAreaNumber(detailsByNumber==null?"":detailsByNumber.get("factoryAreaNumber").toString());
en.setFactoryAreaName(detailsByNumber==null?"":detailsByNumber.get("factoryAreaName").toString());
en.setName(detailsByNumber==null?"":detailsByNumber.get("name").toString());
en.setFactoryAreaNumber(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaNumber").toString());
en.setFactoryAreaName(detailsByNumber == null ? "" : detailsByNumber.get("factoryAreaName").toString());
en.setName(detailsByNumber == null ? "" : detailsByNumber.get("name").toString());
}
}
@ -470,32 +468,31 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
}
@Override
public void createSpotInspectionTask(int type) {
String times = null;
String classes = "0";
if(0==type){//早班巡检
if (0 == type) {//早班巡检
// 设置为当天的 8:30
ConfigDTO configByKey = apiConfigApi.getConfigByKey("record_spot_inspection.start_time");
String value = configByKey.getValue();
times = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd");
times = times+" "+value;
}else{//晚班巡检
times = times + " " + value;
} else {//晚班巡检
classes = "1";
// 设置为当天的 17:30
ConfigDTO configByKey = apiConfigApi.getConfigByKey("record_spot_inspection.end_time");
String value = configByKey.getValue();
times = LocalDateTimeUtil.format(LocalDate.now(), "yyyy-MM-dd");
times = times+" "+value;
times = times + " " + value;
}
List<Map<String, Object>> list2 = deptApi.selectAllFactoryArea();
for (Map<String, Object> map : list2) {
// 如果Map中已存在该键,则添加
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();
for(DeviceSpotInspectionRecordMainDO en:list){
for (DeviceSpotInspectionRecordMainDO en : list) {
str.append("<p>&nbsp;&nbsp;设备名称(");
String name = en.getName();
str.append(name);
@ -507,11 +504,11 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
}
//发送邮件
try {
if(!list.isEmpty()){
sendEmails(times,str.toString(),factoryAreaNumber);
if (!list.isEmpty()) {
sendEmails(times, str.toString(), factoryAreaNumber);
}
} catch (Exception e) {
info("发送邮件异常:{}",e);
info("发送邮件异常:{}", e);
}
}
}
@ -522,9 +519,9 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
* @param str
* @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);
userBeanList.stream().forEach(item ->{
userBeanList.stream().forEach(item -> {
try {
MailSendSingleToUserReqDTO mailSendSingleToUserReqDTO = new MailSendSingleToUserReqDTO();
mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId()));
@ -534,8 +531,8 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
params.put("times", times);
mailSendSingleToUserReqDTO.setTemplateParams(params);
mailSendApi.sendSingleMailToAdmin(mailSendSingleToUserReqDTO);
}catch(RuntimeException e){
info("巡检点检的日期为"+times+",来自"+factoryAreaNumber+"给设备工程师发送的邮件通知失败:{}", e);
} catch (RuntimeException e) {
info("巡检点检的日期为" + times + ",来自" + factoryAreaNumber + "给设备工程师发送的邮件通知失败:{}", e);
}
});
}
@ -544,21 +541,21 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
* 巡检点验证给工程师发邮件
* @param mainDO
*/
private void sendEmails(DeviceSpotInspectionRecordMainDO mainDO){
private void sendEmails(DeviceSpotInspectionRecordMainDO mainDO) {
List<ClassTypeDO> userBeanList = classTypeMapper.JudgeIdentity(null, mainDO.getType(), "1", mainDO.getFactoryAreaNumber());
userBeanList.stream().forEach(item ->{
userBeanList.stream().forEach(item -> {
try {
MailSendSingleToUserReqDTO mailSendSingleToUserReqDTO = new MailSendSingleToUserReqDTO();
mailSendSingleToUserReqDTO.setUserId(Long.valueOf(item.getUserId()));
mailSendSingleToUserReqDTO.setTemplateCode("record_spot_inspection_verify");
Map<String, Object> params = new HashMap<>();
params.put("typeName","设备");
params.put("typeName", "设备");
params.put("number", mainDO.getNumber());
params.put("name", item.getNickname());
mailSendSingleToUserReqDTO.setTemplateParams(params);
mailSendApi.sendSingleMailToAdmin(mailSendSingleToUserReqDTO);
}catch(RuntimeException e){
info("工单编号为"+mainDO.getNumber()+"的名为:"+mainDO.getDescribes()+"的工单给"+item.getNickname()+"发送的邮件通知失败:{}", e);
} catch (RuntimeException 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) ? "白班" : "夜班";
List<ProducePlanDO> producePlanDOList = producePlanService.getProducePlan(planDate, shift);
if(CollectionUtils.isEmpty(producePlanDOList)){
if (CollectionUtils.isEmpty(producePlanDOList)) {
return;
}
@ -582,7 +579,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
planMasterDtblMapper.insertBatch(planMasterDtblDOList);
String previousPlanDate, previouseShift;
if(currentTime.isAfter(startTime) && currentTime.isBefore(endTime)){
if (currentTime.isAfter(startTime) && currentTime.isBefore(endTime)) {
LocalDate previousDate = currentDate.minusDays(1);
previousPlanDate = previousDate.format(formatter);
previouseShift = "夜班";
@ -597,7 +594,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
.orderByAsc(PlanMasterDtblDO::getPlanCode).orderByAsc(PlanMasterDtblDO::getSeq));
PlanMasterDtblDO previousPlan = null;
if(!CollectionUtils.isEmpty(previousPlanList)){
if (!CollectionUtils.isEmpty(previousPlanList)) {
previousPlan = previousPlanList.get(previousPlanList.size() - 1);
}
@ -605,7 +602,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
.map(PlanMasterDtblDO::getItemCode)
.collect(Collectors.toSet());
if(previousPlan != null){
if (previousPlan != null) {
itemCodeSet.add(previousPlan.getItemCode());
}
@ -619,9 +616,9 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
(existing, replacement) -> existing));
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());
if(!StringUtils.isEmpty(moldCode) && !moldCode.equals(nextMoldCode)){
if (!StringUtils.isEmpty(moldCode) && !moldCode.equals(nextMoldCode)) {
createModlInspection(moldCode);
}
moldCode = nextMoldCode;
@ -635,10 +632,10 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
.eq(DeviceMoldMaintenanceConfigDO::getType, "MOLD")
.eq(DeviceMoldMaintenanceConfigDO::getStatus, "INSPECTION"));
if(deviceMoldMaintenanceConfigDO == null){
if (deviceMoldMaintenanceConfigDO == null) {
return;
}
List<Long> maintenanceItemIds = Arrays.stream( deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(","))
List<Long> maintenanceItemIds = Arrays.stream(deviceMoldMaintenanceConfigDO.getMaintenanceItemId().split(","))
.map(Long::valueOf).collect(Collectors.toList());
List<DeviceMoldItemsDO> deviceMoldItemsDOList = deviceMoldItemsService.getDeviceMoldItemsList(maintenanceItemIds);
@ -658,7 +655,7 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
deviceSpotInspectionRecordMainMapper.insert(deviceSpotInspectionRecordMain);
List<DeviceSpotInspectionRecordDetailDO> detailDOList = new ArrayList<>();
for(DeviceMoldItemsDO deviceMoldItemsDO : deviceMoldItemsDOList){
for (DeviceMoldItemsDO deviceMoldItemsDO : deviceMoldItemsDOList) {
DeviceSpotInspectionRecordDetailDO inspectionRecordDetailDO = new DeviceSpotInspectionRecordDetailDO();
inspectionRecordDetailDO.setMasterId(deviceSpotInspectionRecordMain.getId());
inspectionRecordDetailDO.setNumber(number);
@ -668,4 +665,37 @@ public class MoldSpotInspectionRecordMainServiceImpl implements MoldSpotInspecti
}
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