Browse Source

refactor: 使用mybatis-plus重构基础分类

master
李永德 8 months ago
parent
commit
60422a9884
  1. 36
      lms/nladmin-system/src/main/java/org/nl/config/language/InitLocaleResolver.java
  2. 23
      lms/nladmin-system/src/main/java/org/nl/config/language/LangProcess.java
  3. 2
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/ClassstandardController.java
  4. 86
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/controller/ClassStandardController.java
  5. 4
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/package-info.java
  6. 84
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/IClassStandardService.java
  7. 73
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dao/ClassStandard.java
  8. 14
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dao/mapper/ClassStandardMapper.java
  9. 19
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dao/mapper/ClassStandardMapper.xml
  10. 73
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dto/ClassStandardDto.java
  11. 12
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dto/ClassStandardQuery.java
  12. 26
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dto/ClassStandardTrees.java
  13. 274
      lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/impl/ClassStandardServiceImpl.java
  14. 5
      lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java
  15. 1
      lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java
  16. 2
      lms/nladmin-system/src/main/resources/logback-spring.xml
  17. 24
      lms/nladmin-ui/src/views/wms/basedata/master/class/classstandard.js
  18. 79
      lms/nladmin-ui/src/views/wms/basedata/master/class/index.vue

36
lms/nladmin-system/src/main/java/org/nl/config/language/InitLocaleResolver.java

@ -0,0 +1,36 @@
//package org.nl.config.language;
//
//import org.apache.commons.lang3.StringUtils;
//import org.nl.config.MapOf;
//import org.springframework.web.servlet.LocaleResolver;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.util.Locale;
//import java.util.Map;
//
///**
// * s
// * @author ZZQ
// * @Date 2023/11/13 09:36
// */
//public class InitLocaleResolver implements LocaleResolver {
// public static Map<String,String> Language_Country = MapOf.of("in","in-ID","en","en-US","zh","zh-CN");
// @Override
// public Locale resolveLocale(HttpServletRequest request) {
// String header = request.getHeader("Accept-Language");
// if (StringUtils.isNotEmpty(header)){
// String lang = Language_Country.get(header);
// if (StringUtils.isNotEmpty(lang)){
// String[] l = lang.split("-");
// //印尼的ISO标准国家代码为id-ID
// return new Locale(l[0], l[1]);
// }
// }
// return Locale.getDefault();
// }
//
// @Override
// public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
// }
//}

23
lms/nladmin-system/src/main/java/org/nl/config/language/LangProcess.java

@ -0,0 +1,23 @@
package org.nl.config.language;
import org.apache.commons.lang3.StringUtils;
import org.nl.modules.wql.util.SpringContextHolder;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
/**
* s
* @author ZZQ
* @Date 2023/11/13 09:45
*/
public class LangProcess {
public static String msg(String code,String...args){
MessageSource bean = SpringContextHolder.getBean(MessageSource.class);
if (StringUtils.isEmpty(code)){
return "配置信息不存在";
}
String message = bean.getMessage(code, args, LocaleContextHolder.getLocale());
return message;
}
}

2
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/rest/ClassstandardController.java

