Compare commits

..

47 Commits

Author SHA1 Message Date
wxr
4307fe3c1d 二进制文件禁止对比 2026-03-27 18:43:38 +08:00
shusir
5882e7d84c Merge remote-tracking branch 'origin/test' into test 2026-03-27 18:08:58 +08:00
shusir
94b1fe6a9c fix:物料增加标签需要的字段 2026-03-27 18:08:23 +08:00
YBP
ab0d420227 文件持有情况查询,以及权限查询 2026-03-27 18:00:04 +08:00
shusir
161da1af34 feat:准备检化验发起;标签二维码用json字符串; 2026-03-27 16:25:45 +08:00
FCL
8e2d780539 feat:标准物质期间核查配置列表 2026-03-27 16:10:23 +08:00
FCL
535edf767a fix:设备业务配置接口增加配置标识 2026-03-27 14:28:32 +08:00
wxr
a8f82aa8a5 添加常量 2026-03-27 14:09:09 +08:00
wxr
15af4cb39d 添加常量 2026-03-27 14:04:15 +08:00
wxr
8cf12baf4e Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2026-03-27 14:03:17 +08:00
FCL
c0b670b822 fix:设备业务配置接口增加配置标识 2026-03-27 11:47:20 +08:00
YBP
eaeba54835 优化流程问题 2026-03-27 09:18:49 +08:00
wxr
0072ee8e84 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2026-03-26 17:55:24 +08:00
wxr
c2c205bf25 添加常量 2026-03-26 17:55:15 +08:00
shusir
e793be73ed feat:准备物料检化验 2026-03-26 17:51:27 +08:00
FCL
b958080d22 fix:报告用印iwork调整 2026-03-26 16:40:25 +08:00
shusir
35d06637e9 fix:存放位置数据权限调整 2026-03-26 15:01:57 +08:00
FCL
ce4bc07778 fix:报告用印iwork调整 2026-03-26 14:55:53 +08:00
wxr
f5c7963671 Merge branch 'test' of https://git.will-way.cn/zgty/zt-qms into test 2026-03-26 14:03:30 +08:00
wxr
a8ac34bbd9 上报时添加判定是否已生成委托部门 2026-03-26 14:03:19 +08:00
YBP
8de87161ad 修改记录查询 2026-03-26 11:46:00 +08:00
shusir
56eb717371 fix:存放位置数据权限调整 2026-03-26 10:26:59 +08:00
shusir
b93a5741a1 fix:物料盘点出入库因事务将private改为public 2026-03-26 10:22:57 +08:00
YBP
0f288f65a4 添加管理员角色常量 2026-03-26 09:52:19 +08:00
shusir
9244510903 Merge remote-tracking branch 'origin/test' into test 2026-03-25 18:08:52 +08:00
shusir
4fa4371f0c fix:物料抽象出实例的入库方法 2026-03-25 18:08:06 +08:00
YBP
f09bb8f904 文件记录-重构-通用申请流程 2026-03-25 18:03:25 +08:00
FCL
d33c3b5803 Merge remote-tracking branch 'origin/test' into test 2026-03-25 17:53:07 +08:00
FCL
6a2b9048b5 fix:期间核查、检定校准接口调整 2026-03-25 17:53:01 +08:00
wxr
c9b85e563d 文件排序修改 2026-03-25 17:22:52 +08:00
FCL
809088d9b3 feat:意见读取方法;检定校准、期间核查增加意见返回 2026-03-25 15:28:23 +08:00
shusir
58aa53eb68 fix:物料盘点出入库;修复循环依赖。 2026-03-25 14:30:03 +08:00
FCL
32387301ac fix:iwork用印发起方式调整 2026-03-25 13:58:32 +08:00
wxr
ea5bf45a48 第三方对接 2026-03-25 11:09:13 +08:00
FCL
92b3494fb7 fix:细节修复 2026-03-25 08:38:37 +08:00
YBP
89ebf4437c 文件记录-重构-通用申请 2026-03-24 18:21:01 +08:00
shusir
a227770ec1 fix:物料盘点 todo 库存数量需要带上仓库或库位条件。 2026-03-24 18:04:22 +08:00
FCL
f253ea4f39 fix:期间核查、检定校准增加formId字段 2026-03-24 16:19:16 +08:00
FCL
05cd6869a9 fix:设备微调 2026-03-24 15:35:52 +08:00
FCL
da0ad407dc feat:设备期间核查基础逻辑 2026-03-24 15:08:51 +08:00
FCL
629092ffbe fix:设备检定校准细节调整 2026-03-24 11:50:08 +08:00
FCL
6077ee78f0 fix:报告细节调整 2026-03-24 10:26:03 +08:00
YBP
418932d546 文件记录-重构 2026-03-23 18:36:50 +08:00
shusir
26486fb1d6 fix:物料盘点 2026-03-23 18:03:22 +08:00
FCL
007a60d437 fix:iwork用印及回调调试 2026-03-23 17:59:10 +08:00
FCL
d644149a94 fix:iwork用印及回调调试 2026-03-23 16:50:05 +08:00
shusir
09730d4b8f fix:物料准备盘点接口及修复其他接口问题 2026-03-20 17:57:20 +08:00
201 changed files with 6623 additions and 2628 deletions

