质量模块 提交。

develop-QA
Tom Li 3 months ago
parent 9234f26201
commit b57d8d9add
  1. 6
      blade-service-api/blade-desk-api/pom.xml
  2. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  3. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetErpSearch.java
  4. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetHisWOSearch.java
  5. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java
  6. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java
  7. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java
  8. 51
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateBeginOfDayDeserializer.java
  9. 52
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateEndOfDayDeserializer.java
  10. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/Integer0ToEmptyStringSerializer.java
  11. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IntegerAllToStringSerializer.java
  12. 163
      blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java
  13. 7
      blade-service/blade-desk/pom.xml
  14. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/RequestUtil.java
  15. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java
  16. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  17. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java
  18. 1
      blade-service/blade-system/src/main/java/org/springblade/system/mapper/DeptMapper.xml

@ -39,6 +39,12 @@
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>
<version>1.2.83</version> <version>1.2.83</version>
</dependency> </dependency>
<!-- 添加Hutool依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
</dependencies> </dependencies>
</project> </project>

@ -5,13 +5,11 @@ package org.springblade.desk.quality.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
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.Integer0ToEmptyStringSerializer; import org.springblade.desk.util.json.serializer.IntegerAllToStringSerializer;
import org.springblade.desk.util.json.IntegerAllToStringSerializer;
import java.io.Serial; import java.io.Serial;
import java.time.LocalDateTime; import java.time.LocalDateTime;

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
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 lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/** /**
* ERP审理 搜索 * ERP审理 搜索
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetErpSearch extends ReviewSheet { public class ReviewSheetErpSearch extends ReviewSheet {
@Schema(description = "责任零件") @Schema(description = "责任零件")

@ -2,12 +2,14 @@ package org.springblade.desk.quality.pojo.request;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.ToString;
/** /**
* 历史已完成车间订单 搜索 * 历史已完成车间订单 搜索
*/ */
@Data @Data
@EqualsAndHashCode() @EqualsAndHashCode(callSuper = false)
@ToString(callSuper = true)
public class ReviewSheetHisWOSearch { public class ReviewSheetHisWOSearch {
} }

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
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 lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/** /**
* 生产处置单 搜索 * 生产处置单 搜索
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetInitSearch extends ReviewSheet { public class ReviewSheetInitSearch extends ReviewSheet {
@Schema(description = "单据编号") @Schema(description = "单据编号")

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
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 lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/** /**
* 返工审理 报废审理 搜索 * 返工审理 报废审理 搜索
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetRedoScrapSearch extends ReviewSheet { public class ReviewSheetRedoScrapSearch extends ReviewSheet {
@Schema(description = "创建提请时间-开始") @Schema(description = "创建提请时间-开始")

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
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 lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/** /**
* 内部审理 搜索 * 内部审理 搜索
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetSelfSearch extends ReviewSheet { public class ReviewSheetSelfSearch extends ReviewSheet {
@Schema(description = "车间订单号") @Schema(description = "车间订单号")

@ -0,0 +1,51 @@
package org.springblade.desk.util.json.deserializer;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.io.IOException;
import java.util.Date;
/**
* 自定义Date反序列化器将yyyy-MM-dd字符串转为当天开始时间00:00:00的Date对象
*/
public class DateBeginOfDayDeserializer extends StdDeserializer<Date> {
// 固定日期格式
private static final String DATE_PATTERN = "yyyy-MM-dd";
// 无参构造(Jackson要求)
public DateBeginOfDayDeserializer() {
this(null);
}
// 带类型构造
public DateBeginOfDayDeserializer(Class<?> vc) {
super(vc);
}
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext ctx) throws IOException {
// 1. 获取JSON中的字符串值(如:2026-01-01)
String dateStr = jsonParser.getText().trim();
// 2. 空值处理(避免空指针)
if (dateStr.isEmpty() || dateStr.equals("null")) {
return null;
}
try {
// 3. Hutool解析字符串为DateTime
DateTime dateTime = DateUtil.parse(dateStr, DATE_PATTERN);
// 4. 转为当天开始时间(00:00:00)
DateTime beginOfDay = DateUtil.beginOfDay(dateTime);
// 5. 转换为java.util.Date(适配Oracle DATE 7)
return beginOfDay.toJdkDate();
} catch (Exception e) {
// 6. 解析失败时抛出友好异常
throw new IOException("日期格式错误,仅支持yyyy-MM-dd格式(如:2026-01-01)", e);
}
}
}

