Merge remote-tracking branch 'origin/qms/develop' into qms/develop

This commit is contained in:
funny 2026-05-13 11:09:28 +08:00
commit 8c20a832f9
9 changed files with 130 additions and 76 deletions

View File

@ -1,6 +1,7 @@
package com.nflg.qms.admin.controller;
import com.nflg.qms.admin.service.QmsIssueTicketControllerService;
import com.nflg.wms.common.constant.Constant;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.QmsIncomingInspectionTaskNonconformanceSearchQO;
@ -37,7 +38,7 @@ public class QmsIncomingInspectionTaskNonconformanceController extends BaseContr
public ApiResult<PageData<QmsIncomingInspectionTaskNonconformanceVO>> search(@Valid @RequestBody QmsIncomingInspectionTaskNonconformanceSearchQO request) {
User user = userService.getById(UserUtil.getUserId());
request.setPurchaseGroup(user.getPurchasingGroup());
request.setIsWarehouseManager(UserUtil.getRoles().contains("CANGKUGUANLIYUAN"));
request.setIsWarehouseManager(UserUtil.getRoles().contains(Constant.ROLE_CODE_CANGKUGUANLIYUAN));
return ApiResult.success(nonconformanceService.search(request));
}

View File

@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.wms.common.constant.Constant;
import com.nflg.wms.common.constant.STATE;
import com.nflg.wms.common.exception.NflgException;
import com.nflg.wms.common.pojo.PageData;
@ -75,6 +76,9 @@ public class QmsIssueTicketControllerService {
@Resource
private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService;
@Resource
private IRoleService roleService;
/**
* 发起巡检工单
* 1. 校验工单存在且来源类型为巡检sourceType=2
@ -1054,6 +1058,15 @@ public class QmsIssueTicketControllerService {
issueTicketToDoService.saveBatch(todoItems);
}
}
} else if (detail.getInspectionType() == 1) {
List<User> users = roleService.getUsersByCode(Constant.ROLE_CODE_CANGKUGUANLIYUAN);
List<QmsIssueTicketToDo> todoItems = users.stream().map(user -> new QmsIssueTicketToDo()
.setTicketId(entity.getId())
.setHandlerUserId(user.getId())
).toList();
if (CollectionUtil.isNotEmpty(todoItems)) {
issueTicketToDoService.saveBatch(todoItems);
}
}
}
@ -1095,7 +1108,6 @@ public class QmsIssueTicketControllerService {
}
// 查询关联的来料检测任务详情及检验记录
if (Objects.nonNull(entity.getSourceId())) {
// 来料检测任务详情
QmsIncomingInspectionTaskVO taskDetail = incomingInspectionTaskControllerService.getDetail(entity.getSourceId());
vo.setTaskDetail(taskDetail);
@ -1139,8 +1151,12 @@ public class QmsIssueTicketControllerService {
}
});
vo.setRecords(records);
}
if (taskDetail.getInspectionType() == 0) {
vo.setWithApprovalAuthority(StrUtil.equals(UserUtil.getPurchaseGroup(), taskDetail.getPurchaseGroup()));
} else if (taskDetail.getInspectionType() == 1) {
vo.setWithApprovalAuthority(UserUtil.getRoles().contains(Constant.ROLE_CODE_CANGKUGUANLIYUAN));
}
return vo;
}
@ -1786,14 +1802,22 @@ public class QmsIssueTicketControllerService {
return "未审批";
}
switch (status) {
case 0: return "通过";
case 1: return "驳回";
case 2: return "重检";
case 3: return "报废";
case 4: return "维修";
case 5: return "挑选使用";
case 6: return "让渡使用";
default: return "未知";
case 0:
return "通过";
case 1:
return "驳回";
case 2:
return "重检";
case 3:
return "报废";
case 4:
return "维修";
case 5:
return "挑选使用";
case 6:
return "让渡使用";
default:
return "未知";
}
}

View File

@ -39,4 +39,9 @@ public class Constant {
public static final String DICTIONARY_AD_TYPE ="AdvertisementType";
public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition";
/**
* 仓库管理员角色代码
*/
public static final String ROLE_CODE_CANGKUGUANLIYUAN="CANGKUGUANLIYUAN";
}

