Merge branch 'develop-QA'

develop-QA
Tom Li 3 months ago
commit 67ec26d196
  1. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/constant/BaseValue.java
  2. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkCenter.java
  3. 137
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkTank.java
  4. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java
  5. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/CycleTestVO.java
  6. 114
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/LiquidTankTaskCopyVO.java
  7. 31
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IdSerializer.java
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/PlatingController.java
  9. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestExcel.java
  10. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/CycleTestItemExcel.java
  11. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java
  12. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java

@ -24,4 +24,12 @@ public interface BaseValue {
* No * No
*/ */
Integer NO = 0; Integer NO = 0;
/**
*
*/
Integer ON = 1;
/**
*
*/
Integer OFF = 0;
} }

@ -18,7 +18,7 @@ import java.io.Serial;
* @since 2025-12-16 * @since 2025-12-16
*/ */
@Data @Data
@TableName("BA_WORK_CENTER") @TableName("BS_WORK_CENTER")
@Schema(description = "WorkCenter Entity对象") @Schema(description = "WorkCenter Entity对象")
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class WorkCenter extends BaseEntity { public class WorkCenter extends BaseEntity {

@ -4,10 +4,13 @@
package org.springblade.desk.basic.pojo.entity; package org.springblade.desk.basic.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity; 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; import java.io.Serial;
@ -23,80 +26,82 @@ import java.io.Serial;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class WorkTank extends BaseEntity { public class WorkTank extends BaseEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* [作业槽]编码 * [作业槽]编码
*/ */
public static final String COL_WORK_TANK_CODE = "WORK_TANK_CODE"; 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_WORK_TANK_TYPE = "WORK_TANK_TYPE";
/** /**
* [作业槽]名称 * [作业槽]名称
*/ */
public static final String COL_NAME = "NAME"; public static final String COL_NAME = "NAME";
/** /**
* 排序 * 排序
*/ */
public static final String COL_SORT = "SORT"; public static final String COL_SORT = "SORT";
/** /**
* 备注 * 备注
*/ */
public static final String COL_REMARK = "REMARK"; public static final String COL_REMARK = "REMARK";
/** /**
* 检测成分 * 检测成分
*/ */
public static final String COL_TEST_ELEMENT = "TEST_ELEMENT"; public static final String COL_TEST_ELEMENT = "TEST_ELEMENT";
/** /**
* [作业中心]id * [作业中心]id
*/ */
public static final String COL_WORKSTATION_ID = "WORKSTATION_ID"; public static final String COL_WORKSTATION_ID = "WORKSTATION_ID";
/** /**
* 操作[用户]id * 操作[用户]id
*/ */
public static final String COL_OP_USER_ID = "OP_USER_ID"; public static final String COL_OP_USER_ID = "OP_USER_ID";
/** /**
* [作业槽]编码 * [作业槽]编码
*/ */
@Schema(description = "[作业槽]编码") @Schema(description = "[作业槽]编码")
private String workTankCode; private String workTankCode;
/** /**
* [作业槽]类型 * [作业槽]类型
*/ */
@Schema(description = "[作业槽]类型") @Schema(description = "[作业槽]类型")
private Long workTankType; private Long workTankType;
/** /**
* [作业槽]名称 * [作业槽]名称
*/ */
@Schema(description = "[作业槽]名称") @Schema(description = "[作业槽]名称")
private String name; private String name;
/** /**
* 排序 * 排序
*/ */
@Schema(description = "排序") @Schema(description = "排序")
private Long sort; private Long sort;
/** /**
* 备注 * 备注
*/ */
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
/** /**
* 检测成分 * 检测成分
*/ */
@Schema(description = "检测成分") @Schema(description = "检测成分")
private String testElement; private String testElement;
/** /**
* [作业中心]id * [作业中心]id
*/ */
@Schema(description = "[作业中心]id") @JsonSerialize(using = IdSerializer.class)
private Long workstationId; @Schema(description = "[作业中心]id")
/** private Long workstationId;
* 操作[用户]id /**
*/ * 操作[用户]id
@Schema(description = "操作[用户]id") */
private Long opUserId; @JsonSerialize(using = IdSerializer.class)
@Schema(description = "操作[用户]id")
private Long opUserId;
} }

@ -10,10 +10,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.desk.util.json.serializer.Integer0ToEmptyStringSerializer; import org.springblade.desk.util.json.serializer.Integer0ToEmptyStringSerializer;
import org.springblade.desk.util.json.serializer.IntegerAllToStringSerializer;
import java.io.Serial; import java.io.Serial;
import java.math.BigDecimal;
/** /**
* [工艺文件] 实体类 * [工艺文件] 实体类

@ -35,6 +35,8 @@ public class CycleTestVO extends CycleTest {
private String cycleTestStandardName; private String cycleTestStandardName;
@Schema(description = "[周期试验标准][附件]id") @Schema(description = "[周期试验标准][附件]id")
private Long cycleTestStandardAttachId; private Long cycleTestStandardAttachId;
@Schema(description = "[周期试验标准][附件]原始名称")
private String cycleTestStandardAttachOriginalName;
@Schema(description = "工艺员[用户]姓名") @Schema(description = "工艺员[用户]姓名")
private String processUserName; private String processUserName;
@Schema(description = "试验技术员[用户]姓名") @Schema(description = "试验技术员[用户]姓名")

@ -21,62 +21,62 @@ import java.time.LocalDate;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class LiquidTankTaskCopyVO extends LiquidTankTaskCopy { public class LiquidTankTaskCopyVO extends LiquidTankTaskCopy {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 作业中心 name * [作业中心]name
*/ */
@Schema(description = "作业中心 name") @Schema(description = "[作业中心]name")
private String wcName; private String wcName;
/** /**
* todo:temp * todo: 尚未实现 WMS对接
*/ */
@Schema(description = "药品物料编码") @Schema(description = "药品物料编码")
private String drugMaterialCode = "111122223333"; private String drugMaterialCode;
/** /**
* *
*/ */
@Schema(description = "化验人[用户]名称") @Schema(description = "化验人[用户]名称")
private String testUserRealName; private String testUserRealName;
@Schema(description = "复检化验人[用户]名称") @Schema(description = "复检化验人[用户]名称")
private String repeatTestUserRealName; private String repeatTestUserRealName;
@Schema(description = "工艺主管[用户]名称") @Schema(description = "工艺主管[用户]名称")
private String processUserRealName; private String processUserRealName;
@Schema(description = "审核[用户]名称") @Schema(description = "审核[用户]名称")
private String reviewUserRealName; private String reviewUserRealName;
@Schema(description = "发药[用户]名称") @Schema(description = "发药[用户]名称")
private String sendDurgUserRealName; private String sendDurgUserRealName;
@Schema(description = "收药[用户]名称") @Schema(description = "收药[用户]名称")
private String receiveDurgUserRealName; private String receiveDurgUserRealName;
@Schema(description = "作业槽名称") @Schema(description = "作业槽名称")
private String workTankName; private String workTankName;
@Schema(description = "加药量[计算公式]名称") @Schema(description = "加药量[计算公式]名称")
private String addDrugFormulaName; private String addDrugFormulaName;
@Schema(description = "添加后理论值[计算公式]名称") @Schema(description = "添加后理论值[计算公式]名称")
private String afterTheoryFormulaName; private String afterTheoryFormulaName;
@Schema(description = "班组名称") @Schema(description = "班组名称")
private String tsName; private String tsName;
@Schema(description = "任务状态") @Schema(description = "任务状态")
private String statusValue; private String statusValue;
@Schema(description = "槽液对象") @Schema(description = "槽液对象")
private LiquidTank liquidTank; private LiquidTank liquidTank;
@Schema(description = "取样时间(报告)") @Schema(description = "取样时间(报告)")
private LocalDate sampleDate; private LocalDate sampleDate;
@Schema(description = "化验频率(报告)") @Schema(description = "化验频率(报告)")
private String testFrequency; private String testFrequency;
@Schema(description = "有效期") @Schema(description = "有效期")
private LocalDate validDate; private LocalDate validDate;
@Schema(description = "超出规范极限调整后的结果(报告)") @Schema(description = "超出规范极限调整后的结果(报告)")
private String outRangeResult; private String outRangeResult;
@Schema(description = "槽液清理记录(报告)") @Schema(description = "槽液清理记录(报告)")
private String clearRecord; private String clearRecord;
@Schema(description = "药品计算公式(报告) 加药量[计算公式] 公式内容") @Schema(description = "药品计算公式(报告) 加药量[计算公式] 公式内容")
private String reportFormulaContent; private String reportFormulaContent;
@Schema(description = "药品监督员签名(报告)") @Schema(description = "药品监督员签名(报告)")
private String drugSuUserSign; private String drugSuUserSign;
@Schema(description = "药品监督员签名(报告)") @Schema(description = "药品监督员签名(报告)")
private String drugAddUserSign; private String drugAddUserSign;
@Schema(description = "控制规范(报告)") @Schema(description = "控制规范(报告)")
private String norm; private String norm;
} }

