feat: bug-369 添加对产品线和数据权限的支持

This commit is contained in:
曹鹏飞 2025-06-24 17:29:02 +08:00
parent fa2e24c163
commit 1f7d5728ce
19 changed files with 184 additions and 108 deletions

View File

@ -1,6 +1,7 @@
package com.nflg.mobilebroken.admin.controller;
import com.nflg.mobilebroken.admin.annotation.ApiMark;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.pojo.PageData;
import com.nflg.mobilebroken.common.pojo.request.DataRoleAddRequest;
@ -9,7 +10,9 @@ import com.nflg.mobilebroken.common.pojo.request.EnableRoleRequest;
import com.nflg.mobilebroken.common.pojo.request.RoleSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.DataRoleVO;
import com.nflg.mobilebroken.common.pojo.vo.SimpleVO;
import com.nflg.mobilebroken.repository.entity.DictionaryItem;
import com.nflg.mobilebroken.repository.service.IDataRoleService;
import com.nflg.mobilebroken.repository.service.IDictionaryItemService;
import com.nflg.mobilebroken.starter.annotation.MethodInfoMark;
import org.springframework.web.bind.annotation.*;
@ -29,6 +32,19 @@ public class DataRoleController {
@Resource
private IDataRoleService dataRoleService;
@Resource
private IDictionaryItemService dictionaryItemService;
/**
* 获取数据权限模块列表
* @return 模块列表
*/
@GetMapping("getModules")
@ApiMark(moduleName = "数据权限角色管理", apiName = "获取数据权限模块列表",isPublic = true)
private ApiResult<List<DictionaryItem>> getModules(){
return ApiResult.success(dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DATAPERMISSION));
}
/**
* 新增角色
* @param request 请求参数

View File

@ -72,6 +72,12 @@ public class DeviceComponentController extends ControllerBase {
@PostMapping("getList")
@ApiMark(moduleName = "机型部件管理", apiName = "获取设备机型列表")
public ApiResult<PageData<DeviceTypeVO>> getList(@RequestBody DeviceComponentQuery query){
List<String> modelNos = deviceService.getModelNoPermission(AdminUserUtil.getUserId());
if (StrUtil.isNotBlank(query.getModelNo())){
if (!modelNos.contains(query.getModelNo())){
return ApiResult.success(new PageData<>());
}
}
List<DeviceComponent1VO> deviceComponents=deviceComponentService.getWithDeviceType(query.getModelNo(),query.getComponentSort());
Map<String,List<DeviceComponent1VO>> mps=deviceComponents.stream().collect(Collectors.groupingBy(DeviceComponent1VO::getDeviceType));
AtomicInteger index= new AtomicInteger();
@ -83,7 +89,9 @@ public class DeviceComponentController extends ControllerBase {
if (index.get() >= first && index.get() < last) {
DeviceTypeVO vo=new DeviceTypeVO();
vo.setDeviceType(k);
vo.setItems(v.stream().map(d -> new DeviceComponentVO()
vo.setItems(v.stream()
.filter(it->modelNos.contains(it.getModelNo()))
.map(d -> new DeviceComponentVO()
.setId(d.getId())
.setModelNo(d.getModelNo())
.setPartList(deviceComponentDetailService.getByModelNo(d.getModelNo()))).collect(Collectors.toList())

View File

@ -126,5 +126,16 @@ public class Constant {
public static final String DICTIONARY_AD_TYPE ="AdvertisementType";
public static final String DICTIONARY_AD_POSITION ="AdvertisementPosition";
public static final String DICTIONARY_SERVICE = "SystemService";
public static String PERMISSION_DEVICE_SEARCH="设备查询";
public static String PERMISSION_DEVICE_MANAGE="设备管理";
public static String PERMISSION_TICKET_MANAGE="工单管理";
public static String PERMISSION_MODEL_MANAGE="机型管理";
public static String DICTIONARY_DATAPERMISSION="DataPermissionModule";
}

View File

@ -4,6 +4,7 @@ import com.nflg.mobilebroken.common.constant.ProductionLinePermissionType;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class DataRoleItemRequest {
@ -19,4 +20,9 @@ public class DataRoleItemRequest {
*/
@NotNull
private ProductionLinePermissionType type;
/**
* 产品线ID列表
*/
private List<Integer> productionLineIds;
}

