Fixiaobai
2023-11-10 af389156a78401b1e51807efe90b7310fc4c20f6
Changes11
已修改14个文件
584 ■■■■ 文件已修改
mes-basic/src/main/java/com/chinaztt/mes/basic/controller/BasicParamTemplateController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/dto/ParamDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Param.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/entity/ParamJoinTemplate.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/mapper/ParamJoinTemplateMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/mapper/ParamMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/service/BasicParamTemplateService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/BasicParamTemplateServiceImpl.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/resources/mapper/ParamJoinTemplateMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/resources/mapper/ParamMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-technology/src/main/java/com/chinaztt/mes/technology/controller/RoutingController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-technology/src/main/java/com/chinaztt/mes/technology/service/RoutingService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/RoutingServiceImpl.java 319 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
mes-basic/src/main/java/com/chinaztt/mes/basic/controller/BasicParamTemplateController.java
@@ -98,13 +98,14 @@
    /**
     * 通过id查询工序参数
     * @param id id
     * @param  id
     * @return R
     */
    @ApiOperation(value = "通过id查询工序参数", notes = "通过id查询工序参数")
    @GetMapping("/param" )
    public R getParamById(Page page, ParamDTO paramDTO) {
        return R.ok(basicParamTemplateService.getParamById(page,QueryWrapperUtil.gen(paramDTO)));
        Long technologyOperationTemplateId = paramDTO.getTechnologyOperationTemplateId();
        return R.ok(basicParamTemplateService.getParamById(page,technologyOperationTemplateId));
    }
    /**
     * 新增工序模板
mes-basic/src/main/java/com/chinaztt/mes/basic/dto/ParamDTO.java
@@ -41,5 +41,5 @@
     */
    private List<SysDictItem> sysDictItemList;
    private Long templateParentId;
}
mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Param.java
@@ -104,6 +104,9 @@
    @ApiModelProperty(value="数据字典")
    private String dict;
    @TableField(exist = false)
    private String paramValue;
    @ApiModelProperty(value="父级参数")
    @TableField("parent_id")
    @JSONField(serializeUsing= ToStringSerializer.class)
mes-basic/src/main/java/com/chinaztt/mes/basic/entity/ParamJoinTemplate.java
@@ -60,5 +60,7 @@
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @ApiModelProperty(value = "默认值")
    private String defaultValue;
    private Long parentId;
}
mes-basic/src/main/java/com/chinaztt/mes/basic/mapper/ParamJoinTemplateMapper.java
@@ -43,4 +43,6 @@
            @Param("defaultValue") String defaultValue,
            @Param("technologyOperationParamId") Long technologyOperationParamId,
            @Param("technologyOperationTemplateId") Long technologyOperationTemplateId);
    int deleteByCondition(@Param("paramId") long paramId,@Param("templateId")long templateId);
}
mes-basic/src/main/java/com/chinaztt/mes/basic/mapper/ParamMapper.java
@@ -88,4 +88,6 @@
    List<ParamDTO> getLastParamById(@org.apache.ibatis.annotations.Param("paramDTO") ParamDTO paramDTO);
    List<String> getNos(String code);
    List<ParamDTO>getTemplateParamPlus(@org.apache.ibatis.annotations.Param("templateId")long templateId);
}
mes-basic/src/main/java/com/chinaztt/mes/basic/service/BasicParamTemplateService.java
@@ -22,13 +22,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chinaztt.mes.basic.dto.ParamDTO;
import com.chinaztt.mes.basic.entity.Param;
import com.chinaztt.mes.basic.entity.ParamJoinTemplate;
import com.chinaztt.mes.basic.entity.Template;
import com.chinaztt.mes.basic.entity.TemplateTypeRelation;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
 * 工序模板
