From 96e520a9c5407310d03792b6012195f516f0233b Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 23 八月 2024 15:15:57 +0800 Subject: [PATCH] 定时任务工单生成bug修改 --- ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 19 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java | 2 ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml | 17 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java | 2 ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml | 4 pom.xml | 2 ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java | 17 ++++ ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java | 2 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderErrorTypeServiceImpl.java | 14 +++ ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java | 4 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrder.java | 5 + ycl-server/src/main/java/com/ycl/platform/service/WorkOrderErrorTypeService.java | 11 ++ ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 30 ++++++- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 100 +++++++++++++----------- ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 2 15 files changed, 169 insertions(+), 62 deletions(-) diff --git a/pom.xml b/pom.xml index 7d28752..c2ea5e9 100644 --- a/pom.xml +++ b/pom.xml @@ -35,7 +35,7 @@ <aliyun.sdk.oss.version>3.10.2</aliyun.sdk.oss.version> <knife4j.version>3.0.2</knife4j.version> <aspectj.version>1.9.4</aspectj.version> - <mybatis-plus.version>3.5.4</mybatis-plus.version> + <mybatis-plus.version>3.5.4.1</mybatis-plus.version> <jwt.version>0.9.1</jwt.version> <jaxb-api.version>2.3.1</jaxb-api.version> <poi.version>4.1.2</poi.version> diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrder.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrder.java index 33fd914..11b5d0e 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrder.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrder.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDateTime; +import java.util.List; import com.ycl.platform.base.AbsEntity; import enumeration.general.WorkOrderStatusEnum; @@ -81,4 +82,8 @@ @ApiModelProperty("鏄惁鎵h繃绉垎") @TableField("deduct") private Boolean deduct; + + + @TableField(exist=false) + private List<String> errorTypeList; } diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java index 9921ce6..05fb50d 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderDistributeRecord.java @@ -28,8 +28,8 @@ private static final long serialVersionUID = 1L; @ApiModelProperty("宸ュ崟ID") - @TableField("work_order_id") - private Integer workOrderId; + @TableField("work_order_no") + private String workOrderNo; @ApiModelProperty("涓嬪彂浜�") @TableField("user_id") diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java index 8fd7185..f828bdc 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/WorkOrderErrorType.java @@ -1,6 +1,7 @@ package com.ycl.platform.domain.entity; +import com.baomidou.mybatisplus.annotation.TableName; import com.ycl.platform.base.AbsEntity; import lombok.AllArgsConstructor; import lombok.Data; @@ -15,6 +16,7 @@ @NoArgsConstructor @AllArgsConstructor @EqualsAndHashCode(callSuper = true) +@TableName("t_work_order_error_type") public class WorkOrderErrorType extends AbsEntity { /** diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java index c1f4c82..fab30c1 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/DistributeWorkOrderQuery.java @@ -35,7 +35,7 @@ * 宸ュ崟id */ @JsonProperty("ids") - private List<Integer> ids; + private List<String> workOrderNOList; /** * 鍏抽敭璇� diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java index 0f1824c..3ac3500 100644 --- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java +++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/WorkOrderVO.java @@ -54,7 +54,7 @@ private Boolean important; /** 鏁呴殰绫诲瀷 */ - private String errorType; + private List<String> errorTypeList; /** 杩愮淮浜哄憳 */ private Integer ywPeopleId; diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java index 650e14a..21fef3c 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderErrorTypeMapper.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.WorkOrderErrorType; +import org.apache.ibatis.annotations.Param; +import org.springframework.security.core.parameters.P; import org.springframework.stereotype.Repository; import java.util.List; @@ -69,4 +71,19 @@ */ int insertWorkOrderErrorTypeList(List<WorkOrderErrorType> workOrderErrorTypeList); + /** + * 鏌ヨ鏈畬鎴愮殑宸ュ崟鐨勯敊璇被鍨� + * + * @param workOrderNo + * @return + */ + List<String> getNotFinishWorkOrderErrors(@Param("workOrderNo") String workOrderNo); + + /** + * 鎵归噺娣诲姞宸ュ崟鏁呴殰 + * + * @param errorTypeList + * @return + */ + int addMany(@Param("errorTypeList") List<WorkOrderErrorType> errorTypeList); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java index fdbf66b..bb16fb9 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java @@ -70,4 +70,6 @@ * @return */ List<DeviceInfoVO> hasErrorWorkOrderList(); + + int addMany(@Param("workOrderList") List<WorkOrder> workOrderList); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderErrorTypeService.java b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderErrorTypeService.java new file mode 100644 index 0000000..3e104be --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/service/WorkOrderErrorTypeService.java @@ -0,0 +1,11 @@ +package com.ycl.platform.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.platform.domain.entity.WorkOrderErrorType; + +/** + * @author锛歺p + * @date锛�2024/8/23 11:36 + */ +public interface WorkOrderErrorTypeService extends IService<WorkOrderErrorType> { +} diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java index d48d425..d68398a 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java @@ -9,7 +9,10 @@ import enumeration.general.WorkOrderStatusEnum; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -30,18 +33,26 @@ */ @Override public void imageDetectionCheck(List<ImageDetectionResult> dataList) { - List<WorkOrder> workOrderList = dataList.stream().map(item -> { + List<WorkOrder> workOrderList = dataList.stream().filter(item -> 0 == item.getSigna1() + || 0 == item.getColor() + || 0 == item.getSnow() + || 0 == item.getStripe() + || 0 == item.getShade() + || 0 == item.getBlur() + || 0 == item.getLight() + ) + .map(item -> { WorkOrder workOrder = new WorkOrder(); // 淇″彿缂哄け - if (0 == item.getSigna1()) { + if (0 == item.getSigna1() ) { this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId()); } // 鐢婚潰鍋忚壊 - if (0 == item.getColor()) { + if ( 0 == item.getColor()) { this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId()); } // 闆姳骞叉壈 - if (0 == item.getSnow()) { + if ( 0 == item.getSnow()) { this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId()); } // 鏉$汗骞叉壈 @@ -130,8 +141,15 @@ * @param serialNumber 鍥芥爣鐮� */ private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) { - workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); - workOrder.setErrorType(errorType.getValue()); + if (! StringUtils.hasText(workOrder.getWorkOrderNo())) { + workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); + } + if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) { + workOrder.setErrorTypeList(new ArrayList<>()); + workOrder.getErrorTypeList().add(errorType.getValue()); + } else { + workOrder.getErrorTypeList().add(errorType.getValue()); + } workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); workOrder.setSerialNumber(serialNumber); } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderErrorTypeServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderErrorTypeServiceImpl.java new file mode 100644 index 0000000..3026a32 --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderErrorTypeServiceImpl.java @@ -0,0 +1,14 @@ +package com.ycl.platform.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.platform.domain.entity.WorkOrderErrorType; +import com.ycl.platform.mapper.WorkOrderErrorTypeMapper; +import org.springframework.stereotype.Service; + +/** + * @author锛歺p + * @date锛�2024/8/23 11:36 + */ +@Service +public class WorkOrderErrorTypeServiceImpl extends ServiceImpl<WorkOrderErrorTypeMapper, WorkOrderErrorType> { +} diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java index c298405..f763df1 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java @@ -83,7 +83,7 @@ private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; private final NotifyService notifyService; private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper; - private final WorkOrderErrorTypeMapper workOrderErrorTypeMapper; + private final WorkOrderErrorTypeServiceImpl workOrderErrorTypeService; private final SysConfigMapper configMapper; private final ServerConfig serverConfig; private final ReportMapper reportMapper; @@ -111,41 +111,35 @@ List<String> serialNumberList = workOrderList.stream().map(WorkOrder::getSerialNumber).collect(Collectors.toList()); // 鏌ュ嚭鏁版嵁搴撲腑鍥芥爣鐮佸搴旂殑鏈畬鎴愮殑宸ュ崟 List<WorkOrder> inDatabaseWorkOrderList = new LambdaQueryChainWrapper<>(baseMapper) - .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getErrorType) + .select(WorkOrder::getId, WorkOrder::getSerialNumber, WorkOrder::getStatus, WorkOrder::getWorkOrderNo) .in(WorkOrder::getSerialNumber, serialNumberList) .ne(WorkOrder::getStatus, WorkOrderStatusEnum.AUDITING_SUCCESS) .list(); Map<String, WorkOrder> mapping = inDatabaseWorkOrderList.stream().collect((Collectors.toMap(WorkOrder::getSerialNumber, workOrder -> workOrder))); List<WorkOrder> waitAddList = new ArrayList<>(48); + List<WorkOrderErrorType> waitAddErrorTypeList = new ArrayList<>(48); Integer updateNum = 0; - + Date now = new Date(); for (WorkOrder workOrder : workOrderList) { WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber()); if (Objects.nonNull(databaseWorkOrder)) { - List<WorkOrderErrorType> workOrderErrorTypeList = new LambdaQueryChainWrapper<>(workOrderErrorTypeMapper) - .select(WorkOrderErrorType::getErrorName) - .eq(WorkOrderErrorType::getWorkOrderNo, workOrder.getWorkOrderNo()) - .list(); - List<String> errorNameList = workOrderErrorTypeList.stream().map(WorkOrderErrorType::getErrorName).collect(Collectors.toList()); - String errorType = databaseWorkOrder.getErrorType(); - if (errorNameList.contains(errorType)) { + List<String> errorNameList = workOrderErrorTypeService.getBaseMapper().getNotFinishWorkOrderErrors(workOrder.getWorkOrderNo()); + List<String> errorTypes = workOrder.getErrorTypeList(); + if (errorNameList.containsAll(errorTypes)) { // 濡傛灉锛屽浗鏍囩爜銆佹晠闅滅被鍨嬮兘涓�鏍凤紝鍒欒烦杩囦笉澶勭悊 continue; } else { - // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨柊澧炰竴涓敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞� - List<SysDictData> errorTypeDictList = dictDataMapper.selectDictDataByType("error_type"); - String finalErrorType = errorType; - List<SysDictData> targetErrorTypes = errorTypeDictList.stream().filter(item -> finalErrorType.equals(item.getDictValue())).collect(Collectors.toList()); - if (! CollectionUtils.isEmpty(targetErrorTypes)) { - errorType = targetErrorTypes.get(0).getDictValue(); + for (String errorType : errorTypes) { + if (! errorNameList.contains(errorType)) { + // 閿欒绫诲瀷涓嶄竴鏍凤紝灏辨柊澧炰竴涓敊璇被鍨嬶紝骞朵笖閲嶇疆宸ュ崟鐘舵�佷负寰呭鐞� + WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); + workOrderErrorType.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo()); + workOrderErrorType.setCreateTime(now); + workOrderErrorType.setUpdateTime(now); + workOrderErrorType.setErrorName(errorType); + workOrderErrorTypeService.save(workOrderErrorType); + } } - WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); - workOrderErrorType.setWorkOrderNo(databaseWorkOrder.getWorkOrderNo()); - Date now = new Date(); - workOrderErrorType.setCreateTime(now); - workOrderErrorType.setUpdateTime(now); - workOrderErrorTypeMapper.insert(workOrderErrorType); - databaseWorkOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); databaseWorkOrder.setUpdateTime(now); baseMapper.updateById(databaseWorkOrder); @@ -190,26 +184,40 @@ continue; } workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); - workOrder.setUnitId(Math.toIntExact(point.getUnitId())); + if (Objects.nonNull(point.getUnitId())) { + workOrder.setUnitId(Math.toIntExact(point.getUnitId())); + } if (point.getImportantTag() || point.getImportantCommandImageTag()) { workOrder.setProcessingPeriod(Integer.valueOf(important.getConfigValue())); } else { workOrder.setProcessingPeriod(Integer.valueOf(normal.getConfigValue())); + } + // 淇濆瓨閿欒绫诲瀷 + for (String errorType : workOrder.getErrorTypeList()) { + WorkOrderErrorType workOrderErrorType = new WorkOrderErrorType(); + workOrderErrorType.setWorkOrderNo(workOrder.getWorkOrderNo()); + workOrderErrorType.setCreateTime(now); + workOrderErrorType.setUpdateTime(now); + workOrderErrorType.setErrorName(errorType); + waitAddErrorTypeList.add(workOrderErrorType); } } waitAddList.removeAll(notAddList); if (CollectionUtils.isEmpty(waitAddList)) { return Boolean.TRUE; } - this.saveBatch(waitAddList); + // 淇濆瓨宸ュ崟鍜屾晠闅滅被鍨� + baseMapper.addMany(waitAddList); + if (! CollectionUtils.isEmpty(waitAddErrorTypeList)) { + workOrderErrorTypeService.getBaseMapper().addMany(waitAddErrorTypeList); + } // 濡傛灉鏄洿鎺ヤ笅鍙戯紝娣诲姞涓嬪彂璁板綍 if (WorkOrderStatusEnum.DISTRIBUTED.equals(waitAddList.get(0).getStatus())) { List<WorkOrderDistributeRecord> distributedRecordList = waitAddList.stream().map(item -> { WorkOrderDistributeRecord workOrderDistributeRecord = new WorkOrderDistributeRecord(); - workOrderDistributeRecord.setWorkOrderId(item.getId()); + workOrderDistributeRecord.setWorkOrderNo(item.getWorkOrderNo()); workOrderDistributeRecord.setDistributeWay(WorkOrderDistributeWayEnum.DIRECT_DISTRIBUTE); workOrderDistributeRecord.setUserId(1L); - Date now = new Date(); workOrderDistributeRecord.setCreateTime(now); workOrderDistributeRecord.setUpdateTime(now); return workOrderDistributeRecord; @@ -236,7 +244,7 @@ entity.setUpdateTime(now); entity.setErrorType(String.join(",", form.getErrorType())); List<WorkOrderErrorType> workOrderErrorTypes = form.getErrorType().stream().map(errorType -> new WorkOrderErrorType(entity.getWorkOrderNo(), errorType)).toList(); - workOrderErrorTypeMapper.insertWorkOrderErrorTypeList(workOrderErrorTypes); + workOrderErrorTypeService.getBaseMapper().insertWorkOrderErrorTypeList(workOrderErrorTypes); if(baseMapper.insert(entity) > 0) { return Result.ok("娣诲姞鎴愬姛"); } @@ -421,7 +429,6 @@ public Result page(WorkOrderQuery query) { IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); baseMapper.page(page, query); - page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); return Result.ok().data(page.getRecords()).total(page.getTotal()); } @@ -429,7 +436,6 @@ public Result distributePage(DistributeWorkOrderQuery query) { IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); baseMapper.distributePage(page, query); - page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); return Result.ok().data(page).total(page.getTotal()); } @@ -464,20 +470,20 @@ .orderByDesc(WorkOrder::getCreateTime) .last("limit " + data.getFastNumLimit()) .list(); - List<Integer> ids = list.stream().map(WorkOrder::getId).toList(); + List<String> workOrderNoList = list.stream().map(WorkOrder::getWorkOrderNo).toList(); List<String> serialNumberList = list.stream().map(WorkOrder::getSerialNumber).toList(); - if (ids.isEmpty()) { return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); } + if (workOrderNoList.isEmpty()) { return Result.error("娌℃湁绗﹀悎鏉′欢鐨勫伐鍗�"); } if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); } try { new LambdaUpdateChainWrapper<>(baseMapper) .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) - .in(WorkOrder::getId, ids) + .in(WorkOrder::getWorkOrderNo, workOrderNoList) .update(); - addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE); + addDistributeRecord(workOrderNoList, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE); // 鍚屾鐐逛綅鐘舵�� ywPointService.updateRecovery(serialNumberList, 1); - return Result.ok("鎴愬姛涓嬪彂" + ids.size() + "鏉″伐鍗�"); + return Result.ok("鎴愬姛涓嬪彂" + workOrderNoList.size() + "鏉″伐鍗�"); } catch (Exception e) { return Result.error("鎿嶄綔澶辫触"); } finally { @@ -491,27 +497,27 @@ WorkOrderDistributeWayEnum distributeWayEnum = WorkOrderDistributeWayEnum.SELECTED_DISTRIBUTE; if (!getDistributeLock()) { return Result.error("姝ゅ埢鏈変汉涓嬪彂涓紝涓洪伩鍏嶅啿绐侊紝璇风◢鍚庨噸璇�"); } try { - if (query.getIds().isEmpty()) { - query.setIds(new LambdaQueryChainWrapper<>(baseMapper) + if (query.getWorkOrderNOList().isEmpty()) { + query.setWorkOrderNOList(new LambdaQueryChainWrapper<>(baseMapper) .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) .eq(Objects.nonNull(query.getUnitId()), WorkOrder::getUnitId, query.getUnitId()) .select(WorkOrder::getId) .list() .stream() - .map(WorkOrder::getId) + .map(WorkOrder::getWorkOrderNo) .collect(Collectors.toList())); distributeWayEnum = WorkOrderDistributeWayEnum.ALL_DISTRIBUTE; } - if (query.getIds().isEmpty()) { return Result.error("娌℃湁宸ュ崟寰呬笅鍙�"); } + if (query.getWorkOrderNOList().isEmpty()) { return Result.error("娌℃湁宸ュ崟寰呬笅鍙�"); } new LambdaUpdateChainWrapper<>(baseMapper) .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) - .in(WorkOrder::getId, query.getIds()) + .in(WorkOrder::getWorkOrderNo, query.getWorkOrderNOList()) .update(); - addDistributeRecord(query.getIds(), distributeWayEnum); + addDistributeRecord(query.getWorkOrderNOList(), distributeWayEnum); // 鍚屾鐐逛綅鐘舵�� - List<String> serialNumberList = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getSerialNumber).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getSerialNumber).toList(); + List<String> serialNumberList = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getSerialNumber).in(WorkOrder::getId, query.getWorkOrderNOList()).list().stream().map(WorkOrder::getSerialNumber).toList(); ywPointService.updateRecovery(serialNumberList, 1); - return Result.ok("鎴愬姛涓嬪彂" + query.getIds().size() + "鏉″伐鍗�"); + return Result.ok("鎴愬姛涓嬪彂" + query.getWorkOrderNOList().size() + "鏉″伐鍗�"); } catch (Exception e) { return Result.error("鎿嶄綔澶辫触"); } finally { @@ -541,13 +547,13 @@ /** * 娣诲姞宸ュ崟涓嬪彂璁板綍 - * @param ids 宸ュ崟id + * @param workOrderNoList 宸ュ崟id */ - private void addDistributeRecord(List<Integer> ids, WorkOrderDistributeWayEnum distributeWay) { + private void addDistributeRecord(List<String> workOrderNoList, WorkOrderDistributeWayEnum distributeWay) { LoginUser loginUser = SecurityUtils.getLoginUser(); workOrderDistributeRecordMapper.insertBatch( - ids.stream() - .map(id -> new WorkOrderDistributeRecord(id, loginUser.getUserId(), distributeWay)) + workOrderNoList.stream() + .map(no -> new WorkOrderDistributeRecord(no, loginUser.getUserId(), distributeWay)) .toList() ); } diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml index 7266faf..5578c87 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderDistributeRecordMapper.xml @@ -4,10 +4,10 @@ <insert id="insertBatch"> - insert into t_work_order_distribute_record (work_order_id, user_id, create_time, deleted, distribute_way) + insert into t_work_order_distribute_record (work_order_no, user_id, create_time, deleted, distribute_way) values <foreach collection="list" item="item" separator=","> - (#{item.workOrderId}, #{item.userId}, now(), '0', #{item.distributeWay}) + (#{item.workOrderNo}, #{item.userId}, now(), '0', #{item.distributeWay}) </foreach> </insert> </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml index 5c80034..5505241 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderErrorTypeMapper.xml @@ -82,4 +82,19 @@ </foreach> </insert> -</mapper> \ No newline at end of file + <select id="getNotFinishWorkOrderErrors" resultType="string"> + SELECT + ot.error_name + FROM + t_work_order_error_type ot + INNER JOIN t_work_order wo ON wo.work_order_no = ot.work_order_no AND wo.work_order_no = #{workOrderNo} AND wo.status != 'AUDITING_SUCCESS' + </select> + + <insert id="addMany"> + INSERT INTO t_work_order_error_type (work_order_no, error_name, create_time, update_time, deleted) VALUES + <foreach collection="errorTypeList" item="errorType" separator=","> + (#{errorType.workOrderNo}, #{errorType.errorName}, #{errorType.createTime}, #{errorType.updateTime}, 0) + </foreach> + </insert> + +</mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml index 2c4687d..4111b0c 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml @@ -15,9 +15,19 @@ <result column="yw_check_result" property="ywCheckResult"/> <result column="overtime" property="overtime"/> <result column="deduct" property="deduct"/> + <collection property="errorTypeList" select="getErrorType" ofType="string" column="work_order_no"> + </collection> </resultMap> - <select id="page" resultType="com.ycl.platform.domain.vo.WorkOrderVO"> + <select id="getErrorType" resultType="string"> + SELECT DISTINCT da.dict_label + FROM + t_work_order_error_type et + LEFT JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' + WHERE et.work_order_no = #{work_order_no} + </select> + + <select id="page" resultMap="BaseResultMap"> SELECT wo.*, u.unit_name, @@ -182,4 +192,11 @@ INNER JOIN t_device_info di ON wo.serial_number = di.device_id </select> + <insert id="addMany"> + INSERT INTO t_work_order (work_order_no, status, serial_number, unit_id, create_time, update_time, deleted) + VALUES <foreach collection="workOrderList" item="workOrder" separator=","> + (#{workOrder.workOrderNo}, #{workOrder.status}, #{workOrder.serialNumber}, #{workOrder.unitId}, #{workOrder.createTime}, #{workOrder.updateTime}, 0) + </foreach> + </insert> + </mapper> -- Gitblit v1.8.0