代码优化部门

This commit is contained in:
TL
2025-07-17 08:47:50 +08:00
parent b6f22eb121
commit ffcb1db56c
16 changed files with 157 additions and 131 deletions

View File

@ -67,7 +67,7 @@ public interface IOrgService {
* 获取当前登录人的本级及下级及上级部门id
* @return
*/
List<String> levelAndBelowAndAboveOrgIdList();
List<String> orgDeptIdList(BaseCacheUser user);

View File

@ -23,4 +23,7 @@ public interface IUserService{
SysUser getUserById(String id);
List<UserVo> getUser(SelectUserVo vo);
SysUser getUserInfo(String userId);
}

View File

@ -20,6 +20,7 @@ public class OrgServiceImpl implements IOrgService {
@Autowired
private SystemClient systemClient;
public static final String ORG_ID = "10000000";
/**
* 查询组织信息(当前组织及下级组织列表)
* @param sysOrg
@ -67,6 +68,9 @@ public class OrgServiceImpl implements IOrgService {
*/
@Override
public BaseResponse<List<SysOrg>> getOrglist(SysOrg param) {
if(StringUtils.isEmpty(param.getUpOrgId())){
param.setUpOrgId(ORG_ID);
}
return systemClient.getOrglist(param);
}
@ -158,36 +162,23 @@ public class OrgServiceImpl implements IOrgService {
* @return
*/
@Override
public List<String> levelAndBelowAndAboveOrgIdList() {
// 1. 获取当前用户(判空)
BaseCacheUser currentUser = TokenUtil.getCurrentUser();
// 2. 获取组织信息
BaseResponse<SysOrg> baseResponse = systemClient.getOrgInfo(currentUser.getOrganizationId());
// 3. 解析 orgFullId
SysOrg sysOrg = baseResponse.getData();
String orgFullId = sysOrg.getOrgFullId();
String[] parts = orgFullId.split(",");
String orgId;
if (parts.length == 1) {
orgId = parts[0]; // 只有一级,返回一级
} else {
orgId = parts[1]; // 有多级,返回第二级
public List<String> orgDeptIdList(BaseCacheUser user) {
//获取当前登录人所属部门信息
BaseResponse<SysOrg> baseResponse = systemClient.getOrgInfo(user.getOrganizationId());
List<String> orgIdList = new ArrayList<>();
if(!ObjectUtils.isEmpty(baseResponse)){
//查询当前部门的所属单位下的 所有部门
SysOrg sysOrgAll = new SysOrg();
sysOrgAll.setOrgId(baseResponse.getData().getUpOrgId());
List<SysOrg> sysOrgVOList = systemClient.getOrglist(sysOrgAll).getData();
// 提取 orgId 到 List<String>
orgIdList = Optional.ofNullable(sysOrgVOList)
.orElse(Collections.emptyList())
.stream()
.map(SysOrg::getOrgId)
.filter(Objects::nonNull) // 过滤掉 null 值
.collect(Collectors.toList());
}
// 4. 查询组织数据(判空构造参数)
SysOrg sysOrgAll = new SysOrg();
sysOrgAll.setOrgId(orgId);
List<SysOrgVO> sysOrgVOList = systemClient.queryAll(sysOrgAll).getData();
// 提取 orgId 到 List<String>
List<String> orgIdList = Optional.ofNullable(sysOrgVOList)
.orElse(Collections.emptyList())
.stream()
.map(SysOrgVO::getOrgId)
.filter(Objects::nonNull) // 过滤掉 null 值
.collect(Collectors.toList());
return orgIdList;
}
}

View File

@ -37,6 +37,11 @@ public class UserServiceImpl implements IUserService {
}
@Override
public SysUser getUserInfo(String userId) {
return systemClient.getUser(userId).getData();
}
public List<UserVo> getUser(SelectUserVo vo) {
BaseResponse<List<SysUser>> userlist = systemClient.getUserlist(new SysUser());
List<UserVo> list = new ArrayList<>();

View File

@ -9,7 +9,7 @@ import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
import com.chinaunicom.mall.ebtp.common.base.util.TokenUtil;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoType;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.AdmissionDetailsVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessSupplierCategory;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierBase;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoSupplierVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.service.ICoscoSupplierBaseService;
@ -123,6 +123,7 @@ public class CoscoSupplierBaseController extends BaseController {
BaseCacheUser currentUser = TokenUtil.getCurrentUser();
String userId = currentUser.getUserId();//登录人id
coscoSupplierBase.setCreateBy(userId);
coscoSupplierBase.setAccessStatus(CoscoType.ACCESS_STATUS_YZR);
return BaseResponse.success(coscoSupplierBaseService.getMySupplierBasePage(coscoSupplierBase));
}
@ -296,7 +297,7 @@ public class CoscoSupplierBaseController extends BaseController {
*/
@ApiOperation("查询分页数据")
@PostMapping("/getCategoryPage")
public BaseResponse<IPage<AdmissionDetailsVo>> getZrCategoryPage(@ApiParam(value = "对象数据", required = true) @RequestBody AdmissionDetailsVo vo) {
public BaseResponse<IPage<CoscoAccessSupplierCategory>> getZrCategoryPage(@ApiParam(value = "对象数据", required = true) @RequestBody CoscoAccessSupplierCategory vo) {
//如果id是就自己查
if(StringUtils.isEmpty(vo.getSupplierId())){
//获取登录人信息

View File

@ -1,7 +1,6 @@
package com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.dao.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.AdmissionDetailsVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessSupplierCategory;
import org.springframework.data.repository.query.Param;
@ -23,7 +22,7 @@ public interface CoscoAccessSupplierCategoryMapper {
*/
IPage<CoscoAccessSupplierCategory> selectExitCategoryList(IPage<CoscoAccessSupplierCategory> page, @Param("vo") CoscoAccessSupplierCategory vo);
IPage<AdmissionDetailsVo> selectPageList(IPage<AdmissionDetailsVo> page, @Param("vo") AdmissionDetailsVo vo);
IPage<CoscoAccessSupplierCategory> selectPageList(IPage<CoscoAccessSupplierCategory> page, @Param("vo") CoscoAccessSupplierCategory vo);

View File

@ -58,6 +58,35 @@ public class CoscoAccessSupplierCategory extends CoscoBaseEntity {
private List<String> categoryList;
/**
* 退出表id
*/
private String supplierexitId;
/**
* 准入部门名称
*/
private String deptName;
/**
* 搜索条件开始时间
*/
private String startTime;
/**
* 搜索条件结束时间
*/
private String endTime;
/**
* 退出时间
*/
private String exitTime;
/**
* 退出原因
*/
private String exitReason;
/**
* 批量删除用
*/

View File

@ -52,5 +52,14 @@ public class CoscoAccessUser extends CoscoBaseEntity {
//@Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date lastUpdateTime;
/**
* 部门名称
*/
private String deptName;
/**
* 人员名称
*/
private String userName;
}

View File

@ -2,7 +2,6 @@ package com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.AdmissionDetailsVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.SupplierPageVo;
import java.util.List;
@ -23,7 +22,7 @@ public interface ICoscoSupplierBaseService {
IPage<CoscoSupplierBase> getMySupplierBasePage(CoscoSupplierBase coscoSupplierBase);
IPage<AdmissionDetailsVo> getZrCategoryPage(AdmissionDetailsVo vo);
IPage<CoscoAccessSupplierCategory> getZrCategoryPage(CoscoAccessSupplierCategory vo);
public List<CoscoSupplierBase> getMySupplierBaseList(CoscoSupplierBase coscoSupplierBase);

View File

@ -109,6 +109,7 @@ public class CoscoAccessWorkCategoryServiceImpl implements ICoscoAccessWorkCateg
coscoAccessSupplier.setAccessWorkId(workId);
coscoAccessSupplier.setSupplierId(sId);
coscoAccessSupplier.setDeptId(coscoAccessWork.getDeptId());
coscoAccessSupplier.setAccessStatus(CoscoType.ACCESS_STATUS_WZR);
coscoAccessSupplierList.add(coscoAccessSupplier);
}
//品类批量插入
@ -199,6 +200,24 @@ public class CoscoAccessWorkCategoryServiceImpl implements ICoscoAccessWorkCateg
private void approveYandN(CoscoAccessWork coscoAccessWorkData, List<CoscoAccessCategory> supplierAndCateGoryList) {
Date date = new Date();
//通过工作主体任务id查询供应商信息
CoscoAccessSupplier coscoAccessSupplier = new CoscoAccessSupplier();
coscoAccessSupplier.setAccessWorkId(coscoAccessWorkData.getId());
List<CoscoAccessSupplier> supplierList = coscoAccessSupplierMapper.selectCoscoAccessSupplierList(coscoAccessSupplier);
List<String> accessSupplierIdList = new ArrayList<>();//准入供应商表供应商id集合
for(CoscoAccessSupplier accessSupplier :supplierList ){
//需要修改准入供应商表id结合
accessSupplierIdList.add(accessSupplier.getId());
}
//批量修改准入供应商表状态
CoscoAccessSupplier coscoAccessSupplierUp = new CoscoAccessSupplier();
coscoAccessSupplierUp.setIdList(accessSupplierIdList);
coscoAccessSupplierUp.setAccessStatus(CoscoType.ACCESS_STATUS_YZR);
coscoAccessSupplierMapper.updateCoscoAccessSupplierByIds(coscoAccessSupplierUp);
//根据任务id与部门id查询需要准入的品类并且排除每个供应商已存在该部门下的品类
CoscoAccessCategory coscoAccessCategory = new CoscoAccessCategory();
coscoAccessCategory.setAccessWorkId(coscoAccessWorkData.getId());

View File

@ -112,6 +112,8 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService {
//准入基础信息
CoscoAccessWork coscoAccessWork = coscoAccessWorkMapper.selectCoscoAccessWorkById(id);
SysOrg dept = orgService.getOrgInfo(coscoAccessWork.getDeptId());
coscoAccessWork.setDeptName(dept.getOrgName());//准入部门
vo.setCoscoAccessWork(coscoAccessWork);
//供应商信息
@ -131,7 +133,12 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService {
//人员信息
CoscoAccessUser coscoAccessUser = new CoscoAccessUser();
coscoAccessUser.setAccessWorkId(id);
vo.setCoscoAccessUserls(coscoAccessUserMapper.selectCoscoAccessUserList(coscoAccessUser));
List<CoscoAccessUser> coscoAccessUserList = coscoAccessUserMapper.selectCoscoAccessUserList(coscoAccessUser);
for(CoscoAccessUser accessUser : coscoAccessUserList){
//获取评审人的所诉部门
accessUser.setDeptName(orgService.getOrgInfo(accessUser.getDeptId()).getOrgName());
}
vo.setCoscoAccessUserls(coscoAccessUserList);
//查询附件信息
vo.setCoscoAccessWorkAttachments(coscoAccessWorkAttachmentsMapper.selectCoscoAccessWorkAttachmentsByWorkId(id));

View File

@ -15,15 +15,14 @@ import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoDateUtils;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.CoscoType;
import com.chinaunicom.zyhy.ebtp.supplier.base.constant.MessageType;
import com.chinaunicom.zyhy.ebtp.supplier.common.aop.MessageLog;
import com.chinaunicom.zyhy.ebtp.supplier.coscoCategory.service.ICoscoCategoryService;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.dao.mapper.CoscoSupplierBaseMapper;
import com.chinaunicom.zyhy.ebtp.supplier.coscoCategory.dao.CoscoCategoryLibraryContainMapper;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.dao.mapper.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.service.*;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.AdmissionDetailsVo;
import com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.SupplierPageVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@ -81,13 +80,22 @@ public class CoscoSupplierBaseServiceImpl extends BaseServiceImpl<CoscoSupplierB
@Autowired
private CoscoCategoryLibraryContainMapper coscoCategoryLibraryContainMapper;
@Autowired
private CoscoAccessSupplierMapper coscoAccessSupplierMapper;
@Autowired
private IOrgService orgService;
/**
* 未准入的供应商分页列表查询
*
* @param coscoSupplierBase
* @return
*/
@ -108,7 +116,8 @@ public class CoscoSupplierBaseServiceImpl extends BaseServiceImpl<CoscoSupplierB
@Override
public IPage<CoscoSupplierBase> getPage(CoscoSupplierBase coscoSupplierBase) {
IPage<CoscoSupplierBase> page = new Page<>(coscoSupplierBase.getPageNo(), coscoSupplierBase.getPageSize());
return coscoSupplierBaseMapper.selectPageList(page, coscoSupplierBase);
IPage<CoscoSupplierBase> pageData = coscoSupplierBaseMapper.selectPageList(page, coscoSupplierBase);
return pageData;
}
@Override
@ -124,9 +133,16 @@ public class CoscoSupplierBaseServiceImpl extends BaseServiceImpl<CoscoSupplierB
* @return
*/
@Override
public IPage<AdmissionDetailsVo> getZrCategoryPage(AdmissionDetailsVo vo) {
IPage<AdmissionDetailsVo> page = new Page<>(vo.getPageNo(), vo.getPageSize());
return coscoAccessSupplierCategoryMapper.selectPageList(page, vo);
public IPage<CoscoAccessSupplierCategory> getZrCategoryPage(CoscoAccessSupplierCategory vo) {
IPage<CoscoAccessSupplierCategory> page = new Page<>(vo.getPageNo(), vo.getPageSize());
IPage<CoscoAccessSupplierCategory> pageData = coscoAccessSupplierCategoryMapper.selectPageList(page, vo);
for(CoscoAccessSupplierCategory category : pageData.getRecords()){
SysOrg dept = orgService.getOrgInfo(category.getDeptId());
if(!ObjectUtils.isEmpty(dept)){
category.setDeptName(dept.getOrgName());
}
}
return pageData;
}
@Override

View File

@ -197,6 +197,7 @@ public class CoscoSupplierexitServiceImpl implements ICoscoSupplierexitService {
}
CoscoAccessSupplierCategory deleteCoscoAccessSupplierCategory = new CoscoAccessSupplierCategory();
deleteCoscoAccessSupplierCategory.setDeptId(coscoSupplierexit.getDeptId());
deleteCoscoAccessSupplierCategory.setSupplierexitId(coscoSupplierexit.getId());
deleteCoscoAccessSupplierCategory.setCoscoAccessSupplierCategoryList(coscoAccessSupplierCategoryList);
coscoAccessSupplierCategoryMapper.batchDeleteCoscoAccessSupplierCategory(deleteCoscoAccessSupplierCategory);

View File

@ -1,46 +0,0 @@
package com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo;
import com.chinaunicom.zyhy.ebtp.supplier.common.CoscoBaseEntity;
import lombok.Data;
import java.util.List;
@Data
public class AdmissionDetailsVo extends CoscoBaseEntity {
private static final long serialVersionUID = 1L;
//部门id
private String deptId;
//退出id
private String supplierexitId;
//退出时间
private String exitTime;
//退出原因
private String exitReason;
//退出品类id
private String categoryIds;
//退出品类名
private String categoryNames;
//供应商id
private String supplierId;
//加入黑名单时间
private String blackTime;
//开始时间
private String endTime;
//结束时间
private String startTime;
//品类id
private String categoryId;
}

View File

@ -15,7 +15,8 @@
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="lastUpdateTime" column="last_update_time"/>
<result property="deptId" column="dept_id"/>
<result property="supplierexitId" column="supplierexit_id"/>
<result property="deptId" column="dept_id"/>
</resultMap>
<sql id="selectCoscoAccessSupplierCategoryVo">
@ -32,50 +33,34 @@
c.update_by,
c.update_time,
c.last_update_time,
c.dept_id
c.dept_id,
c.supplierexit_id,
cse.exit_time as exitTime,
cse.exit_reason as exitReason
FROM
cosco_access_supplier_category c
left join cosco_supplier_base s on c.supplier_id = s.id and s.del_flag = 'normal'
left join cosco_category ca on c.category_id = ca.id and ca.del_flag = 'normal'
left join cosco_supplierexit cse on c.supplierexit_id = cse.id and cse.del_flag = 'normal'
</sql>
<select id="selectPageList" parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.AdmissionDetailsVo" resultType="com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.vo.AdmissionDetailsVo">
SELECT
caw.update_time as updateTime,
cas.dept_id as deptId,
cas.supplierexit_id as supplierexitId,
cse.exit_time as exitTime,
cse.exit_reason as exitReason,
c.categoryNames
FROM
cosco_access_supplier cas
LEFT JOIN cosco_supplierexit cse ON cse.id = cas.supplierexit_id
LEFT JOIN cosco_access_work caw ON caw.id = cas.access_work_id
left join (
SELECT
cac.access_work_id,
GROUP_CONCAT(cc.id SEPARATOR ', ') AS categoryId,
GROUP_CONCAT(cc.category_name SEPARATOR ', ') AS categoryNames
FROM cosco_access_supplier_category cac
INNER JOIN cosco_category cc ON cac.category_id = cc.id
GROUP BY cac.access_work_id
) as c on c.access_work_id = caw.id
WHERE
cas.supplier_id = #{vo.supplierId} AND cas.access_status IN (1,2)
<if test="vo.categoryNames != null and vo.categoryNames != ''">
and c.categoryNames like concat('%', #{vo.categoryNames}, '%')
</if>
<if test="vo.categoryId != null and vo.categoryId != ''">
and c.categoryId like concat('%', #{vo.categoryId}, '%')
</if>
<if test="vo.startTime!=null and vo.startTime != ''">
and caw.update_time &gt;= #{vo.startTime}
</if>
<if test="vo.endTime!=null and vo.endTime != ''">
and caw.update_time &lt;= #{vo.endTime}
</if>
ORDER BY caw.update_time desc
<select id="selectPageList" parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessSupplierCategory" resultMap="CoscoAccessSupplierCategoryResult">
<include refid="selectCoscoAccessSupplierCategoryVo"/>
<where>
<if test="vo.supplierId != null and vo.supplierId != ''">
and c.supplier_id = #{vo.supplierId}
</if>
<if test="vo.categoryId != null and vo.categoryId != ''">
and c.categoryId = #{vo.categoryId}
</if>
<if test="vo.startTime!=null and vo.startTime != ''">
and c.create_time &gt;= #{vo.startTime}
</if>
<if test="vo.endTime!=null and vo.endTime != ''">
and c.create_time &lt;= #{vo.endTime}
</if>
</where>
ORDER BY c.create_time desc
</select>
<select id="selectCoscoAccessSupplierCategoryList" parameterType="com.chinaunicom.zyhy.ebtp.supplier.coscosupplier.entity.CoscoAccessSupplierCategory" resultMap="CoscoAccessSupplierCategoryResult">
@ -228,6 +213,7 @@
<if test="updateTime != null">update_time,</if>
<if test="lastUpdateTime != null">last_update_time,</if>
<if test="deptId != null">dept_id,</if>
<if test="supplierexitId != null">supplierexit_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
@ -241,6 +227,7 @@
<if test="updateTime != null">#{updateTime},</if>
<if test="lastUpdateTime != null">#{lastUpdateTime},</if>
<if test="deptId != null">#{deptId},</if>
<if test="supplierexitId != null">#{supplierexitId},</if>
</trim>
</insert>
<insert id="batchCoscoAccessSupplierCategory" parameterType="java.util.List">
@ -284,6 +271,9 @@
<if test="deptId != null">dept_id =
#{deptId},
</if>
<if test="supplierexitId != null">supplierexit_id =
#{supplierexitId},
</if>
</trim>
where id = #{id}
</update>
@ -303,7 +293,7 @@
<update id="batchDeleteCoscoAccessSupplierCategory" parameterType="map">
UPDATE cosco_access_supplier_category
SET del_flag = 'deleted'
SET del_flag = 'deleted',supplierexit_id = #{supplierexitId}
WHERE dept_id = #{deptId}
<if test="coscoAccessSupplierCategoryList != null and coscoAccessSupplierCategoryList.size() > 0">
AND (

View File

@ -361,7 +361,10 @@
<where>
AND caw.apply_type = '0'
<if test="vo.createBy != null and vo.createBy != ''">
and caw.create_by = #{vo.createBy}
and caw.create_by = #{vo.createBy}
</if>
<if test="vo.accessStatus != null and vo.accessStatus != ''">
and caw.approve_status = #{vo.accessStatus}
</if>
<if test="vo.categoryId != null and vo.categoryId != ''">
and cc.id = #{vo.categoryId}