@@ -40,16 +40,16 @@
    /**
     * 通过id查询工序参数
     * @param page
     * @param gen
     * @param
     * @return
     */
    IPage<List<Param>> getParamById(Page page, QueryWrapper<ParamDTO> gen);
    List<Map<String, Object>> getParamById(Page page, long technologyOperationTemplateId);
    /**
     * 工序模板关联工序参数
     * @param paramJoinTemplateList
     * @return
     */
    List<ParamDTO> relateTypeTemplate(List<ParamJoinTemplate> paramJoinTemplateList);
    List<Map<String, Object>> relateTypeTemplate(List<ParamJoinTemplate> paramJoinTemplateList);
    /**
     *
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/BasicParamTemplateServiceImpl.java
@@ -36,6 +36,8 @@
import com.chinaztt.mes.basic.service.BasicParamTemplateService;
import com.chinaztt.mes.basic.util.DictUtils;
import com.chinaztt.mes.common.numgen.NumberGenerator;
import com.chinaztt.mes.common.util.JsonUtil;
import com.chinaztt.ztt.admin.api.entity.SysDictItem;
import com.chinaztt.ztt.common.oss.service.OssTemplate;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -46,8 +48,8 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 工序模板
@@ -69,8 +71,23 @@
    private DictUtils dictUtils;
    @Override
    public IPage<List<Param>> getParamById(Page page, QueryWrapper<ParamDTO> gen) {
        return paramMapper.getParamById(page, gen);
    public List<Map<String, Object>> getParamById(Page page, long technologyOperationTemplateId) {
        QueryWrapper<ParamJoinTemplate>gen=new QueryWrapper<>();
        gen.lambda().eq(ParamJoinTemplate::getParentId,0)
                        .eq(ParamJoinTemplate::getTechnologyOperationTemplateId,technologyOperationTemplateId);
        List<ParamJoinTemplate> paramJoinTemplates = paramJoinTemplateMapper.selectList(gen);
        if(paramJoinTemplates.size()<1){
            return new ArrayList<>();
        }
        List<SysDictItem> dict = dictUtils.getDict("technology_param");
        List<Long>longList=new ArrayList<>();
        paramJoinTemplates.forEach(p->{
            longList.add(p.getTechnologyOperationParamId());
        });
        //QueryWrapper<Param>queryWrapper=new QueryWrapper<>();
        //queryWrapper.lambda().in(Param::getId,longList);
        //List<Param> params = paramMapper.selectList(queryWrapper);
        return getTree(longList,dict,technologyOperationTemplateId);
    }
@@ -82,7 +99,8 @@
    @Override
    public List<ParamDTO> relateTypeTemplate(List<ParamJoinTemplate> operationParamJoinTemplate) {
    @Transactional(rollbackFor = Exception.class)
    public List<Map<String, Object>> relateTypeTemplate(List<ParamJoinTemplate> operationParamJoinTemplate) {
        List<ParamJoinTemplate> newOperationParamJoinTemplateList = new ArrayList<>();
        List<ParamDTO> paramList = new ArrayList<>();
        if (CollectionUtil.isNotEmpty(operationParamJoinTemplate)) {
@@ -98,17 +116,175 @@
                newOperationParamJoinTemplateList.add(newParamJoinTemplate);
            }
            for (ParamJoinTemplate newOperationParam : newOperationParamJoinTemplateList) {
                long firstId=newOperationParam.getTechnologyOperationParamId();
                long templateId=newOperationParam.getTechnologyOperationTemplateId();
                paramJoinTemplateMapper.insert(newOperationParam);
                //二级参数
                QueryWrapper<Param>queryWrapperSecond = new QueryWrapper<Param>();
                queryWrapperSecond.lambda().eq(Param::getParentId,newOperationParam.getTechnologyOperationParamId());
                List<Param> paramList1 = paramMapper.selectList(queryWrapperSecond);
                if(paramList1.size()>0){
                    for (int i = 0; i < paramList1.size(); i++) {
                        Param secondParam = paramList1.get(i);
                        ParamJoinTemplate templateSecond=new ParamJoinTemplate();
                        templateSecond.setSort(i+1L);
                        templateSecond.setTechnologyOperationParamId(secondParam.getId());
                        templateSecond.setTechnologyOperationTemplateId(templateId);
                        templateSecond.setParentId(firstId);
                        paramJoinTemplateMapper.insert(templateSecond);
                        //三级参数
                        QueryWrapper<Param>queryWrapperThird = new QueryWrapper<Param>();
                        queryWrapperThird.lambda().eq(Param::getParentId,secondParam.getId());
                        List<Param> selectList = paramMapper.selectList(queryWrapperThird);
                        if(selectList.size()>0){
                            for (int j = 0; j < selectList.size(); j++) {
                                Param thirdParam = selectList.get(j);
                                ParamJoinTemplate templateThird=new ParamJoinTemplate();
                                templateThird.setSort(j+1L);
                                templateThird.setTechnologyOperationParamId(thirdParam.getId());
                                templateThird.setTechnologyOperationTemplateId(templateId);
                                templateThird.setParentId(secondParam.getId());
                                paramJoinTemplateMapper.insert(templateThird);
                            }
                        }
                    }
                }
            }
            paramList = paramMapper.getTemplateParam(operationParamJoinTemplate.get(0).getTechnologyOperationTemplateId());
            //paramList = paramMapper.getTemplateParam(operationParamJoinTemplate.get(0).getTechnologyOperationTemplateId());
        }
        return paramList;
        List<SysDictItem> dict = dictUtils.getDict("technology_param");
        QueryWrapper<ParamJoinTemplate>templateQueryWrapper=new QueryWrapper<>();
        templateQueryWrapper.lambda().eq(ParamJoinTemplate::getParentId,0).select(ParamJoinTemplate::getTechnologyOperationParamId);
        List<Long>longList=new ArrayList<>();
        paramJoinTemplateMapper.selectList(templateQueryWrapper).forEach(p->{
            longList.add(p.getTechnologyOperationParamId());
        });
        return getTree(longList,dict,operationParamJoinTemplate.get(0).getTechnologyOperationTemplateId());
    }
    public List<Map<String,Object>> getTree(List records,List<SysDictItem> dict,long templateId){
        QueryWrapper<ParamJoinTemplate>templateQueryWrapper=new QueryWrapper<>();
        templateQueryWrapper.lambda().eq(ParamJoinTemplate::getTechnologyOperationTemplateId,templateId);
        List<ParamJoinTemplate> paramJoinTemplates = paramJoinTemplateMapper.selectList(templateQueryWrapper);
        List<Map<String,Object>> all = new ArrayList<>();
        records.forEach(l->{
            //一级参数
            Param paramFirst = paramMapper.selectById(Long.parseLong(String.valueOf(l)));
            Map pojo = JsonUtil.jsonToPojo(JsonUtil.jsonToString(paramFirst), Map.class);
            Optional.ofNullable(pojo.get("type")).ifPresent(o->{
                pojo.put("type",dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),pojo.get("type"))).collect(Collectors.toList()).get(0).getLabel());
            });
            String id = String.valueOf(pojo.get("id"));
            List<ParamJoinTemplate> collect = paramJoinTemplates.stream().filter(p -> Objects.equals(id, String.valueOf(p.getTechnologyOperationParamId()))).collect(Collectors.toList());
            if(collect.size()>0) {
                pojo.put("paramValue", collect.get(0).getDefaultValue());
            }else {
                pojo.put("paramValue", "");
            }
            QueryWrapper<Param>queryWrapper=new QueryWrapper<>();
            queryWrapper.lambda().eq(Param::getParentId,pojo.get("id"));
            List<Param> secondList = paramMapper.selectList(queryWrapper);
            QueryWrapper<ParamJoinTemplate>queryWrapperTem=new QueryWrapper<>();
            queryWrapperTem.lambda().eq(ParamJoinTemplate::getParentId,Long.valueOf(String.valueOf(l)));
            List<ParamJoinTemplate> paramJoinTemplates1 = paramJoinTemplateMapper.selectList(queryWrapperTem);
            //去除不相关的数据
            secondList.removeIf(s -> paramJoinTemplates1.stream().noneMatch(p->Objects.equals(s.getId(),p.getTechnologyOperationParamId())));
            //没有children直接添加
            if(secondList.isEmpty()){
                Map<String,Object> oneMap = new HashMap<>();
                oneMap.put("code",pojo.get("code"));
                oneMap.put("paramItem",pojo.get("parameterItem"));
                oneMap.put("paramItemTwo","");
                oneMap.put("paramItemThree","");
                oneMap.put("oneId", com.chinaztt.mes.common.util.StringUtils.defaultString( String.valueOf(pojo.get("id")),""));
                oneMap.put("paramType", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("type"),""));
                oneMap.put("paramFormat", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("parameterFormat"),""));
                oneMap.put("unit", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("unit"),""));
                oneMap.put("parentId",pojo.get("parentId"));
                List<ParamJoinTemplate> collectSecond = paramJoinTemplates.stream().filter(p -> Objects.equals(String.valueOf(pojo.get("id")),String.valueOf( p.getTechnologyOperationParamId()))).collect(Collectors.toList());
                if(collectSecond.size()>0){
                    oneMap.put("paramValue",collectSecond.get(0).getDefaultValue());
                }else {
                    oneMap.put("paramValue","");
                }
                all.add(oneMap);
            }
            secondList.forEach(s->{
                Map second = JsonUtil.jsonToPojo(JsonUtil.jsonToString(s), Map.class);
                List<ParamJoinTemplate> collectSecond = paramJoinTemplates.stream().filter(p -> Objects.equals(s.getId(), p.getTechnologyOperationParamId())).collect(Collectors.toList());
                if(collectSecond.size()>0){
                    second.put("paramValue",collectSecond.get(0).getDefaultValue());
                    s.setParamValue(String.valueOf(second.get("paramValue")));
                }else {
                    second.put("paramValue","");
                    s.setParamValue(String.valueOf(second.get("paramValue")));
                }
                Optional.ofNullable(second.get("type")).ifPresent(o->{
                    List<SysDictItem> collect1 = dict.stream().filter(d -> Objects.equals(String.valueOf(d.getValue()), second.get("type"))).collect(Collectors.toList());
                    if(collect1.size()>0){
                        s.setType(String.valueOf(collect1.get(0).getLabel()));
                    }
                    //second.put("type",dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),second.get("type"))).collect(Collectors.toList()).get(0).getLabel());
                    //s.setType(String.valueOf(second.get("type")));
                });
                QueryWrapper<Param>queryWrapperSecond=new QueryWrapper<>();
                queryWrapperSecond.lambda().eq(Param::getParentId,second.get("id"));
                List<Param> third = paramMapper.selectList(queryWrapperSecond);
                QueryWrapper<ParamJoinTemplate>queryWrapperThird=new QueryWrapper<>();
                queryWrapperThird.lambda().eq(ParamJoinTemplate::getParentId,Long.valueOf(String.valueOf(s.getId())));
                List<ParamJoinTemplate> paramJoinTemplates2 = paramJoinTemplateMapper.selectList(queryWrapperThird);
                third.removeIf(t -> paramJoinTemplates2.stream().noneMatch(p->Objects.equals(p.getTechnologyOperationParamId(),t.getId())));
                if(third.isEmpty()){
                    Param p = new Param();
                    p.setType(s.getType());
                    p.setParamValue(s.getParamValue());
                    //p.setParameterFormat(null);
                    //p.setParamValue(s.getParamValue());
                    p.setUnit(s.getUnit());
                    p.setParentId(s.getParentId());
                    third.add(p);
                }
                third.forEach(t->{
                    Optional.ofNullable(t.getType()).ifPresent(o->{
                        List<SysDictItem> collect1 = dict.stream().filter(d -> Objects.equals(String.valueOf(d.getValue()), t.getType())).collect(Collectors.toList());
                        if(collect1.size()>0){
                            t.setType(collect1.get(0).getLabel());
                        }
                    });
                    Map<String,Object> allMap = new HashMap<>();
                    List<ParamJoinTemplate> collectThird = paramJoinTemplates.stream().filter(p -> Objects.equals(t.getId(), p.getTechnologyOperationParamId())).collect(Collectors.toList());
                    if(collectThird.size()>0){
                        allMap.put("paramValue",collectThird.get(0).getDefaultValue());
                    }else {
                        allMap.put("paramValue","");
                    }
                    allMap.put("code",pojo.get("code"));
                    allMap.put("paramItem", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("parameterItem"),""));
                    allMap.put("oneId", com.chinaztt.mes.common.util.StringUtils.defaultString( String.valueOf(pojo.get("id")),""));
                    allMap.put("twoId", com.chinaztt.mes.common.util.StringUtils.defaultString( String.valueOf(second.get("id")) ,""));
                    allMap.put("threeId", com.chinaztt.mes.common.util.StringUtils.defaultString(String.valueOf(t.getId()),""));
                    allMap.put("paramItemTwo", com.chinaztt.mes.common.util.StringUtils.defaultString((String) second.get("parameterItem"),""));
                    allMap.put("paramItemThree", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getParameterItem(),""));
                    allMap.put("paramType", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getType(),""));
                    //allMap.put("paramFormat", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getParameterFormat(),""));
                    allMap.put("unit", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getUnit(),""));
                    allMap.put("parentId",t.getParentId());
                    allMap.put("paramValue",t.getParamValue());
                    all.add(allMap);
                });
            });
        });
        return all;
    }
    @Override
    public boolean deleteParamTemplate(ParamJoinTemplate operationParamJoinTemplate) {
        paramJoinTemplateMapper.delete(Wrappers.<ParamJoinTemplate>lambdaQuery().eq(ParamJoinTemplate::getTechnologyOperationParamId, operationParamJoinTemplate.getTechnologyOperationParamId()).eq(ParamJoinTemplate::getTechnologyOperationTemplateId, operationParamJoinTemplate.getTechnologyOperationTemplateId()));
        return false;
        System.out.println("------------------------->"+operationParamJoinTemplate);
        return paramJoinTemplateMapper
                .deleteByCondition( operationParamJoinTemplate.getTechnologyOperationParamId(),
                        operationParamJoinTemplate.getTechnologyOperationTemplateId())>0;
    }
    @Override
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/ParamServiceImpl.java
@@ -81,7 +81,7 @@
            Param second=new Param();
            SysDictItem sysDictItem = second_param.stream().filter(p -> p.getId().equals(Integer.valueOf(String.valueOf(s)))).collect(Collectors.toList()).get(0);
            second.setParameterItem(sysDictItem.getLabel());
            second.setCode(""+s);
            second.setCode(father.getCode()+"-"+s);
            second.setParentId(father.getId());
            baseMapper.insert(second);
            //三级
@@ -89,7 +89,7 @@
                Param third=new Param();
                SysDictItem sysThirdDictItem = third_param.stream().filter(p -> p.getId().equals(Integer.valueOf(String.valueOf(t)))).collect(Collectors.toList()).get(0);
                third.setParameterItem(sysThirdDictItem.getLabel());
                third.setCode(""+t);
                third.setCode(second.getCode()+"-"+t);
                third.setParentId(second.getId());
                baseMapper.insert(third);
            });
@@ -231,6 +231,7 @@
        List<List<Param>>paramList=new ArrayList<>();
        AtomicInteger nums = new AtomicInteger();
        List<Long>secondIds=new ArrayList();
        List<String>secondCode=new ArrayList();
        for (int i = 0; i < listParamTemplates.size(); i++) {
            List<ParamTemplate> l = listParamTemplates.get(i);
            List<Param>paramList1=new ArrayList<>();
@@ -257,7 +258,8 @@
                        Param second=new Param();
                        second.setId(IdWorker.getId());
                        secondIds.add(second.getId());
                        second.setCode(dictTwo.stream().filter(d -> Objects.equals(c.getParamItemTwo(), d.getLabel())).collect(Collectors.toList()).get(0).getId()+"");
                        second.setCode(paramFirst.getCode()+"-"+dictTwo.stream().filter(d -> Objects.equals(c.getParamItemTwo(), d.getLabel())).collect(Collectors.toList()).get(0).getId()+"");
                        secondCode.add(second.getCode());
                        second.setParameterItem(c.getParamItemTwo());
                        if(c.getParamItemThree()==null){
                            second.setType(type.stream().filter(d -> Objects.equals(c.getParamType(), d.getLabel())).collect(Collectors.toList()).get(0).getValue());
@@ -271,10 +273,11 @@
                        Param third=new Param();
                        third.setId(IdWorker.getId());
                        long paramItemTwo = secondIds.get(secondIds.size()-1);
                        String paramItemCode=secondCode.get(secondCode.size()-1);
                        //System.out.println(nums.get()+"所属二级======》"+secondIds.get(secondIds.size()-1));
                        third.setParentId(paramItemTwo);
                        third.setParameterItem(c.getParamItemThree());
                        third.setCode(dictThree.stream().filter(d -> Objects.equals(c.getParamItemThree(), d.getLabel())).collect(Collectors.toList()).get(0).getId()+"");
                        third.setCode(paramItemCode+"-"+dictThree.stream().filter(d -> Objects.equals(c.getParamItemThree(), d.getLabel())).collect(Collectors.toList()).get(0).getId()+"");
                        third.setType(type.stream().filter(d -> Objects.equals(c.getParamType(), d.getLabel())).collect(Collectors.toList()).get(0).getValue());
                        third.setParameterFormat(c.getParamFormat());
                        third.setUnit(c.getUnit());
mes-basic/src/main/resources/mapper/ParamJoinTemplateMapper.xml
@@ -41,4 +41,10 @@
        where technology_operation_param_id = #{technologyOperationParamId}
          and technology_operation_template_id = #{technologyOperationTemplateId}
    </update>
    <delete id="deleteByCondition">
        DELETE
        FROM basic_param_join_template
        WHERE technology_operation_param_id = #{paramId}
          and technology_operation_template_id = #{templateId}
    </delete>
</mapper>
mes-basic/src/main/resources/mapper/ParamMapper.xml
@@ -40,6 +40,7 @@
        <result property="defaultValue" column="default_value"/>
        <result property="parentId" column="parent_id"/>
        <result property="dict" column="dict"/>
        <result property="templateParentId" column="templateParentId"/>
        <collection property="sysDictItemList" ofType="com.chinaztt.ztt.admin.api.entity.SysDictItem"
                    column="dict" select="com.chinaztt.mes.basic.mapper.ParamMapper.getDict">
        </collection>
@@ -123,4 +124,21 @@
        FROM basic_param
        WHERE code=#{code}
    </select>
    <select id="getTemplateParamPlus" resultMap="paramMap">
        SELECT
            bp.id id,
            bpj.parent_id templateParentId,
            bpj.technology_operation_template_id,
            bpj.technology_operation_param_id,
            bpj.default_value,
            bp.code,
            bp.parameter_item,
            bp."type",
            bp.unit
        FROM
            basic_param_join_template bpj
                LEFT JOIN basic_param bp ON bpj.technology_operation_param_id = bp.ID
        WHERE
            bpj.technology_operation_template_id = #{templateId}
    </select>
</mapper>
mes-technology/src/main/java/com/chinaztt/mes/technology/controller/RoutingController.java
@@ -341,7 +341,8 @@
    @SysLog("工序参数的参数值的修改")
    @PutMapping("routingTemplateParam")
    public R updateRoutingTemplateParamById(@RequestBody RoutingDTO routing) {
        return routingService.updateRoutingTemplateParamById(routing);
        System.out.println(routing);
        return R.ok(routingService.updateRoutingTemplateParamById(routing));
    }
mes-technology/src/main/java/com/chinaztt/mes/technology/service/RoutingService.java
@@ -25,11 +25,8 @@
import com.chinaztt.mes.technology.dto.RoutingDTO;
import com.chinaztt.mes.technology.dto.RoutingOperationDTO;
import com.chinaztt.mes.technology.entity.Routing;
import com.chinaztt.mes.technology.entity.RoutingOperationParam;
import com.chinaztt.mes.technology.entity.RoutingOperationTemplate;
import com.chinaztt.mes.technology.excel.RoutingData;
import com.chinaztt.mes.technology.excel.RoutingExcelData;
import com.chinaztt.mes.technology.excel.StructureData;
import com.chinaztt.ztt.common.core.util.R;
import javax.servlet.http.HttpServletResponse;
@@ -160,7 +157,7 @@
     * @param routingDTO
     * @return
     */
    List<RoutingOperationParam> getOperationTemplateParam(RoutingDTO routingDTO);
    List<Map<String, Object>> getOperationTemplateParam(RoutingDTO routingDTO);
    /**
     * 查询模板与参数
@@ -176,7 +173,7 @@
     * @param routingDTO
     * @return
     */
    List<RoutingOperationTemplate> addOperationTemplate(RoutingDTO routingDTO);
    List<Map<String, Object>> addOperationTemplate(RoutingDTO routingDTO);
    /**
     * 根据复制工序模板的id删除工序模板
@@ -192,7 +189,7 @@
     * @param routingDTO
     * @return
     */
    boolean addOperationTemplateParam(RoutingDTO routingDTO);
    List<Map<String,Object>> addOperationTemplateParam(RoutingDTO routingDTO);
    /**
     * 根据复制工序参数的id删除工序参数
mes-technology/src/main/java/com/chinaztt/mes/technology/service/impl/RoutingServiceImpl.java
@@ -24,6 +24,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -34,11 +35,13 @@
import com.chinaztt.mes.basic.entity.Part;
import com.chinaztt.mes.basic.entity.Template;
import com.chinaztt.mes.basic.mapper.BasicParamTemplateMapper;
import com.chinaztt.mes.basic.mapper.ParamJoinTemplateMapper;
import com.chinaztt.mes.basic.mapper.ParamMapper;
import com.chinaztt.mes.basic.mapper.PartMapper;
import com.chinaztt.mes.basic.util.DictUtils;
import com.chinaztt.mes.common.handler.StateMachineHandler;
import com.chinaztt.mes.common.numgen.NumberGenerator;
import com.chinaztt.mes.common.util.JsonUtil;
import com.chinaztt.mes.common.util.StateResult;
import com.chinaztt.mes.technology.dto.*;
import com.chinaztt.mes.technology.entity.*;
@@ -51,6 +54,7 @@
import com.chinaztt.mes.technology.state.routing.constant.RoutingEvents;
import com.chinaztt.mes.technology.state.routing.constant.RoutingStateStringValues;
import com.chinaztt.mes.technology.state.routing.constant.RoutingStates;
import com.chinaztt.ztt.admin.api.entity.SysDictItem;
import com.chinaztt.ztt.common.core.util.R;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -99,7 +103,7 @@
    private StateMachinePersister<RoutingStates, RoutingEvents, Routing> persister;
    private NumberGenerator<Routing> numberGenerator;
    private NumberGenerator<RoutingOperationTemplate> newNumberGenerator;
    private ParamJoinTemplateMapper paramJoinTemplateMapper;
    @Override
    public IPage<List<RoutingDTO>> getPage(Page page, QueryWrapper<RoutingDTO> ew) {
@@ -316,23 +320,100 @@
                newOperationTemplate.setRoutingOperationId(op.getId());
                newOperationTemplate.setSystemNo(newNumberGenerator.generateNumberWithPrefix(RoutingOperationTemplate.DIGIT, RoutingOperationTemplate.PREFIX, RoutingOperationTemplate::getSystemNo));
                routingOperationTemplateMapper.insert(newOperationTemplate);
                //通过工序模板id获取工序参数
                List<ParamDTO> paramList = paramMapper.getParam(operationTemplate.getId());
                if (paramList != null) {
                    for (ParamDTO param : paramList) {
                List<ParamDTO> templateParamPlus = paramMapper.getTemplateParamPlus(operationTemplate.getId());
                //templateParamPlus.forEach(l->{
                //    System.out.println("得到的数据=======================》"+JsonUtil.jsonToString(l));
                //});
                //一级
                List<ParamDTO> first = templateParamPlus.stream().filter(t -> Objects.equals(t.getTemplateParentId(), 0L)).collect(Collectors.toList());
                //first.forEach(f->{
                //    System.out.println("一级数据========================》"+JsonUtil.jsonToString(f));
                //});
                first.forEach(f->{
                        Long firstId=f.getId();
                        RoutingOperationParam routingOperation = new RoutingOperationParam();
                        routingOperation.setCode(param.getCode());
                        routingOperation.setParameterItem(param.getParameterItem());
                        routingOperation.setRoutingId(op.getRoutingId());
                        routingOperation.setOperationId(op.getOperationId());
                        routingOperation.setType(param.getType());
                        routingOperation.setUnit(param.getUnit());
                        routingOperation.setRoutingOperationId(op.getId());
                        routingOperation.setOperationTemplateId(newOperationTemplate.getId());
                        routingOperation.setParamValue(param.getDefaultValue());
                        routingOperation.setCode(f.getCode());
                        routingOperation.setParameterItem(f.getParameterItem());
                        routingOperation.setType(f.getType());
                        routingOperation.setUnit(f.getUnit());
                        routingOperation.setParamValue(f.getDefaultValue());
                        routingOperation.setParentId(0L);
                        routingOperationParamMapper.insert(routingOperation);
                    }
                }
                    List<ParamDTO> second = templateParamPlus.stream()
                            .filter(t -> Objects.equals(firstId, t.getTemplateParentId())).collect(Collectors.toList());
                    //second.forEach(s->{
                    //    System.out.println("得到的二级==================》"+JsonUtil.jsonToString(second));
                    //});
                    //二级
                    second.forEach(s->{
                        long secondId = s.getId();
                        RoutingOperationParam routingOperationSecond = new RoutingOperationParam();
                        routingOperationSecond.setRoutingId(op.getRoutingId());
                        routingOperationSecond.setOperationId(op.getOperationId());
                        routingOperationSecond.setRoutingOperationId(op.getId());
                        routingOperationSecond.setOperationTemplateId(newOperationTemplate.getId());
                        routingOperationSecond.setCode(s.getCode());
                        routingOperationSecond.setParameterItem(s.getParameterItem());
                        routingOperationSecond.setType(s.getType());
                        routingOperationSecond.setUnit(s.getUnit());
                        routingOperationSecond.setParamValue(s.getDefaultValue());
                        routingOperationSecond.setParentId(routingOperation.getId());
                        routingOperationParamMapper.insert(routingOperationSecond);
                        //三级
                        List<ParamDTO> third = templateParamPlus.stream()
                                .filter(t -> Objects.equals(secondId, t.getTemplateParentId())).collect(Collectors.toList());
                        //third.forEach(t->{
                        //    System.out.println("得到的三级==============》"+JsonUtil.jsonToString(t));
                        //});
                        third.forEach(t->{
                            RoutingOperationParam routingOperationThird = new RoutingOperationParam();
                            routingOperationThird.setRoutingId(op.getRoutingId());
                            routingOperationThird.setOperationId(op.getOperationId());
                            routingOperationThird.setRoutingOperationId(op.getId());
                            routingOperationThird.setOperationTemplateId(newOperationTemplate.getId());
                            routingOperationThird.setCode(t.getCode());
                            routingOperationThird.setParameterItem(t.getParameterItem());
                            routingOperationThird.setType(t.getType());
                            routingOperationThird.setUnit(t.getUnit());
                            routingOperationThird.setParamValue(t.getDefaultValue());
                            routingOperationThird.setParentId(routingOperationSecond.getId());
                            routingOperationParamMapper.insert(routingOperationThird);
                        });
                    });
                });
                //QueryWrapper<ParamJoinTemplate>gen=new QueryWrapper<>();
                //gen.lambda().eq(ParamJoinTemplate::getParentId,0)
                //        .eq(ParamJoinTemplate::getTechnologyOperationTemplateId,operationTemplate.getId());
                //List<ParamJoinTemplate> paramJoinTemplates = paramJoinTemplateMapper.selectList(gen);
                //paramJoinTemplates.forEach(p->{
                //    RoutingOperationParam routingOperation = new RoutingOperationParam();
                //    routingOperation.setRoutingId(op.getRoutingId());
                //    routingOperation.setOperationId(op.getOperationId());
                //    routingOperation.setRoutingOperationId(op.getId());
                //    routingOperation.setOperationTemplateId(newOperationTemplate.getId());
                //});
                //通过工序模板id获取工序参数
                //List<ParamDTO> paramList = paramMapper.getParam(operationTemplate.getId());
                ////if (paramList != null) {
                //    for (ParamDTO param : paramList) {
                //        RoutingOperationParam routingOperation = new RoutingOperationParam();
                //        routingOperation.setCode(param.getCode());
                //        routingOperation.setParameterItem(param.getParameterItem());
                //        routingOperation.setRoutingId(op.getRoutingId());
                //        routingOperation.setOperationId(op.getOperationId());
                //        routingOperation.setType(param.getType());
                //        routingOperation.setUnit(param.getUnit());
                //        routingOperation.setRoutingOperationId(op.getId());
                //        routingOperation.setOperationTemplateId(newOperationTemplate.getId());
                //        routingOperation.setParamValue(param.getDefaultValue());
                //        routingOperationParamMapper.insert(routingOperation);
                //    }
                //}
            }
        }
    }
@@ -992,14 +1073,18 @@
    }
    @Override
    public List<RoutingOperationParam> getOperationTemplateParam(RoutingDTO routingDTO) {
    public List<Map<String, Object>> getOperationTemplateParam(RoutingDTO routingDTO) {
        System.out.println("========>"+routingDTO);
        List<RoutingOperationParam> routingOperationParamList = routingOperationParamMapper.selectList(Wrappers.<RoutingOperationParam>lambdaQuery()
                .eq(RoutingOperationParam::getRoutingOperationId, routingDTO.getRoutingOperationId()).eq(RoutingOperationParam::getOperationTemplateId, routingDTO.getOperationTemplateId())
                .eq(RoutingOperationParam::getRoutingOperationId, routingDTO.getRoutingOperationId())
                .eq(RoutingOperationParam::getOperationTemplateId, routingDTO.getOperationTemplateId())
                .eq(RoutingOperationParam::getParentId,0)
                .orderByAsc(RoutingOperationParam::getId));
        if (!CollectionUtil.isNotEmpty(routingOperationParamList)) {
            routingOperationParamList = new ArrayList<>();
        }
        return routingOperationParamList;
        List<SysDictItem> dict = dictUtils.getDict("technology_param");
        return getTree(routingOperationParamList,dict);
    }
    @Override
@@ -1021,10 +1106,10 @@
    }
    @Override
    public List<RoutingOperationTemplate> addOperationTemplate(RoutingDTO routingDTO) {
    public List<Map<String, Object>> addOperationTemplate(RoutingDTO routingDTO) {
        System.out.println("----------------------->" + routingDTO);
        List<RoutingOperationTemplate> routingOperationTemplateList = new ArrayList<>();
        for (Template template : routingDTO.getRoutingOperationTemplateList()) {
            List<ParamDTO> paramList = paramMapper.getParam(template.getId());
            RoutingOperationTemplate newRoutingOperationTemplate = new RoutingOperationTemplate();
            newRoutingOperationTemplate.setSystemNo(newNumberGenerator.generateNumberWithPrefix(RoutingOperationTemplate.DIGIT, RoutingOperationTemplate.PREFIX, RoutingOperationTemplate::getSystemNo));
            newRoutingOperationTemplate.setRoutingOperationId(routingDTO.getRoutingOperationId());
@@ -1034,25 +1119,93 @@
            newRoutingOperationTemplate.setDataType(template.getDataType());
            newRoutingOperationTemplate.setOperationTemplateType(template.getTemplateType());
            routingOperationTemplateMapper.insert(newRoutingOperationTemplate);
            List<ParamDTO> templateParamPlus = paramMapper.getTemplateParamPlus(template.getId());
            //templateParamPlus.forEach(l->{
            //    System.out.println("得到的数据=======================》"+JsonUtil.jsonToString(l));
            //});
            //一级
            List<ParamDTO> first = templateParamPlus.stream().filter(t -> Objects.equals(t.getTemplateParentId(), 0L)).collect(Collectors.toList());
            //first.forEach(f->{
            //    System.out.println("一级数据========================》"+JsonUtil.jsonToString(f));
            //});
            first.forEach(f -> {
                Long firstId = f.getId();
                RoutingOperationParam routingOperation = new RoutingOperationParam();
                routingOperation.setRoutingId(routingDTO.getId());
                routingOperation.setOperationId(routingDTO.getOperationId());
                routingOperation.setRoutingOperationId(routingDTO.getRoutingOperationId());
                routingOperation.setOperationTemplateId(newRoutingOperationTemplate.getId());
                routingOperation.setCode(f.getCode());
                routingOperation.setParameterItem(f.getParameterItem());
                routingOperation.setType(f.getType());
                routingOperation.setUnit(f.getUnit());
                routingOperation.setParamValue(f.getDefaultValue());
                routingOperation.setParentId(0L);
                routingOperationParamMapper.insert(routingOperation);
                List<ParamDTO> second = templateParamPlus.stream()
                        .filter(t -> Objects.equals(firstId, t.getTemplateParentId())).collect(Collectors.toList());
                //second.forEach(s->{
                //    System.out.println("得到的二级==================》"+JsonUtil.jsonToString(second));
                //});
                //二级
                second.forEach(s -> {
                    long secondId = s.getId();
                    RoutingOperationParam routingOperationSecond = new RoutingOperationParam();
                    routingOperationSecond.setRoutingId(routingDTO.getId());
                    routingOperationSecond.setOperationId(routingDTO.getOperationId());
                    routingOperationSecond.setRoutingOperationId(routingDTO.getRoutingOperationId());
                    routingOperationSecond.setOperationTemplateId(newRoutingOperationTemplate.getId());
                    routingOperationSecond.setCode(s.getCode());
                    routingOperationSecond.setParameterItem(s.getParameterItem());
                    routingOperationSecond.setType(s.getType());
                    routingOperationSecond.setUnit(s.getUnit());
                    routingOperationSecond.setParamValue(s.getDefaultValue());
                    routingOperationSecond.setParentId(routingOperation.getId());
                    routingOperationParamMapper.insert(routingOperationSecond);
                    //三级
                    List<ParamDTO> third = templateParamPlus.stream()
                            .filter(t -> Objects.equals(secondId, t.getTemplateParentId())).collect(Collectors.toList());
                    //third.forEach(t->{
                    //    System.out.println("得到的三级==============》"+JsonUtil.jsonToString(t));
                    //});
                    third.forEach(t -> {
                        RoutingOperationParam routingOperationThird = new RoutingOperationParam();
                        routingOperationThird.setRoutingId(routingDTO.getId());
                        routingOperationThird.setOperationId(routingDTO.getOperationId());
                        routingOperationThird.setRoutingOperationId(routingDTO.getRoutingOperationId());
                        routingOperationThird.setOperationTemplateId(newRoutingOperationTemplate.getId());
                        routingOperationThird.setCode(t.getCode());
                        routingOperationThird.setParameterItem(t.getParameterItem());
                        routingOperationThird.setType(t.getType());
                        routingOperationThird.setUnit(t.getUnit());
                        routingOperationThird.setParamValue(t.getDefaultValue());
                        routingOperationThird.setParentId(routingOperationSecond.getId());
                        routingOperationParamMapper.insert(routingOperationThird);
                    });
                });
            });
            //通过工序模板id获取工序参数
            if (paramList != null) {
                for (ParamDTO param : paramList) {
                    RoutingOperationParam routingOperation = new RoutingOperationParam();
                    routingOperation.setCode(param.getCode());
                    routingOperation.setParameterItem(param.getParameterItem());
                    routingOperation.setRoutingId(routingDTO.getId());
                    routingOperation.setOperationId(routingDTO.getOperationId());
                    routingOperation.setType(param.getType());
                    routingOperation.setUnit(param.getUnit());
                    routingOperation.setRoutingOperationId(routingDTO.getRoutingOperationId());
                    routingOperation.setOperationTemplateId(newRoutingOperationTemplate.getId());
                    routingOperation.setParamValue(param.getDefaultValue());
                    routingOperationParamMapper.insert(routingOperation);
                }
            }
            routingOperationTemplateList.add(newRoutingOperationTemplate);
            //if (paramList != null) {
            //    for (ParamDTO param : paramList) {
            //        RoutingOperationParam routingOperation = new RoutingOperationParam();
            //        routingOperation.setCode(param.getCode());
            //        routingOperation.setParameterItem(param.getParameterItem());
            //        routingOperation.setRoutingId(routingDTO.getId());
            //        routingOperation.setOperationId(routingDTO.getOperationId());
            //        routingOperation.setType(param.getType());
            //        routingOperation.setUnit(param.getUnit());
            //        routingOperation.setRoutingOperationId(routingDTO.getRoutingOperationId());
            //        routingOperation.setOperationTemplateId(newRoutingOperationTemplate.getId());
            //        routingOperation.setParamValue(param.getDefaultValue());
            //        routingOperationParamMapper.insert(routingOperation);
            //    }
            //}
            //    routingOperationTemplateList.add(newRoutingOperationTemplate);
            //}
            //return routingOperationTemplateList;
        }
        return routingOperationTemplateList;
        return getOperationTemplateParam(routingDTO);
    }
    @Override
@@ -1070,7 +1223,7 @@
    }
    @Override
    public boolean addOperationTemplateParam(RoutingDTO routingDTO) {
    public List<Map<String,Object>> addOperationTemplateParam(RoutingDTO routingDTO) {
        System.out.println("DTo++++=======>"+routingDTO);
        List<RoutingOperationParam> routingOperationParamList = new ArrayList<>();
        for (RoutingOperationParam routingOperationParam : routingDTO.getRoutingOperationParam()) {
@@ -1100,6 +1253,9 @@
                    secondParam.setRoutingId(routingDTO.getId());
                    secondParam.setOperationId(routingDTO.getOperationId());
                    secondParam.setCode(s.getCode());
                    secondParam.setParameterItem(s.getParameterItem());
                    secondParam.setType(s.getType());
                    secondParam.setUnit(s.getUnit());
                    secondParam.setParentId(routingOperationParam.getId());
                    routingOperationParamMapper.insert(secondParam);
                    QueryWrapper<Param>thirdParamQ = new QueryWrapper<Param>();
@@ -1113,6 +1269,9 @@
                            third.setOperationTemplateId(routingDTO.getOperationTemplateId());
                            third.setRoutingId(routingDTO.getId());
                            third.setCode(t.getCode());
                            third.setParameterItem(t.getParameterItem());
                            third.setType(t.getType());
                            third.setUnit(t.getUnit());
                            third.setOperationId(routingDTO.getOperationId());
                            third.setParentId(secondParam.getId());
                            routingOperationParamMapper.insert(third);
@@ -1120,11 +1279,88 @@
                    }
                });
            }
            //
            //routingOperationParamList.add(routingOperationParam);
        }
        return true;
        List<SysDictItem> dict = dictUtils.getDict("technology_param");
        QueryWrapper<RoutingOperationParam>queryWrapper=new QueryWrapper<>();
        queryWrapper.lambda().eq(RoutingOperationParam::getParentId,0)
                .eq(RoutingOperationParam::getRoutingId,routingDTO.getId())
                .eq(RoutingOperationParam::getOperationTemplateId,routingDTO.getOperationTemplateId())
                .eq(RoutingOperationParam::getRoutingOperationId,routingDTO.getRoutingOperationId());
        List<RoutingOperationParam> list = routingOperationParamMapper.selectList(queryWrapper);
        return getTree(list,dict);
    }
    public List<Map<String,Object>> getTree(List records,List<SysDictItem> dict){
        List<Map<String,Object>> all = new ArrayList<>();
        records.forEach(l->{
            System.out.println("一级数据--"+l);
            Map pojo = JsonUtil.jsonToPojo(JsonUtil.jsonToString(l), Map.class);
            Optional.ofNullable(pojo.get("type")).ifPresent(o->{
                pojo.put("type",dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),pojo.get("type"))).collect(Collectors.toList()).get(0).getLabel());
            });
            QueryWrapper<RoutingOperationParam>queryWrapper=new QueryWrapper<>();
            queryWrapper.lambda().eq(RoutingOperationParam::getParentId,pojo.get("id"));
            List<RoutingOperationParam> secondList = routingOperationParamMapper.selectList(queryWrapper);
            //没有children直接添加
            if(secondList.isEmpty()){
                Map<String,Object> oneMap = new HashMap<>();
                oneMap.put("code",pojo.get("code"));
                oneMap.put("paramItem",pojo.get("parameterItem"));
                oneMap.put("paramItemTwo","");
                oneMap.put("paramItemThree","");
                oneMap.put("oneId", com.chinaztt.mes.common.util.StringUtils.defaultString( String.valueOf(pojo.get("id")),""));
                oneMap.put("paramType", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("type"),""));
                oneMap.put("paramFormat", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("parameterFormat"),""));
                oneMap.put("unit", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("unit"),""));
                oneMap.put("parentId",pojo.get("parentId"));
                oneMap.put("paramValue",pojo.get("paramValue"));
                all.add(oneMap);
            }
            secondList.forEach(s->{
                System.out.println("二级数据--"+s);
                Map second = JsonUtil.jsonToPojo(JsonUtil.jsonToString(s), Map.class);
                Optional.ofNullable(second.get("type")).ifPresent(o->{
                    second.put("type",dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),second.get("type"))).collect(Collectors.toList()).get(0).getLabel());
                });
                QueryWrapper<RoutingOperationParam>queryWrapperSecond=new QueryWrapper<>();
                queryWrapperSecond.lambda().eq(RoutingOperationParam::getParentId,second.get("id"));
                List<RoutingOperationParam> third = routingOperationParamMapper.selectList(queryWrapperSecond);
                if(third.isEmpty()){
                    RoutingOperationParam p = new RoutingOperationParam();
                    p.setType(s.getType());
                    //p.setParameterFormat(null);
                    p.setUnit(s.getUnit());
                    p.setParamValue(s.getParamValue());
                    p.setParentId(s.getParentId());
                    third.add(p);
                }
                third.forEach(t->{
                    System.out.println("三级数据--"+t);
                    Optional.ofNullable(t.getType()).ifPresent(o->{
                        t.setType(dict.stream().filter(d-> Objects.equals(String.valueOf(d.getValue()),t.getType())).collect(Collectors.toList()).get(0).getLabel());
                    });
                    Map<String,Object> allMap = new HashMap<>();
                    allMap.put("code",pojo.get("code"));
                    allMap.put("paramItem", com.chinaztt.mes.common.util.StringUtils.defaultString((String) pojo.get("parameterItem"),""));
                    allMap.put("oneId", com.chinaztt.mes.common.util.StringUtils.defaultString( String.valueOf(pojo.get("id")),""));
                    allMap.put("twoId", com.chinaztt.mes.common.util.StringUtils.defaultString( String.valueOf(second.get("id")) ,""));
                    allMap.put("threeId", com.chinaztt.mes.common.util.StringUtils.defaultString(String.valueOf(t.getId()),""));
                    allMap.put("paramItemTwo", com.chinaztt.mes.common.util.StringUtils.defaultString((String) second.get("parameterItem"),""));
                    allMap.put("paramItemThree", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getParameterItem(),""));
                    allMap.put("paramType", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getType(),""));
                    //allMap.put("paramFormat", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getParameterFormat(),""));
                    allMap.put("unit", com.chinaztt.mes.common.util.StringUtils.defaultString(t.getUnit(),""));
                    allMap.put("parentId",t.getParentId());
                    allMap.put("paramValue",t.getParamValue());
                    all.add(allMap);
                });
            });
        });
        return all;
    }
    @Override
    public boolean deleteOperationTemplateParam(Long id) {
@@ -1133,9 +1369,14 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R updateRoutingTemplateParamById(RoutingDTO routing) {
        for (RoutingOperationParam routingOperationParam : routing.getRoutingOperationParam()) {
            routingOperationParamMapper.updateById(routingOperationParam);
            UpdateWrapper<RoutingOperationParam>updateWrapper=new UpdateWrapper<>();
            updateWrapper.lambda()
                    .set(RoutingOperationParam::getParamValue,routingOperationParam.getParamValue())
                    .eq(RoutingOperationParam::getId,routingOperationParam.getId());
            routingOperationParamMapper.update(null,updateWrapper);
        }
        return R.ok();
    }