@ -0,0 +1,52 @@
package org.springblade.desk.util.json.deserializer;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.io.IOException;
import java.util.Date;
/**
* 自定义Date反序列化器将yyyy-MM-dd字符串转为当天结束时间23:59:59的Date对象
*/
public class DateEndOfDayDeserializer extends StdDeserializer<Date> {
// 固定日期格式
private static final String DATE_PATTERN = "yyyy-MM-dd";
// 无参构造(Jackson要求)
public DateEndOfDayDeserializer() {
this(null);
}
// 带类型构造
public DateEndOfDayDeserializer(Class<?> vc) {
super(vc);
}
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext ctx) throws IOException {
// 1. 获取JSON中的字符串值(如:2026-01-01)
String dateStr = jsonParser.getText().trim();
// 2. 空值处理(避免空指针)
if (dateStr.isEmpty() || dateStr.equals("null")) {
return null;
}
try {
// 3. Hutool解析字符串为DateTime
DateTime dateTime = DateUtil.parse(dateStr, DATE_PATTERN);
// 4. 转为当天结束时间(23:59:59.999,不影响Oracle查询)
DateTime endOfDay = DateUtil.endOfDay(dateTime);
// 5. 转换为java.util.Date(适配Oracle DATE 7)
return endOfDay.toJdkDate();
} catch (Exception e) {
// 6. 解析失败时抛出友好异常
throw new IOException("日期格式错误,仅支持yyyy-MM-dd格式(如:2026-01-01)", e);
}
}
}

@ -1,4 +1,4 @@
package org.springblade.desk.util.json; package org.springblade.desk.util.json.serializer;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;

@ -1,4 +1,4 @@
package org.springblade.desk.util.json; package org.springblade.desk.util.json.serializer;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.SerializerProvider;

@ -47,84 +47,87 @@ import java.io.Serializable;
@Schema(description = "Dept对象") @Schema(description = "Dept对象")
public class Dept implements Serializable { public class Dept implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 主键 * 主键
*/ */
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "主键") @Schema(description = "主键")
@TableId(value = "id", type = IdType.ASSIGN_ID) @TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id; private Long id;
/** /**
* 租户ID * 租户ID
*/ */
@Schema(description = "租户ID") @Schema(description = "租户ID")
private String tenantId; private String tenantId;
/** /**
* 父主键 * 父主键
*/ */
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "父主键") @Schema(description = "父主键")
private Long parentId; private Long parentId;
/** /**
* 机构名 * 机构名
*/ */
@Schema(description = "机构名") @Schema(description = "机构名")
private String deptName; private String deptName;
/** /**
* 机构全称 * 机构全称
*/ */
@Schema(description = "机构全称") @Schema(description = "机构全称")
private String fullName; private String fullName;
/** /**
* 祖级机构主键 * 祖级机构主键
*/ */
@Schema(description = "祖级机构主键") @Schema(description = "祖级机构主键")
private String ancestors; private String ancestors;
/** /**
* 部门主管id * 部门主管id
*/ */
@Schema(description = "部门主管id") @Schema(description = "部门主管id")
private String leaderId; private String leaderId;
/** /**
* 机构类型 * 机构类型
*/ */
@Schema(description = "机构类型") @Schema(description = "机构类型")
private Integer deptCategory; private Integer deptCategory;
/** /**
* 排序 * 排序
*/ */
@Schema(description = "排序") @Schema(description = "排序")
private Integer sort; private Integer sort;
/** /**
* 备注 * 备注
*/ */
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark;
/** /**
* 业务状态 * 业务状态
*/ */
@Schema(description = "业务状态") @Schema(description = "业务状态")
private Integer status; private Integer status;
/** /**
* 是否已删除 * 是否已删除
*/ */
@TableLogic @TableLogic
@Schema(description = "是否已删除") @Schema(description = "是否已删除")
private Integer isDeleted; private Integer isDeleted;
/**
* [部门]编码
*/
@Schema(description = "[部门]编码")
private String deptCode;
} }

@ -71,13 +71,6 @@
<version>4.6.0.RELEASE</version> <version>4.6.0.RELEASE</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- 添加Hutool依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
<!--老系统jar包--> <!--老系统jar包-->
<dependency> <dependency>
<groupId>com.videasoft</groupId> <groupId>com.videasoft</groupId>

