refactor: 使用mybatis-plus重构基础分类
This commit is contained in:
@@ -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) {
|
||||
// }
|
||||
//}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,7 @@ import java.util.Map;
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
|
||||
@RequestMapping("/api/Classstandard")
|
||||
@RequestMapping("/api/Classstandard2")
|
||||
@Slf4j
|
||||
public class ClassstandardController {
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* 基础分类相关
|
||||
*/
|
||||
package org.nl.wms.basedata.master.standard;
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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> {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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}"/>
|
||||
|
||||
Reference in New Issue
Block a user