@ -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<Long> {
/**
* 提供无参构造器指定处理的类型为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); // 返回字符串类型
}
}
}

@ -28,6 +28,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BAModuleConst; 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.constant.BaseValue;
import org.springblade.desk.basic.excel.PlatingExcel; import org.springblade.desk.basic.excel.PlatingExcel;
import org.springblade.desk.basic.pojo.entity.Plating; import org.springblade.desk.basic.pojo.entity.Plating;
@ -84,6 +85,7 @@ public class PlatingController extends BladeController {
public R<IPage<PlatingVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> plating, public R<IPage<PlatingVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> plating,
Query query) { Query query) {
QueryWrapper<Plating> qw = Condition.getQueryWrapper(plating, Plating.class); QueryWrapper<Plating> qw = Condition.getQueryWrapper(plating, Plating.class);
qw.orderByAsc(BaseCol.ID);
IPage<Plating> pages = service.page(Condition.getPage(query), qw); IPage<Plating> pages = service.page(Condition.getPage(query), qw);
IPage<PlatingVO> pagesVO = PlatingWrapper.build().pageVO(pages); IPage<PlatingVO> pagesVO = PlatingWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()

@ -57,6 +57,9 @@ public class CycleTestExcel implements Serializable {
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("试验件材料") @ExcelProperty("试验件材料")
private String testMat; private String testMat;
@ColumnWidth(20)
@ExcelProperty("工艺员")
private String processUserName;
@Schema(description = "试验周期") @Schema(description = "试验周期")
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("试验周期") @ExcelProperty("试验周期")
@ -75,4 +78,7 @@ public class CycleTestExcel implements Serializable {
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("更新时间") @ExcelProperty("更新时间")
private Date updateTime; private Date updateTime;
@ColumnWidth(40)
@ExcelProperty("试验标准文件名")
private String cycleTestStandardAttachOriginalName;
} }

@ -47,4 +47,10 @@ public class CycleTestItemExcel implements Serializable {
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("执行标准") @ExcelProperty("执行标准")
private String cycleTestStandardName; private String cycleTestStandardName;
/**
* 试验文件
*/
@ColumnWidth(40)
@ExcelProperty("试验文件")
private String originalName;
} }

