Commit 07a9df18 by xieshaohua

[修改]工单数据保存接口支持批量

parent b5c8c19d
...@@ -28,10 +28,16 @@ public class WorkOrderDataVO { ...@@ -28,10 +28,16 @@ public class WorkOrderDataVO {
private String dataId; private String dataId;
/** /**
* 资产名称 * 资产英文名称
*/ */
@Schema(description = "资产名称") @Schema(description = "资产英文名称")
private String name; private String name;
/**
* 资产名称
*/
@Schema(description = "资产中文名称")
private String cnName;
/** /**
* 资产编号 * 资产编号
*/ */
......
...@@ -4,6 +4,7 @@ import com.keymobile.governworkorder.common.bo.WorkOrderDataVO; ...@@ -4,6 +4,7 @@ import com.keymobile.governworkorder.common.bo.WorkOrderDataVO;
import com.keymobile.governworkorder.common.bo.WorkOrderInfoVO; import com.keymobile.governworkorder.common.bo.WorkOrderInfoVO;
import com.keymobile.governworkorder.common.bo.WorkOrderProcessVO; import com.keymobile.governworkorder.common.bo.WorkOrderProcessVO;
import com.keymobile.governworkorder.core.dto.WorkOrdeQueryDto; import com.keymobile.governworkorder.core.dto.WorkOrdeQueryDto;
import com.keymobile.governworkorder.core.dto.WorkOrderConfirmDataDto;
import com.keymobile.governworkorder.core.persistence.model.WorkOrderData; import com.keymobile.governworkorder.core.persistence.model.WorkOrderData;
import com.keymobile.governworkorder.core.service.WorkOrderService; import com.keymobile.governworkorder.core.service.WorkOrderService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
...@@ -60,16 +61,15 @@ public class WorkOrderApi { ...@@ -60,16 +61,15 @@ public class WorkOrderApi {
@RequestMapping(value = "/saveData", method = {RequestMethod.POST}) @RequestMapping(value = "/saveData", method = {RequestMethod.POST})
@Operation(summary = "保存工单关联资产数据", description = "") @Operation(summary = "保存工单关联资产数据", description = "")
public void saveData(@RequestParam String workOrderId, @RequestBody WorkOrderDataVO workOrderDataVO) { public List<WorkOrderDataVO> saveData(@RequestParam String workOrderId, @RequestBody List<WorkOrderDataVO> workOrderDataVOList) {
workOrderService.saveData(workOrderId, workOrderDataVO); return workOrderService.saveData(workOrderId, workOrderDataVOList);
} }
@RequestMapping(value = "/confirmData", method = {RequestMethod.POST}) @RequestMapping(value = "/confirmData", method = {RequestMethod.POST})
@Operation(summary = "确认数据", description = "") @Operation(summary = "确认数据", description = "")
public void confirmData(@RequestParam String workOrderId, public void confirmData(@RequestParam String workOrderId,
@RequestParam String workOrderDataId, @RequestParam List<WorkOrderConfirmDataDto> confirmDataList) {
@RequestParam String confirmStatus) { workOrderService.confirmData(workOrderId, confirmDataList);
workOrderService.confirmData(workOrderId, workOrderDataId, confirmStatus);
} }
@RequestMapping(value = "/delete", method = {RequestMethod.POST}) @RequestMapping(value = "/delete", method = {RequestMethod.POST})
......
package com.keymobile.governworkorder.core.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* @author xiesh
* @version 1.0.0
* @date 2025/8/20
* @desc 工单数据确认
*/
@Data
@Schema(description = "工单数据确认")
public class WorkOrderConfirmDataDto {
@Schema(description = "关联的数据id")
private String id;
@Schema(description = "是否确认 已确认、未确认")
private String confirmStatus;
}
...@@ -28,9 +28,14 @@ public class WorkOrderData { ...@@ -28,9 +28,14 @@ public class WorkOrderData {
private String dataId; private String dataId;
/** /**
* 资产名称 * 资产英文名称
*/ */
private String name; private String name;
/**
* 资产中文名称
*/
private String cnName;
/** /**
* 资产编号 * 资产编号
*/ */
......
...@@ -4,6 +4,7 @@ import com.keymobile.governworkorder.common.bo.WorkOrderDataVO; ...@@ -4,6 +4,7 @@ import com.keymobile.governworkorder.common.bo.WorkOrderDataVO;
import com.keymobile.governworkorder.common.bo.WorkOrderInfoVO; import com.keymobile.governworkorder.common.bo.WorkOrderInfoVO;
import com.keymobile.governworkorder.common.bo.WorkOrderProcessVO; import com.keymobile.governworkorder.common.bo.WorkOrderProcessVO;
import com.keymobile.governworkorder.core.dto.WorkOrdeQueryDto; import com.keymobile.governworkorder.core.dto.WorkOrdeQueryDto;
import com.keymobile.governworkorder.core.dto.WorkOrderConfirmDataDto;
import com.keymobile.governworkorder.core.persistence.model.WorkOrderProcess; import com.keymobile.governworkorder.core.persistence.model.WorkOrderProcess;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
...@@ -24,9 +25,9 @@ public interface WorkOrderService { ...@@ -24,9 +25,9 @@ public interface WorkOrderService {
void approvalProcess(String workOrderId, WorkOrderProcessVO process); void approvalProcess(String workOrderId, WorkOrderProcessVO process);
WorkOrderDataVO saveData(String workOrderId, WorkOrderDataVO workOrderDataVO); List<WorkOrderDataVO> saveData(String workOrderId, List<WorkOrderDataVO> workOrderDataVOList);
void confirmData(String workOrderId, String workOrderDataId, String confirmStatus); void confirmData(String workOrderId, List<WorkOrderConfirmDataDto> confirmDataList);
void delete(String workOrderId, boolean force); void delete(String workOrderId, boolean force);
......
...@@ -5,6 +5,7 @@ import com.keymobile.governworkorder.common.bo.WorkOrderInfoVO; ...@@ -5,6 +5,7 @@ import com.keymobile.governworkorder.common.bo.WorkOrderInfoVO;
import com.keymobile.governworkorder.common.bo.WorkOrderProcessVO; import com.keymobile.governworkorder.common.bo.WorkOrderProcessVO;
import com.keymobile.governworkorder.common.type.*; import com.keymobile.governworkorder.common.type.*;
import com.keymobile.governworkorder.core.dto.WorkOrdeQueryDto; import com.keymobile.governworkorder.core.dto.WorkOrdeQueryDto;
import com.keymobile.governworkorder.core.dto.WorkOrderConfirmDataDto;
import com.keymobile.governworkorder.core.messaging.WorkOrderMessageService; import com.keymobile.governworkorder.core.messaging.WorkOrderMessageService;
import com.keymobile.governworkorder.core.persistence.model.WorkOrderProcess; import com.keymobile.governworkorder.core.persistence.model.WorkOrderProcess;
import com.keymobile.governworkorder.core.persistence.model.WorkOrderData; import com.keymobile.governworkorder.core.persistence.model.WorkOrderData;
...@@ -185,33 +186,44 @@ public class WorkOrderServiceImpl implements WorkOrderService { ...@@ -185,33 +186,44 @@ public class WorkOrderServiceImpl implements WorkOrderService {
} }
@Override @Override
public WorkOrderDataVO saveData(String workOrderId, WorkOrderDataVO workOrderDataVO) { public List<WorkOrderDataVO> saveData(String workOrderId, List<WorkOrderDataVO> workOrderDataVOList) {
WorkOrderData workOrderData = BeanUtil.map(workOrderDataVO, WorkOrderData.class);
WorkOrderInfo workOrder = mongoTemplate.findById(workOrderId, WorkOrderInfo.class); WorkOrderInfo workOrder = mongoTemplate.findById(workOrderId, WorkOrderInfo.class);
Assert.notNull(workOrder, "找不到对应工单"); Assert.notNull(workOrder, "找不到对应工单");
//非发起人和处理人无法操作 //非发起人和处理人无法操作
if (!StringUtils.equals(LogManager.getUserName(), workOrder.getCreateUserName()) if (!contains(workOrder.getNextUserName(), LogManager.getUserName())
&& !StringUtils.equals(LogManager.getUserName(), workOrder.getHandleUserName())) { || !StringUtils.equals(LogManager.getUserName(), workOrder.getHandleUserName())) {
throw new RuntimeException("您无权限编辑关联数据"); throw new RuntimeException("您无权限编辑关联数据");
} }
fillWorkOrderData(workOrder, workOrderData); List<WorkOrderDataVO> result = new ArrayList<>();
workOrderData = mongoTemplate.save(workOrderData); for (WorkOrderDataVO workOrderDataVO : workOrderDataVOList) {
return BeanUtil.map(workOrderData, WorkOrderDataVO.class); WorkOrderData workOrderData = BeanUtil.map(workOrderDataVO, WorkOrderData.class);
fillWorkOrderData(workOrder, workOrderData);
workOrderData = mongoTemplate.save(workOrderData);
result.add(BeanUtil.map(workOrderData, WorkOrderDataVO.class));
}
return result;
} }
@Override @Override
public void confirmData(String workOrderId, String workOrderDataId, String confirmStatus) { public void confirmData(String workOrderId, List<WorkOrderConfirmDataDto> confirmDataList) {
WorkOrderInfo workOrder = mongoTemplate.findById(workOrderId, WorkOrderInfo.class); WorkOrderInfo workOrder = mongoTemplate.findById(workOrderId, WorkOrderInfo.class);
Assert.notNull(workOrder, "找不到对应工单"); Assert.notNull(workOrder, "找不到对应工单");
WorkOrderData workOrderData = mongoTemplate.findById(workOrderDataId, WorkOrderData.class);
Assert.notNull(workOrderData, "找不到对应数据");
if (!StringUtils.equals(OrderProcessStageTypeEnum.PROCESS_APPROVER.getName(), workOrder.getStage()) if (!StringUtils.equals(OrderProcessStageTypeEnum.PROCESS_APPROVER.getName(), workOrder.getStage())
|| contains(workOrder.getNextUserName(), LogManager.getUserName())) { || contains(workOrder.getNextUserName(), LogManager.getUserName())) {
throw new RuntimeException("非审批人无法确认工单"); throw new RuntimeException("非审批人无法确认工单");
} }
workOrderData.setConfirmStatus(confirmStatus); for (WorkOrderConfirmDataDto item : confirmDataList) {
mongoTemplate.save(workOrderData); WorkOrderData workOrderData = mongoTemplate.findById(item.getId(), WorkOrderData.class);
if (workOrderData == null) {
log.error("未找到对应关联数据:{}", ObjectUtil.toJson(item));
continue;
}
workOrderData.setConfirmStatus(item.getConfirmStatus());
mongoTemplate.save(workOrderData);
}
} }
public void delete(String workOrderId, boolean force) { public void delete(String workOrderId, boolean force) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment