diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java index 05091bda..20044dd4 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java @@ -24,4 +24,12 @@ public interface BaseValue { * No */ Integer NO = 0; + /** + * 开 + */ + Integer ON = 1; + /** + * 关 + */ + Integer OFF = 0; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkCenter.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkCenter.java index 52395772..82de38a7 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkCenter.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkCenter.java @@ -18,7 +18,7 @@ import java.io.Serial; * @since 2025-12-16 */ @Data -@TableName("BA_WORK_CENTER") +@TableName("BS_WORK_CENTER") @Schema(description = "WorkCenter Entity对象") @EqualsAndHashCode(callSuper = true) public class WorkCenter extends BaseEntity { diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java index 94ebe27e..2e279f17 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java @@ -4,10 +4,13 @@ package org.springblade.desk.basic.pojo.entity; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import org.springblade.desk.util.json.serializer.IdSerializer; +import org.springblade.desk.util.json.serializer.IntegerAllToStringSerializer; import java.io.Serial; @@ -23,80 +26,82 @@ import java.io.Serial; @EqualsAndHashCode(callSuper = true) public class WorkTank extends BaseEntity { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * [作业槽]编码 - */ + /** + * [作业槽]编码 + */ public static final String COL_WORK_TANK_CODE = "WORK_TANK_CODE"; - /** - * [作业槽]类型 - */ + /** + * [作业槽]类型 + */ public static final String COL_WORK_TANK_TYPE = "WORK_TANK_TYPE"; - /** - * [作业槽]名称 - */ + /** + * [作业槽]名称 + */ public static final String COL_NAME = "NAME"; - /** - * 排序 - */ + /** + * 排序 + */ public static final String COL_SORT = "SORT"; - /** - * 备注 - */ + /** + * 备注 + */ public static final String COL_REMARK = "REMARK"; - /** - * 检测成分 - */ + /** + * 检测成分 + */ public static final String COL_TEST_ELEMENT = "TEST_ELEMENT"; - /** - * [作业中心]id - */ + /** + * [作业中心]id + */ public static final String COL_WORKSTATION_ID = "WORKSTATION_ID"; - /** - * 操作[用户]id - */ + /** + * 操作[用户]id + */ public static final String COL_OP_USER_ID = "OP_USER_ID"; - /** - * [作业槽]编码 - */ - @Schema(description = "[作业槽]编码") - private String workTankCode; - /** - * [作业槽]类型 - */ - @Schema(description = "[作业槽]类型") - private Long workTankType; - /** - * [作业槽]名称 - */ - @Schema(description = "[作业槽]名称") - private String name; - /** - * 排序 - */ - @Schema(description = "排序") - private Long sort; - /** - * 备注 - */ - @Schema(description = "备注") - private String remark; - /** - * 检测成分 - */ - @Schema(description = "检测成分") - private String testElement; - /** - * [作业中心]id - */ - @Schema(description = "[作业中心]id") - private Long workstationId; - /** - * 操作[用户]id - */ - @Schema(description = "操作[用户]id") - private Long opUserId; + /** + * [作业槽]编码 + */ + @Schema(description = "[作业槽]编码") + private String workTankCode; + /** + * [作业槽]类型 + */ + @Schema(description = "[作业槽]类型") + private Long workTankType; + /** + * [作业槽]名称 + */ + @Schema(description = "[作业槽]名称") + private String name; + /** + * 排序 + */ + @Schema(description = "排序") + private Long sort; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + /** + * 检测成分 + */ + @Schema(description = "检测成分") + private String testElement; + /** + * [作业中心]id + */ + @JsonSerialize(using = IdSerializer.class) + @Schema(description = "[作业中心]id") + private Long workstationId; + /** + * 操作[用户]id + */ + @JsonSerialize(using = IdSerializer.class) + @Schema(description = "操作[用户]id") + private Long opUserId; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java index c02c65c8..5d5d0b7a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java @@ -10,10 +10,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; import org.springblade.desk.util.json.serializer.Integer0ToEmptyStringSerializer; -import org.springblade.desk.util.json.serializer.IntegerAllToStringSerializer; import java.io.Serial; -import java.math.BigDecimal; /** * [工艺文件] 实体类 diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java index 1bd0587e..bcbc88f3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java @@ -35,6 +35,8 @@ public class CycleTestVO extends CycleTest { private String cycleTestStandardName; @Schema(description = "[周期试验标准][附件]id") private Long cycleTestStandardAttachId; + @Schema(description = "[周期试验标准][附件]原始名称") + private String cycleTestStandardAttachOriginalName; @Schema(description = "工艺员[用户]姓名") private String processUserName; @Schema(description = "试验技术员[用户]姓名") diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankTaskCopyVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankTaskCopyVO.java index ae35bdd0..c8b91245 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankTaskCopyVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankTaskCopyVO.java @@ -21,62 +21,62 @@ import java.time.LocalDate; @Data @EqualsAndHashCode(callSuper = true) public class LiquidTankTaskCopyVO extends LiquidTankTaskCopy { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; - /** - * 作业中心 name - */ - @Schema(description = "作业中心 name") - private String wcName; - /** - * todo:temp - */ - @Schema(description = "药品物料编码") - private String drugMaterialCode = "111122223333"; - /** - * - */ - @Schema(description = "化验人[用户]名称") - private String testUserRealName; - @Schema(description = "复检化验人[用户]名称") - private String repeatTestUserRealName; - @Schema(description = "工艺主管[用户]名称") - private String processUserRealName; - @Schema(description = "审核[用户]名称") - private String reviewUserRealName; - @Schema(description = "发药[用户]名称") - private String sendDurgUserRealName; - @Schema(description = "收药[用户]名称") - private String receiveDurgUserRealName; - @Schema(description = "作业槽名称") - private String workTankName; - @Schema(description = "加药量[计算公式]名称") - private String addDrugFormulaName; - @Schema(description = "添加后理论值[计算公式]名称") - private String afterTheoryFormulaName; - @Schema(description = "班组名称") - private String tsName; - @Schema(description = "任务状态") - private String statusValue; - @Schema(description = "槽液对象") - private LiquidTank liquidTank; - @Schema(description = "取样时间(报告)") - private LocalDate sampleDate; - @Schema(description = "化验频率(报告)") - private String testFrequency; - @Schema(description = "有效期") - private LocalDate validDate; - @Schema(description = "超出规范极限调整后的结果(报告)") - private String outRangeResult; - @Schema(description = "槽液清理记录(报告)") - private String clearRecord; - @Schema(description = "药品计算公式(报告) 加药量[计算公式] 公式内容") - private String reportFormulaContent; - @Schema(description = "药品监督员签名(报告)") - private String drugSuUserSign; - @Schema(description = "药品监督员签名(报告)") - private String drugAddUserSign; - @Schema(description = "控制规范(报告)") - private String norm; + /** + * [作业中心]name + */ + @Schema(description = "[作业中心]name") + private String wcName; + /** + * todo: 尚未实现 WMS对接 + */ + @Schema(description = "药品物料编码") + private String drugMaterialCode; + /** + * + */ + @Schema(description = "化验人[用户]名称") + private String testUserRealName; + @Schema(description = "复检化验人[用户]名称") + private String repeatTestUserRealName; + @Schema(description = "工艺主管[用户]名称") + private String processUserRealName; + @Schema(description = "审核[用户]名称") + private String reviewUserRealName; + @Schema(description = "发药[用户]名称") + private String sendDurgUserRealName; + @Schema(description = "收药[用户]名称") + private String receiveDurgUserRealName; + @Schema(description = "作业槽名称") + private String workTankName; + @Schema(description = "加药量[计算公式]名称") + private String addDrugFormulaName; + @Schema(description = "添加后理论值[计算公式]名称") + private String afterTheoryFormulaName; + @Schema(description = "班组名称") + private String tsName; + @Schema(description = "任务状态") + private String statusValue; + @Schema(description = "槽液对象") + private LiquidTank liquidTank; + @Schema(description = "取样时间(报告)") + private LocalDate sampleDate; + @Schema(description = "化验频率(报告)") + private String testFrequency; + @Schema(description = "有效期") + private LocalDate validDate; + @Schema(description = "超出规范极限调整后的结果(报告)") + private String outRangeResult; + @Schema(description = "槽液清理记录(报告)") + private String clearRecord; + @Schema(description = "药品计算公式(报告) 加药量[计算公式] 公式内容") + private String reportFormulaContent; + @Schema(description = "药品监督员签名(报告)") + private String drugSuUserSign; + @Schema(description = "药品监督员签名(报告)") + private String drugAddUserSign; + @Schema(description = "控制规范(报告)") + private String norm; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IdSerializer.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IdSerializer.java new file mode 100644 index 00000000..d18db30d --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IdSerializer.java @@ -0,0 +1,31 @@ +package org.springblade.desk.util.json.serializer; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer; + +import java.io.IOException; + +/** + * 自定义Long序列化器:0L值 或 null 序列化为空字符串,其他值正常序列化 + */ +public class IdSerializer extends StdScalarSerializer { + + /** + * 提供无参构造器,指定处理的类型为Integer + */ + public IdSerializer() { + super(Long.class); + } + + @Override + public void serialize(Long value, JsonGenerator gen, SerializerProvider provider) + throws IOException { + // 核心逻辑:判断值是否为null或0,是则写空字符串,否则写原数值 + if (value == null || value == 0L) { + gen.writeString(""); // 0或null时返回空字符串 + } else { + gen.writeString("" + value); // 返回字符串类型 + } + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java index 690d7e2c..5770cdf0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java @@ -28,6 +28,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.constant.BAModuleConst; +import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.excel.PlatingExcel; import org.springblade.desk.basic.pojo.entity.Plating; @@ -84,6 +85,7 @@ public class PlatingController extends BladeController { public R> list(@Parameter(hidden = true) @RequestParam Map plating, Query query) { QueryWrapper qw = Condition.getQueryWrapper(plating, Plating.class); + qw.orderByAsc(BaseCol.ID); IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = PlatingWrapper.build().pageVO(pages); pagesVO.getRecords() diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java index 33558b2c..3b6afcf1 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java @@ -57,6 +57,9 @@ public class CycleTestExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("试验件材料") private String testMat; + @ColumnWidth(20) + @ExcelProperty("工艺员") + private String processUserName; @Schema(description = "试验周期") @ColumnWidth(20) @ExcelProperty("试验周期") @@ -75,4 +78,7 @@ public class CycleTestExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("更新时间") private Date updateTime; + @ColumnWidth(40) + @ExcelProperty("试验标准文件名") + private String cycleTestStandardAttachOriginalName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java index 31a45b79..6c8d67f2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java @@ -47,4 +47,10 @@ public class CycleTestItemExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("执行标准") private String cycleTestStandardName; + /** + * 试验文件 + */ + @ColumnWidth(40) + @ExcelProperty("试验文件") + private String originalName; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java index 923f6c1d..88b20b3f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java @@ -14,6 +14,7 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.service.IPlatingService; +import org.springblade.desk.basic.util.IdUtil; import org.springblade.desk.quality.constant.CycleTestTaskConst; import org.springblade.desk.quality.mapper.CycleTestMapper; import org.springblade.desk.quality.pojo.entity.CycleTest; @@ -28,6 +29,7 @@ import org.springblade.desk.quality.util.JobExtUtil; import org.springblade.desk.quality.wrapper.CycleTestStandardWrapper; import org.springblade.desk.quality.wrapper.CycleTestWrapper; import org.springblade.resource.feign.IAttachClient; +import org.springblade.resource.pojo.entity.Attach; import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.UserInfo; @@ -165,11 +167,11 @@ public class CycleTestService2 { */ public void setVOValue(CycleTestVO vo) { R uiUP = userClient.userInfo(vo.getUpdateUser()); - if (uiUP.getData().getUser() != null) { + if (uiUP.isSuccess() && uiUP.getData().getUser() != null) { vo.setUpdateUserName(uiUP.getData().getUser().getName()); } R uiPro = userClient.userInfo(vo.getProcessUserId()); - if (uiPro.getData().getUser() != null) { + if (uiPro.isSuccess() && uiPro.getData().getUser() != null) { vo.setProcessUserName(uiPro.getData().getUser().getName()); } CycleTestItem item = itemService.getById(vo.getCycleTestItemId()); @@ -185,6 +187,12 @@ public class CycleTestService2 { Long attachId = standard.getStandardAttachId(); vo.setCycleTestStandardName(standard.getName()); vo.setCycleTestStandardAttachId(attachId); + if (IdUtil.isValid(attachId)) { + R attachR = attachClient.detailById(attachId); + if (attachR.isSuccess() && attachR.getData() != null) { + vo.setCycleTestStandardAttachOriginalName(attachR.getData().getOriginalName()); + } + } } } vo.setTestTypeName(dictClient.getValue( diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java index fa8070c2..c7da1954 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java @@ -120,11 +120,11 @@ public class CycleTestTaskService2 { qw.in(BaseCol.STATUS, CycleTestTaskConst.S_PENDING_ACCEPT, CycleTestTaskConst.S_PENDING_TEST); } // 创建时间正序 - qw.orderByAsc(BaseCol.CREATE_TIME); + // qw.orderByAsc(BaseCol.CREATE_TIME); + qw.orderByAsc(CycleTestTask.COL_CODE); // 状态正序 - qw.orderByAsc(BaseCol.STATUS); - IPage pages = service.page( - Condition.getPage(query), qw); + // qw.orderByAsc(BaseCol.STATUS); + IPage pages = service.page(Condition.getPage(query), qw); IPage pagesVO = CycleTestTaskWrapper.build().pageVO(pages); pagesVO.getRecords() .stream()