diff --git a/blade-service-api/blade-desk-api/pom.xml b/blade-service-api/blade-desk-api/pom.xml index 2182a907..3730c410 100644 --- a/blade-service-api/blade-desk-api/pom.xml +++ b/blade-service-api/blade-desk-api/pom.xml @@ -39,6 +39,12 @@ fastjson 1.2.83 + + + cn.hutool + hutool-all + 5.8.16 + diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java index 6599ca2b..1e23166d 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java @@ -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; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetErpSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetErpSearch.java index 15acb61e..9249d360 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetErpSearch.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetErpSearch.java @@ -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 = "责任零件") diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetHisWOSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetHisWOSearch.java index c18b60a7..05df7d9c 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetHisWOSearch.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetHisWOSearch.java @@ -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 { } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java index 3482b0e9..bb1201dc 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java @@ -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 = "单据编号") diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java index 5d73a62c..889bc7aa 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java @@ -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 = "创建提请时间-开始") diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java index a0cd10f5..9d1a4367 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java @@ -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 = "车间订单号") diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateBeginOfDayDeserializer.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateBeginOfDayDeserializer.java new file mode 100644 index 00000000..8e9632d3 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateBeginOfDayDeserializer.java @@ -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 { + + // 固定日期格式 + 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); + } + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateEndOfDayDeserializer.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateEndOfDayDeserializer.java new file mode 100644 index 00000000..48c4a712 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/deserializer/DateEndOfDayDeserializer.java @@ -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 { + + // 固定日期格式 + 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); + } + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/Integer0ToEmptyStringSerializer.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/Integer0ToEmptyStringSerializer.java similarity index 95% rename from blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/Integer0ToEmptyStringSerializer.java rename to blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/Integer0ToEmptyStringSerializer.java index 26767495..1580f33d 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/Integer0ToEmptyStringSerializer.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/Integer0ToEmptyStringSerializer.java @@ -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; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/IntegerAllToStringSerializer.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IntegerAllToStringSerializer.java similarity index 93% rename from blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/IntegerAllToStringSerializer.java rename to blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IntegerAllToStringSerializer.java index d3006594..93261566 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/IntegerAllToStringSerializer.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/json/serializer/IntegerAllToStringSerializer.java @@ -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; diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java index 32da8442..d0ee3ba7 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/Dept.java @@ -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; } diff --git a/blade-service/blade-desk/pom.xml b/blade-service/blade-desk/pom.xml index 10829b81..6ab9351d 100644 --- a/blade-service/blade-desk/pom.xml +++ b/blade-service/blade-desk/pom.xml @@ -71,13 +71,6 @@ 4.6.0.RELEASE compile - - - - cn.hutool - hutool-all - 5.8.16 - com.videasoft diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/RequestUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/RequestUtil.java index c61118d0..b0d27148 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/RequestUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/util/RequestUtil.java @@ -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 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java index 094d6155..894f0cf0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java @@ -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> 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> listReviewRedoScrap(@Valid @RequestBody ReviewSheetRedoScrapSearch search, @RequestBody Query query) { + log.info("ReviewSheetRedoScrapSearch = {}", search); // todo: mapper // Map demo = new HashMap(); // QueryWrapper qw = Condition.getQueryWrapper(demo, ReviewSheet.class); @@ -188,6 +191,7 @@ public class ReviewSheetController extends BladeController { @Operation(summary = "Erplist分页", description = "传入ReviewSheet Obj") public R> listErp(@Valid @RequestBody ReviewSheetErpSearch search, @RequestBody Query query) { + log.info("ReviewSheetErpSearch = {}", search); // Map demo = new HashMap(); // // todo: mapper // QueryWrapper qw = Condition.getQueryWrapper(demo, ReviewSheet.class); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml index 9213efec..d377fa3f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml @@ -156,7 +156,12 @@ -- AND wo.IS_DELETED = 0 -- AND oem.IS_DELETED = 0 ) - AND rs.BIZ_TYPE IN (1, 2) + + AND rs.BIZ_TYPE = #{q.bizType} + + + AND rs.BIZ_TYPE IN (1, 2) + AND rs.STATUS = #{q.status} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java index dd790836..6d0f531b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java @@ -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 +