View File

@ -1,80 +0,0 @@
package com.nflg.mobilebroken.product.controller;
import com.nflg.mobilebroken.common.pojo.ApiResult;
import com.nflg.mobilebroken.common.pojo.vo.*;
import com.nflg.mobilebroken.common.util.MultilingualUtil;
import com.nflg.mobilebroken.repository.service.IProductModelService;
import com.nflg.mobilebroken.repository.service.IProductSeriesService;
import com.nflg.mobilebroken.repository.service.IProductTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 系列
*/
@Slf4j
@RestController
@RequestMapping("/data")
public class DataController extends BaseController{
@Resource
private IProductSeriesService productSeriesService;
@Resource
private IProductTypeService productTypeService;
@Resource
private IProductModelService productModelService;
/**
* 获取产品系列列表
*/
@GetMapping("/getSeries")
public ApiResult<List<ProductSeriesVO>> getSeries(){
return ApiResult.success(productSeriesService.get(MultilingualUtil.getLanguage()));
}
/**
* 获取产品类型列表
* @param seriesId 产品系列id
*/
@GetMapping("/getType")
public ApiResult<List<ProductTypeVO>> getType(@Valid @RequestParam @NotNull Integer seriesId){
return ApiResult.success(productTypeService.get(seriesId,MultilingualUtil.getLanguage()));
}
/**
* 获取产品机型列表
* @param typeId 产品类型id
*/
@GetMapping("/getModel")
public ApiResult<List<ProductModelVO>> getModel(@Valid @RequestParam @NotNull Integer typeId){
return ApiResult.success(productModelService.get(typeId,MultilingualUtil.getLanguage()));
}
/**
* 获取产品机型详情
* @param modelId 产品机型id
*/
@GetMapping("/getModelInfo")
public ApiResult<ProductModelInfoVO> getModelInfo(@Valid @RequestParam @NotNull Integer modelId){
return ApiResult.success(productModelService.getInfo(modelId,MultilingualUtil.getLanguage()));
}
/**
* 获取产品机型参数列表
* @param modelId 产品机型id
*/
@GetMapping("/getModelParams")
public ApiResult<ProductModelParamsVO> getModelParams(@Valid @RequestParam @NotNull Integer modelId){
return ApiResult.success(productModelService.getParams(modelId,MultilingualUtil.getLanguage()));
}
}

View File

@ -3,6 +3,7 @@ package com.nflg.mobilebroken.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.mobilebroken.common.pojo.vo.AdminUserSimpleVO;
import com.nflg.mobilebroken.repository.entity.AdminUser;
import com.nflg.mobilebroken.repository.entity.DataRole;
import java.util.List;
@ -21,4 +22,6 @@ public interface AdminUserMapper extends BaseMapper<AdminUser> {
List<AdminUserSimpleVO> getSimples(List<Integer> userIds);
List<Integer> getTickerMangagers(List<String> titleCodes);
DataRole getDataPermission(Integer userId);
}

View File

@ -6,6 +6,8 @@ import com.nflg.mobilebroken.common.pojo.request.AnonymousTicketSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.AnonymousTicketSearchVO;
import com.nflg.mobilebroken.repository.entity.AnonymousTicket;
import java.util.List;
/**
* <p>
* Mapper 接口
@ -16,5 +18,5 @@ import com.nflg.mobilebroken.repository.entity.AnonymousTicket;
*/
public interface AnonymousTicketMapper extends BaseMapper<AnonymousTicket> {
IPage<AnonymousTicketSearchVO> search(AnonymousTicketSearchRequest request, IPage<?> objectPage);
IPage<AnonymousTicketSearchVO> search(AnonymousTicketSearchRequest request, List<Integer> productionLines, IPage<?> objectPage);
}

View File

