bug修改

This commit is contained in:
lym
2024-07-08 11:54:15 +08:00
parent ed3700d8ef
commit 4319d6d340
10 changed files with 138 additions and 18 deletions
@@ -197,6 +197,8 @@ public interface ErrorCodeConstants {
ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_010, "工序组不存在");
ErrorCode PROCESS_GROUP_USED = new ErrorCode(1_002_029_011, "工序组已使用,禁止删除 ");
ErrorCode PROCESS_GROUP_NAME_EXISTS = new ErrorCode(1_002_029_012, "工序名称已存在");
ErrorCode PROCESS_GROUP_CUTTING_ERROR = new ErrorCode(1_002_029_012, "开料工序类型已经存在,禁止重复");
ErrorCode PROCESS_GROUP_PACKING_ERROR = new ErrorCode(1_002_029_012, "打包工序类型已经存在,禁止重复");
// ========== 机台 1-002-029-000 ==========
ErrorCode MACHINE_NOT_EXISTS = new ErrorCode(1_002_029_000, "机台不存在");
@@ -0,0 +1,30 @@
package com.cf.imes.module.system.enums.process;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum ProcessTypeEnum {
TYPE_ZERO(0, "全部加工"),
TYPE_ONE(1, "开料"),
TYPE_TWO(2, "部件加工"),
TYPE_THREE(3, "异形封边"),
TYPE_FOUR(4, "分堆"),
TYPE_FIVE(5, "打包"),
TYPE_SIX(6, "出库"),
TYPE_SEVEN(7, "组件加工"),
TYPE_EIGHT(8, "板材");
private final Integer status;
private String description;
public boolean equals(Integer status) {
return this.status .equals(status) ;
}
public boolean equals(ProcessTypeEnum enableStatusEnum) {
return enableStatusEnum != null && enableStatusEnum.status .equals(this.getStatus()) ;
}
}
@@ -10,6 +10,7 @@ import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
import com.cf.imes.module.system.controller.admin.user.vo.user.UserPageReqVO;
import com.cf.imes.module.system.dal.dataobject.user.AdminUserDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
@@ -81,17 +82,19 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
return selectList(AdminUserDO::getDeptId, deptIds);
}
default List<AdminUserDO> selectListByTerms(Integer status, String namePyAll,String namePyFirstChar,String name) {
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
.eqIfPresent(AdminUserDO::getStatus, status)
.likeIfPresent(AdminUserDO::getNickname, name)
.or(StrUtil.isNotBlank(name))
.likeIfPresent(AdminUserDO::getPinyinFull, namePyAll)
.or(StrUtil.isNotBlank(namePyAll))
.likeIfPresent(AdminUserDO::getPinyinInitial, namePyFirstChar)
.orderByDesc(AdminUserDO::getId));
}
// default List<AdminUserDO> selectListByTerms(Integer status, String namePyAll,String namePyFirstChar,String name,Long organId) {
// return selectList(new LambdaQueryWrapperX<AdminUserDO>()
// .eqIfPresent(AdminUserDO::getStatus, status)
// .likeIfPresent(AdminUserDO::getNickname, name)
// .or(StrUtil.isNotBlank(name))
// .likeIfPresent(AdminUserDO::getPinyinFull, namePyAll)
// .or(StrUtil.isNotBlank(namePyAll))
// .likeIfPresent(AdminUserDO::getPinyinInitial, namePyFirstChar)
// .orderByDesc(AdminUserDO::getId));
// }
List<AdminUserDO> selectListByTerms(@Param("status") Integer status,@Param("namePyAll") String namePyAll,
@Param("namePyFirstChar")String namePyFirstChar,@Param("name") String name,
@Param("organId")Long organId);
default List<AdminUserDO> selectListByIds(List<Long> userIds, Long userOrganId) {
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
@@ -13,6 +13,7 @@ import com.cf.imes.module.system.controller.admin.process.vo.process.ProcessResp
import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO;
import com.cf.imes.module.system.dal.dataobject.process.ProcessDO;
import com.cf.imes.module.system.dal.mysql.process.ProcessMapper;
import com.cf.imes.module.system.enums.process.ProcessTypeEnum;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service;
@@ -61,6 +62,29 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
// 插入
ProcessGroupDO processGroup = BeanUtils.toBean(createReqVO, ProcessGroupDO.class);
processGroup.setItems(checkProcessGroupExists(createReqVO.getItems()));
// 判断重复
int isCutting = 0;
int isPacking = 0;
if (createReqVO.getItems() != null) {
List<String> list = cuttingItems(createReqVO.getItems());
if (list.size() > 0) {
for (String item : list) {
ProcessDO process = processMapper.selectOneById(Long.valueOf(item), OrganContextHolder.getOrganId());
if (process.getType() == ProcessTypeEnum.TYPE_ONE.getStatus()){
isCutting++;
}
if (process.getType() == ProcessTypeEnum.TYPE_FIVE.getStatus()){
isPacking++;
}
}
}
}
if (isCutting > 1){
throw exception(PROCESS_GROUP_CUTTING_ERROR);
}
if (isPacking > 1){
throw exception(PROCESS_GROUP_PACKING_ERROR);
}
processGroupMapper.insert(processGroup);
if (createReqVO.getIsDefault()) {
processGroupMapper.updateIsDefault(processGroup.getId(), OrganContextHolder.getOrganId());
@@ -237,4 +261,10 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
processGroupMapper.updateIsDefault(processGroupId, organId);
}
public List<String> cuttingItems(String userLists) {
return Arrays.stream(userLists.split(","))
.map(String::trim) // 去除每个项两端的空白字符
.filter(item -> item != null && !item.isEmpty()) // 过滤空字符串和null
.collect(Collectors.toList());
}
}
@@ -542,7 +542,7 @@ public class AdminUserServiceImpl implements AdminUserService {
namePyFirstChar = PinYinUtils.convertToPinyin(name);
namePyAll = PinYinUtils.convertToPinyin(name).replaceAll(" ", "");
}
return userMapper.selectListByTerms(status, namePyAll, namePyFirstChar, name);
return userMapper.selectListByTerms(status, namePyAll, namePyFirstChar, name, SecurityFrameworkUtils.getLoginUserId());
}
@Override
@@ -0,0 +1,41 @@
<?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="com.cf.imes.module.system.dal.mysql.user.AdminUserMapper">
<select id="selectListByTerms" resultType="com.cf.imes.module.system.dal.dataobject.user.AdminUserDO"
parameterType="map">
SELECT id,
username,
password,
nickname,
remark,
dept_id,
post_ids,
email,
mobile,
sex,
avatar,
status,
login_ip,
login_date,
pinyin_initial,
pinyin_full,
organ_id,
create_time,
update_time,
creator,
updater,
deleted
FROM system_users
WHERE deleted = 0
AND organ_id = #{organId}
AND status = #{status}
AND (
nickname LIKE CONCAT('%', #{name}, '%')
OR pinyin_full LIKE CONCAT('%', #{namePyAll}, '%')
OR pinyin_initial LIKE CONCAT('%', #{namePyFirstChar}, '%')
)
ORDER BY
id DESC
</select>
</mapper>