@ -25,7 +25,7 @@ import java.util.Map;
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/Classstandard")
@RequestMapping("/api/Classstandard2")
@Slf4j
public class ClassstandardController {

86
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/controller/ClassStandardController.java

@ -0,0 +1,86 @@
package org.nl.wms.basedata.master.standard.controller;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.modules.logging.annotation.Log;
import org.nl.wms.basedata.master.standard.service.IClassStandardService;
import org.nl.wms.basedata.master.standard.service.dao.ClassStandard;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 基础分类
* @Author: lyd
* @Date: 2024/10/15
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/Classstandard")
@Slf4j
public class ClassStandardController {
@Autowired
private IClassStandardService classStandardService;
@GetMapping
@Log("查询基础分类")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(classStandardService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增基础分类")
public ResponseEntity<Object> create(@Validated @RequestBody ClassStandard entity){
classStandardService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改基础分类")
public ResponseEntity<Object> update(@Validated @RequestBody ClassStandard entity){
classStandardService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除基础分类")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody List<String> ids) {
classStandardService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
@GetMapping("/getClass")
@Log("获取Code获取树下拉框")
//@PreAuthorize("@el.check('materialtype:list')")
public ResponseEntity<Object> queryClassByCode(@RequestParam Map whereJson) {
return new ResponseEntity<>(classStandardService.queryClassByCode(whereJson), HttpStatus.OK);
}
@GetMapping("/getClassName")
@Log("获取分类名称下拉框")
public ResponseEntity<Object> getClassName() {
return new ResponseEntity<>(classStandardService.getClassName(), HttpStatus.OK);
}
@GetMapping("/loadClass")
@Log("查询基础类型")
public ResponseEntity<Object> query(@RequestParam Map whereJson) {
return new ResponseEntity<>(classStandardService.loadClass(whereJson), HttpStatus.OK);
}
@PostMapping("/superior")
public ResponseEntity<Object> getSuperior(@RequestBody String id) {
ClassStandard classstandard = classStandardService.getById(id);
ArrayList<ClassStandard> list = classStandardService.getSuperior(classstandard, new ArrayList<>());
return new ResponseEntity<>(classStandardService.buildTree(list), HttpStatus.OK);
}
}

4
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/package-info.java

@ -0,0 +1,4 @@
/**
* 基础分类相关
*/
package org.nl.wms.basedata.master.standard;

84
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/IClassStandardService.java

@ -0,0 +1,84 @@
package org.nl.wms.basedata.master.standard.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.basedata.master.standard.service.dao.ClassStandard;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Author: lyd
* @Date: 2024/10/15
*/
public interface IClassStandardService extends IService<ClassStandard> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<MdBaseClassstandard>
*/
IPage<ClassStandard> queryAll(Map whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(ClassStandard entity);
/**
* 编辑
* @param entity /
*/
void update(ClassStandard entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(List<String> ids);
/**
* 获取下拉框
* @return
*/
List<ClassStandard> getClassName();
/**
* loadClass
* @param whereJson
* @return
*/
List<ClassStandard> loadClass(Map whereJson);
/**
* 获取父级树
* @param classstandard
* @param objects
* @return
*/
ArrayList<ClassStandard> getSuperior(ClassStandard classstandard, ArrayList<ClassStandard> objects);
/**
* 构建树形
* @param list
* @return
*/
List<ClassStandard> buildTree(ArrayList<ClassStandard> list);
/**
* 根据编码获取对应的父级数据
* @param whereJson
* @return
*/
List<ClassStandard> queryClassByCode(Map whereJson);
/**
* 获取所有的子节点id
* @param classId 父节点id
* @return 子节点id数组
*/
ArrayList<String> getAllChildrenIds(String classId);
}

73
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dao/ClassStandard.java

@ -0,0 +1,73 @@
package org.nl.wms.basedata.master.standard.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
/**
* @Author: lyd
* @Date: 2024/10/15
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_pb_classstandard")
public class ClassStandard {
/**
* 防止精度丢失
*/
@TableId(value = "class_id", type = IdType.NONE)
private String class_id;
private String class_code;
private String long_class_code;
private String class_name;
private String class_desc;
private String parent_class_id;
private Boolean is_leaf;
private Integer sub_count;
private Boolean is_modify;
private Boolean is_delete;
private String class_level;
private String ext_id;
private String ext_parent_id;
private String create_id;
private String create_name;
private String create_time;
private String update_id;
private String update_name;
private String update_time;
@TableField(exist = false)
private Boolean hasChildren;
@TableField(exist = false)
private String id;
@TableField(exist = false)
private String label;
@TableField(exist = false)
private Boolean leaf;
}

14
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dao/mapper/ClassStandardMapper.java

@ -0,0 +1,14 @@
package org.nl.wms.basedata.master.standard.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.basedata.master.standard.service.dao.ClassStandard;
import java.util.ArrayList;
/**
* @Author: lyd
* @Date: 2024/10/15
*/
public interface ClassStandardMapper extends BaseMapper<ClassStandard> {
ArrayList<String> getAllChildrenIds(String classId);
}

19
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dao/mapper/ClassStandardMapper.xml

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.basedata.master.standard.service.dao.mapper.ClassStandardMapper">
<select id="getAllChildrenIds" resultType="java.lang.String">
SELECT DISTINCT
class_id
FROM (
SELECT
t1.class_id,
IF(find_in_set(parent_class_id, @pids) > 0, @pids := concat(@pids, ',', class_id), 0) AS ischild
FROM (
SELECT class_id, parent_class_id FROM md_base_classstandard t WHERE t.is_delete = '0' ORDER BY class_code
) t1,
(SELECT @pids := #{classId}) t2
) t3
WHERE ischild != 0
</select>
</mapper>

73
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dto/ClassStandardDto.java

@ -0,0 +1,73 @@
package org.nl.wms.basedata.master.standard.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-05-11
**/
@Data
public class ClassStandardDto implements Serializable {
/** 分类标识 */
private String class_id;
/** 分类编码 */
private String class_code;
/** 分类名称 */
private String class_name;
/** 分类简要描述 */
private String class_desc;
/** 上级分类标识 */
private String parent_class_id;
/** 子级数目 */
private String sub_count;
/** 是否叶子 */
private Boolean is_leaf;
/** 是否可修改 */
private Boolean is_modify;
/** 是否删除 */
private Boolean is_delete;
/** 级别 */
private String class_level;
/** 外部标识 */
private String ext_id;
/** 外部上级标识 */
private String ext_parent_id;
/** 车间编码 */
private String workshop_code;
/** 备注 */
private String remark;
/** 创建人 */
private String create_id;
/** 创建人 */
private String create_name;
/** 创建时间 */
private String create_time;
/** 修改人 */
private String update_id;
/** 修改人 */
private String update_name;
/** 修改时间 */
private String update_time;
}

12
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dto/ClassStandardQuery.java

@ -0,0 +1,12 @@
package org.nl.wms.basedata.master.standard.service.dto;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.basedata.master.standard.service.dao.ClassStandard;
/**
* @author lyd
* @date 2023-05-11
**/
public class ClassStandardQuery extends BaseQuery<ClassStandard> {
}

26
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/dto/ClassStandardTrees.java

@ -0,0 +1,26 @@
package org.nl.wms.basedata.master.standard.service.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.nl.wms.basedata.master.standard.service.dao.ClassStandard;
import java.io.Serializable;
import java.util.List;
/**
* @Author: lyd
* @Description: vue-tree-select所需要的实体
* @Date: 2023/5/12
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ClassStandardTrees extends ClassStandard implements Serializable {
@TableField(exist = false)
private List<ClassStandard> children;
}

274
lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/standard/service/impl/ClassStandardServiceImpl.java

@ -0,0 +1,274 @@
package org.nl.wms.basedata.master.standard.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils;
import org.nl.config.language.LangProcess;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.wms.basedata.master.standard.service.IClassStandardService;
import org.nl.wms.basedata.master.standard.service.dao.ClassStandard;
import org.nl.wms.basedata.master.standard.service.dao.mapper.ClassStandardMapper;
import org.nl.wms.basedata.master.standard.service.dto.ClassStandardTrees;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author: lyd
* @Date: 2024/10/15
*/
@Service
public class ClassStandardServiceImpl extends ServiceImpl<ClassStandardMapper, ClassStandard> implements IClassStandardService {
@Autowired
private ClassStandardMapper classStandardMapper;
@Override
public IPage<ClassStandard> queryAll(Map whereJson, PageQuery page) {
String class_code = ObjectUtil.isNotEmpty(whereJson.get("class_code"))
? whereJson.get("class_code").toString()
: null;
LambdaQueryWrapper<ClassStandard> lam = new LambdaQueryWrapper<>();
lam.eq(ObjectUtil.isNotEmpty(class_code), ClassStandard::getClass_code, class_code)
.eq(ClassStandard::getIs_delete, false)
.eq(ClassStandard::getParent_class_id, "0")
.or(la -> la.isNull(ClassStandard::getParent_class_id));
IPage<ClassStandard> pages = new Page<>(page.getPage() + 1, page.getSize());
classStandardMapper.selectPage(pages, lam);
pages.getRecords().forEach(classstandard -> {
classstandard.setIs_leaf((classstandard.getSub_count() <= 0));
classstandard.setHasChildren(classstandard.getSub_count() > 0);
});
return pages;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void create(ClassStandard entity) {
// 判断是否存在
ClassStandard classStandard = classStandardMapper
.selectOne(new LambdaQueryWrapper<ClassStandard>()
.eq(ClassStandard::getClass_code, entity.getClass_code())
.eq(ClassStandard::getIs_delete, false));
if (ObjectUtil.isNotEmpty(classStandard) && !classStandard.getClass_id().equals(entity.getClass_id())) {
throw new BadRequestException(LangProcess.msg("error_ParamExist", entity.getClass_id()));
}
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setClass_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setCreate_id(currentUserId);
entity.setCreate_name(nickName);
entity.setCreate_time(now);
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
entity.setIs_leaf(true);
entity.setClass_level(Math.ceil(entity.getClass_code().length() / 2.0) + "");
entity.setSub_count(0);
classStandardMapper.insert(entity);
// 更新节点
if (ObjectUtil.isNotEmpty(entity.getParent_class_id()) && !entity.getParent_class_id().equals(IOSEnum.IS_NOTANDYES.code("否"))) {
updateSubCnt(entity.getParent_class_id());
}
}
private void updateSubCnt(String parentClassId) {
ClassStandard classObject = classStandardMapper.selectById(parentClassId);
if (ObjectUtil.isEmpty(classObject)) {
return;
}
List<ClassStandard> classList = classStandardMapper
.selectList(new LambdaQueryWrapper<ClassStandard>().eq(ClassStandard::getParent_class_id, parentClassId));
int size = classList.size();
classObject.setSub_count(size);
classObject.setIs_leaf(size > 0);
classStandardMapper.updateById(classObject);
}
@Override
public void update(ClassStandard entity) {
String errorSystemAuthError = "error_SystemAuthError";
ClassStandard dto = classStandardMapper.selectById(entity.getClass_id());
if (dto == null) {
throw new BadRequestException(LangProcess.msg(errorSystemAuthError));
}
// 判断是否存在
ClassStandard classStandard = classStandardMapper
.selectOne(new LambdaQueryWrapper<ClassStandard>()
.eq(ClassStandard::getClass_code, entity.getClass_code())
.eq(ClassStandard::getIs_delete, false));
if (ObjectUtil.isNotEmpty(classStandard) && !classStandard.getClass_id().equals(entity.getClass_id())) {
throw new BadRequestException(LangProcess.msg("error_ParamExist", entity.getClass_id()));
}
// 查询原来的父id
String oldPid = dto.getParent_class_id();
String newPid = entity.getParent_class_id();
if (entity.getParent_class_id() != null && entity.getClass_id().equals(entity.getParent_class_id())) {
throw new BadRequestException(LangProcess.msg("login_childError"));
}
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
// 更新
classStandardMapper.updateById(entity);
//更新父节点中子节点数目
updateSubCnt(oldPid);
updateSubCnt(newPid);
}
@Override
public void deleteAll(List<String> ids) {
// 递归删除子类
for (String id : ids) {
// 获取元素体
ClassStandard classstandard = classStandardMapper.selectById(id);
classStandardMapper.deleteById(classstandard.getClass_id());
// 找出所有当前节点的子节点
List<ClassStandard> baseClassstandardList = classStandardMapper.selectList(
new LambdaQueryWrapper<ClassStandard>()
.eq(ClassStandard::getParent_class_id, classstandard.getClass_id()));
if (baseClassstandardList.size() > 0) {
List<String> collect = baseClassstandardList.stream()
.map(md -> md.getClass_id())
.collect(Collectors.toList());
deleteAll(collect);
}
updateSubCnt(classstandard.getParent_class_id());
}
}
@Override
public List<ClassStandard> getClassName() {
return classStandardMapper.selectList(new LambdaQueryWrapper<ClassStandard>()
.isNull(ClassStandard::getParent_class_id)
.or()
.eq(ClassStandard::getParent_class_id, "0")
.eq(ClassStandard::getIs_delete, false));
}
@Override
public List<ClassStandard> loadClass(Map whereJson) {
String pid = ObjectUtil.isNotEmpty(whereJson.get("pid")) ? whereJson.get("pid").toString() : null;
LambdaQueryWrapper<ClassStandard> lam = new LambdaQueryWrapper<>();
lam.eq(ObjectUtil.isNotEmpty(pid), ClassStandard::getParent_class_id, pid)
.or(ObjectUtil.isEmpty(pid), la -> la.isNull(ClassStandard::getParent_class_id)
.or()
.eq(ClassStandard::getParent_class_id, "0"))
.eq(ClassStandard::getIs_delete, false);
List<ClassStandard> classstandardList = classStandardMapper.selectList(lam);
classstandardList.forEach(classstandard -> {
classstandard.setHasChildren(classstandard.getSub_count() > 0);
classstandard.setLeaf((classstandard.getSub_count() <= 0));
classstandard.setId(classstandard.getClass_id());
classstandard.setLabel(classstandard.getClass_name());
});
return classstandardList;
}
/**
* 递归获取树形数据从子级到父级以及最高级
*
* @param classstandard
* @param res
* @return
*/
@Override
public ArrayList<ClassStandard> getSuperior(ClassStandard classstandard, ArrayList<ClassStandard> res) {
if (ObjectUtil.isEmpty(classstandard.getParent_class_id()) || classstandard.getParent_class_id().equals(IOSEnum.IS_NOTANDYES.code("否"))) {
// 父类id为空或者是0就是顶级类别
List<ClassStandard> classstandardList = classStandardMapper
.selectList(new LambdaQueryWrapper<ClassStandard>()
.eq(ClassStandard::getIs_delete, false)
.eq(ClassStandard::getParent_class_id, "0")
.or(la -> la.isNull(ClassStandard::getParent_class_id)));
res.addAll(classstandardList);
return res;
}
// 递归寻找同级
List<ClassStandard> classStandards = classStandardMapper.selectList(
new LambdaQueryWrapper<ClassStandard>()
.eq(ClassStandard::getIs_delete, false)
.eq(ClassStandard::getParent_class_id, classstandard.getParent_class_id()));
res.addAll(classStandards);
return getSuperior(classStandardMapper.selectById(classstandard.getParent_class_id()), res);
}
@Override
public List<ClassStandard> buildTree(ArrayList<ClassStandard> list) {
// 初始化数据
list.forEach(classstandard -> {
classstandard.setId(classstandard.getClass_id());
classstandard.setLabel(classstandard.getClass_name());
classstandard.setLeaf((classstandard.getSub_count() <= 0));
classstandard.setHasChildren(classstandard.getSub_count() > 0);
});
// 创建树结构
return list.stream()
.filter(node -> "0".equals(node.getParent_class_id()) || ObjectUtil.isEmpty(node.getParent_class_id()))
.map(node -> createTree(node, list))
.collect(Collectors.toList());
}
private ClassStandard createTree(ClassStandard node, List<ClassStandard> list) {
List<ClassStandard> children = list.stream()
.filter(child -> node.getClass_id().equals(child.getParent_class_id()))
.map(child -> createTree(child, list))
.collect(Collectors.toList());
if (!children.isEmpty()) {
ClassStandardTrees tObj = new ClassStandardTrees();
// 赋值一份实体,可以避免vue-tree拿到children属性显示展开图标
BeanUtils.copyProperties(node, tObj);
tObj.setChildren(children);
return tObj;
} else {
node.setLeaf(true);
}
return node;
}
@Override
public List<ClassStandard> queryClassByCode(Map whereJson) {
String parentClassCode = ObjectUtil.isNotEmpty(whereJson.get("parent_class_code"))
? (String) whereJson.get("parent_class_code") : null;
if (null == parentClassCode) {
throw new BadRequestException("父节点编号不能为空!");
}
List<ClassStandard> classstandards = classStandardMapper.selectList(
new LambdaQueryWrapper<ClassStandard>().eq(ClassStandard::getClass_code, parentClassCode));
if (classstandards.size() == 0) {
throw new BadRequestException("请输入正确的父节点编号!");
}
// 处理数据
classstandards.forEach(classstandard -> {
classstandard.setHasChildren(classstandard.getSub_count() > 0);
classstandard.setLeaf((classstandard.getSub_count() == 0));
classstandard.setId(classstandard.getClass_id());
classstandard.setLabel(classstandard.getClass_name());
});
return classstandards;
}
@Override
public ArrayList<String> getAllChildrenIds(String classId) {
return classStandardMapper.getAllChildrenIds(classId);
}
}

5
lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java

@ -35,11 +35,6 @@ public class AcsToWmsController {
return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK);
}
@PostMapping("/orderFinish")
@Log(value = "ACS给WMS下发工单完成状态", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)

1
lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/MesToLmsServiceImpl.java

@ -992,6 +992,7 @@ public class MesToLmsServiceImpl implements MesToLmsService {
} else if (container_name.startsWith("B")) {
//调用方法创建一个新的气胀轴编号,赋值
String resourceName = cut_jo.getString("ext_code");
// 二期的虚拟气胀轴编码需要唯一
String qzzNO = resourceName.substring(0, 2)
+ resourceName.substring(resourceName.length() - 2)
+ plan_jo.getString("split_group")

2
lms/nladmin-system/src/main/resources/logback-spring.xml

@ -12,7 +12,7 @@ https://juejin.cn/post/6844903775631572999
<contextName>nlAdmin</contextName>
<property name="log.charset" value="utf-8"/>
<property name="log.pattern"
value="%black(%contextName-) %X{traceId} %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)"/>
value="%black(%contextName-) %X{traceId} %red(%d{yyyy-MM-dd HH:mm:ss.SSS}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %cyan(%msg%n)"/>
<springProperty scope="context" name="logPath" source="logging.file.path" defaultValue="logs"/>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="${logPath}"/>

24
lms/nladmin-ui/src/views/wms/basedata/master/class/classstandard.js

@ -48,7 +48,6 @@ export function getClassType(params) {
params
})
}
export function queryClassById(params) {
return request({
url: 'api/Classstandard/queryClassById',
@ -56,7 +55,6 @@ export function queryClassById(params) {
params
})
}
// 传入分类标识和级别
export function getType(params) {
return request({
@ -81,24 +79,4 @@ export function getClassName() {
})
}
export function getCasClass(data) {
return request({
url: 'api/Classstandard/getCasClass',
method: 'post',
data
})
}
export default {
add,
edit,
del,
getClass,
getClassSuperior,
getClassType,
getClassTable,
getType,
queryClassById,
getClassName,
getCasClass
}
export default { add, edit, del, getClass, getClassSuperior, getClassType, getClassTable, getType, queryClassById, getClassName }

79
lms/nladmin-ui/src/views/wms/basedata/master/class/index.vue

@ -92,7 +92,7 @@
:load="getClassDatas"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:data="crud.data"
row-key="id"
row-key="class_id"
@select="crud.selectChange"
@select-all="crud.selectAllChange"
@selection-change="crud.selectionChangeHandler"
@ -100,7 +100,7 @@
<el-table-column prop="class_code" label="分类编码" />
<el-table-column prop="class_name" label="分类名称" />
<el-table-column prop="class_desc" label="分类简要描述" />
<el-table-column prop="update_optname" label="修改人" />
<el-table-column prop="update_name" label="修改人" />
<el-table-column prop="update_time" label="修改时间" />
<el-table-column prop="is_modify" :formatter="modifyFormat" label="是否可修改" />
<el-table-column
@ -140,26 +140,26 @@ import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
let defaultForm = {
id: null,
class_id: null,
base_data_type: null,
path_code: null,
class_code: null,
long_class_code: null,
class_name: null,
class_desc: null,
parent_class_id: null,
is_leaf: null,
is_leaf: true,
sub_count: null,
is_modify: null,
is_delete: null,
is_modify: true,
is_delete: false,
class_level: null,
ext_id: null,
ext_parent_id: null,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_id: null,
update_name: null,
update_time: null,
isTop: '1'
}
@ -230,10 +230,10 @@ export default {
})
},
getClassDatas(tree, treeNode, resolve) {
const params = { pid: tree.id }
const params = { pid: tree.class_id }
setTimeout(() => {
crudClassstandard.getClass(params).then(res => {
resolve(res.content)
resolve(res)
})
}, 100)
},
@ -241,32 +241,16 @@ export default {
[CRUD.HOOK.beforeRefresh]() {
return true
},
modifyFormat(row, index) {
if (row.is_modify === '1') {
return '是'
} else {
return '否'
}
},
dataTypeChange(data) {
crudClassstandard.getClass({ base_data_type: data }).then(res => {
this.classes = res.content.map(function(obj) {
if (obj.hasChildren) {
obj.children = null
}
return obj
})
})
},
//
[CRUD.HOOK.afterToCU](crud, form) {
if (form.parent_class_id !== '0' && form.parent_class_id !== null) {
form.isTop = '0'
} else if (form.class_id !== '0' && form.class_id !== null) {
} else if (form.id !== '0' && form.id !== null) {
form.isTop = '1'
}
form.enabled = `${form.enabled}`
if (form.class_id != null) {
// form.enabled = `${form.enabled}`
// ->
if (form.id !== null && form.id !== '0' && form.id !== '') {
this.getSubTypes(form.id)
} else {
this.getClass()
@ -286,16 +270,16 @@ export default {
}
return true
},
getSubTypes(id) {
getSubTypes(id) { //
crudClassstandard.getClassSuperior(id).then(res => {
const date = res.content
const date = res
this.buildClass(date)
this.classes = date
})
},
getClass() {
getClass() { //
crudClassstandard.getClass({ enabled: true }).then(res => {
this.classes = res.content.map(function(obj) {
this.classes = res.map(function(obj) { // ,
if (obj.hasChildren) {
obj.children = null
}
@ -313,11 +297,11 @@ export default {
}
})
},
//
loadClass({ action, parentNode, callback }) {
//
loadClass({ action, parentNode, callback }) { //
if (action === LOAD_CHILDREN_OPTIONS) {
crudClassstandard.getClass({ pid: parentNode.id }).then(res => {
parentNode.children = res.content.map(function(obj) {
parentNode.children = res.map(function(obj) {
if (obj.hasChildren) {
obj.children = null
}
@ -336,22 +320,21 @@ export default {
base_data_type: null,
path_code: null,
class_code: null,
long_class_code: null,
class_name: null,
class_desc: null,
parent_class_id: null,
is_leaf: null,
is_leaf: true,
sub_count: null,
is_modify: null,
is_delete: null,
is_modify: true,
is_delete: false,
class_level: null,
ext_id: null,
ext_parent_id: null,
create_id: null,
create_name: null,
create_time: null,
update_optid: null,
update_optname: null,
update_id: null,
update_name: null,
update_time: null,
isTop: null
}
@ -359,16 +342,15 @@ export default {
addSibling(row) {
this.clearFrom() //
defaultForm.id = row.id // id - id
defaultForm.class_id = row.class_id
defaultForm.parent_class_id = row.parent_class_id // class_id
defaultForm.class_id = row.class_id // id
defaultForm.parent_class_id = row.parent_class_id ? row.parent_class_id : null // class_id
defaultForm.isTop = row.isTop
return defaultForm
},
addChildren(row) {
this.clearFrom()
defaultForm.id = row.id // id
defaultForm.class_id = row.parent_class_id
defaultForm.parent_class_id = row.id // class_id
defaultForm.id = row.class_id // id
defaultForm.parent_class_id = row.class_id // class_id
defaultForm.isTop = row.isTop
return defaultForm
},
@ -386,7 +368,6 @@ export default {
}
const dafult = this.$el.getElementsByClassName('dafult')
for (let a = 0; a < dafult.length; a++) {
debugger
dafult[a].click()
}
}

Loading…
Cancel
Save