From a326d30372130e69b283af0ff9efa3ee44c3786d Mon Sep 17 00:00:00 2001 From: TL <2445390702@qq.com> Date: Tue, 8 Jul 2025 08:30:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A5=E5=8F=8A=E5=9C=B0?= =?UTF-8?q?=E5=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zyhy/ebtp/supplier/common/CoscoType.java | 7 +++++- .../entity/AdmissionDetailsVo.java | 11 +++++++++ .../impl/CoscoAccessWorkServiceImpl.java | 24 ++++++++++++++++++- .../impl/CoscoSupplierBaseServiceImpl.java | 19 +++++++++------ .../CoscoAccessSupplierCategoryMapper.xml | 23 +++++++++++++++--- .../dao/mapper/CoscoSupplierBaseMapper.xml | 17 +++++-------- 6 files changed, 78 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/common/CoscoType.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/common/CoscoType.java index f1e6e5a..d67c514 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/common/CoscoType.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/common/CoscoType.java @@ -36,11 +36,14 @@ public class CoscoType { public static final String APPLY_TYPE_PLZR = "1"; - //准入方式(online.线上准入、offline.线下准入) + //准入方式(online.线上准入、offline.线下准入、scattered.零星采购/应急采购) public static final String ACCESS_TYPE_ONLINE = "online"; public static final String ACCESS_TYPE_OFFLINE = "offline"; + public static final String ACCESS_TYPE_SCATTERED = "scattered"; + + //评审状态(0.未开始、1.进行中、2.结果汇总中、3.已完成) @@ -69,6 +72,8 @@ public class CoscoType { public static final String SUPPLIER_TYPE_OVS = "ovs"; + public static final String SUPPLIER_TYPE_PE = "pe"; + //表名 public static final String COSCO_SUPPLIER_BASE = "cosco_supplier_base"; diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/AdmissionDetailsVo.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/AdmissionDetailsVo.java index f1ef9ff..24b3f1d 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/AdmissionDetailsVo.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/entity/AdmissionDetailsVo.java @@ -32,4 +32,15 @@ public class AdmissionDetailsVo extends CoscoBaseEntity { //加入黑名单时间 private String blackTime; + + //开始时间 + private String endTime; + + //结束时间 + private String startTime; + + //品类id + private String categoryId; + + } diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java index 07886b1..7020493 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoAccessWorkServiceImpl.java @@ -251,6 +251,17 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService { coscoAccessWorkAttachmentsMapper.insertCoscoAccessWorkAttachments(coscoAccessWorkAttachments); } + //如果是零星采购/应急采购,不需要走任何流程直接审核通过 + if(CoscoType.ACCESS_TYPE_SCATTERED.equals(coscoAccessWork.getAccessType())){ + //如果是零星采购/应急采购、评审状态直接为完成 + coscoAccessWork.setReviewStatus(CoscoType.REVIEW_STATUS_YWC); + //如果是零星采购/应急采购、审批状态直接为通过 + coscoAccessWork.setApproveStatus(CoscoType.ACCESS_STATUS_TC); + + + + } + //保存工作主表 coscoAccessWork.setApplyType(CoscoType.APPLY_TYPE_GYSZR); coscoAccessWork.setCreateBy("1"); @@ -382,6 +393,12 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService { return leaderId; } + /** + * 供应商关联工作主表新增 + * @param vo + * @param workId + * @param coscoAccessWork + */ private void addSupplierIds(CoscoAccessWorkVo vo, String workId, CoscoAccessWork coscoAccessWork) { //供应商集合 List coscoAccessSupplierList = new ArrayList<>(); @@ -389,7 +406,12 @@ public class CoscoAccessWorkServiceImpl implements ICoscoAccessWorkService { CoscoAccessSupplier coscoAccessSupplier = new CoscoAccessSupplier(); coscoAccessSupplier.setId(CoscoIdUtil.getId()); coscoAccessSupplier.setDeptId(coscoAccessWork.getDeptId()); - coscoAccessSupplier.setAccessStatus(CoscoType.ACCESS_STATUS_WZR); + //如果是零星采购/应急采购准入直接改为已准入,否则线上准入和线下准入为未准入,未准入需要走审批流程 + if(CoscoType.ACCESS_TYPE_SCATTERED.equals(coscoAccessWork.getAccessType())){ + coscoAccessSupplier.setAccessStatus(CoscoType.ACCESS_STATUS_YZR); + }else{ + coscoAccessSupplier.setAccessStatus(CoscoType.ACCESS_STATUS_WZR); + } coscoAccessSupplier.setAccessWorkId(workId); coscoAccessSupplier.setSupplierId(supplierId); coscoAccessSupplierList.add(coscoAccessSupplier); diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java index b306358..1ddd423 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/coscosupplier/service/impl/CoscoSupplierBaseServiceImpl.java @@ -405,16 +405,21 @@ public class CoscoSupplierBaseServiceImpl implements ICoscoSupplierBaseService { CoscoSupplierBase coscoSupplierBase = vo.getCoscoSupplierBase(); CoscoSupplierBase oldCoscoSupplierBase = coscoSupplierBaseMapper.selectCoscoSupplierBaseById(coscoSupplierBase.getId()); - if(CoscoType.ACCESS_STATUS_YZR.equals(oldCoscoSupplierBase.getAccessStatus())){//已准入的供应商才会走下面变更的逻辑 - boolean nameBlean = baseDiff(oldCoscoSupplierBase.getName(),coscoSupplierBase.getName()); //企业名称 - boolean mameEnBlean = baseDiff(oldCoscoSupplierBase.getNameEn(),coscoSupplierBase.getNameEn()); //企业英文名称 - boolean rangBlean = baseDiff(oldCoscoSupplierBase.getRange(),coscoSupplierBase.getRange()); //经营范围 - boolean needsChange = isSupplierNeedsChange(oldCoscoSupplierBase, nameBlean, mameEnBlean, rangBlean); - if (needsChange) { - return insertCoscoSupplierChangeApply(coscoSupplierBase, oldCoscoSupplierBase, vo); + //如果修改基础信息为个人供应商,不走变更逻辑,随便改 + if(!CoscoType.SUPPLIER_TYPE_PE.equals(oldCoscoSupplierBase.getSupplierType())){ + if(CoscoType.ACCESS_STATUS_YZR.equals(oldCoscoSupplierBase.getAccessStatus())){//已准入的供应商才会走下面变更的逻辑 + boolean nameBlean = baseDiff(oldCoscoSupplierBase.getName(),coscoSupplierBase.getName()); //企业名称 + boolean mameEnBlean = baseDiff(oldCoscoSupplierBase.getNameEn(),coscoSupplierBase.getNameEn()); //企业英文名称 + boolean rangBlean = baseDiff(oldCoscoSupplierBase.getRange(),coscoSupplierBase.getRange()); //经营范围 + //如果是境内供应商且需要变更名称或经营范围,或者是境外供应商且需要变更英文名称或经营范围,则插入变更申请 + boolean needsChange = isSupplierNeedsChange(oldCoscoSupplierBase, nameBlean, mameEnBlean, rangBlean); + if (needsChange) { + return insertCoscoSupplierChangeApply(coscoSupplierBase, oldCoscoSupplierBase, vo); + } } } + //修改基本信息 coscoSupplierBase.setUpdateBy("1"); coscoSupplierBase.setUpdateTime(date); diff --git a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoAccessSupplierCategoryMapper.xml b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoAccessSupplierCategoryMapper.xml index 1493f36..5f008d0 100644 --- a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoAccessSupplierCategoryMapper.xml +++ b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoAccessSupplierCategoryMapper.xml @@ -52,12 +52,29 @@ 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(DISTINCT cc.category_name SEPARATOR ', ') AS categoryNames from cosco_access_supplier_category cac - left join cosco_category cc on cac.category_id = cc.id - GROUP BY access_work_id + 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 c.categoryNames like concat('%', #{vo.categoryNames}, '%') + + + and c.categoryId like concat('%', #{vo.categoryId}, '%') + + + and caw.update_time >= #{vo.startTime} + + + and caw.update_time <= #{vo.endTime} + AND cas.access_status IN (1,2) ORDER BY caw.update_time desc diff --git a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml index 63b9cb1..ef65d07 100644 --- a/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml +++ b/src/main/resources/com/chinaunicom/zyhy/ebtp/supplier/base/dao/mapper/CoscoSupplierBaseMapper.xml @@ -157,9 +157,12 @@ LEFT JOIN cosco_access_work caw ON cas.access_work_id = caw.id LEFT JOIN cosco_supplier_base csb ON cas.supplier_id = csb.id left join ( - select cac.access_work_id,GROUP_CONCAT(DISTINCT cc.category_name SEPARATOR ', ') AS categoryName from cosco_access_supplier_category cac - left join cosco_category cc on cac.category_id = cc.id - GROUP BY access_work_id + SELECT + cac.access_work_id, + GROUP_CONCAT(cc.category_name SEPARATOR ', ') AS categoryName + FROM cosco_access_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 left join dict_project dp on csb.enterprise_type = dp.`code` and dp.parent_code = 'enterprise_type' @@ -449,14 +452,6 @@ and csb.last_update_time = #{vo.lastUpdateTime} - GROUP BY - cas.id, - cas.access_work_id, - cas.supplier_id, - csb.`name`, - caw.update_time , - csb.enterprise_type, - dp.dic_name order by csb.create_time desc