diff --git a/blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java b/blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java index 28a8202e..46152552 100644 --- a/blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java +++ b/blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java @@ -1,30 +1,8 @@ -/** - * BladeX Commercial License Agreement - * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. - *
- * Use of this software is governed by the Commercial License Agreement - * obtained after purchasing a license from BladeX. - *
- * 1. This software is for development use only under a valid license - * from BladeX. - *
- * 2. Redistribution of this software's source code to any third party - * without a commercial license is strictly prohibited. - *
- * 3. Licensees may copyright their own code but cannot use segments - * from this software for such purposes. Copyright of this software - * remains with BladeX. - *
- * Using this software signifies agreement to this License, and the software - * must not be used for illegal purposes. - *
- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is - * not liable for any claims arising from secondary or illegal development. - *
- * Author: Chill Zhuang (bladejava@qq.com)
- */
package org.springblade.common.utils;
+import java.lang.reflect.Field;
+import java.util.*;
+
/**
* 通用工具类
*
@@ -32,4 +10,74 @@ package org.springblade.common.utils;
*/
public class CommonUtil {
+ /**
+ * 判断对象所有字段值是否都为空
+ * @param obj 待检查的实体类对象
+ * @return true=所有字段为空,false=至少一个字段非空
+ */
+ public static boolean isAllFieldsEmpty(Object obj) {
+ // 1. 先判断对象本身是否为null
+ if (obj == null) {
+ return true;
+ }
+
+ // 2. 获取对象的所有声明字段(包括private字段,不包含父类字段)
+ Class> clazz = obj.getClass();
+ Field[] fields = clazz.getDeclaredFields();
+
+ // 3. 无字段则视为空对象
+ if (fields == null || fields.length == 0) {
+ return true;
+ }
+
+ try {
+ // 4. 遍历所有字段,检查值是否为空
+ for (Field field : fields) {
+ field.setAccessible(true); // 突破private访问限制
+ Object fieldValue = field.get(obj);
+
+ // 只要有一个字段非空,立即返回false
+ if (isFieldValueNotEmpty(fieldValue)) {
+ return false;
+ }
+ }
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("检查对象字段空值时发生异常", e);
+ }
+
+ // 5. 所有字段都为空
+ return true;
+ }
+
+ /**
+ * 辅助方法:判断单个字段值是否非空
+ */
+ private static boolean isFieldValueNotEmpty(Object value) {
+ if (value == null) {
+ return false;
+ }
+
+ // 字符串:trim后空串视为空
+ if (value instanceof String) {
+ return !((String) value).trim().isEmpty();
+ }
+
+ // 集合:空集合视为空
+ if (value instanceof Collection) {
+ return !((Collection>) value).isEmpty();
+ }
+
+ // Map:空Map视为空
+ if (value instanceof Map) {
+ return !((Map, ?>) value).isEmpty();
+ }
+
+ // 数组:长度为0视为空
+ if (value.getClass().isArray()) {
+ return ((Object[]) value).length > 0;
+ }
+
+ // 其他类型(如Integer/Long等包装类):非null即视为非空
+ return true;
+ }
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java
index 8051fbe3..13e080cc 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldOrder.java
@@ -117,7 +117,7 @@ public class YieldOrder extends BaseEntity {
* 生产数量
*/
@TableField(value = "YP_QTY")
- private Long ypQty;
+ private Double ypQty;
/**
* 产品系列(mesYieldPlan.PRODUCT_Line)
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/YieldOrderVo.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/YieldOrderVo.java
index b78acb55..b2db5aab 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/YieldOrderVo.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/YieldOrderVo.java
@@ -2,6 +2,7 @@ package org.springblade.desk.order.pojo.vo;
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 org.springblade.desk.order.pojo.entity.YieldOrder;
@@ -41,4 +42,8 @@ public class YieldOrderVo extends YieldOrder {
* 订单类型名称
*/
String yieldTypeName;
+
+ @Schema(description = "状态值")
+ private String statusTitle;
+
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/InBatchesDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/InBatchesDTO.java
index 5b0801ec..b154537d 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/InBatchesDTO.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/InBatchesDTO.java
@@ -14,7 +14,7 @@ public class InBatchesDTO {
private Long id;
@Schema(description = "加工数量")
- private Long makeQty;
+ private Double makeQty;
@Schema(description = "批次")
private String batchNo;
@@ -28,5 +28,8 @@ public class InBatchesDTO {
@Schema(description = "备注")
private String memo;
+ @Schema(description = "分批原因")
+ private String batchReason;
+
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/QueryByReadStatusDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/QueryByReadStatusDTO.java
new file mode 100644
index 00000000..29840784
--- /dev/null
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/QueryByReadStatusDTO.java
@@ -0,0 +1,59 @@
+package org.springblade.desk.produce.pojo.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 前工装准备列表 数据传输对象实体类
+ *
+ * @author litao
+ */
+@Data
+public class QueryByReadStatusDTO {
+
+ @Schema(description = "车间订单号")
+ private String woCode;
+
+ @Schema(description = "零件号")
+ private String partCode;
+
+ @Schema(description = "批次号")
+ private String batchNo;
+
+ @Schema(description = "产品名称")
+ private String partName;
+
+ @Schema(description = "流程卡号")
+ private String cardNo;
+
+ @Schema(description = "镀种信息")
+ private String plate;
+
+ @Schema(description = "生产标识")
+ private String productIdent;
+
+ @Schema(description = "订单优先级")
+ private Integer priority;
+
+ @Schema(description = "需求交期-开始")
+ private Date demandDateStart;
+
+ @Schema(description = "需求交期-结束")
+ private Date demandDateEnd;
+
+ @Schema(description = "计划下达时间-开始")
+ private Date releaseDateStart;
+
+ @Schema(description = "计划下达时间-结束")
+ private Date releaseDateEnd;
+
+ @Schema(description = "准备状态")
+ private Integer readStatus;
+
+ @Schema(description = "是否默认")
+ private Integer isDefault;
+
+
+}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/YieldOrderVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java
similarity index 83%
rename from blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/YieldOrderVO.java
rename to blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java
index cb6b7748..98997227 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/YieldOrderVO.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java
@@ -1,18 +1,17 @@
-package org.springblade.desk.produce.pojo.vo;
+package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
-import org.springblade.desk.order.pojo.entity.YieldOrder;
import java.util.Date;
/**
- * 烧结配套齐套流转 视图实体类
+ * 烧结配套齐套流转 数据传输对象实体类
*
* @author litao
*/
@Data
-public class YieldOrderVO {
+public class YieldOrderDTO {
@Schema(description = "moldFlag")
private Integer moldFlag;
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java
index a7f6c78a..2151746f 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java
@@ -285,7 +285,7 @@ public class WorkOrder extends BaseEntity {
* 加工数量
*/
@Schema(description = "加工数量")
- private Long makeQty;
+ private Double makeQty;
/**
* 计划完工日期
*/
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java
index 7313fb92..4a27dd54 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrderRun.java
@@ -165,4 +165,8 @@ public class WorkOrderRun extends BaseEntity {
@Schema(description = "审批时间")
private Date approvalTime;
+ @Schema(description = "分批原因")
+ private String batchReason;
+
+
}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
index e6ea8421..f6b63c8f 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
@@ -119,7 +119,7 @@ public class WorkPlan extends BaseEntity {
* 合格数量
*/
@Schema(description = "合格数量")
- private Long qualifiedQty;
+ private Double qualifiedQty;
/**
* 报废数量
*/
@@ -149,7 +149,7 @@ public class WorkPlan extends BaseEntity {
*
*/
@Schema(description = "")
- private Long workQty;
+ private Double workQty;
/**
*
*/
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/QueryByReadStatusVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/QueryByReadStatusVO.java
new file mode 100644
index 00000000..beb6e5bc
--- /dev/null
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/QueryByReadStatusVO.java
@@ -0,0 +1,74 @@
+package org.springblade.desk.produce.pojo.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springblade.desk.order.pojo.entity.YieldOrder;
+
+import java.util.Date;
+
+/**
+ * 分批准备数据 视图实体类
+ *
+ * @author litao
+ */
+@Data
+public class QueryByReadStatusVO {
+
+ @Schema(description = "车间订单id")
+ private Long woId;
+
+ @Schema(description = "准备状态")
+ private String readStatus;
+
+ @Schema(description = "生产计划号")
+ private String ypCode;
+
+ @Schema(description = "生产订单号")
+ private String yoCode;
+
+ @Schema(description = "车间订单号")
+ private String woCode;
+
+ @Schema(description = "零件号")
+ private String partCode;
+
+ @Schema(description = "零件名称")
+ private String partName;
+
+ @Schema(description = "流程卡号")
+ private String cardNo;
+
+ @Schema(description = "批次号")
+ private String batchNo;
+
+ @Schema(description = "镀种信息")
+ private String plate;
+
+ @Schema(description = "生产数量")
+ private Double makeQty;
+
+ @Schema(description = "面积(d㎡)")
+ private Double poArea;
+
+ @Schema(description = "计划下达时间")
+ private Date releaseDate;
+
+ @Schema(description = "需求交期")
+ private Date demandDate;
+
+ @Schema(description = "石墨模具号")
+ private String moCode;
+
+ @Schema(description = "库位号")
+ private String moLocal;
+
+ @Schema(description = "压饼模具号")
+ private String ybCode;
+
+ @Schema(description = "库位号")
+ private String ybLocal;
+
+ @Schema(description = "备注")
+ private String memo;
+
+}
diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java
index 9505fba6..bd754e0a 100644
--- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java
+++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java
@@ -271,7 +271,7 @@ public class InspectionTask extends BaseEntity {
* 检验数量
*/
@Schema(description = "检验数量")
- private Long checkQty;
+ private Double checkQty;
/**
* 消耗数量
*/
@@ -281,7 +281,7 @@ public class InspectionTask extends BaseEntity {
* 合格数量
*/
@Schema(description = "合格数量")
- private Long qualifiedQty;
+ private Double qualifiedQty;
/**
* 报废数量
*/
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
index f323fef5..ef0060ed 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
@@ -447,7 +447,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl 方法描述: 转单加载组装数据 > listProProcess(@RequestBody ListProProcessDTO listProProcessDTO) {
return R.data(workOrderService.listProProcess(listProProcessDTO));
}
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java
index 5bc60195..41780dc2 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java
@@ -1,28 +1,27 @@
package org.springblade.desk.produce.controller;
import com.alibaba.nacos.common.utils.StringUtils;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
+import org.springblade.common.utils.CommonUtil;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
-import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.order.pojo.entity.YieldOrder;
+import org.springblade.desk.order.pojo.vo.YieldOrderVo;
import org.springblade.desk.order.service.IYieldOrderService;
-import org.springblade.desk.produce.pojo.dto.InBatchesDTO;
-import org.springblade.desk.produce.pojo.dto.WorkOrderDTO;
-import org.springblade.desk.produce.pojo.vo.WorkOrderVO;
-import org.springblade.desk.produce.pojo.vo.YieldOrderVO;
-import org.springblade.desk.produce.wrapper.WorkOrderWrapper;
+import org.springblade.desk.order.wrapper.YieldOrderWrapper;
+import org.springblade.desk.produce.pojo.dto.QueryByReadStatusDTO;
+import org.springblade.desk.produce.pojo.dto.YieldOrderDTO;
+import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO;
+import org.springblade.desk.produce.service.IWorkOrderService;
import org.springframework.web.bind.annotation.*;
/**
@@ -38,25 +37,25 @@ public class SjProduceManageController extends BladeController {
private final IYieldOrderService yieldOrderService;
+ private final IWorkOrderService workOrderService;
+
@GetMapping("/page")
@ApiOperationSupport(order = 1)
@Operation(summary = "烧结配套齐套流转列表", description = "传入WorkOrderVO")
- public R