From 196dec5ffae084f772dffc0fb1fc4441839f7952 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 22 四月 2026 13:59:03 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' of http://114.132.189.42:9002/r/product-inventory-management-after into dev_New_pro
---
src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationParamServiceImpl.java | 83 ++++++++-----
src/main/java/com/ruoyi/technology/bean/vo/TechnologyRoutingOperationVo.java | 16 ++
src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java | 2
src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java | 42 ++----
src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml | 87 ++++++++++++++
src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperationParam.java | 19 +--
src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java | 2
src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java | 61 +++++++++
src/main/resources/mapper/technology/TechnologyRoutingOperationParamMapper.xml | 2
src/main/java/com/ruoyi/technology/mapper/TechnologyRoutingOperationMapper.java | 13 ++
src/main/resources/application-dev.yml | 2
src/main/java/com/ruoyi/technology/controller/TechnologyOperationParamController.java | 2
src/main/java/com/ruoyi/technology/bean/dto/TechnologyRoutingOperationDto.java | 4
src/main/java/com/ruoyi/technology/controller/TechnologyOperationController.java | 2
14 files changed, 256 insertions(+), 81 deletions(-)
diff --git a/src/main/java/com/ruoyi/technology/bean/dto/TechnologyRoutingOperationDto.java b/src/main/java/com/ruoyi/technology/bean/dto/TechnologyRoutingOperationDto.java
index c310931..f2d9c90 100644
--- a/src/main/java/com/ruoyi/technology/bean/dto/TechnologyRoutingOperationDto.java
+++ b/src/main/java/com/ruoyi/technology/bean/dto/TechnologyRoutingOperationDto.java
@@ -2,6 +2,7 @@
import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -9,4 +10,7 @@
@Data
@ApiModel(value = "TechnologyRoutingOperationDto瀵硅薄", description = "宸ヨ壓璺嚎宸ュ簭鏌ヨ鍙傛暟")
public class TechnologyRoutingOperationDto extends TechnologyRoutingOperation {
+
+ @ApiModelProperty("宸ヨ壓璺嚎id锛堝吋瀹规棫鍙傛暟 routeId锛�")
+ private Long routeId;
}
diff --git a/src/main/java/com/ruoyi/technology/bean/vo/TechnologyRoutingOperationVo.java b/src/main/java/com/ruoyi/technology/bean/vo/TechnologyRoutingOperationVo.java
index a5d8ef2..5d27f2a 100644
--- a/src/main/java/com/ruoyi/technology/bean/vo/TechnologyRoutingOperationVo.java
+++ b/src/main/java/com/ruoyi/technology/bean/vo/TechnologyRoutingOperationVo.java
@@ -2,6 +2,7 @@
import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -9,4 +10,19 @@
@Data
@ApiModel(value = "TechnologyRoutingOperationVo瀵硅薄", description = "宸ヨ壓璺嚎宸ュ簭杩斿洖瀵硅薄")
public class TechnologyRoutingOperationVo extends TechnologyRoutingOperation {
+
+ @ApiModelProperty("宸ュ簭鍚嶇О")
+ private String technologyOperationName;
+
+ @ApiModelProperty("浜у搧鍚嶇О")
+ private String productName;
+
+ @ApiModelProperty("瑙勬牸鍚嶇О")
+ private String model;
+
+ @ApiModelProperty("瑙勬牸鍚嶇О")
+ private String specificationName;
+
+ @ApiModelProperty("鍗曚綅")
+ private String unit;
}
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyOperationController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyOperationController.java
index 367366d..f730aae 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyOperationController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyOperationController.java
@@ -30,7 +30,7 @@
return R.ok(technologyOperationService.listPage(page, technologyOperationDto));
}
- @PostMapping
+ @PostMapping("/add")
@Log(title = "Add technology operation", businessType = BusinessType.INSERT)
@ApiOperation("鏂板宸ュ簭")
public R add(@RequestBody TechnologyOperationDto technologyOperationDto) {
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyOperationParamController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyOperationParamController.java
index e3552b5..c9eff23 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyOperationParamController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyOperationParamController.java
@@ -29,7 +29,7 @@
return R.ok(technologyOperationParamService.listOperationParam(technologyOperationParamDto));
}
- @PostMapping
+ @PostMapping("/")
@ApiOperation("鏂板鎴栦慨鏀瑰伐搴忓弬鏁�")
public R addOrUpdate(@RequestBody TechnologyOperationParam technologyOperationParam) {
return R.ok(technologyOperationParamService.saveTechnologyOperationParam(technologyOperationParam));
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java
index c07541c..d8cc6a2 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationController.java
@@ -40,7 +40,7 @@
return R.ok(technologyRoutingOperationService.getTechnologyRoutingOperationInfo(id));
}
- @PostMapping
+ @PostMapping("/add")
@ApiOperation("鏂板宸ヨ壓璺嚎宸ュ簭")
public R add(@RequestBody TechnologyRoutingOperation technologyRoutingOperation) {
return R.ok(technologyRoutingOperationService.saveTechnologyRoutingOperation(technologyRoutingOperation));
diff --git a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java
index 9a17e82..568d96a 100644
--- a/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java
+++ b/src/main/java/com/ruoyi/technology/controller/TechnologyRoutingOperationParamController.java
@@ -42,7 +42,7 @@
return R.ok(technologyRoutingOperationParamService.getTechnologyRoutingOperationParamInfo(id));
}
- @PostMapping
+ @PostMapping("/add")
@ApiOperation("鏂板鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟")
public R<Boolean> add(@RequestBody TechnologyRoutingOperationParam technologyRoutingOperationParam) {
return R.ok(technologyRoutingOperationParamService.saveTechnologyRoutingOperationParam(technologyRoutingOperationParam));
diff --git a/src/main/java/com/ruoyi/technology/mapper/TechnologyRoutingOperationMapper.java b/src/main/java/com/ruoyi/technology/mapper/TechnologyRoutingOperationMapper.java
index ff95e6d..890b8f8 100644
--- a/src/main/java/com/ruoyi/technology/mapper/TechnologyRoutingOperationMapper.java
+++ b/src/main/java/com/ruoyi/technology/mapper/TechnologyRoutingOperationMapper.java
@@ -1,8 +1,15 @@
package com.ruoyi.technology.mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationDto;
+import com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -14,5 +21,11 @@
*/
@Mapper
public interface TechnologyRoutingOperationMapper extends BaseMapper<TechnologyRoutingOperation> {
+ IPage<TechnologyRoutingOperationVo> pageTechnologyRoutingOperation(Page<TechnologyRoutingOperationDto> page,
+ @Param("c") TechnologyRoutingOperationDto dto);
+
+ List<TechnologyRoutingOperationVo> listTechnologyRoutingOperation(@Param("c") TechnologyRoutingOperationDto dto);
+
+ TechnologyRoutingOperationVo getTechnologyRoutingOperationInfo(@Param("id") Long id);
}
diff --git a/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperationParam.java b/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperationParam.java
index 1f14947..0e33d2f 100644
--- a/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperationParam.java
+++ b/src/main/java/com/ruoyi/technology/pojo/TechnologyRoutingOperationParam.java
@@ -1,6 +1,10 @@
package com.ruoyi.technology.pojo;
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -8,17 +12,9 @@
import java.io.Serializable;
import java.time.LocalDateTime;
-/**
- * <p>
- * 鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-04-20 10:22:16
- */
@Data
@TableName("technology_routing_operation_param")
-@ApiModel(value = "TechnologyRoutingOperationParam瀵硅薄", description = "鐢熶骇璁㈠崟宸ヨ壓璺嚎宸ュ簭鍙傛暟琛�")
+@ApiModel(value = "TechnologyRoutingOperationParam瀵硅薄", description = "宸ヨ壓璺嚎宸ュ簭鍙傛暟琛�")
public class TechnologyRoutingOperationParam implements Serializable {
private static final long serialVersionUID = 1L;
@@ -26,9 +22,6 @@
@ApiModelProperty("id")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
-
- @ApiModelProperty("宸ヨ壓璺嚎宸ュ簭鍙傛暟琛╥d")
- private Long technologyRoutingOperationParamId;
@ApiModelProperty("鍙傛暟缂栫爜(鍞竴鏍囪瘑)")
private String paramCode;
diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationParamServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationParamServiceImpl.java
index 44b59ed..2db55b4 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationParamServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationParamServiceImpl.java
@@ -38,7 +38,7 @@
@Override
public IPage<TechnologyRoutingOperationParamVo> pageTechnologyRoutingOperationParam(Page<TechnologyRoutingOperationParamDto> page,
- TechnologyRoutingOperationParamDto dto) {
+ TechnologyRoutingOperationParamDto dto) {
Page<TechnologyRoutingOperationParam> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
return this.page(entityPage, buildQueryWrapper(dto))
.convert(item -> BeanUtil.copyProperties(item, TechnologyRoutingOperationParamVo.class));
@@ -62,7 +62,6 @@
public boolean saveTechnologyRoutingOperationParam(TechnologyRoutingOperationParam item) {
TechnologyRoutingOperation routingOperation = getRoutingOperation(item.getTechnologyRoutingOperationId());
fillFromOperationParam(item, routingOperation);
- validateManualFields(item);
checkDuplicate(item);
return this.saveOrUpdate(item);
}
@@ -75,7 +74,7 @@
@Override
public int syncTechnologyRoutingOperationParam(TechnologyRoutingOperationParamSyncDto syncDto) {
if (syncDto == null || syncDto.getTechnologyRoutingOperationId() == null) {
- throw new ServiceException("technologyRoutingOperationId is required");
+ throw new ServiceException("宸ヨ壓璺嚎宸ュ簭ID涓嶈兘涓虹┖");
}
TechnologyRoutingOperation routingOperation = getRoutingOperation(syncDto.getTechnologyRoutingOperationId());
List<TechnologyOperationParam> operationParamList = technologyOperationParamMapper.selectList(
@@ -134,11 +133,11 @@
private TechnologyRoutingOperation getRoutingOperation(Long technologyRoutingOperationId) {
if (technologyRoutingOperationId == null) {
- throw new ServiceException("technologyRoutingOperationId is required");
+ throw new ServiceException("宸ヨ壓璺嚎宸ュ簭ID涓嶈兘涓虹┖");
}
TechnologyRoutingOperation routingOperation = technologyRoutingOperationMapper.selectById(technologyRoutingOperationId);
if (routingOperation == null) {
- throw new ServiceException("Technology routing operation not found");
+ throw new ServiceException("宸ヨ壓璺嚎宸ュ簭涓嶅瓨鍦�");
}
return routingOperation;
}
@@ -147,22 +146,54 @@
if (item.getTechnologyOperationId() == null) {
item.setTechnologyOperationId(routingOperation.getTechnologyOperationId());
} else if (!item.getTechnologyOperationId().equals(routingOperation.getTechnologyOperationId())) {
- throw new ServiceException("technologyOperationId does not match routing operation");
+ throw new ServiceException("宸ュ簭ID涓庡伐鑹鸿矾绾垮伐搴忎笉鍖归厤");
}
- if (item.getTechnologyOperationParamId() == null) {
+
+ if (item.getTechnologyOperationParamId() != null) {
+ TechnologyOperationParam operationParam = technologyOperationParamMapper.selectById(item.getTechnologyOperationParamId());
+ if (operationParam == null) {
+ throw new ServiceException("宸ュ簭鍙傛暟涓嶅瓨鍦�");
+ }
+ if (!routingOperation.getTechnologyOperationId().equals(operationParam.getTechnologyOperationId())) {
+ throw new ServiceException("宸ュ簭鍙傛暟涓嶅睘浜庡綋鍓嶅伐鑹鸿矾绾垮伐搴�");
+ }
+ TechnologyParam technologyParam = technologyParamMapper.selectById(operationParam.getTechnologyParamId());
+ if (technologyParam == null) {
+ throw new ServiceException("鍩虹鍙傛暟涓嶅瓨鍦�");
+ }
+ fillFromTechnologyParam(item, technologyParam);
+ if (item.getStandardValue() == null) {
+ item.setStandardValue(operationParam.getStandardValue());
+ }
return;
}
- TechnologyOperationParam operationParam = technologyOperationParamMapper.selectById(item.getTechnologyOperationParamId());
- if (operationParam == null) {
- throw new ServiceException("Technology operation param not found");
+
+ if (item.getParamId() != null) {
+ TechnologyParam technologyParam = technologyParamMapper.selectById(item.getParamId());
+ if (technologyParam == null) {
+ throw new ServiceException("鍩虹鍙傛暟涓嶅瓨鍦�");
+ }
+ fillFromTechnologyParam(item, technologyParam);
+ TechnologyOperationParam operationParam = technologyOperationParamMapper.selectOne(
+ Wrappers.<TechnologyOperationParam>lambdaQuery()
+ .eq(TechnologyOperationParam::getTechnologyOperationId, routingOperation.getTechnologyOperationId())
+ .eq(TechnologyOperationParam::getTechnologyParamId, item.getParamId())
+ .orderByAsc(TechnologyOperationParam::getId)
+ .last("limit 1")
+ );
+ if (operationParam != null) {
+ item.setTechnologyOperationParamId(operationParam.getId());
+ if (item.getStandardValue() == null) {
+ item.setStandardValue(operationParam.getStandardValue());
+ }
+ }
+ return;
}
- if (!routingOperation.getTechnologyOperationId().equals(operationParam.getTechnologyOperationId())) {
- throw new ServiceException("Operation param does not belong to routing operation");
- }
- TechnologyParam technologyParam = technologyParamMapper.selectById(operationParam.getTechnologyParamId());
- if (technologyParam == null) {
- throw new ServiceException("Technology param not found");
- }
+
+ throw new ServiceException("paramId鎴杢echnologyOperationParamId涓嶈兘涓虹┖");
+ }
+
+ private void fillFromTechnologyParam(TechnologyRoutingOperationParam item, TechnologyParam technologyParam) {
item.setParamId(technologyParam.getId());
item.setParamCode(technologyParam.getParamCode());
item.setParamName(technologyParam.getParamName());
@@ -173,18 +204,6 @@
if (item.getRemark() == null || item.getRemark().trim().isEmpty()) {
item.setRemark(technologyParam.getRemark());
}
- if (item.getStandardValue() == null) {
- item.setStandardValue(operationParam.getStandardValue());
- }
- }
-
- private void validateManualFields(TechnologyRoutingOperationParam item) {
- if (item.getParamCode() == null || item.getParamCode().trim().isEmpty()) {
- throw new ServiceException("paramCode is required");
- }
- if (item.getParamName() == null || item.getParamName().trim().isEmpty()) {
- throw new ServiceException("paramName is required");
- }
}
private void checkDuplicate(TechnologyRoutingOperationParam item) {
@@ -193,12 +212,14 @@
.eq(TechnologyRoutingOperationParam::getTechnologyRoutingOperationId, item.getTechnologyRoutingOperationId())
.eq(item.getTechnologyOperationParamId() != null,
TechnologyRoutingOperationParam::getTechnologyOperationParamId, item.getTechnologyOperationParamId())
- .eq(item.getTechnologyOperationParamId() == null && item.getParamCode() != null,
+ .eq(item.getTechnologyOperationParamId() == null && item.getParamId() != null,
+ TechnologyRoutingOperationParam::getParamId, item.getParamId())
+ .eq(item.getTechnologyOperationParamId() == null && item.getParamId() == null && item.getParamCode() != null,
TechnologyRoutingOperationParam::getParamCode, item.getParamCode())
.ne(item.getId() != null, TechnologyRoutingOperationParam::getId, item.getId())
) > 0;
if (duplicate) {
- throw new ServiceException("Duplicate routing operation param");
+ throw new ServiceException("宸ヨ壓璺嚎宸ュ簭鍙傛暟閲嶅");
}
}
}
diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java
index 15fd9e8..1daf6dc 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java
@@ -1,16 +1,16 @@
package com.ruoyi.technology.service.impl;
-import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationDto;
+import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationParamSyncDto;
import com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo;
import com.ruoyi.technology.mapper.TechnologyRoutingMapper;
import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
+import com.ruoyi.technology.service.TechnologyRoutingOperationParamService;
import com.ruoyi.technology.service.TechnologyRoutingOperationService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -26,27 +26,22 @@
private final TechnologyRoutingOperationMapper technologyRoutingOperationMapper;
private final TechnologyRoutingMapper technologyRoutingMapper;
+ private final TechnologyRoutingOperationParamService technologyRoutingOperationParamService;
@Override
public IPage<TechnologyRoutingOperationVo> pageTechnologyRoutingOperation(Page<TechnologyRoutingOperationDto> page,
TechnologyRoutingOperationDto technologyRoutingOperationDto) {
- Page<TechnologyRoutingOperation> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
- return this.page(entityPage, buildQueryWrapper(technologyRoutingOperationDto))
- .convert(item -> BeanUtil.copyProperties(item, TechnologyRoutingOperationVo.class));
+ return technologyRoutingOperationMapper.pageTechnologyRoutingOperation(page, technologyRoutingOperationDto);
}
@Override
public List<TechnologyRoutingOperationVo> listTechnologyRoutingOperation(TechnologyRoutingOperationDto technologyRoutingOperationDto) {
- return BeanUtil.copyToList(this.list(buildQueryWrapper(technologyRoutingOperationDto)), TechnologyRoutingOperationVo.class);
+ return technologyRoutingOperationMapper.listTechnologyRoutingOperation(technologyRoutingOperationDto);
}
@Override
public TechnologyRoutingOperationVo getTechnologyRoutingOperationInfo(Long id) {
- TechnologyRoutingOperation technologyRoutingOperation = this.getById(id);
- if (technologyRoutingOperation == null) {
- return null;
- }
- return BeanUtil.copyProperties(technologyRoutingOperation, TechnologyRoutingOperationVo.class);
+ return technologyRoutingOperationMapper.getTechnologyRoutingOperationInfo(id);
}
@Override
@@ -58,7 +53,14 @@
if (technologyRoutingOperation.getDragSort() == null || technologyRoutingOperation.getDragSort() <= 0) {
technologyRoutingOperation.setDragSort(nextDragSort(technologyRoutingOperation.getTechnologyRoutingId()));
}
- return this.save(technologyRoutingOperation);
+ boolean saved = this.save(technologyRoutingOperation);
+ if (saved) {
+ TechnologyRoutingOperationParamSyncDto syncDto = new TechnologyRoutingOperationParamSyncDto();
+ syncDto.setTechnologyRoutingOperationId(technologyRoutingOperation.getId());
+ syncDto.setReplaceExisting(true);
+ technologyRoutingOperationParamService.syncTechnologyRoutingOperationParam(syncDto);
+ }
+ return saved;
}
@Override
@@ -72,22 +74,6 @@
resetDragSort(technologyRoutingOperation.getTechnologyRoutingId());
}
return removed;
- }
-
- private LambdaQueryWrapper<TechnologyRoutingOperation> buildQueryWrapper(TechnologyRoutingOperationDto technologyRoutingOperation) {
- LambdaQueryWrapper<TechnologyRoutingOperation> queryWrapper = Wrappers.lambdaQuery();
- queryWrapper.eq(technologyRoutingOperation.getId() != null, TechnologyRoutingOperation::getId, technologyRoutingOperation.getId())
- .eq(technologyRoutingOperation.getTechnologyRoutingId() != null,
- TechnologyRoutingOperation::getTechnologyRoutingId, technologyRoutingOperation.getTechnologyRoutingId())
- .eq(technologyRoutingOperation.getProductModelId() != null,
- TechnologyRoutingOperation::getProductModelId, technologyRoutingOperation.getProductModelId())
- .eq(technologyRoutingOperation.getTechnologyOperationId() != null,
- TechnologyRoutingOperation::getTechnologyOperationId, technologyRoutingOperation.getTechnologyOperationId())
- .eq(technologyRoutingOperation.getIsQuality() != null,
- TechnologyRoutingOperation::getIsQuality, technologyRoutingOperation.getIsQuality())
- .orderByAsc(TechnologyRoutingOperation::getDragSort)
- .orderByAsc(TechnologyRoutingOperation::getId);
- return queryWrapper;
}
private Integer nextDragSort(Long technologyRoutingId) {
diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
index 6066cb7..d225f7c 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingServiceImpl.java
@@ -12,12 +12,18 @@
import com.ruoyi.technology.bean.vo.TechnologyRoutingVo;
import com.ruoyi.technology.mapper.TechnologyBomStructureMapper;
import com.ruoyi.technology.mapper.TechnologyOperationMapper;
+import com.ruoyi.technology.mapper.TechnologyOperationParamMapper;
+import com.ruoyi.technology.mapper.TechnologyParamMapper;
import com.ruoyi.technology.mapper.TechnologyRoutingMapper;
import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
+import com.ruoyi.technology.mapper.TechnologyRoutingOperationParamMapper;
import com.ruoyi.technology.pojo.TechnologyBomStructure;
import com.ruoyi.technology.pojo.TechnologyOperation;
+import com.ruoyi.technology.pojo.TechnologyOperationParam;
+import com.ruoyi.technology.pojo.TechnologyParam;
import com.ruoyi.technology.pojo.TechnologyRouting;
import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
+import com.ruoyi.technology.pojo.TechnologyRoutingOperationParam;
import com.ruoyi.technology.service.TechnologyRoutingService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -28,6 +34,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
@Service
@Transactional(rollbackFor = Exception.class)
@@ -41,6 +48,9 @@
private final TechnologyBomStructureMapper technologyBomStructureMapper;
private final TechnologyOperationMapper technologyOperationMapper;
+ private final TechnologyOperationParamMapper technologyOperationParamMapper;
+ private final TechnologyParamMapper technologyParamMapper;
+ private final TechnologyRoutingOperationParamMapper technologyRoutingOperationParamMapper;
@Override
public IPage<TechnologyRoutingVo> pageTechnologyRouting(Page<TechnologyRoutingDto> page, TechnologyRoutingDto technologyRoutingDto) {
@@ -81,6 +91,14 @@
if (ids == null || ids.isEmpty()) {
return false;
}
+ List<TechnologyRoutingOperation> routingOperationList = technologyRoutingOperationMapper.selectList(
+ Wrappers.<TechnologyRoutingOperation>lambdaQuery()
+ .in(TechnologyRoutingOperation::getTechnologyRoutingId, ids));
+ if (!routingOperationList.isEmpty()) {
+ List<Long> routingOperationIdList = routingOperationList.stream().map(TechnologyRoutingOperation::getId).collect(Collectors.toList());
+ technologyRoutingOperationParamMapper.delete(Wrappers.<TechnologyRoutingOperationParam>lambdaQuery()
+ .in(TechnologyRoutingOperationParam::getTechnologyRoutingOperationId, routingOperationIdList));
+ }
technologyRoutingOperationMapper.delete(Wrappers.<TechnologyRoutingOperation>lambdaQuery()
.in(TechnologyRoutingOperation::getTechnologyRoutingId, ids));
return this.removeByIds(ids);
@@ -93,8 +111,16 @@
* 3. 鎸� BOM 鍑虹幇椤哄簭鍘婚噸鍚庨噸鏂板啓鍏ュ伐鑹鸿矾绾垮伐搴忚〃
*/
private void syncRoutingOperationsByBom(TechnologyRouting technologyRouting) {
- technologyRoutingOperationMapper.delete(Wrappers.<TechnologyRoutingOperation>lambdaQuery()
- .eq(TechnologyRoutingOperation::getTechnologyRoutingId, technologyRouting.getId()));
+ List<TechnologyRoutingOperation> oldRoutingOperationList = technologyRoutingOperationMapper.selectList(
+ Wrappers.<TechnologyRoutingOperation>lambdaQuery()
+ .eq(TechnologyRoutingOperation::getTechnologyRoutingId, technologyRouting.getId()));
+ if (!oldRoutingOperationList.isEmpty()) {
+ List<Long> oldRoutingOperationIdList = oldRoutingOperationList.stream().map(TechnologyRoutingOperation::getId).collect(Collectors.toList());
+ technologyRoutingOperationParamMapper.delete(Wrappers.<TechnologyRoutingOperationParam>lambdaQuery()
+ .in(TechnologyRoutingOperationParam::getTechnologyRoutingOperationId, oldRoutingOperationIdList));
+ technologyRoutingOperationMapper.delete(Wrappers.<TechnologyRoutingOperation>lambdaQuery()
+ .eq(TechnologyRoutingOperation::getTechnologyRoutingId, technologyRouting.getId()));
+ }
if (technologyRouting.getBomId() == null) {
return;
}
@@ -123,6 +149,37 @@
routingOperation.setDragSort(dragSort++);
routingOperation.setIsQuality(getOperationQuality(bomStructure.getOperationId()));
technologyRoutingOperationMapper.insert(routingOperation);
+ syncRoutingOperationParams(routingOperation.getId(), bomStructure.getOperationId());
+ }
+ }
+
+ private void syncRoutingOperationParams(Long technologyRoutingOperationId, Long technologyOperationId) {
+ List<TechnologyOperationParam> operationParamList = technologyOperationParamMapper.selectList(
+ Wrappers.<TechnologyOperationParam>lambdaQuery()
+ .eq(TechnologyOperationParam::getTechnologyOperationId, technologyOperationId)
+ .orderByAsc(TechnologyOperationParam::getId));
+ if (operationParamList.isEmpty()) {
+ return;
+ }
+ for (TechnologyOperationParam operationParam : operationParamList) {
+ TechnologyParam technologyParam = technologyParamMapper.selectById(operationParam.getTechnologyParamId());
+ if (technologyParam == null) {
+ continue;
+ }
+ TechnologyRoutingOperationParam snapshot = new TechnologyRoutingOperationParam();
+ snapshot.setTechnologyRoutingOperationId(technologyRoutingOperationId);
+ snapshot.setTechnologyOperationParamId(operationParam.getId());
+ snapshot.setTechnologyOperationId(operationParam.getTechnologyOperationId());
+ snapshot.setParamId(technologyParam.getId());
+ snapshot.setParamCode(technologyParam.getParamCode());
+ snapshot.setParamName(technologyParam.getParamName());
+ snapshot.setParamType(technologyParam.getParamType());
+ snapshot.setParamFormat(technologyParam.getParamFormat());
+ snapshot.setUnit(technologyParam.getUnit());
+ snapshot.setIsRequired(technologyParam.getIsRequired());
+ snapshot.setRemark(technologyParam.getRemark());
+ snapshot.setStandardValue(operationParam.getStandardValue());
+ technologyRoutingOperationParamMapper.insert(snapshot);
}
}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index a99516f..887a72c 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -199,7 +199,7 @@
# 浠ょ墝鑷畾涔夋爣璇�
header: Authorization
# 浠ょ墝瀵嗛挜
- secret: abcdefghijklmnopqrstuvwxyz
+ secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ
# 浠ょ墝鏈夋晥鏈燂紙榛樿30鍒嗛挓锛�
expireTime: 450
diff --git a/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml b/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml
index 6797e1a..1bbb25c 100644
--- a/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml
+++ b/src/main/resources/mapper/technology/TechnologyRoutingOperationMapper.xml
@@ -16,4 +16,91 @@
<result column="dept_id" property="deptId" />
</resultMap>
+ <select id="pageTechnologyRoutingOperation" resultType="com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo">
+ select tro.*,
+ top2.name as technologyOperationName,
+ p.product_name as productName,
+ pm.model,
+ pm.model as specificationName,
+ pm.unit
+ from technology_routing_operation tro
+ left join technology_operation top2 on tro.technology_operation_id = top2.id
+ left join product_model pm on tro.product_model_id = pm.id
+ left join product p on pm.product_id = p.id
+ <where>
+ <if test="c != null">
+ <if test="c.id != null">
+ and tro.id = #{c.id}
+ </if>
+ <if test="c.technologyRoutingId != null">
+ and tro.technology_routing_id = #{c.technologyRoutingId}
+ </if>
+ <if test="c.routeId != null">
+ and tro.technology_routing_id = #{c.routeId}
+ </if>
+ <if test="c.productModelId != null">
+ and tro.product_model_id = #{c.productModelId}
+ </if>
+ <if test="c.technologyOperationId != null">
+ and tro.technology_operation_id = #{c.technologyOperationId}
+ </if>
+ <if test="c.isQuality != null">
+ and tro.is_quality = #{c.isQuality}
+ </if>
+ </if>
+ </where>
+ order by tro.drag_sort asc, tro.id asc
+ </select>
+
+ <select id="listTechnologyRoutingOperation" resultType="com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo">
+ select tro.*,
+ top2.name as technologyOperationName,
+ p.product_name as productName,
+ pm.model,
+ pm.model as specificationName,
+ pm.unit
+ from technology_routing_operation tro
+ left join technology_operation top2 on tro.technology_operation_id = top2.id
+ left join product_model pm on tro.product_model_id = pm.id
+ left join product p on pm.product_id = p.id
+ <where>
+ <if test="c != null">
+ <if test="c.id != null">
+ and tro.id = #{c.id}
+ </if>
+ <if test="c.technologyRoutingId != null">
+ and tro.technology_routing_id = #{c.technologyRoutingId}
+ </if>
+ <if test="c.routeId != null">
+ and tro.technology_routing_id = #{c.routeId}
+ </if>
+ <if test="c.productModelId != null">
+ and tro.product_model_id = #{c.productModelId}
+ </if>
+ <if test="c.technologyOperationId != null">
+ and tro.technology_operation_id = #{c.technologyOperationId}
+ </if>
+ <if test="c.isQuality != null">
+ and tro.is_quality = #{c.isQuality}
+ </if>
+ </if>
+ </where>
+ order by tro.drag_sort asc, tro.id asc
+ </select>
+
+ <select id="getTechnologyRoutingOperationInfo" resultType="com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo">
+ select tro.*,
+ top2.name as technologyOperationName,
+ p.product_name as productName,
+ pm.model,
+ pm.model as specificationName,
+ pm.unit
+ from technology_routing_operation tro
+ left join technology_operation top2 on tro.technology_operation_id = top2.id
+ left join product_model pm on tro.product_model_id = pm.id
+ left join product p on pm.product_id = p.id
+ where tro.id = #{id}
+ limit 1
+ </select>
+
</mapper>
diff --git a/src/main/resources/mapper/technology/TechnologyRoutingOperationParamMapper.xml b/src/main/resources/mapper/technology/TechnologyRoutingOperationParamMapper.xml
index e4a99ca..1a82456 100644
--- a/src/main/resources/mapper/technology/TechnologyRoutingOperationParamMapper.xml
+++ b/src/main/resources/mapper/technology/TechnologyRoutingOperationParamMapper.xml
@@ -2,10 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.technology.mapper.TechnologyRoutingOperationParamMapper">
- <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
<resultMap id="BaseResultMap" type="com.ruoyi.technology.pojo.TechnologyRoutingOperationParam">
<id column="id" property="id" />
- <result column="technology_routing_operation_param_id" property="technologyRoutingOperationParamId" />
<result column="param_code" property="paramCode" />
<result column="param_name" property="paramName" />
<result column="param_type" property="paramType" />
--
Gitblit v1.9.3