@ -1,5 +1,6 @@
package org.springblade.desk.basic.util; package org.springblade.desk.basic.util;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -96,6 +97,28 @@ public class RequestUtil {
return DateUtil.endOfDay(date); return DateUtil.endOfDay(date);
} }
/**
*
* @param start
* @return 年月日 一天 开始的 Date
*/
public static Date buildDateBeginOfDay(final String start) {
DateTime dt = new DateTime(start, PATTERN_DATE);
DateTime dtStart = DateUtil.beginOfDay(dt);
return dtStart.toJdkDate();
}
/**
*
* @param end
* @return 年月日 一天 开始的 Date
*/
public static Date buildDateEndOfDay(final String end) {
DateTime dt = new DateTime(end, PATTERN_DATE);
DateTime dtEnd = DateUtil.endOfDay(dt);
return dtEnd.toJdkDate();
}
/** /**
* @param map * @param map
* @param key * @param key

@ -22,6 +22,7 @@ import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; 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;
@ -113,6 +114,7 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj") @Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetInitVO>> listInit(@Valid @RequestBody ReviewSheetInitSearch search, public R<IPage<ReviewSheetInitVO>> listInit(@Valid @RequestBody ReviewSheetInitSearch search,
@RequestBody Query query) { @RequestBody Query query) {
log.info("ReviewSheetInitSearch = {}", search);
// //
// Map demo = new HashMap(); // Map demo = new HashMap();
@ -140,6 +142,7 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "返工报废审理list分页", description = "传入ReviewSheet Obj") @Operation(summary = "返工报废审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetRedoScrapVO>> listReviewRedoScrap(@Valid @RequestBody ReviewSheetRedoScrapSearch search, public R<IPage<ReviewSheetRedoScrapVO>> listReviewRedoScrap(@Valid @RequestBody ReviewSheetRedoScrapSearch search,
@RequestBody Query query) { @RequestBody Query query) {
log.info("ReviewSheetRedoScrapSearch = {}", search);
// todo: mapper // todo: mapper
// Map demo = new HashMap(); // Map demo = new HashMap();
// QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class); // QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
@ -188,6 +191,7 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "Erplist分页", description = "传入ReviewSheet Obj") @Operation(summary = "Erplist分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetErpVO>> listErp(@Valid @RequestBody ReviewSheetErpSearch search, public R<IPage<ReviewSheetErpVO>> listErp(@Valid @RequestBody ReviewSheetErpSearch search,
@RequestBody Query query) { @RequestBody Query query) {
log.info("ReviewSheetErpSearch = {}", search);
// Map demo = new HashMap(); // Map demo = new HashMap();
// // todo: mapper // // todo: mapper
// QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class); // QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);

@ -156,7 +156,12 @@
-- AND wo.IS_DELETED = 0 -- AND wo.IS_DELETED = 0
-- AND oem.IS_DELETED = 0 -- AND oem.IS_DELETED = 0
) )
AND rs.BIZ_TYPE IN (1, 2) <if test="q.bizType != null">
AND rs.BIZ_TYPE = #{q.bizType}
</if>
<if test="q.bizType == null">
AND rs.BIZ_TYPE IN (1, 2)
</if>
<if test="q.status != null"> <if test="q.status != null">
AND rs.STATUS = #{q.status} AND rs.STATUS = #{q.status}
</if> </if>

@ -26,7 +26,6 @@ import org.springblade.desk.basic.constant.BaseValue;
import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl; import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl;
import org.springblade.desk.basic.util.IdUtil; import org.springblade.desk.basic.util.IdUtil;
import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.constant.ProReTemplateConst;
import org.springblade.desk.quality.constant.ReviewSheetConst; import org.springblade.desk.quality.constant.ReviewSheetConst;
import org.springblade.desk.quality.excel.ReviewSheetExcel; import org.springblade.desk.quality.excel.ReviewSheetExcel;
import org.springblade.desk.quality.mapper.ReviewSheetMapper; import org.springblade.desk.quality.mapper.ReviewSheetMapper;
@ -319,6 +318,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
// 修改状态, 内部审理没有审理状态概念。 // 修改状态, 内部审理没有审理状态概念。
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
BladeUser bu = AuthUtil.getUser(); BladeUser bu = AuthUtil.getUser();
log.info("ReviewSheet bu = {}", bu);
if (bu != null) { if (bu != null) {
// 赋值 审理[用户]id // 赋值 审理[用户]id
rs.setReviewUserId(bu.getUserId()); rs.setReviewUserId(bu.getUserId());

@ -13,6 +13,7 @@
<result column="sort" property="sort"/> <result column="sort" property="sort"/>
<result column="remark" property="remark"/> <result column="remark" property="remark"/>
<result column="is_deleted" property="isDeleted"/> <result column="is_deleted" property="isDeleted"/>
<result column="dept_code" property="deptCode"/>
</resultMap> </resultMap>
<resultMap id="deptVOResultMap" type="org.springblade.system.pojo.vo.DeptVO"> <resultMap id="deptVOResultMap" type="org.springblade.system.pojo.vo.DeptVO">

Loading…
Cancel
Save