@ -31,11 +31,11 @@ public interface DeviceMapper extends BaseMapper<Device> {
* @param query
* @return
*/
Page<Device> getList(@Param("page") Page<PageBaseQuery> page, PageBaseQuery query);
Page<Device> getList(@Param("page") Page<PageBaseQuery> page, PageBaseQuery query,List<Integer> productionLines);
void batchDelByIds(@Param("ids")List<Integer> ids);
Page<DeviceVO> searchDevice(SearchDeviceRequest request, List<Integer> companyIds,String language, Page<?> page);
Page<DeviceVO> searchDevice(SearchDeviceRequest request, List<Integer> companyIds,List<Integer> productionLines,String language, Page<?> page);
void taskWarrantyStateNotStarted();
@ -46,4 +46,6 @@ public interface DeviceMapper extends BaseMapper<Device> {
List<ComponentInfo> getComponents(Integer componentId,String language);
List<DeviceAgentVO> getAgents();
List<String> getModelNoPermission(List<Integer> productionLines);
}

View File

@ -27,17 +27,17 @@ public interface TicketMapper extends BaseMapper<Ticket> {
IPage<TicketVO> searchArea(IPage<?> page, TicketSearchRequest request, String companyId, Integer userId,String language,Boolean isPrimary,String companyCode);
IPage<AdminTicketVO> searchFromAdmin(AdminTicketSearchRequest request, Integer userId, IPage<?> page);
IPage<AdminTicketVO> searchFromAdmin(AdminTicketSearchRequest request, Integer userId,List<Integer> productionLines, IPage<?> page);
// void completeTicket(List<Integer> ids, Integer userId);
List<AdminTicketVO> searchAllFromAdmin(AdminTicketSearchRequest request, Integer userId);
List<AdminTicketVO> searchAllFromAdmin(AdminTicketSearchRequest request, Integer userId,List<Integer> productionLines);
IPage<AdminTicketVO> searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId, IPage<?> page);
IPage<AdminTicketVO> searchFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId,List<Integer> productionLines, IPage<?> page);
List<AdminTicketVO> searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId);
List<AdminTicketVO> searchAllFromAdminAndFollow(AdminTicketSearchRequest request, Integer userId,List<Integer> productionLines);
List<TicketVO> getAdminFavorites(Integer userId,Integer favoritesId);
IPage<AdminTicketVO> searchByFavouritesId(Integer userId, Integer favouritesId, Page<?> page);
IPage<AdminTicketVO> searchByFavouritesId(Integer userId, Integer favouritesId,List<Integer> productionLines, Page<?> page);
}

View File

@ -54,4 +54,6 @@ public interface IAdminUserService extends IService<AdminUser> {
List<Integer> getTickerMangagers();
List<Integer> getCQMIds();
List<Integer> getDataPermission(Integer userId,String moduleName);
}

View File

@ -38,4 +38,6 @@ public interface IDeviceService extends IService<Device> {
void taskWarrantyStateNotOutsideWithinWarranty();
List<DeviceAgentVO> getAgents();
List<String> getModelNoPermission(Integer userId);
}

View File