22
.gitattributes vendored Normal file
View File

@@ -0,0 +1,22 @@
# 图片
*.jpg binary
*.jpeg binary
*.png binary
*.gif binary
*.bmp binary
*.webp binary
# 文档/压缩包
*.pdf binary
*.doc binary
*.docx binary
*.zip binary
*.rar binary
*.7z binary
# 其他二进制格式
*.exe binary
*.dll binary
*.so binary
*.jar binary
*.class binary

View File

@@ -142,6 +142,13 @@ public interface ErrorCodeConstants {
ErrorCode BUSINESS_XRF_DATA_NOT_EXISTS = new ErrorCode(1_032_100_000, "荧光采集记录不存在");
//第三方对接
ErrorCode OTHER_SYSTEM_CONFIG_NOT_EXISTS = new ErrorCode(1_032_100_000, "第三方系统配置不存在");
ErrorCode OTHER_BASE_SAMPLE_NOT_EXISTS = new ErrorCode(1_032_100_000, "第三方系统样品大类对应不存在");
ErrorCode OTHER_DICTIONARY_PROJECT_NOT_EXISTS = new ErrorCode(1_032_100_000, "第三方系统检测项目字典对应不存在");
ErrorCode OTHER_SYSTEM_USER_NOT_EXISTS = new ErrorCode(1_032_100_000, "第三方系统用户信息对应不存在");
ErrorCode OTHER_DICTIONARY_BUSINESS_NOT_EXISTS = new ErrorCode(1_032_100_000, "第三方系统与业务字典对应不存在");
//检测报告
ErrorCode REPORT_DOCUMENT_MAIN_NOT_EXISTS = new ErrorCode(1_032_100_000, "检测报告业务不存在");
@@ -186,6 +193,7 @@ public interface ErrorCodeConstants {
ErrorCode MATERIAL_PRODUCTS_EXISTS_CATEGORY = new ErrorCode(1_032_160_000, "物料大类列表中存在分类数据");
ErrorCode MATERIAL_LIFECYCLE_DETAIL_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程明细不存在");
ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在");
ErrorCode MATERIAL_CORRELATION_ASSAY_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料检化验关联信息不存在");
ErrorCode MATERIAL_BATCH_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次不存在");
ErrorCode MATERIAL_BATCH_GONG_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次工段不存在");
@@ -198,8 +206,7 @@ public interface ErrorCodeConstants {
ErrorCode SYSTEM_VERSION_MANAGEMENT_NOT_EXISTS = new ErrorCode(1_032_160_000, "客户端版本管理不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_NOT_EXISTS = new ErrorCode(1_032_160_000, "库存盘点不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_BATCH_NOT_EXISTS = new ErrorCode(1_032_160_000, "库存盘点项不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_ITEM_NOT_EXISTS = new ErrorCode(1_032_160_000, "库存盘点不存在");
ErrorCode MATERIAL_INVENTORY_CHECK_DETAIL_NOT_EXISTS = new ErrorCode(1_032_160_000, "库存盘点明细不存在");
ErrorCode MATERIAL_INVENTORY_OUTBOUND_NOT_EXISTS = new ErrorCode(1_032_160_000, "出库不存在");
ErrorCode MATERIAL_INVENTORY_OUTBOUND_DETAIL_NOT_EXISTS = new ErrorCode(1_032_160_000, "出库明细,出库明细,含领用出库、退货出库、盘亏出库、销毁出库等不存在");
@@ -249,6 +256,7 @@ public interface ErrorCodeConstants {
/*================================= 部门信息、用户信息 ==================================*/
ErrorCode CURRENT_USER_COMPANY_NOT_EXISTS = new ErrorCode(1_032_350_000, "当前用户公司不存在");
ErrorCode CURRENT_USER_DEPT_NOT_EXISTS = new ErrorCode(1_032_350_000, "当前用户部门不存在");
ErrorCode CURRENT_USER_NOT_EXISTS = new ErrorCode(1_032_350_000, "当前用户部门不存在");
// ========== 文件记录分发号,记录文件分发与线下对应的分发号对应,且标记到目标人物 TODO 补充编号 ==========
ErrorCode RECORD_ASSIGN_NOT_EXISTS = new ErrorCode(1_032_450_000, "文件记录分发号,记录文件分发与线下对应的分发号对应,且标记到目标人物不存在");

View File

@@ -215,11 +215,47 @@ public interface QmsCommonConstant {
/** 委检登记附件类型:商检部门分析报告 **/
String ENTRUST_ATTACHMENT_CATEGORY_DEPT_DOC = "entrust_dept_doc_upload";
/** 委托来源 检验委托 **/
String ENTRUST_SOURCE_JYWT = "jywt";
/** 委托来源西南铜 原料 **/
String ENTRUST_SOURCE_XNT_RAW_MATERIAL = "xntyl";
/** 委托来源西南铜 供方 **/
String ENTRUST_SOURCE_XNT_SUPPLIER = "";
/** 委托来源西南铜 产品 **/
String ENTRUST_SOURCE_XNT_PRODUCT = "xntwt";
/** 委托来源西南铜 中控 **/
String ENTRUST_SOURCE_XNT_IN_PROCESS_CONTROL = "xntzjwl";
/** 委托来源西南铜 原料复测 **/
String ENTRUST_SOURCE_XNT_RETEST = "";
/** 委托来源西南铜 产品复测 **/
String ENTRUST_SOURCE_XNT_PRODUCT_RETEST = "";
/** 委托来源西南铜 中心留样复测 **/
String ENTRUST_SOURCE_XNT_CENTRAL_RETENTIN_RETEST = "";
/** 委托来源西南铜 临时样 **/
String ENTRUST_SOURCE_XNT_TEMPORARY = "xntlsy";
/** 第三方系统 西南铜实验室 **/
String OTHER_SYSTEM_XNT_LIMS = "XNT-LIMS";
/** 自动 **/
String AUTOMATIC = "automatic";
/** 手动 **/
String MANUAL = "manual";
/** 接口 **/
String INTERFACE = "interface";
/** 内部接口 **/
String INTERFACE_INTERNAL = "interface_internal";
/** 样品库操作类型: 归库、调拨、下架 **/

View File

@@ -24,4 +24,6 @@ public interface QmsPermissionConstant {
String SAMPLE_WAREHOUSE_ADMIN = "sample_warehouse_admin"; //样品库管理员
String DEVICE_MANAGER = "qms_device_manager"; //设备管理员
String ADMIN_ROLE = "ytjyAdmin"; // 超级管理员 标识
}

View File

@@ -36,6 +36,7 @@ public interface BusinessSampleEntrustFileMapper extends BaseMapperX<BusinessSam
.eqIfPresent(BusinessSampleEntrustFileDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(BusinessSampleEntrustFileDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessSampleEntrustFileDO::getRemark, reqVO.getRemark())
.orderByDesc(BusinessSampleEntrustFileDO::getFileCategory)
.orderByDesc(BusinessSampleEntrustFileDO::getId));
}
@@ -55,6 +56,7 @@ public interface BusinessSampleEntrustFileMapper extends BaseMapperX<BusinessSam
.eqIfPresent(BusinessSampleEntrustFileDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(BusinessSampleEntrustFileDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessSampleEntrustFileDO::getRemark, reqVO.getRemark())
.orderByDesc(BusinessSampleEntrustFileDO::getFileCategory)
.orderByDesc(BusinessSampleEntrustFileDO::getId));
}

View File

@@ -824,9 +824,9 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
for (BusinessSampleEntrustRegistrationDO businessSampleEntrustRegistrationDO : businessSampleEntrustRegistrationDOList) {
ConfigEntrustSourceDO configEntrustSourceDO = configEntrustSourceMapper.selectById(businessSampleEntrustRegistrationDO.getConfigEntrustSourceId());
if (QmsCommonConstant.YES.equals(configEntrustSourceDO.getIsGenerateDocument())) {//需要生成部门编制报告
//过滤当前委托下的分析部门
List<BusinessSampleEntrustDepartmentDO> currBusinessSampleEntrustDepartmentDOList = allBusinessSampleEntrustDepartmentDOList.stream().filter(f -> f.getBusinessSampleEntrustRegistrationId().equals(businessSampleEntrustRegistrationDO.getId()) && !QmsCommonConstant.CHECKED.equals(f.getAssayStatus())).collect(Collectors.toList());
//过滤当前委托下的分析部门
List<BusinessSampleEntrustDepartmentDO> currBusinessSampleEntrustDepartmentDOList = allBusinessSampleEntrustDepartmentDOList.stream().filter(f -> f.getBusinessSampleEntrustRegistrationId().equals(businessSampleEntrustRegistrationDO.getId()) && !QmsCommonConstant.CHECKED.equals(f.getAssayStatus())).collect(Collectors.toList());
if (QmsCommonConstant.YES.equals(configEntrustSourceDO.getIsGenerateDocument()) && CollUtil.isNotEmpty(currBusinessSampleEntrustDepartmentDOList)) {//需要生成部门编制报告,并且当前委托部门不为空
for (BusinessSampleEntrustDepartmentDO businessSampleEntrustDepartmentDO : currBusinessSampleEntrustDepartmentDOList) {
//过滤当前分析部门下的样品
List<BusinessSampleEntrustDepartmentDetailDO> currBusinessSampleEntrustDepartmentDetailDOList = allBusinessSampleEntrustDepartmentDetailDOList.stream().filter(f -> f.getBusinessSampleEntrustDepartmentId().equals(businessSampleEntrustDepartmentDO.getId()) && !QmsCommonConstant.CHECKED.equals(f.getAssayStatus())).collect(Collectors.toList());

View File

@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Set;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -61,6 +62,12 @@ public class ConfigWarehouseLocationPageReqVO extends PageParam {
@Schema(description = "查询时进行权限过滤")
private String permissionFilterFlag;
@Schema(description = "是否为管理员-可查看全部数据")
private Boolean adminFlag;
@Schema(description = "有权限的仓库")
private List<Long> authorizedWarehouseIds;
@Schema(description = "查询用-权限角色")
private Set<Long> roleIds;

View File

@@ -1,18 +1,22 @@
package com.zt.plat.module.qms.business.config.dal.mapper;
import cn.hutool.core.collection.CollUtil;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleDispatchDetailDO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationPageReqVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigWarehouseLocationRespVO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigPermissionDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigWarehouseLocationParDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.stream.Collectors;
/**
* 存放位置 Mapper
@@ -25,6 +29,7 @@ public interface ConfigWarehouseLocationMapper extends BaseMapperX<ConfigWarehou
default PageResult<ConfigWarehouseLocationRespVO> selectPage(ConfigWarehouseLocationPageReqVO reqVO) {
MPJLambdaWrapperX<ConfigWarehouseLocationDO> wrapper = new MPJLambdaWrapperX<>();
Boolean adminFlag = reqVO.getAdminFlag();
//仓库
wrapper.leftJoin(ConfigWarehouseLocationParDO.class, ConfigWarehouseLocationParDO::getId, ConfigWarehouseLocationDO::getParentId);
wrapper.selectAll(ConfigWarehouseLocationDO.class)
@@ -43,6 +48,11 @@ public interface ConfigWarehouseLocationMapper extends BaseMapperX<ConfigWarehou
.eqIfPresent(ConfigWarehouseLocationDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(ConfigWarehouseLocationDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ConfigWarehouseLocationDO::getRemark, reqVO.getRemark())
.and(adminFlag == null || !adminFlag && CollUtil.isNotEmpty(reqVO.getAuthorizedWarehouseIds()),
wrapper1 ->
wrapper1.in(ConfigWarehouseLocationDO::getId, reqVO.getAuthorizedWarehouseIds())
.or()
.in(ConfigWarehouseLocationParDO::getId, reqVO.getAuthorizedWarehouseIds()))
.orderByDesc(ConfigWarehouseLocationDO::getSortNo);
return selectJoinPage(reqVO, ConfigWarehouseLocationRespVO.class, wrapper);

View File

@@ -74,4 +74,11 @@ public interface ConfigPermissionService {
*/
PageResult<ConfigPermissionDO> getConfigPermissionPage(ConfigPermissionPageReqVO pageReqVO);
/**
* 根据目标id获取权限列表
*
* @param targetIds 目标id
* @return 权限列表
*/
List<ConfigPermissionDO> getPermissionListByTargetIds(List<Long> targetIds);
}

View File

@@ -2,6 +2,7 @@ package com.zt.plat.module.qms.business.config.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionPageReqVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionRespVO;
import com.zt.plat.module.qms.business.config.controller.vo.ConfigPermissionSaveReqVO;
@@ -210,4 +211,11 @@ public class ConfigPermissionServiceImpl implements ConfigPermissionService {
return configPermissionMapper.selectPage(pageReqVO);
}
@Override
public List<ConfigPermissionDO> getPermissionListByTargetIds(List<Long> targetIds) {
return configPermissionMapper.selectList(Wrappers.lambdaQuery(ConfigPermissionDO.class)
.in(ConfigPermissionDO::getTargetId, targetIds));
}
}

Some files were not shown because too many files have changed in this diff Show More