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
*/
Integer NO = 0;
/**
*
*/
Integer ON = 1;
/**
*
*/
Integer OFF = 0;
}

@ -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 {

@ -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;
}

@ -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;
/**
* [工艺文件] 实体类

@ -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 = "试验技术员[用户]姓名")

@ -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;
}

@ -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.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<IPage<PlatingVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> plating,
Query query) {
QueryWrapper<Plating> qw = Condition.getQueryWrapper(plating, Plating.class);
qw.orderByAsc(BaseCol.ID);
IPage<Plating> pages = service.page(Condition.getPage(query), qw);
IPage<PlatingVO> pagesVO = PlatingWrapper.build().pageVO(pages);
pagesVO.getRecords()

@ -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;
}

@ -47,4 +47,10 @@ public class CycleTestItemExcel implements Serializable {
@ColumnWidth(20)
@ExcelProperty("执行标准")
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.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<UserInfo> uiUP = userClient.userInfo(vo.getUpdateUser());
if (uiUP.getData().getUser() != null) {
if (uiUP.isSuccess() && uiUP.getData().getUser() != null) {
vo.setUpdateUserName(uiUP.getData().getUser().getName());
}
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());
}
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<Attach> attachR = attachClient.detailById(attachId);
if (attachR.isSuccess() && attachR.getData() != null) {
vo.setCycleTestStandardAttachOriginalName(attachR.getData().getOriginalName());
}
}
}
}
vo.setTestTypeName(dictClient.getValue(

@ -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<CycleTestTask> pages = service.page(
Condition.getPage(query), qw);
// qw.orderByAsc(BaseCol.STATUS);
IPage<CycleTestTask> pages = service.page(Condition.getPage(query), qw);
IPage<CycleTestTaskVO> pagesVO = CycleTestTaskWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()

Loading…
Cancel
Save