From 6d58e43fa63b8040d6c9aba9d78aebd0cd3447c6 Mon Sep 17 00:00:00 2001 From: zhaowenyuan Date: Mon, 1 Jul 2024 10:30:12 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=B7=A5=E5=8D=95=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inspection-feign/pom.xml | 3 +- .../work/vo/InspectionConfigVO.java | 4 + .../chushang/inspection/work/vo/WrkImgVO.java | 5 - .../consumer/InspectionConsumerService.java | 119 +++--- .../inspection/ins/DefaultGeneratedIns.java | 31 ++ .../ins/DefaultGeneratedInspection.java | 151 ++++++++ .../chushang/inspection/ins/GeneratedIns.java | 40 ++ .../inspection/ins/GeneratedInsFactory.java | 64 ++++ .../inspection/ins/GeneratedInspection.java | 61 +++ .../controller/InsConfigController.java | 11 + .../controller/InsDetailController.java | 1 + .../controller/PollTaskController.java | 2 +- .../project/mapper/InspectionDataMapper.java | 5 +- .../service/InspectionConfigService.java | 3 + .../service/InspectionDataService.java | 3 + .../impl/InspectionConfigServiceImpl.java | 26 ++ .../impl/InspectionDataServiceImpl.java | 14 +- .../ConsumablesTotalController.java | 13 +- .../service/impl/FiveStoreServiceImpl.java | 4 +- .../chushang/inspection/utils/PoolUtils.java | 67 ++++ .../work/controller/WrkInfoController.java | 8 +- .../inspection/work/mapper/WrkInfoMapper.java | 5 + .../work/service/WrkImgService.java | 6 + .../work/service/WrkInfoService.java | 2 + .../work/service/impl/WrkImgServiceImpl.java | 81 +++- .../service/impl/WrkInfoPhoneServiceImpl.java | 5 +- .../work/service/impl/WrkInfoServiceImpl.java | 134 +++++-- .../src/main/resources/bootstrap.yml | 2 +- .../resources/mapper/InspectionDataMapper.xml | 95 +++-- .../main/resources/mapper/WrkInfoMapper.xml | 350 ++++++++++++------ .../src/test/java/GenInsTest.java | 32 ++ 31 files changed, 1074 insertions(+), 273 deletions(-) create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedIns.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedInspection.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedIns.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInsFactory.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInspection.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/utils/PoolUtils.java create mode 100644 chushang-modules/chushang-module-inspection/inspection-service/src/test/java/GenInsTest.java diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/pom.xml b/chushang-modules/chushang-module-inspection/inspection-feign/pom.xml index 89f11e2..6b1a3f4 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/pom.xml +++ b/chushang-modules/chushang-module-inspection/inspection-feign/pom.xml @@ -15,11 +15,12 @@ com.chushang - chushang-common-excel + chushang-common-office com.chushang oss-feign + diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/InspectionConfigVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/InspectionConfigVO.java index 1b933ab..05bfb57 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/InspectionConfigVO.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/InspectionConfigVO.java @@ -36,6 +36,10 @@ public class InspectionConfigVO implements Serializable { * 模板路径 */ private String templateUrl; + /** + * 对应的工单id + */ + private Long wrkId; /** * 详细信息 */ diff --git a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkImgVO.java b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkImgVO.java index 582698c..e733680 100644 --- a/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkImgVO.java +++ b/chushang-modules/chushang-module-inspection/inspection-feign/src/main/java/com/chushang/inspection/work/vo/WrkImgVO.java @@ -22,13 +22,11 @@ public class WrkImgVO implements Serializable { /** * 主键 */ - @TableId(value = "img_id", type = IdType.ASSIGN_ID) private Long imgId; /** * 工单id */ - @TableField(value = "wrk_id") private Long wrkId; /** @@ -40,18 +38,15 @@ public class WrkImgVO implements Serializable { /** * 真实请求路径 */ - @TableField(value = "real_path") private String realPath; /** * 文件fid 值 */ - @TableField(value = "fid") private String fid; /** * 文件大小 */ - @TableField(value = "`size`") private Long size; } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java index ca8938f..7602ce2 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/consumer/InspectionConsumerService.java @@ -6,6 +6,7 @@ import com.chushang.common.core.context.SecurityContextHolder; import com.chushang.common.core.util.SpringUtils; import com.chushang.common.core.web.AjaxResult; import com.chushang.common.core.web.Result; +import com.chushang.inspection.utils.PoolUtils; import com.chushang.security.utils.SecurityUtils; import com.chushang.task.entity.TaskInfo; import com.chushang.task.entity.dto.UpdateTaskDTO; @@ -36,6 +37,7 @@ import java.util.Objects; public class InspectionConsumerService implements RocketMQListener { @Resource RemoteTaskService remoteTaskService; + /** * 执行 下发的 后台任务 */ @@ -44,67 +46,72 @@ public class InspectionConsumerService implements RocketMQListener { remoteTaskService.updateTask(message.getTaskId(), UpdateTaskDTO.builder() .taskStatus(TaskStatusEnum.EXECUTING) .build(), SecurityConstants.INNER); - // 通过 反射 去执行具体方法 - String className = message.getClassName(); - String methodName = message.getMethodName(); - String params = message.getParams(); - Integer taskType = message.getTaskType(); - SecurityContextHolder.setDeptId(message.getDeptId()); - UpdateTaskDTO updateTask = new UpdateTaskDTO(); - try { - // 包名+类名 - Class classzz = Class.forName(className); - // 获取构造器对象 - // 利用spring 获取对象 - Object o = SpringUtils.getBean(classzz); - // 传递需要执行的方法 - Method method = classzz.getMethod(methodName, String.class); - // 调用的方法有多个参数 Method method = classzz.getMethod("class1method",long.class,String.class,String.class); - // 如果调用的方法有参数 invoke(o,param1,param2,param3,...) - updateTask.setLastRunTime(LocalDateTime.now()); - Object invoke = method.invoke(o, params); - if (invoke instanceof AjaxResult result){ - Integer code = (Integer) result.get(AjaxResult.DATA_TAG); - if (result.isSuccess() && 200 == code){ - updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_SUCCESS); - String data = (String)result.get(AjaxResult.DATA_TAG); - String msg = (String) result.get(AjaxResult.MSG_TAG); - updateTask.setLastRunResult(msg); - if (Objects.equals(taskType, TaskTypeEnum.DOWN.getCode())){ - updateTask.setRemark(data); + // 通过线程池 进行调用 + PoolUtils.SENTINEL.getInstance().execute(()->{ + // 通过 反射 去执行具体方法 + String className = message.getClassName(); + String methodName = message.getMethodName(); + String params = message.getParams(); + Integer taskType = message.getTaskType(); + SecurityContextHolder.setDeptId(message.getDeptId()); + UpdateTaskDTO updateTask = new UpdateTaskDTO(); + try { + // 包名+类名 + Class classzz = Class.forName(className); + // 获取构造器对象 + // 利用spring 获取对象 + Object o = SpringUtils.getBean(classzz); + // 传递需要执行的方法 + Method method = classzz.getMethod(methodName, String.class); + // 调用的方法有多个参数 Method method = classzz.getMethod("class1method",long.class,String.class,String.class); + // 如果调用的方法有参数 invoke(o,param1,param2,param3,...) + updateTask.setLastRunTime(LocalDateTime.now()); + Object invoke = method.invoke(o, params); + if (invoke instanceof AjaxResult result){ + Integer code = (Integer) result.get(AjaxResult.DATA_TAG); + if (result.isSuccess() && 200 == code){ + updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_SUCCESS); + String data = (String)result.get(AjaxResult.DATA_TAG); + String msg = (String) result.get(AjaxResult.MSG_TAG); + updateTask.setLastRunResult(msg); + if (Objects.equals(taskType, TaskTypeEnum.DOWN.getCode())){ + updateTask.setRemark(data); + } + }else { + String errMsg = (String)result.get(AjaxResult.MSG_TAG); + updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_FAIL); + updateTask.setLastRunResult(errMsg); } - }else { - String errMsg = (String)result.get(AjaxResult.MSG_TAG); - updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_FAIL); - updateTask.setLastRunResult(errMsg); } - }else if (invoke instanceof Result result){ - if (result.isSuccess() && result.getCode() == 200){ - updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_SUCCESS); - String data = (String)result.getData(); - String msg = result.getMsg(); - updateTask.setLastRunResult(msg); - if (Objects.equals(taskType, TaskTypeEnum.DOWN.getCode())){ - updateTask.setRemark(data); + else if (invoke instanceof Result result){ + if (result.isSuccess() && result.getCode() == 200){ + updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_SUCCESS); + String data = (String)result.getData(); + String msg = result.getMsg(); + updateTask.setLastRunResult(msg); + if (Objects.equals(taskType, TaskTypeEnum.DOWN.getCode())){ + updateTask.setRemark(data); + } + }else { + String errMsg = result.getMsg(); + updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_FAIL); + updateTask.setLastRunResult(errMsg); } - }else { - String errMsg = result.getMsg(); - updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_FAIL); - updateTask.setLastRunResult(errMsg); } } - } - catch (Exception e){ - log.error("执行失败", e); - updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_FAIL); - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(e).append("\n"); - for (StackTraceElement s : e.getStackTrace()) { - stringBuilder.append(s.toString()).append("\n"); + catch (Exception e) + { + log.error("执行失败", e); + updateTask.setTaskStatus(TaskStatusEnum.EXECUTE_FAIL); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(e).append("\n"); + for (StackTraceElement s : e.getStackTrace()) { + stringBuilder.append(s.toString()).append("\n"); + } + updateTask.setLastRunResult(stringBuilder.toString()); } - updateTask.setLastRunResult(stringBuilder.toString()); - } - // 执行完毕后 更新 任务状态 - remoteTaskService.updateTask(message.getTaskId(), updateTask, SecurityConstants.INNER); + // 执行完毕后 更新 任务状态 + remoteTaskService.updateTask(message.getTaskId(), updateTask, SecurityConstants.INNER); + }); } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedIns.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedIns.java new file mode 100644 index 0000000..2a1de10 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedIns.java @@ -0,0 +1,31 @@ +package com.chushang.inspection.ins; + +import com.chushang.inspection.work.vo.InspectionConfigVO; +import com.chushang.inspection.work.vo.WrkInfoDetailsVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * 生成 word, 需要 先试下默认的 + * @auther: zhao + * @date: 2024/6/29 14:44 + */ +@Slf4j +@Service +public class DefaultGeneratedIns implements GeneratedIns{ + + @Override + public void generated(Map wrkMaps, InspectionConfigVO insConfig, String basePath) { + + } + + /** + * 用于 注册 + */ + @Override + public String register() { + return "default"; + } +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedInspection.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedInspection.java new file mode 100644 index 0000000..2069e41 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/DefaultGeneratedInspection.java @@ -0,0 +1,151 @@ +package com.chushang.inspection.ins; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.common.core.web.Result; +import com.chushang.inspection.project.vo.DetailsVO; +import com.chushang.inspection.work.vo.*; +import com.chushang.oss.feign.RemoteOssService; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.data.PictureRenderData; +import com.deepoove.poi.data.Pictures; +import com.deepoove.poi.data.UrlPictureRenderData; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.File; +import java.io.InputStream; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * @auther: zhao + * @date: 2024/6/29 11:43 + */ +@Slf4j +@Service +public abstract class DefaultGeneratedInspection implements GeneratedInspection { + + @Resource + RemoteOssService remoteOssService; + + @Override + public abstract List> generated(Map info, InspectionConfigVO inspection, String path, Executor executor); + + @Override + public void compileWord(String fileName, String templatePath, Map data) { + XWPFTemplate template = null; + try (InputStream stream = ResourceUtil.getStream("template" + File.separator + templatePath)) { + template = XWPFTemplate.compile(stream); + template.render(data); + FileUtil.touch(fileName); + template.writeToFile(fileName); + } catch (Exception e) { + log.error("【{}】模版替换失败", fileName, e); + } finally { + IoUtil.close(template); + } + } + + @Override + public Map InspectionToMap(WrkInfoDetailsVO inspection, Integer width, Integer height, int... imgTypes) { + Map map = BeanUtil.beanToMap(inspection, Maps.newHashMap(), + true, v -> "images".equals(v) ? null : v); + WrkInfoVO wrkInfo = inspection.getWrkInfo(); + List images = inspection.getInfoImg(); + map.put("disposeTime", LocalDateTimeUtil.format(wrkInfo.getDisposeTime(), DatePattern.CHINESE_DATE_PATTERN)); + map.put("createTime", LocalDateTimeUtil.format(wrkInfo.getDisposeTime(), DatePattern.CHINESE_DATE_PATTERN)); + if (ArrayUtil.isEmpty(imgTypes) || CollUtil.isEmpty(images)) { + return map; + } + getImage(images, map, width, height, null, imgTypes); + return map; + } + + @Override + public void getImage(List images, Map data, Integer width, Integer height, int[] exclude, int... imgTypes) { + if (CollUtil.isEmpty(images)) { + return; + } + Map imgMap = images.stream().filter(img -> exclude == null || !ArrayUtil.contains(exclude, img.getImgType())) + .collect(Collectors.toMap(WrkImgVO::getImgType, v -> v, (v1, v2) -> v1)); + if (CollUtil.isEmpty(imgMap)) { + return; + } + if (ArrayUtil.isNotEmpty(imgTypes)) { + for (int imgType : imgTypes) { + if (!imgMap.containsKey(imgType) || imgType == -1) { + continue; + } + // 此处需要直接通过minio 获取? + WrkImgVO img = imgMap.get(imgType); + data.put("img" + imgType, getFile(width, height, img)); + } + } else { + AtomicInteger i = new AtomicInteger(1); + + imgMap.forEach((imgType, img) -> { + if (imgType != -1) { + data.put("img" + imgType, getFile(width, height, img)); + i.getAndIncrement(); + } + }); + } + } + + @Override + public String getFormat(String template, ConfigDataVO details, int i, boolean isRemark) { + Object[] arr = new Object[i]; + String value = details.getConfigValue() == null ? StrUtil.EMPTY : details.getConfigValue(); + if (value.contains(StrUtil.COMMA)) { + List list = StrUtil.split(value, StrUtil.COMMA); + for (int j = 0; j < i; j++) { + if (list.contains(Convert.toStr(j + 1))) { + arr[j] = "☑"; + } else { + arr[j] = "□"; + } + } + } else { + for (int j = 0; j < i; j++) { + if (Convert.toStr(j + 1).equals(value)) { + arr[j] = "☑"; + } else { + arr[j] = "□"; + } + } + } + if (isRemark) { + arr[i - 1] = StrUtil.isBlank(details.getRemark()) ? StrUtil.EMPTY : details.getRemark(); + } + return StrUtil.format(template, arr); + } + /** + * 获取图片 + */ + private PictureRenderData getFile(Integer width, Integer height, WrkImgVO img) { + Result result = remoteOssService.getFile(img.getFid(), SecurityConstants.INNER); + if (result.isSuccess() && result.getData() != null) { + byte[] bytes = result.getData(); + return Pictures.ofBytes(bytes).size(width, height).create(); + } + return new UrlPictureRenderData(img.getRealPath()); + } +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedIns.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedIns.java new file mode 100644 index 0000000..79a5bc1 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedIns.java @@ -0,0 +1,40 @@ +package com.chushang.inspection.ins; + +import cn.hutool.core.util.StrUtil; +import com.chushang.inspection.work.vo.InspectionConfigVO; +import com.chushang.inspection.work.vo.WrkInfoDetailsVO; + +import java.io.File; +import java.util.Map; + +/** + * 生成 模板 + * @auther: zhao + * @date: 2024/6/29 14:37 + */ +public interface GeneratedIns { + /** + * 生成 word 文档所需 + */ + String SUFFIX_NAME = ".docx"; + /** + * 应当为 Map map 结构 + */ + void generated(Map wrkMaps, InspectionConfigVO insConfig, String basePath); + + default String generateAFileName(String path, String... value) { + StringBuilder fileName = new StringBuilder(path); + fileName.append(File.separator); + for (String v : value) { + if (StrUtil.isNotEmpty(v) && v.equals(value[0])) { + fileName.append(v); + } else if (StrUtil.isNotEmpty(v)) { + fileName.append("-").append(v); + } + } + return fileName.append(SUFFIX_NAME).toString(); + } + + String register(); + +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInsFactory.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInsFactory.java new file mode 100644 index 0000000..711769a --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInsFactory.java @@ -0,0 +1,64 @@ +//package com.chushang.inspection.ins; +// +//import cn.hutool.core.collection.CollectionUtil; +//import com.chushang.inspection.work.vo.InspectionConfigVO; +//import com.chushang.inspection.work.vo.WrkInfoDetailsVO; +//import com.chushang.oss.config.UploadConfig; +//import com.google.common.collect.Lists; +//import io.minio.MinioProperties; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Service; +// +//import javax.annotation.Resource; +//import java.io.File; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +//import java.util.concurrent.CompletableFuture; +//import java.util.concurrent.CyclicBarrier; +// +///** +// * 模板生成工厂 +// * @auther: zhao +// * @date: 2024/7/1 9:33 +// */ +//@Slf4j +//@Service +//public class GeneratedInsFactory { +// +// private final DefaultGeneratedIns defaultGeneratedIns; +// +// public String getPath() { +// return UploadConfig.getTmpPath() + File.separator + "download" + File.separator + "word" + File.separator; +// } +// +// private final Map generatedInsMap; +// +// GeneratedInsFactory(List insList, DefaultGeneratedIns defaultGeneratedIns){ +// generatedInsMap = new HashMap<>(); +// insList.forEach(ins-> generatedInsMap.put(ins.register(), ins)); +// this.defaultGeneratedIns = defaultGeneratedIns; +// } +// +// public void generated(Map wrkMaps){ +// // 生成文件名 +// List> supplyAsync = Lists.newCopyOnWriteArrayList(); +// CyclicBarrier cyclicBarrier = new CyclicBarrier(wrkMaps.keySet().size()); +// // 此处应当指定 需要生成的 路径 +// wrkMaps.forEach((wrkId, wrk)->{ +// // 生成普通巡检单 +// GeneratedIns defaultGeneratedIns = generatedInsMap.get("default"); +// supplyAsync.addAll(defaultGeneratedIns.generated(wrkMaps, null, getPath(), EXECUTOR)); +// +// List inspections = wrk.getInspections(); +// inspections.forEach(ins->{ +// // 别名 +// String alias = ins.getAlias(); +// // 模板 +// String templateUrl = ins.getTemplateUrl(); +// +// }); +// }); +// } +// +//} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInspection.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInspection.java new file mode 100644 index 0000000..b63bd0c --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/ins/GeneratedInspection.java @@ -0,0 +1,61 @@ +package com.chushang.inspection.ins; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.io.resource.ResourceUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import com.chushang.inspection.project.vo.DetailsVO; +import com.chushang.inspection.work.vo.*; +import com.deepoove.poi.XWPFTemplate; +import com.deepoove.poi.data.Pictures; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.io.InputStream; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +/** + * 生成巡检单信息 + */ +public interface GeneratedInspection { + + String SUFFIX_NAME = ".docx"; + + List> generated(Map info, InspectionConfigVO inspection, String path, Executor executor); + + default String generateAFileName(String path, String... value) { + StringBuilder fileName = new StringBuilder(path); + fileName.append(File.separator); + for (String v : value) { + if (StrUtil.isNotEmpty(v) && v.equals(value[0])) { + fileName.append(v); + } else if (StrUtil.isNotEmpty(v)) { + fileName.append("-").append(v); + } + } + return fileName.append(SUFFIX_NAME).toString(); + } + + void compileWord(String fileName, String templatePath, Map data); + + Map InspectionToMap(WrkInfoDetailsVO inspection, Integer width, Integer height, int... imgTypes); + + void getImage(List images, Map data,Integer width, Integer height, int[] exclude, int... imgTypes); + + String getFormat(String template, ConfigDataVO insList, int i, boolean isRemark); +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java index ce0efce..a8ffb9a 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsConfigController.java @@ -15,6 +15,7 @@ import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.utils.SecurityUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -102,6 +103,16 @@ public class InsConfigController { configService.updateByEntityId(config); return AjaxResult.success(config.getConfigId()); } + /** + * 巡检单上传 + */ + @SysLog(value = "巡检单", businessType = BusinessType.UPLOAD) + @PostMapping(value = "/upload") + @RequiresPermissions("wrk:config:upload") + public AjaxResult templateUpload(@RequestParam("file") MultipartFile file) + { + return AjaxResult.success(configService.uploadTemplate(file)); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java index c2febb0..cfc90c3 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/InsDetailController.java @@ -66,6 +66,7 @@ public class InsDetailController { detail.setDetailId(null); Long configId = detail.getConfigId(); AssertUtil.invalidate(null == configId, "巡检单配置id 不能为空"); + String configKey = detail.getConfigKey(); AssertUtil.invalidate(null == configKey, "巡检单配置key 不能为空"); diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java index 84efaa3..7200620 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/controller/PollTaskController.java @@ -28,7 +28,7 @@ import java.util.List; */ @Slf4j @RestController -@RequestMapping(value = "/inspection/task") +@RequestMapping(value = "/task") public class PollTaskController { @Resource diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/InspectionDataMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/InspectionDataMapper.java index 7979feb..bca137c 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/InspectionDataMapper.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/mapper/InspectionDataMapper.java @@ -8,6 +8,7 @@ import com.chushang.inspection.work.vo.InspectionConfigVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Set; /** * @auther: zhao @@ -15,5 +16,7 @@ import java.util.List; */ public interface InspectionDataMapper extends BaseMapper { @DataScope(deptAlias = "ic") - List listInspections(@Param("wrkId") Long wrkId, @Param("query") CommonParam query); + List listInspectionsByWrkId(@Param("wrkId") Long wrkId, @Param("query") CommonParam query); + @DataScope(deptAlias = "ic") + List listInspectionsByWrkIds(@Param("wrkIds") Set wrkIds, @Param("query") CommonParam query); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java index 2730965..1269850 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionConfigService.java @@ -9,6 +9,7 @@ import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.inspection.project.po.InspectionConfig; import com.chushang.inspection.project.query.InsConfigQuery; import com.chushang.inspection.project.vo.InsConfigVO; +import org.springframework.web.multipart.MultipartFile; /** * @auther: zhao @@ -33,4 +34,6 @@ public interface InspectionConfigService extends IService{ void updateByEntityId(InspectionConfig config); void saveEntity(InspectionConfig config); + + String uploadTemplate(MultipartFile file); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDataService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDataService.java index 61a6d13..b8a634b 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDataService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/InspectionDataService.java @@ -5,6 +5,7 @@ import com.chushang.inspection.project.po.InspectionData; import com.chushang.inspection.work.vo.InspectionConfigVO; import java.util.List; +import java.util.Set; /** * @auther: zhao @@ -14,4 +15,6 @@ public interface InspectionDataService extends IService{ List listInspections(Long wrkId); + + List listInspections(Set wrkIds); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java index 603d10a..0a51a42 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionConfigServiceImpl.java @@ -4,6 +4,9 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.common.core.exception.ResultException; +import com.chushang.common.core.web.Result; import com.chushang.common.mybatis.enums.Operator; import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.inspection.project.po.InspectionDetail; @@ -11,6 +14,10 @@ import com.chushang.inspection.project.vo.DetailsVO; import com.chushang.inspection.project.vo.InsConfigVO; import com.chushang.inspection.project.service.InspectionConfigService; import com.chushang.inspection.project.service.InspectionDetailService; +import com.chushang.oss.entity.dto.UploadBytesDTO; +import com.chushang.oss.entity.dto.UploadFileDTO; +import com.chushang.oss.entity.vo.FileSourceVo; +import com.chushang.oss.feign.RemoteOssService; import org.springframework.cache.annotation.CacheConfig; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.CachePut; @@ -19,6 +26,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.project.po.InspectionConfig; import com.chushang.inspection.project.mapper.InspectionConfigMapper; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.List; @@ -33,6 +41,8 @@ public class InspectionConfigServiceImpl extends ServiceImpl> listResult = + remoteOssService.uploadFile(UploadFileDTO.builder() + .files(new MultipartFile[]{file}) + .build(), null, null, null, "template", SecurityConstants.INNER); + if (listResult.isSuccess() && CollectionUtil.isNotEmpty(listResult.getData())){ + return listResult.getData().get(0).getFilePath(); + } + throw new ResultException("上传失败"); + } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDataServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDataServiceImpl.java index cc9ff86..10eae2d 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDataServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/project/service/impl/InspectionDataServiceImpl.java @@ -9,6 +9,7 @@ import com.chushang.inspection.project.po.InspectionData; import com.chushang.inspection.project.mapper.InspectionDataMapper; import java.util.List; +import java.util.Set; /** * @auther: zhao @@ -18,12 +19,19 @@ import java.util.List; public class InspectionDataServiceImpl extends ServiceImpl implements InspectionDataService { /** * 根据工单id 查询对应的 巡检单信息 - * @param wrkId - * @return + * @param wrkId 工单id */ @Override public List listInspections(Long wrkId) { CommonParam commonParam = CommonParam.buildPageRequest(); - return baseMapper.listInspections(wrkId, commonParam); + return baseMapper.listInspectionsByWrkId(wrkId, commonParam); + } + + /** + * 根据工单id, 获取对应 巡检单信息 + */ + public List listInspections(Set wrkIds) { + CommonParam commonParam = CommonParam.buildPageRequest(); + return baseMapper.listInspectionsByWrkIds(wrkIds, commonParam); } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/controller/ConsumablesTotalController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/controller/ConsumablesTotalController.java index b72a250..271934c 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/controller/ConsumablesTotalController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/controller/ConsumablesTotalController.java @@ -24,7 +24,7 @@ import javax.validation.constraints.NotNull; * @author xxxxx */ @RestController -@RequestMapping("/consumables_total") +@RequestMapping("/consumables/total") public class ConsumablesTotalController { /** * 服务对象 @@ -32,17 +32,6 @@ public class ConsumablesTotalController { @Resource ConsumablesTotalService consumablesTotalService; - /** - * 通过主键查询单条数据 - * - * @param id 主键 - * @return 单条数据 - */ - @GetMapping("selectOne") - public ConsumablesTotal selectOne(Integer id) { - return consumablesTotalService.getById(id); - } - /** * 查询耗材总数 * diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/service/impl/FiveStoreServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/service/impl/FiveStoreServiceImpl.java index 2225fed..c6f66a5 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/service/impl/FiveStoreServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/terminal/service/impl/FiveStoreServiceImpl.java @@ -16,6 +16,7 @@ import com.chushang.inspection.terminal.query.FiveUnifiedStoreDetailsQuery; import com.chushang.inspection.terminal.service.FiveStoreService; import com.chushang.inspection.terminal.service.StoreService; import com.chushang.inspection.terminal.vo.FiveStoreVO; +import com.chushang.oss.entity.dto.UploadBytesDTO; import com.chushang.oss.entity.vo.FileSourceVo; import com.chushang.oss.feign.RemoteOssService; import com.chushang.security.utils.SecurityUtils; @@ -97,7 +98,8 @@ public class FiveStoreServiceImpl extends ServiceImpl> listResult = ossService.uploadFile(outputStream.toByteArray(), "五统一商户明细导出.xlsx", false, "", "fileStore", SecurityConstants.INNER); + Result> listResult = ossService.uploadFile(UploadBytesDTO.builder() + .bytes(outputStream.toByteArray()).build(), "五统一商户明细导出.xlsx", false, "", "fileStore", SecurityConstants.INNER); if (listResult.isSuccess() && CollectionUtil.isNotEmpty(listResult.getData())){ List data = listResult.getData(); diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/utils/PoolUtils.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/utils/PoolUtils.java new file mode 100644 index 0000000..a89343c --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/utils/PoolUtils.java @@ -0,0 +1,67 @@ +package com.chushang.inspection.utils; + +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * @author by zhaowenyuan create 2022/7/26 09:28 + * 线程池 + */ +public enum PoolUtils { + /** + * 线程池 + */ + SENTINEL("WRK-INSPECTION-POOL-SERVICE"), + ; + private final ThreadPoolExecutor instance; + + PoolUtils(String threadName){ + this.instance = new ThreadPoolExecutor( + 5, + 10, + 300L, + TimeUnit.SECONDS, + new LinkedBlockingQueue<>(3000), + new NameThreadFactory(threadName)); + } + + public ThreadPoolExecutor getInstance(){ + return instance; + } + + public void destroy(){ + this.instance.shutdown(); + } + + static class NameThreadFactory implements ThreadFactory{ + private static final AtomicInteger POOL_NUMBER = new AtomicInteger(1); + private final ThreadGroup group; + + private final AtomicInteger threadNumber = new AtomicInteger(1); + private final String namePrefix; + + NameThreadFactory(String name){ + SecurityManager securityManager = System.getSecurityManager(); + group = (securityManager != null) ? securityManager.getThreadGroup() : Thread.currentThread().getThreadGroup(); + if (null == name || name.isEmpty()){ + name = "pool"; + } + namePrefix = name + "-" + POOL_NUMBER.getAndIncrement() + "-thread-"; + } + + @Override + public Thread newThread(Runnable runnable) { + Thread t = new Thread(group, runnable, namePrefix + threadNumber.getAndIncrement(), 0); + if (t.isDaemon()){ + t.setDaemon(false); + } + if (t.getPriority() != Thread.NORM_PRIORITY){ + t.setPriority(Thread.NORM_PRIORITY); + } + return t; + } + } +} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java index eabaeaa..6b62133 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/controller/WrkInfoController.java @@ -78,7 +78,7 @@ public class WrkInfoController { @SysLog(value = "app", businessType = BusinessType.QUERY) @GetMapping("/app/page") @RequiresPermissions("wrk:app:page") - public AjaxResult queryAppPage(@RequestBody @Validated WrkAppQuery query) { + public AjaxResult queryAppPage(@Validated WrkAppQuery query) { boolean isRecheck = TaskConfigUtils.reviewMethod(query.getTaskId()) == 3; Integer wrkStatus = query.getWrkStatus(); List wrkStatusList = new ArrayList<>(); @@ -100,7 +100,7 @@ public class WrkInfoController { @SysLog(value = "工单归档信息", businessType = BusinessType.QUERY) @GetMapping("/archive/page") @RequiresPermissions("wrk:archive:page") - public AjaxResult queryArchivePage(@RequestBody @Validated ReviewedQuery query) { + public AjaxResult queryArchivePage(@Validated ReviewedQuery query) { Integer reviewMethod = TaskConfigUtils.reviewMethod(query.getTaskId()); query.setStates(reviewMethod == 3 ? Lists.newArrayList(4) : Lists.newArrayList(3)); return AjaxResult.success(wrkInfoService.queryArchivePage(query)); @@ -112,7 +112,8 @@ public class WrkInfoController { @SysLog("工单详情") @PostMapping("/info/{wrkId}") @RequiresPermissions("wrk:info") - public AjaxResult info(@PathVariable Long wrkId) { + public AjaxResult info(@PathVariable Long wrkId) + { return AjaxResult.success(wrkInfoService.queryWorkOrderDetails(wrkId)); } @@ -193,4 +194,5 @@ public class WrkInfoController { wrkInfoService.dispatch(query, 0); return AjaxResult.success(); } + } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java index 8f6700d..91cc4c9 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/mapper/WrkInfoMapper.java @@ -8,6 +8,7 @@ import com.chushang.inspection.work.query.WrkAppQuery; import com.chushang.inspection.work.query.WrkInfoQuery; import com.chushang.inspection.work.vo.WrkAuditVO; import com.chushang.inspection.work.vo.WrkDispatchVO; +import com.chushang.inspection.work.vo.WrkInfoDetailsVO; import com.chushang.inspection.work.vo.WrkListAppVO; import org.apache.ibatis.annotations.Param; @@ -25,4 +26,8 @@ public interface WrkInfoMapper extends BaseMapper { List queryArchivePage(@Param("query") ReviewedQuery query, Page page); List queryAppPage(@Param("query") WrkAppQuery query, Page page); + + List listInsTemplate(@Param("query") ReviewedQuery query); + + WrkInfoDetailsVO getWrkInfoDetails(@Param("wrkId") Long wrkId); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java index a9a8d82..dff4b52 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkImgService.java @@ -3,8 +3,12 @@ package com.chushang.inspection.work.service; import com.chushang.inspection.work.dto.ImageDTO; import com.chushang.inspection.work.po.WrkImg; import com.baomidou.mybatisplus.extension.service.IService; +import com.chushang.inspection.work.vo.WrkImgVO; import org.springframework.web.multipart.MultipartFile; +import java.util.List; +import java.util.Set; + /** * @auther: zhao * @date: 2024/6/28 11:25 @@ -15,4 +19,6 @@ public interface WrkImgService extends IService { String uploadPicture(MultipartFile file, Integer imgType, Long wrkId, String locationAddress); void removeImg(ImageDTO image); + + List listImgByWrkIds(Set wrkIds); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java index 06d19de..ca35d89 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/WrkInfoService.java @@ -27,4 +27,6 @@ public interface WrkInfoService extends IService { WrkInfoDetailsVO queryWorkOrderDetails(Long wrkId); List dispatch(DispatchQuery query, int i); + + Long downInspectionTemplate(ReviewedQuery query); } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java index 1a85ac5..2539476 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkImgServiceImpl.java @@ -1,13 +1,39 @@ package com.chushang.inspection.work.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.common.core.exception.ResultException; +import com.chushang.common.core.exception.utils.AssertUtil; +import com.chushang.common.core.util.StringUtils; +import com.chushang.common.core.web.Result; +import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.inspection.work.dto.ImageDTO; +import com.chushang.inspection.work.po.WrkInfo; +import com.chushang.inspection.work.po.WrkInfoStoreRecord; import com.chushang.inspection.work.service.WrkImgService; +import com.chushang.inspection.work.service.WrkInfoService; +import com.chushang.inspection.work.service.WrkInfoStoreRecordService; +import com.chushang.inspection.work.vo.WrkImgVO; +import com.chushang.oss.entity.dto.UploadBytesDTO; +import com.chushang.oss.entity.vo.FileSourceVo; +import com.chushang.oss.feign.RemoteOssService; +import com.chushang.security.utils.SecurityUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.chushang.inspection.work.mapper.WrkImgMapper; import com.chushang.inspection.work.po.WrkImg; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import java.io.IOException; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + /** * @auther: zhao * @date: 2024/6/28 11:25 @@ -15,13 +41,62 @@ import org.springframework.web.multipart.MultipartFile; @Service public class WrkImgServiceImpl extends ServiceImpl implements WrkImgService { + @Resource + RemoteOssService remoteOssService; @Override - public String uploadPicture(MultipartFile file, Integer imgType, Long wrkId, String locationAddress) { - return ""; + @Transactional + public String uploadPicture(MultipartFile file, Integer imgType, Long wrkId, String locationAddress) + { + try { + // locationAddress 用于添加水印 + Result> listResult = remoteOssService.uploadFile(UploadBytesDTO.builder() + .bytes(file.getBytes()).build(), + file.getOriginalFilename(), + StringUtils.isNotEmpty(locationAddress), + locationAddress, + "wrkImg", + SecurityConstants.INNER); + if (listResult.isSuccess() && CollectionUtil.isNotEmpty(listResult.getData())) { + List data = listResult.getData(); + FileSourceVo fileSourceVo = data.get(0); + WrkImg wrkImg = new WrkImg(); + wrkImg.setWrkId(wrkId); + wrkImg.setImgType(imgType); + wrkImg.setFid(fileSourceVo.getFid()); + wrkImg.setSize(fileSourceVo.getSize()); + wrkImg.setDeptId(SecurityUtils.getDeptId()); + wrkImg.setRealPath(fileSourceVo.getFilePath()); + save(wrkImg); + } + throw new ResultException("上传图片失败"); + } catch (IOException e) { + log.error("{}", e); + } + return null; } @Override - public void removeImg(ImageDTO image) { + @Transactional + public void removeImg(ImageDTO image) + { + LambdaQueryWrapper imgSql = WrapperUtils.builder(); + imgSql.eq(WrkImg::getWrkId, image.getWrkId()) + .eq(WrkImg::getImgType, image.getImgType()); + List imgList = list(imgSql); + if (CollectionUtil.isNotEmpty(imgList)){ + Set imgIds = imgList.stream().map(WrkImg::getImgId).collect(Collectors.toSet()); + removeByIds(imgIds); + Set fids = imgList.stream().map(WrkImg::getFid).collect(Collectors.toSet()); + Result stringResult = remoteOssService.delFile(fids, SecurityConstants.INNER); + AssertUtil.invalidate(!stringResult.isSuccess(), stringResult.getMsg()); + } + } + @Override + public List listImgByWrkIds(Set wrkIds) { + List imgList = list(new LambdaQueryWrapper().in(WrkImg::getWrkId, wrkIds)); + if (CollectionUtil.isNotEmpty(imgList)) + return BeanUtil.copyToList(imgList, WrkImgVO.class); + return List.of(); } } diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java index 2ed6727..fa247e1 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoPhoneServiceImpl.java @@ -29,6 +29,7 @@ import com.chushang.inspection.terminal.service.TerminalService; import com.chushang.inspection.work.dto.WrkInfoPhoneImportDTO; import com.chushang.inspection.work.query.WrkInfoQuery; import com.chushang.inspection.work.service.WrkInfoPhoneService; +import com.chushang.oss.entity.dto.UploadBytesDTO; import com.chushang.oss.entity.vo.FileSourceVo; import com.chushang.oss.feign.RemoteOssService; import com.chushang.security.utils.SecurityUtils; @@ -326,7 +327,9 @@ public class WrkInfoPhoneServiceImpl extends ServiceImpl> ossResult = remoteOssService.uploadFile(outputStream.toByteArray(), "", null, null, "", SecurityConstants.INNER); + Result> ossResult = remoteOssService.uploadFile( + UploadBytesDTO.builder().bytes(outputStream.toByteArray()).build() + , "", null, null, "", SecurityConstants.INNER); if (ossResult.isSuccess() && CollectionUtil.isNotEmpty(ossResult.getData())){ List data = ossResult.getData(); FileSourceVo fileSourceVo = data.get(0); diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java index 7c54974..e2b79fc 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/java/com/chushang/inspection/work/service/impl/WrkInfoServiceImpl.java @@ -5,10 +5,13 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.exception.utils.AssertUtil; +import com.chushang.common.core.util.DateUtils; import com.chushang.common.core.util.IPUtils; import com.chushang.common.core.web.Result; import com.chushang.common.mybatis.enums.Operator; @@ -16,6 +19,7 @@ import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.datascope.annotation.DataScope; +import com.chushang.inspection.ins.GeneratedIns; import com.chushang.inspection.project.service.InspectionDataService; import com.chushang.inspection.terminal.po.FiveStore; import com.chushang.inspection.terminal.po.Terminal; @@ -33,6 +37,11 @@ import com.chushang.inspection.work.query.WrkAppQuery; import com.chushang.inspection.work.query.WrkInfoQuery; import com.chushang.inspection.work.service.*; import com.chushang.inspection.work.vo.*; +import com.chushang.security.utils.SecurityUtils; +import com.chushang.task.entity.dto.CreateTaskDTO; +import com.chushang.task.enums.ServiceEnum; +import com.chushang.task.enums.TaskTypeEnum; +import com.chushang.task.feign.RemoteTaskService; import com.chushang.security.entity.po.SysUser; import com.chushang.system.feign.RemoteUserService; import lombok.RequiredArgsConstructor; @@ -43,11 +52,14 @@ import com.chushang.inspection.work.mapper.WrkInfoMapper; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDate; import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.Map; +import java.util.stream.Collectors; /** * @auther: zhao @@ -56,37 +68,26 @@ import java.util.stream.Collectors; @Service @RequiredArgsConstructor public class WrkInfoServiceImpl extends ServiceImpl implements WrkInfoService { - - @Resource - WrkInfoTerminalRecordService terminalRecordService; - @Resource - WrkInfoStoreRecordService storeRecordService; @Resource WrkInfoAuditService infoAuditService; @Resource InspectionDataService inspectionDataService; @Resource WrkImgService wrkImgService; - - @Resource - WrkInfoService wrkInfoService; - @Resource WrkInfoStoreRecordService wrkInfoStoreRecordService; - - @Resource WrkInfoTerminalRecordService wrkInfoTerminalRecordService; - @Resource FiveStoreService fiveStoreService; @Resource TerminalService terminalService; @Resource - StoreService service; - + RemoteTaskService remoteTaskService; @Resource RemoteUserService userFeignService; + @Resource + GeneratedIns generatedIns; @Value("${push.icbc-js.enable:false}") private boolean enable; @@ -113,6 +114,9 @@ public class WrkInfoServiceImpl extends ServiceImpl impl return new PageResult(records, page); } + /** + * app查询 + */ @Override @DataScope(deptAlias = "i") public PageResult queryAppPage(WrkAppQuery query) { @@ -125,38 +129,38 @@ public class WrkInfoServiceImpl extends ServiceImpl impl @Override public WrkInfoDetailsVO queryWorkOrderDetails(Long wrkId) { - WrkInfoDetailsVO infoDetail = new WrkInfoDetailsVO(); - // 终端信息 - WrkInfoTerminalRecord terminalRecord = terminalRecordService.getById(wrkId); - // 商户信息 - WrkInfoStoreRecord storeRecord = storeRecordService.getById(wrkId); - infoDetail.setInfoTerminal(BeanUtil.copyProperties(terminalRecord, WrkInfoTerminalVO.class)); - infoDetail.setInfoStore(BeanUtil.copyProperties(storeRecord, WrkInfoStoreVO.class)); - // 工单信息 - WrkInfo wrkInfo = getById(wrkId); - infoDetail.setWrkInfo(BeanUtil.copyProperties(wrkInfo, WrkInfoVO.class)); +// // 终端信息 +// WrkInfoTerminalRecord terminalRecord = terminalRecordService.getById(wrkId); +// // 商户信息 +// WrkInfoStoreRecord storeRecord = storeRecordService.getById(wrkId); +// // 工单信息 +// WrkInfo wrkInfo = getById(wrkId); +// infoDetail.setInfoTerminal(BeanUtil.copyProperties(terminalRecord, WrkInfoTerminalVO.class)); +// infoDetail.setInfoStore(BeanUtil.copyProperties(storeRecord, WrkInfoStoreVO.class)); +// infoDetail.setWrkInfo(BeanUtil.copyProperties(wrkInfo, WrkInfoVO.class)); + // 商户信息, 终端信息, 工单信息 + WrkInfoDetailsVO infoDetail = baseMapper.getWrkInfoDetails(wrkId); + WrkInfoVO wrkInfo = infoDetail.getWrkInfo(); + if (ObjectUtil.isEmpty(wrkInfo)) return infoDetail; + WrkInfoTerminalVO terminal = infoDetail.getInfoTerminal(); // 工单审核 List auditList = infoAuditService.list(new LambdaQueryWrapper() .eq(WrkInfoAudit::getWrkId, wrkId)); infoDetail.setInfoAudit(BeanUtil.copyToList(auditList, AuditVO.class)); // 工单图片 - List imgList = wrkImgService.list(new LambdaQueryWrapper() - .eq(WrkImg::getImgId, wrkId)); + List imgList = wrkImgService.list(new LambdaQueryWrapper().eq(WrkImg::getImgId, wrkId)); infoDetail.setInfoImg(BeanUtil.copyToList(imgList, WrkImgVO.class)); // 内蒙古 五统一商户 - if (terminalRecord.getTerminalId() != null && "建行内蒙古".equals(TaskConfigUtils.getConfig(wrkInfo.getTaskId()).getName())){ + if (terminal.getTerminalId() != null && "建行内蒙古".equals(TaskConfigUtils.getConfig(wrkInfo.getTaskId()).getName())){ FiveStore fiveStore = fiveStoreService.getOne(new LambdaQueryWrapper() - .eq(FiveStore::getTerminalId, terminalRecord.getTerminalId()).last(Operator.LIMIT_ONE.getCharacter())); + .eq(FiveStore::getTerminalId, terminal.getTerminalId()).last(Operator.LIMIT_ONE.getCharacter())); infoDetail.setFiveStoreDetails(BeanUtil.copyProperties(fiveStore, FiveStoreVO.class)); } // 门头照片 - if (IPUtils.isMobile() && ObjectUtil.equals(wrkInfo.getWrkStatus(), 1) && terminalRecord.getTerminalId() != null) { - infoDetail.getWrkInfo().setDoorImage(wrkImgService.getOne(new LambdaQueryWrapper() - .eq(WrkImg::getWrkId, wrkId) - .eq(WrkImg::getImgType, -1) + if (IPUtils.isMobile() && ObjectUtil.equals(wrkInfo.getWrkStatus(), 1) && terminal.getTerminalId() != null) { + infoDetail.getWrkInfo().setDoorImage(wrkImgService.getOne(new LambdaQueryWrapper().eq(WrkImg::getWrkId, wrkId).eq(WrkImg::getImgType, -1) .last(Operator.LIMIT_ONE.getCharacter())).getRealPath()); } - // 巡检单还没搞 infoDetail.setInspections(inspectionDataService.listInspections(wrkId)); return infoDetail; } @@ -178,6 +182,66 @@ public class WrkInfoServiceImpl extends ServiceImpl impl return List.of(); } + @Override + @DataScope(deptAlias = "i") + public Long downInspectionTemplate(ReviewedQuery query) { + // 先查询是否存在对应的记录 + WrapperUtils.buildSql(query); + Page page = new Page<>(1, 1); + baseMapper.queryArchivePage(query, page); + // 必须 total 大于0, 才走下一步 + AssertUtil.invalidate(page.getTotal() == 0, "下载信息为空"); + DateUtils.format(LocalDate.now()); + // 下载巡检单信息 + Result task = remoteTaskService.createTask(CreateTaskDTO.builder() + .params(JSON.toJSONString(query)) + .taskName(DateUtils.format(LocalDate.now()) + "-" + SecurityUtils.getUsername() + "-导出-" + query.getTaskId() + "-巡检单信息") + .applicationName(ServiceEnum.INSPECTION) + .methodName("downInspectionTemplate") + .className(this.getClass().getName()) + .deptId(SecurityUtils.getDeptId()) + .taskType(TaskTypeEnum.DOWN) + .remark("导出巡检单信息") + .createBy(SecurityUtils.getUsername()) + .build(), SecurityConstants.INNER); + if (task.isSuccess() && task.getData() != null){ + return task.getData(); + } + throw new ResultException("创建后台任务异常"); + } + + /** + * 此处调用后台执行 + */ + public Result downInspectionTemplate(String params){ + ReviewedQuery query = JSON.parseObject(params, ReviewedQuery.class); + // 先查询是否存在对应的记录 + WrapperUtils.buildSql(query); + // 需要导出 工单信息 + List wrkInfoDetailsVOS = baseMapper.listInsTemplate(query); + if (CollectionUtil.isEmpty(wrkInfoDetailsVOS)){ + return Result.failed("查询工单为空"); + } + // 工单map + Map wrkMap = + wrkInfoDetailsVOS.stream().collect(Collectors.toMap(w -> w.getWrkInfo().getWrkId(), o -> o)); + List imgList = wrkImgService.listImgByWrkIds(wrkMap.keySet()); + // 工单图片 +// List imgList = wrkImgService.list(new LambdaQueryWrapper().in(WrkImg::getImgId, wrkMap.keySet())); + Map> imgMap = imgList.stream().collect(Collectors.groupingBy(WrkImgVO::getWrkId)); + List insConfigs = inspectionDataService.listInspections(wrkMap.keySet()); + Map> configMap = insConfigs.stream().collect(Collectors.groupingBy(InspectionConfigVO::getWrkId)); + wrkMap.forEach((wrkId, infoDetail)->{ + List wrkImgs = imgMap.get(wrkId); + infoDetail.setInfoImg(wrkImgs); + List inspectionConfigVOS = configMap.get(wrkId); + infoDetail.setInspections(inspectionConfigVOS); + }); + // 此处 去调用 生成 word 文档 +// generatedIns.generated(wrkMap); + return Result.ok(); + } + private WrkInfo makeWrkInfoEntity(DispatchDTO dispatch,DispatchQuery query,Long userId,String userName,Integer workMethod){ WrkInfo wrkInfo = new WrkInfo(); wrkInfo.setTaskId(query.getTaskId()); @@ -213,7 +277,7 @@ public class WrkInfoServiceImpl extends ServiceImpl impl Assert.notNull(userId, "【{}】未设置商户", dispatchDTO.getAccountManager()); // 组装wrkinfo实体 WrkInfo wrkInfo = makeWrkInfoEntity(dispatchDTO, query, userId,dispatchDTO.getAccountManager(),0); - wrkInfoService.save(wrkInfo); + save(wrkInfo); //组装wrkterminal 实体 WrkInfoTerminalRecord wrkInfoTerminalRecord = BeanUtil.copyProperties(dispatchDTO, WrkInfoTerminalRecord.class); wrkInfoTerminalRecord.setWrkId(wrkInfo.getWrkId()); @@ -232,7 +296,7 @@ public class WrkInfoServiceImpl extends ServiceImpl impl Assert.notNull(nickName, "【{}】未设置商户", dispatchDTO.getAccountManager()); WrkInfo wrkInfo = makeWrkInfoEntity(dispatchDTO, query, query.getUserId(), dispatchDTO.getAccountManager(), method); // 组装wrkinfo实体 - wrkInfoService.save(wrkInfo); + save(wrkInfo); //组装wrkterminal 实体 WrkInfoTerminalRecord wrkInfoTerminalRecord = BeanUtil.copyProperties(dispatchDTO, WrkInfoTerminalRecord.class); wrkInfoTerminalRecord.setWrkId(wrkInfo.getWrkId()); diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/bootstrap.yml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/bootstrap.yml index 5a40295..a493a4d 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/bootstrap.yml +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/bootstrap.yml @@ -13,7 +13,7 @@ spring: discovery: server-addr: ${spring.cloud.nacos.server-addr} namespace: ${nacos.namespace} - group: ${nacos.group} + group: local service: ${spring.application.name} config: server-addr: ${spring.cloud.nacos.server-addr} diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/InspectionDataMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/InspectionDataMapper.xml index 60550c7..72d1a5d 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/InspectionDataMapper.xml +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/InspectionDataMapper.xml @@ -1,46 +1,59 @@ + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + SELECT id.data_id, + id.config_value, + id.remark, + id.ins_id, + idl.detail_id, + idl.config_key, + idl.config_type, + idl.config_label, + ic.config_id, + ic.template, + ic.alias, + ic.config_name, + ic.template_url + FROM inspection_data id + INNER JOIN inspection_detail idl ON id.detail_id = idl.detail_id + INNER JOIN inspection_config ic ON ic.config_id = idl.config_id + WHERE id.del_state = 0 + diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml index 8b22cfa..e7dc4c0 100644 --- a/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/main/resources/mapper/WrkInfoMapper.xml @@ -1,114 +1,246 @@ - - - - - + SELECT i.wrk_id AS wrkId, + i.user_name AS userName, + i.user_id AS userId, + i.dept_id AS deptId, + i.dept_name AS deptName, + i.work_type AS workType, + i.work_no AS workNo, + i.work_sort AS workSort, + i.remark AS remark, + i.end_time AS endTime, + i.create_time AS createTime, + i.create_by AS createBy, + isr.store_id AS storeId, + isr.store_no AS storeName, + isr.store_name AS storeNo, + itr.terminal_id AS terminalId, + itr.terminal_no AS terminalNo, + itr.terminal_sn AS terminalSn, + itr.terminal_type AS terminalType, + itr.terminal_model AS terminalModel + FROM `wrk_info` i + INNER JOIN wrk_info_store_record isr ON i.wrk_id = isr.wrk_id + INNER JOIN wrk_info_terminal_record itr ON i.wrk_id = itr.wrk_id + WHERE i.del_state = 0 + + ${query.sqlParam.get('sqlWhere')} + + ORDER BY i.create_time desc + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + i.wrk_id, + i.`dept_id`, + i.`task_id`, + i.`lower_task_id`, + i.`user_id`, + i.`user_name`, + i.`work_no`, + i.`work_type`, + i.`work_method`, + i.`work_sort`, + i.`work_source`, + i.`dispose_time`, + i.`account_manager`, + i.`account_phone`, + i.`service_result`, + i.`remark`, + i.`end_time`, + i.`create_by`, + i.`create_time`, + i.`task_name`, + i.`lower_task_name`, + i.`dept_name`, + i.`wrk_status`, + isr.`store_id`, + isr.`store_status`, + isr.`store_no`, + isr.`store_name`, + isr.`store_contact`, + isr.`store_phone`, + isr.`store_address`, + isr.`special_num`, + isr.`shop_name`, + isr.`store_type`, + isr.`products`, + isr.`tip_tool`, + isr.`ins_fre`, + isr.`register_address`, + isr.`legal_name`, + isr.`geographic_location`, + isr.`location_address`, + isr.`work_location`, + isr.`work_adderss`, + isr.`deviation`, + isr.`pre_code_encoding`, + itr.`terminal_id`, + itr.`terminal_sn`, + itr.`terminal_type`, + itr.`terminal_model`, + itr.`terminal_no`, + itr.`terminal_source`, + itr.`terminal_address`, + itr.`terminal_version`, + itr.`terminal_property`, + itr.`occupy`, + itr.`terminal_status` + FROM + `wrk_info` i + INNER JOIN wrk_info_store_record isr ON i.wrk_id = isr.wrk_id + INNER JOIN wrk_info_terminal_record itr ON i.wrk_id = itr.wrk_id + WHERE i.del_state = 0 + diff --git a/chushang-modules/chushang-module-inspection/inspection-service/src/test/java/GenInsTest.java b/chushang-modules/chushang-module-inspection/inspection-service/src/test/java/GenInsTest.java new file mode 100644 index 0000000..1cd5205 --- /dev/null +++ b/chushang-modules/chushang-module-inspection/inspection-service/src/test/java/GenInsTest.java @@ -0,0 +1,32 @@ +import com.chushang.InspectionApplication; +import com.chushang.inspection.ins.GeneratedIns; +import com.chushang.inspection.work.service.WrkInfoService; +import lombok.extern.slf4j.Slf4j; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import javax.annotation.Resource; + +/** + * @auther: zhao + * @date: 2024/6/29 14:45 + */ +@Slf4j +@RunWith(SpringRunner.class) +@SpringBootTest(classes = InspectionApplication.class) +public class GenInsTest { + + @Resource + GeneratedIns generatedIns; + @Resource + WrkInfoService wrkInfoService; + + @Test + public void genTest(){ + +// generatedIns.generated(); + } + +}