View File

@ -133,6 +133,11 @@ public class QmsIssueTicketDetailVO {
*/
private LocalDateTime completeTime;
/**
* 是否有审批权限
*/
private boolean withApprovalAuthority = false;
/**
* 来料检测任务详情
*/

View File

@ -32,7 +32,7 @@ public class UserUtil {
return UserType.findByValue(Integer.parseInt(StpUtil.getExtra(Constant.LOGIN_EXTRA_USER_TYPE).toString()));
}
public static String getPurchaseGropu(){
public static String getPurchaseGroup(){
return (String) StpUtil.getExtra(Constant.LOGIN_EXTRA_PURCHASING_GROUP);
}
}

View File

@ -7,6 +7,7 @@ import com.nflg.wms.common.pojo.qo.RoleSearchQO;
import com.nflg.wms.common.pojo.vo.MenuVO;
import com.nflg.wms.common.pojo.vo.RoleVO;
import com.nflg.wms.repository.entity.Role;
import com.nflg.wms.repository.entity.User;
import java.util.List;
@ -23,4 +24,6 @@ public interface RoleMapper extends BaseMapper<Role> {
IPage<RoleVO> search(RoleSearchQO request, Page<?> objectPage);
List<MenuVO> getMenusByRoleCodes(Long serviceId, Long userId);
List<User> getUsersByCode(String code);
}

View File

@ -9,6 +9,7 @@ import com.nflg.wms.common.pojo.qo.RoleUpdateQO;
import com.nflg.wms.common.pojo.vo.MenuVO;
import com.nflg.wms.common.pojo.vo.RoleVO;
import com.nflg.wms.repository.entity.Role;
import com.nflg.wms.repository.entity.User;
import java.util.List;
@ -31,4 +32,6 @@ public interface IRoleService extends IService<Role> {
void enable(EnableQO request, String userName);
List<MenuVO> getMenusByRoleCodes(Long serviceId, Long userId);
List<User> getUsersByCode(String code);
}

View File

@ -12,6 +12,7 @@ import com.nflg.wms.common.pojo.vo.RoleVO;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.Menu;
import com.nflg.wms.repository.entity.Role;
import com.nflg.wms.repository.entity.User;
import com.nflg.wms.repository.mapper.RoleMapper;
import com.nflg.wms.repository.service.IAuditLogService;
import com.nflg.wms.repository.service.IMenuService;
@ -108,6 +109,11 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IR
return menus;
}
@Override
public List<User> getUsersByCode(String code) {
return baseMapper.getUsersByCode(code);
}
private void bindParent(MenuVO menu, List<MenuVO> datas) {
if (!Objects.equals(0L, menu.getParentId())) {
Menu mp = menuService.getById(menu.getParentId());

View File

@ -1,7 +1,6 @@
<?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.nflg.wms.repository.mapper.RoleMapper">
<select id="search" resultType="com.nflg.wms.common.pojo.vo.RoleVO">
SELECT *
FROM role
@ -17,7 +16,7 @@
</select>
<select id="getMenusByRoleCodes" resultType="com.nflg.wms.common.pojo.vo.MenuVO">
SELECT DISTINCT m.id, m.name, m.url, m.component, m.parent_id AS "parentId", m.show,m.sort
SELECT DISTINCT m.id, m.name, m.url, m.component, m.parent_id AS "parentId", m.show, m.sort
FROM role r
INNER JOIN role_menu_map rmm ON r.id = rmm.role_id
INNER JOIN menu m ON rmm.menu_id = m.id
@ -28,4 +27,12 @@
AND m.service_desc_id = #{serviceId}
order by m.id
</select>
<select id="getUsersByCode" resultType="com.nflg.wms.repository.entity.User">
SELECT u.*
FROM role r
INNER JOIN user_role_map urm ON r."id" = urm.role_id
INNER JOIN "user" u ON urm.user_id = u."id"
WHERE r.code = #{code}
</select>
</mapper>