质量模块 提交。

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>
<version>1.2.83</version>
</dependency>
<!-- 添加Hutool依赖-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
</dependencies>
</project>

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

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/**
* ERP审理 搜索
*/
@Data
@EqualsAndHashCode(callSuper = false)
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetErpSearch extends ReviewSheet {
@Schema(description = "责任零件")

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

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/**
* 生产处置单 搜索
*/
@Data
@EqualsAndHashCode(callSuper = false)
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetInitSearch extends ReviewSheet {
@Schema(description = "单据编号")

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

@ -3,13 +3,15 @@ package org.springblade.desk.quality.pojo.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/**
* 内部审理 搜索
*/
@Data
@EqualsAndHashCode(callSuper = false)
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ReviewSheetSelfSearch extends ReviewSheet {
@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.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.databind.SerializerProvider;

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

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

@ -1,5 +1,6 @@
package org.springblade.desk.basic.util;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import org.apache.commons.lang3.StringUtils;
@ -96,6 +97,28 @@ public class RequestUtil {
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 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.Query;
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.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
@ -113,6 +114,7 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetInitVO>> listInit(@Valid @RequestBody ReviewSheetInitSearch search,
@RequestBody Query query) {
log.info("ReviewSheetInitSearch = {}", search);
//
// Map demo = new HashMap();
@ -140,6 +142,7 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "返工报废审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetRedoScrapVO>> listReviewRedoScrap(@Valid @RequestBody ReviewSheetRedoScrapSearch search,
@RequestBody Query query) {
log.info("ReviewSheetRedoScrapSearch = {}", search);
// todo: mapper
// Map demo = new HashMap();
// QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
@ -188,6 +191,7 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "Erplist分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetErpVO>> listErp(@Valid @RequestBody ReviewSheetErpSearch search,
@RequestBody Query query) {
log.info("ReviewSheetErpSearch = {}", search);
// Map demo = new HashMap();
// // todo: mapper
// QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);

@ -156,7 +156,12 @@
-- AND wo.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">
AND rs.STATUS = #{q.status}
</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.util.IdUtil;
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.excel.ReviewSheetExcel;
import org.springblade.desk.quality.mapper.ReviewSheetMapper;
@ -319,6 +318,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
// 修改状态, 内部审理没有审理状态概念。
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
BladeUser bu = AuthUtil.getUser();
log.info("ReviewSheet bu = {}", bu);
if (bu != null) {
// 赋值 审理[用户]id
rs.setReviewUserId(bu.getUserId());

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

Loading…
Cancel
Save