@ -14,6 +14,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.basic.service.IPlatingService; 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.constant.CycleTestTaskConst;
import org.springblade.desk.quality.mapper.CycleTestMapper; import org.springblade.desk.quality.mapper.CycleTestMapper;
import org.springblade.desk.quality.pojo.entity.CycleTest; 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.CycleTestStandardWrapper;
import org.springblade.desk.quality.wrapper.CycleTestWrapper; import org.springblade.desk.quality.wrapper.CycleTestWrapper;
import org.springblade.resource.feign.IAttachClient; import org.springblade.resource.feign.IAttachClient;
import org.springblade.resource.pojo.entity.Attach;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;
@ -165,11 +167,11 @@ public class CycleTestService2 {
*/ */
public void setVOValue(CycleTestVO vo) { public void setVOValue(CycleTestVO vo) {
R<UserInfo> uiUP = userClient.userInfo(vo.getUpdateUser()); R<UserInfo> uiUP = userClient.userInfo(vo.getUpdateUser());
if (uiUP.getData().getUser() != null) { if (uiUP.isSuccess() && uiUP.getData().getUser() != null) {
vo.setUpdateUserName(uiUP.getData().getUser().getName()); vo.setUpdateUserName(uiUP.getData().getUser().getName());
} }
R<UserInfo> uiPro = userClient.userInfo(vo.getProcessUserId()); R<UserInfo> uiPro = userClient.userInfo(vo.getProcessUserId());
if (uiPro.getData().getUser() != null) { if (uiPro.isSuccess() && uiPro.getData().getUser() != null) {
vo.setProcessUserName(uiPro.getData().getUser().getName()); vo.setProcessUserName(uiPro.getData().getUser().getName());
} }
CycleTestItem item = itemService.getById(vo.getCycleTestItemId()); CycleTestItem item = itemService.getById(vo.getCycleTestItemId());
@ -185,6 +187,12 @@ public class CycleTestService2 {
Long attachId = standard.getStandardAttachId(); Long attachId = standard.getStandardAttachId();
vo.setCycleTestStandardName(standard.getName()); vo.setCycleTestStandardName(standard.getName());
vo.setCycleTestStandardAttachId(attachId); vo.setCycleTestStandardAttachId(attachId);
if (IdUtil.isValid(attachId)) {
R<Attach> attachR = attachClient.detailById(attachId);
if (attachR.isSuccess() && attachR.getData() != null) {
vo.setCycleTestStandardAttachOriginalName(attachR.getData().getOriginalName());
}
}
} }
} }
vo.setTestTypeName(dictClient.getValue( vo.setTestTypeName(dictClient.getValue(

@ -120,11 +120,11 @@ public class CycleTestTaskService2 {
qw.in(BaseCol.STATUS, CycleTestTaskConst.S_PENDING_ACCEPT, CycleTestTaskConst.S_PENDING_TEST); 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); // qw.orderByAsc(BaseCol.STATUS);
IPage<CycleTestTask> pages = service.page( IPage<CycleTestTask> pages = service.page(Condition.getPage(query), qw);
Condition.getPage(query), qw);
IPage<CycleTestTaskVO> pagesVO = CycleTestTaskWrapper.build().pageVO(pages); IPage<CycleTestTaskVO> pagesVO = CycleTestTaskWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
.stream() .stream()

Loading…
Cancel
Save