@ -3,11 +3,13 @@ package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
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 com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.constant.ProductionLinePermissionType;
import com.nflg.mobilebroken.common.constant.STATE;
import com.nflg.mobilebroken.common.constant.UserState;
import com.nflg.mobilebroken.common.exception.NflgException;
@ -70,6 +72,9 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
@Resource
private IDataRoleService dataRoleService;
@Resource
private IDictionaryItemService dictionaryItemService;
@Override
public AdminUser getUser(String userName, String password) {
AdminUser user = lambdaQuery()
@ -366,6 +371,33 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
return baseMapper.getTickerMangagers(ListUtil.of(Constant.DICTIONARY_TYPE_TITLE_CQM));
}
@Override
public List<Integer> getDataPermission(Integer userId,String moduleName) {
AdminUser adminUser=getById(userId);
List<Integer> defaultProductionLineIds = Collections.singletonList(adminUser.getProductionLineId());
DataRole dr = baseMapper.getDataPermission(userId);
if (Objects.isNull(dr)) {
return defaultProductionLineIds;
}
List<DictionaryItem> items = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DATAPERMISSION);
DictionaryItem item = items.stream().filter(it -> Objects.equals(it.getName(), moduleName)).findFirst().orElse(null);
if (Objects.isNull(item)){
return defaultProductionLineIds;
}
List<DataRoleItemRequest> configs = JSONUtil.toList(dr.getConfig(), DataRoleItemRequest.class);
DataRoleItemRequest cfg=configs.stream().filter(c -> Objects.equals(c.getModuleId(), item.getId())).findFirst().orElse(null);
if (Objects.isNull(cfg)){
return defaultProductionLineIds;
}else if (Objects.equals(cfg.getType().getType(), ProductionLinePermissionType.ShowMe.getType())){
return null;
}else if (Objects.equals(cfg.getType().getType(), ProductionLinePermissionType.ShowOwned.getType())){
return defaultProductionLineIds;
}else if (Objects.equals(cfg.getType().getType(), ProductionLinePermissionType.Customize.getType())){
return cfg.getProductionLineIds();
}
return defaultProductionLineIds;
}
private String getDepartmentName(Long departmentId) {
TBaseDepartment department = departmentService.lambdaQuery()
.eq(TBaseDepartment::getId, departmentId)

View File

@ -5,12 +5,14 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.request.AnonymousTicketAddRequest;
import com.nflg.mobilebroken.common.pojo.request.AnonymousTicketSearchRequest;
import com.nflg.mobilebroken.common.pojo.vo.AnonymousTicketInfoVO;
import com.nflg.mobilebroken.common.pojo.vo.AnonymousTicketSearchVO;
import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO;
import com.nflg.mobilebroken.common.pojo.vo.FileUploadVO;
import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.common.util.MultilingualUtil;
import com.nflg.mobilebroken.common.util.TicketUtil;
import com.nflg.mobilebroken.common.util.VUtils;
@ -54,6 +56,9 @@ public class AnonymousTicketServiceImpl extends ServiceImpl<AnonymousTicketMappe
@Resource
private ITBasePartService partService;
@Resource
private IAdminUserService adminUserService;
@Override
@Transactional
public void add(AnonymousTicketAddRequest request) {
@ -102,7 +107,8 @@ public class AnonymousTicketServiceImpl extends ServiceImpl<AnonymousTicketMappe
if (Objects.nonNull(request.getEndTime())) {
request.setEndTime(request.getEndTime().plusDays(1));
}
return baseMapper.search(request,new Page<>(request.getPage(), request.getPageSize()));
List<Integer> productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(), Constant.PERMISSION_TICKET_MANAGE);
return baseMapper.search(request,productionLines, new Page<>(request.getPage(), request.getPageSize()));
}
@Override

View File

