From 06b549813b755203748ee3c2530868a94e35ccf6 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期五, 25 四月 2025 10:38:41 +0800 Subject: [PATCH] art: 设备管理-点检/周保-批量审批接口 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java | 9 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java | 11 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java | 26 +++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java | 78 +++++++++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java | 10 + lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java | 11 ++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java | 41 ++++++++ lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java | 75 ++++++++++++++ 8 files changed, 257 insertions(+), 4 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java index c549b7e..61eaea9 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.eam.controller; +import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -9,16 +10,23 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.beanutils.BeanMap; +import org.apache.commons.beanutils.BeanUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.util.TranslateDictTextUtils; import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.InspectionStatus; import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; import org.jeecg.modules.eam.entity.EamInspectionOrder; +import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import org.jeecg.modules.eam.request.EamInspectionBatchApprovalRequest; import org.jeecg.modules.eam.request.EamInspectionOrderQuery; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; +import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; import org.jeecg.modules.eam.service.IEamInspectionOrderService; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -26,7 +34,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.*; +import java.lang.reflect.InvocationTargetException; +import java.util.Arrays; +import java.util.List; /** * @Description: 鐐规宸ュ崟 @@ -47,6 +57,8 @@ private ObjectMapper objectMapper; @Autowired private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamInspectionOrderDetailService eamInspectionOrderDetailService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -172,6 +184,67 @@ return Result.OK("鎿嶄綔鎴愬姛"); } + @ApiOperation(value = "鐐规宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "鐐规宸ュ崟-鎵归噺瀹℃壒娴佺▼") + @PostMapping("/batchApproval") + public Result<?> batchApproval(@RequestBody EamInspectionBatchApprovalRequest request) { + if(request == null || CollectionUtil.isEmpty(request.getTastList())) { + return Result.error("娌℃湁闇�瑕佸鎵圭殑鏁版嵁锛�"); + } + int n = 0; + StringBuilder errorMsg = new StringBuilder(); + List<WorkTaskDataVo> tastList = request.getTastList(); + for(WorkTaskDataVo workTaskDataVo : tastList) { + EamInspectionOrderRequest orderRequest = new EamInspectionOrderRequest(); + EamInspectionOrder order = eamInspectionOrderService.getById(workTaskDataVo.getDataId()); + if(order == null) { + errorMsg.append("宸ュ崟ID锛�"); + errorMsg.append(workTaskDataVo.getDataId()); + errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\r\n"); + continue; + } + if(!InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus())) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\r\n"); + continue; + } + List<EamInspectionOrderDetail> tableDetailList = eamInspectionOrderDetailService.queryListByOrderId(order.getId()); + try { + BeanUtils.copyProperties(orderRequest, order); + //瀹℃壒淇℃伅 + orderRequest.setConfirmComment(request.getConfirmComment()); + orderRequest.setConfirmDealType(request.getConfirmDealType()); + //浠诲姟淇℃伅 + orderRequest.setDataId(workTaskDataVo.getDataId()); + orderRequest.setTaskId(workTaskDataVo.getId()); + orderRequest.setUserId(workTaskDataVo.getAssignee()); + orderRequest.setInstanceId(workTaskDataVo.getProcInstId()); + orderRequest.setValues(workTaskDataVo.getVariables()); + orderRequest.setTableDetailList(tableDetailList); + EamInspectionOrder result = eamInspectionOrderService.inspectionProcess(orderRequest); + if(result == null) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触!\r\n"); + continue; + } + n++; + + } catch (Exception e) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触,閿欒鍘熷洜:"); + errorMsg.append(e.getMessage() + "\r\n"); + } + + } + if(n > 0) { + String message = "鎴愬姛瀹℃壒閫氳繃" + n + "鏉¤褰曪紒\r\n" + errorMsg; + return Result.OK(message); + } + return Result.error(errorMsg.toString()); + } + /** * 閫氳繃id鍒犻櫎 * diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java index 30b42ec..8e22a0e 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekMaintenanceOrderController.java @@ -11,6 +11,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.beanutils.BeanUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; @@ -19,9 +20,13 @@ import org.jeecg.modules.eam.constant.OrderCreationMethodEnum; import org.jeecg.modules.eam.constant.WeekMaintenanceStatusEnum; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrder; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; +import org.jeecg.modules.eam.request.EamWeekMaintenanceBatchApprovalRequest; import org.jeecg.modules.eam.request.EamWeekMaintenanceQuery; import org.jeecg.modules.eam.request.EamWeekMaintenanceRequest; +import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService; import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderService; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -50,6 +55,8 @@ private ObjectMapper objectMapper; @Autowired private TranslateDictTextUtils translateDictTextUtils; + @Autowired + private IEamWeekMaintenanceOrderDetailService weekMaintenanceOrderDetailService; /** * 鍒嗛〉鍒楄〃鏌ヨ @@ -291,4 +298,75 @@ } return Result.ok("鎿嶄綔鎴愬姛锛�"); } + + @ApiOperation(value = "鍛ㄤ繚宸ュ崟-鎵归噺瀹℃壒娴佺▼", notes = "鍛ㄤ繚宸ュ崟-鎵归噺瀹℃壒娴佺▼") + @PostMapping("/batchApproval") + public Result<?> batchApproval(@RequestBody EamWeekMaintenanceBatchApprovalRequest request) { + if (request == null || CollectionUtil.isEmpty(request.getTastList())) { + return Result.error("娌℃湁闇�瑕佸鎵圭殑鏁版嵁锛�"); + } + int n = 0; + StringBuilder errorMsg = new StringBuilder(); + List<WorkTaskDataVo> tastList = request.getTastList(); + for (WorkTaskDataVo workTaskDataVo : tastList) { + EamWeekMaintenanceRequest orderRequest = new EamWeekMaintenanceRequest(); + EamWeekMaintenanceOrder order = eamWeekMaintenanceOrderService.getById(workTaskDataVo.getDataId()); + if (order == null) { + errorMsg.append("宸ュ崟ID锛�"); + errorMsg.append(workTaskDataVo.getDataId()); + errorMsg.append(",涓嶅瓨鍦ㄦ垨宸茶鍒犻櫎!\r\n"); + continue; + } + if (!(WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus()) + || WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()) + || WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus()))) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",鐘舵�佹棤娉曟壒閲忓鎵�!\r\n"); + continue; + } + List<EamWeekMaintenanceOrderDetail> tableDetailList = weekMaintenanceOrderDetailService.queryListByOrderId(order.getId()); + try { + BeanUtils.copyProperties(orderRequest, order); + //瀹℃壒淇℃伅 + if (WeekMaintenanceStatusEnum.WAIT_CONFIRM.name().equals(order.getMaintenanceStatus())) { + orderRequest.setConfirmComment(request.getConfirmComment()); + orderRequest.setConfirmDealType(request.getConfirmDealType()); + } else if (WeekMaintenanceStatusEnum.WAIT_INITIAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) { + orderRequest.setInitialAcceptanceComment(request.getInitialAcceptanceComment()); + orderRequest.setInitialAcceptanceFilesResult(request.getInitialAcceptanceFilesResult()); + } else if (WeekMaintenanceStatusEnum.WAIT_FINAL_ACCEPTANCE.name().equals(order.getMaintenanceStatus())) { + orderRequest.setFinalAcceptanceComment(request.getFinalAcceptanceComment()); + orderRequest.setFinalAcceptanceFilesResult(request.getFinalAcceptanceFilesResult()); + } + //浠诲姟淇℃伅 + orderRequest.setDataId(workTaskDataVo.getDataId()); + orderRequest.setTaskId(workTaskDataVo.getId()); + orderRequest.setUserId(workTaskDataVo.getAssignee()); + orderRequest.setInstanceId(workTaskDataVo.getProcInstId()); + orderRequest.setValues(workTaskDataVo.getVariables()); + orderRequest.setTableDetailList(tableDetailList); + EamWeekMaintenanceOrder result = eamWeekMaintenanceOrderService.approval(orderRequest); + if (result == null) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触!\r\n"); + continue; + } + n++; + + } catch (Exception e) { + errorMsg.append("宸ュ崟鍙凤細"); + errorMsg.append(order.getOrderNum()); + errorMsg.append(",瀹℃壒澶辫触,閿欒鍘熷洜:"); + errorMsg.append(e.getMessage() + "\r\n"); + } + + } + if (n > 0) { + String message = "鎴愬姛瀹℃壒閫氳繃" + n + "鏉¤褰曪紒\r\n" + errorMsg; + return Result.OK(message); + } + return Result.error(errorMsg.toString()); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java new file mode 100644 index 0000000..0076369 --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionBatchApprovalRequest.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; + +import java.io.Serializable; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class EamInspectionBatchApprovalRequest implements Serializable { + + /** 纭绫诲瀷 1 閫氳繃 2 椹冲洖 */ + @ApiModelProperty(value = "纭绫诲瀷") + private String confirmDealType; + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + /**浠诲姟鍒楄〃*/ + @ApiModelProperty(value = "浠诲姟鍒楄〃") + private List<WorkTaskDataVo> tastList; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java new file mode 100644 index 0000000..ad3d37a --- /dev/null +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamWeekMaintenanceBatchApprovalRequest.java @@ -0,0 +1,41 @@ +package org.jeecg.modules.eam.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecg.common.api.vo.FileUploadResult; +import org.jeecg.modules.flowable.domain.vo.WorkTaskDataVo; + +import java.io.Serializable; +import java.util.List; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class EamWeekMaintenanceBatchApprovalRequest implements Serializable { + //纭鎿嶄綔 + /**纭鎰忚*/ + @ApiModelProperty(value = "纭鎰忚") + private String confirmComment; + @ApiModelProperty(value = "纭绫诲瀷") + private String confirmDealType; + //鍒濋獙鏀舵搷浣� + /**鍒濋獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "鍒濋獙鏀舵剰瑙�") + private String initialAcceptanceComment; + /**鍒濋獙鏀堕檮浠�*/ + @ApiModelProperty(value = "鍒濋獙鏀堕檮浠�") + private List<FileUploadResult> initialAcceptanceFilesResult; + //缁堥獙鏀舵搷浣� + /**缁堥獙鏀舵剰瑙�*/ + @ApiModelProperty(value = "缁堥獙鏀舵剰瑙�") + private String finalAcceptanceComment; + /**缁堥獙鏀堕檮浠�*/ + @ApiModelProperty(value = "缁堥獙鏀堕檮浠�") + private List<FileUploadResult> finalAcceptanceFilesResult; + + /**浠诲姟鍒楄〃*/ + @ApiModelProperty(value = "浠诲姟鍒楄〃") + private List<WorkTaskDataVo> tastList; +} diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java index 07b2697..0fd64c7 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderDetailService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; +import java.util.List; + /** * @Description: 鐐规宸ュ崟鏄庣粏 * @Author: jeecg-boot @@ -10,5 +12,10 @@ * @Version: V1.0 */ public interface IEamInspectionOrderDetailService extends IService<EamInspectionOrderDetail> { - + /** + * 鑾峰彇宸ュ崟淇濆吇椤瑰唴瀹� + * @param orderId 宸ュ崟ID + * @return + */ + List<EamInspectionOrderDetail> queryListByOrderId(String orderId); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java index e536fa7..6a78ac0 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamWeekMaintenanceOrderDetailService.java @@ -1,7 +1,9 @@ package org.jeecg.modules.eam.service; -import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; + +import java.util.List; /** * @Description: 鍛ㄤ繚宸ュ崟鏄庣粏 @@ -11,4 +13,10 @@ */ public interface IEamWeekMaintenanceOrderDetailService extends IService<EamWeekMaintenanceOrderDetail> { + /** + * 鏍规嵁宸ュ崟ID 鏌ヨ淇濆吇鏄庣粏 + * @param orderId + * @return + */ + List<EamWeekMaintenanceOrderDetail> queryListByOrderId(String orderId); } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java index ae09fde..6ca87cb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderDetailServiceImpl.java @@ -1,10 +1,14 @@ package org.jeecg.modules.eam.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.eam.entity.EamInspectionOrderDetail; import org.jeecg.modules.eam.mapper.EamInspectionOrderDetailMapper; import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; /** * @Description: 鐐规宸ュ崟鏄庣粏 @@ -15,4 +19,11 @@ @Service public class EamInspectionOrderDetailServiceImpl extends ServiceImpl<EamInspectionOrderDetailMapper, EamInspectionOrderDetail> implements IEamInspectionOrderDetailService { + @Override + public List<EamInspectionOrderDetail> queryListByOrderId(String orderId) { + LambdaQueryWrapper<EamInspectionOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamInspectionOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamInspectionOrderDetail::getItemCode); + return super.list(queryWrapper); + } } diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java index 6f7c727..63539fb 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamWeekMaintenanceOrderDetailServiceImpl.java @@ -1,11 +1,13 @@ package org.jeecg.modules.eam.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.eam.entity.EamWeekMaintenanceOrderDetail; import org.jeecg.modules.eam.mapper.EamWeekMaintenanceOrderDetailMapper; import org.jeecg.modules.eam.service.IEamWeekMaintenanceOrderDetailService; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; /** * @Description: 鍛ㄤ繚宸ュ崟鏄庣粏 @@ -16,4 +18,11 @@ @Service public class EamWeekMaintenanceOrderDetailServiceImpl extends ServiceImpl<EamWeekMaintenanceOrderDetailMapper, EamWeekMaintenanceOrderDetail> implements IEamWeekMaintenanceOrderDetailService { + @Override + public List<EamWeekMaintenanceOrderDetail> queryListByOrderId(String orderId) { + LambdaQueryWrapper<EamWeekMaintenanceOrderDetail> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EamWeekMaintenanceOrderDetail::getOrderId, orderId); + queryWrapper.orderByAsc(EamWeekMaintenanceOrderDetail::getItemCode); + return super.list(queryWrapper); + } } -- Gitblit v1.9.3