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(); }