@ -1,20 +1,25 @@
package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.Constant;
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
import com.nflg.mobilebroken.common.pojo.request.SearchDeviceRequest;
import com.nflg.mobilebroken.common.pojo.vo.DeviceAgentVO;
import com.nflg.mobilebroken.common.pojo.vo.DeviceInfoVO;
import com.nflg.mobilebroken.common.pojo.vo.DeviceVO;
import com.nflg.mobilebroken.common.util.AdminUserUtil;
import com.nflg.mobilebroken.common.util.AppUserUtil;
import com.nflg.mobilebroken.common.util.MultilingualUtil;
import com.nflg.mobilebroken.repository.entity.Device;
import com.nflg.mobilebroken.repository.mapper.DeviceMapper;
import com.nflg.mobilebroken.repository.service.IAdminUserService;
import com.nflg.mobilebroken.repository.service.IDeviceService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
@ -30,6 +35,9 @@ import java.util.Optional;
@Service
public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> implements IDeviceService {
@Resource
private IAdminUserService adminUserService;
@Override
public DeviceInfoVO getByDeviceNo(String deviceNo) {
DeviceInfoVO vo = baseMapper.getByDeviceNo(deviceNo);
@ -41,7 +49,8 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
public Page<Device> getList(@Param("page") Page<PageBaseQuery> page, PageBaseQuery query){
return this.getBaseMapper().getList(page,query);
List<Integer> productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(),Constant.PERMISSION_DEVICE_MANAGE);
return this.getBaseMapper().getList(page,query,productionLines);
}
public void batchDelByIds(@Param("ids") List<Integer> ids){
@ -49,15 +58,13 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
}
@Override
public Page<DeviceVO> searchDevice(SearchDeviceRequest request,String language) {
// IPage<Device> page = lambdaQuery()
// .like(StrUtil.isNotBlank(request.getDeviceNo()), Device::getDeviceNo, request.getDeviceNo())
// .like(StrUtil.isNotBlank(request.getModelNo()), Device::getModelNo, request.getModelNo())
// .between(Objects.nonNull(request.getStartTime()), Device::getShipmentDate, request.getStartTime(), request.getEndTime())
// .page(new Page<>(request.getPage(), request.getPageSize()));
// return PageUtil.convert(page, d -> Convert.convert(DeviceVO.class, d));
public Page<DeviceVO> searchDevice(SearchDeviceRequest request, String language) {
List<Integer> productionLines = null;
if (StrUtil.equals(Constant.FROM_ADMIN, AppUserUtil.getFrom())) {
productionLines = adminUserService.getDataPermission(AppUserUtil.getUserId(), Constant.PERMISSION_DEVICE_SEARCH);
}
List<Integer> companyIds = AppUserUtil.getCompanyIds();
return baseMapper.searchDevice(request, companyIds,language ,new Page<>(request.getPage(), request.getPageSize()));
return baseMapper.searchDevice(request, companyIds, productionLines, language, new Page<>(request.getPage(), request.getPageSize()));
}
public void taskWarrantyStateNotStarted(){
@ -76,4 +83,10 @@ public class DeviceServiceImpl extends ServiceImpl<DeviceMapper, Device> impleme
public List<DeviceAgentVO> getAgents() {
return baseMapper.getAgents();
}
}
@Override
public List<String> getModelNoPermission(Integer userId) {
List<Integer> productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(),Constant.PERMISSION_MODEL_MANAGE);
return baseMapper.getModelNoPermission(productionLines);
}
}

View File

