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; } 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; } 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) { 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)); 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)); 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)); 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); } 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("工艺路线工序参数表id") private Long technologyRoutingOperationParamId; @ApiModelProperty("参数编码(唯一标识)") private String paramCode; 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或technologyOperationParamId不能为空"); } 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("工艺路线工序参数重复"); } } } 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) { 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); } } src/main/resources/application-dev.yml
@@ -199,7 +199,7 @@ # 令牌自定义标识 header: Authorization # 令牌密钥 secret: abcdefghijklmnopqrstuvwxyz secret: xpAVjhCjQDaDB7mjPAzMDSbQWXNu2zYkTdDNUsPMS5Xx8QMmQVYN7n74eZrYJxDJ # 令牌有效期(默认30分钟) expireTime: 450 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> 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" />