@ -156,18 +156,19 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
@Override
public IPage<AdminTicketVO> searchPage(AdminTicketSearchRequest request) {
Integer userId = AdminUserUtil.getUserId();
if (Objects.nonNull(request.getFavouritesId())){
return baseMapper.searchByFavouritesId(userId,request.getFavouritesId(), new Page<>(request.getPage(), request.getPageSize()));
}else {
List<Integer> productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(), Constant.PERMISSION_TICKET_MANAGE);
if (Objects.nonNull(request.getFavouritesId())) {
return baseMapper.searchByFavouritesId(userId, request.getFavouritesId(), productionLines, new Page<>(request.getPage(), request.getPageSize()));
} else {
if (Objects.nonNull(request.getEndTime())) {
request.setEndTime(request.getEndTime().plusDays(1));
}
List<Integer> tickerMangagers = adminUserService.getTickerMangagers();
request.setTicketManager(tickerMangagers.stream().anyMatch(uid -> Objects.equals(uid, userId)));
if (request.getType() == 2) {
return baseMapper.searchFromAdminAndFollow(request, userId, new Page<>(request.getPage(), request.getPageSize()));
return baseMapper.searchFromAdminAndFollow(request, userId,productionLines, new Page<>(request.getPage(), request.getPageSize()));
} else if (request.getType() == 4) {
return baseMapper.searchFromAdmin(request, userId, new Page<>(request.getPage(), request.getPageSize()));
return baseMapper.searchFromAdmin(request, userId,productionLines, new Page<>(request.getPage(), request.getPageSize()));
}
return new Page<>(request.getPage(), request.getPageSize(), 0);
}
@ -269,13 +270,14 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
@Override
public List<AdminTicketVO> exportSearch(AdminTicketSearchRequest request) {
List<Integer> productionLines = adminUserService.getDataPermission(AdminUserUtil.getUserId(), Constant.PERMISSION_TICKET_MANAGE);
if (request.getType() == 2) {
return baseMapper.searchAllFromAdminAndFollow(request, AdminUserUtil.getUserId());
return baseMapper.searchAllFromAdminAndFollow(request, AdminUserUtil.getUserId(),productionLines);
} else if (request.getType() == 4) {
Integer userId=AdminUserUtil.getUserId();
List<Integer> tickerMangagers=adminUserService.getTickerMangagers();
request.setTicketManager(tickerMangagers.stream().anyMatch(uid -> Objects.equals(uid, userId)));
return baseMapper.searchAllFromAdmin(request, userId);
return baseMapper.searchAllFromAdmin(request, userId,productionLines);
}
return Collections.emptyList();
}

View File

@ -33,4 +33,11 @@
#{titleCode}
</foreach>
</select>
<select id="getDataPermission" resultType="com.nflg.mobilebroken.repository.entity.DataRole">
select dr.*
from admin_user au
inner join data_role dr on au.data_role_id=dr.id
where au.id=#{userId}
</select>
</mapper>

View File

@ -14,6 +14,12 @@
LEFT JOIN t_base_part p ON t.component_id=p.id
LEFT JOIN t_base_customer c ON c.agency_company_code=d.agent_code
<where>
<if test="productionLines!=null">
AND d.production_line_id IN
<foreach item="plId" collection="productionLines" separator="," open="(" close=")">
#{plId}
</foreach>
</if>
<if test="request.component!=null and request.component!=''">
AND t.component=#{request.component}
</if>

View File

@ -48,8 +48,13 @@
select a.id, device_no, device_name, device_type, device_type_sub, model_no, customer_id, customer_name, device_state, agent_code, agent_name, shipment_date, warranty_state, start_warranty_date, warranty_month, data_valid_state, source_from, create_by, create_time, update_by, update_time, remark ,b.area_code ,b.area_name from device a
left join t_base_customer b on a.agent_code=b.agency_company_code
where data_valid_state=1
<if test="productionLines!=null">
AND a.production_line_id in
<foreach collection="productionLines" open="(" close=")" item="plId" separator=",">
#{plId}
</foreach>
</if>
<include refid="whr"/>
</select>
<update id="batchDelByIds">
@ -71,6 +76,12 @@
<foreach collection="companyIds" open="(" close=")" item="companyId" separator=",">
#{companyId}
</foreach>
<if test="productionLines!=null">
AND d.production_line_id in
<foreach collection="productionLines" open="(" close=")" item="plId" separator=",">
#{plId}
</foreach>
</if>
<if test="request.deviceNo!=null and request.deviceNo!=''">
and d.device_no LIKE concat('%', #{request.deviceNo}, '%')
</if>
@ -118,4 +129,17 @@
FROM device
WHERE LENGTH(agent_code)>0
</select>
<select id="getModelNoPermission" resultType="java.lang.String">
select *
from device
<where>
<if test="productionLines!=null">
AND production_line_id in
<foreach collection="productionLines" open="(" close=")" item="plId" separator=",">
#{plId}
</foreach>
</if>
</where>
</select>
</mapper>

View File

@ -38,6 +38,12 @@
<sql id="adminSearchWhereCondition">
<where>
t.state!=4
<if test="productionLines!=null">
AND d.production_line_id in
<foreach item="plId" collection="productionLines" separator="," open="(" close=")">
#{plId}
</foreach>
</if>
<if test="!request.ticketManager">
AND (FIND_IN_SET(#{userId},t.handle)>0 OR fun_inAduit(t.id,#{userId})=1)
</if>
@ -255,6 +261,14 @@
LEFT JOIN admin_user auc ON t.cqm=auc.id
LEFT JOIN admin_user auh ON t.current_handle=auh.id
LEFT JOIN t_base_part p ON t.component_id=p.id
<where>
<if test="productionLines!=null">
AND d.production_line_id in
<foreach item="plId" collection="productionLines" separator="," open="(" close=")">
#{plId}
</foreach>
</if>
</where>
ORDER BY t.state,t.id DESC
</select>
</mapper>