订单管理接口修改

develop-QA
liuqingkun 4 months ago
parent e41dc018a1
commit 92c06e34d3
  1. 40
      blade-common/src/main/java/org/springblade/common/cache/CacheNames.java
  2. 2
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  3. 2
      blade-ops/pom.xml
  4. 4
      blade-service-api/blade-desk-api/pom.xml
  5. 39
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/cache/WorkCenterCache.java
  6. 57
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/feign/IWorkCenterClient.java
  7. 12
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/AssayContent.java
  8. 37
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldPlan.java
  9. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldPlanOrder.java
  10. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldPlanTool.java
  11. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecord.java
  12. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/PlateGoodsRecordDetail.java
  13. 58
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/AssayContentEnum.java
  14. 31
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldPlanEnum.java
  15. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/PlateGoodsEnum.java
  16. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/request/MoldPlanSave.java
  17. 17
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/AssayContentVo.java
  18. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/MoldPlanVo.java
  19. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/PlateGoodsRecordVo.java
  20. 30
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/feign/WorkCenterClient.java
  21. 105
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/AssayContentController.java
  22. 125
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/MoldPlanController.java
  23. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/PlateGoodsRecordController.java
  24. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldOrderController.java
  25. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java
  26. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/AssayContentDetailMapper.java
  27. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/AssayContentDetailMapper.xml
  28. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/AssayContentMapper.xml
  29. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldPlanMapper.java
  30. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldPlanMapper.xml
  31. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsApplyMapper.xml
  32. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/PlateGoodsRecordMapper.xml
  33. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml
  34. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IAssayContentDetailService.java
  35. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IAssayContentService.java
  36. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldPlanService.java
  37. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsRecordDetailService.java
  38. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IPlateGoodsRecordService.java
  39. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  40. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/AssayContentDetailServiceImpl.java
  41. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/AssayContentServiceImpl.java
  42. 35
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldPlanServiceImpl.java
  43. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordDetailServiceImpl.java
  44. 41
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java
  45. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  46. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/wrapper/AssayContentWrapper.java
  47. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/wrapper/MoldPlanWrapper.java
  48. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/wrapper/PlateGoodsRecordWrapper.java
  49. 5
      blade-service/blade-desk/src/main/resources/application-dev.yml
  50. 56
      blade-service/blade-desk/src/main/resources/logback.xml
  51. 16
      doc/sql/mes/increase-260108.sql

@ -32,6 +32,31 @@ package org.springblade.common.cache;
*/ */
public interface CacheNames { public interface CacheNames {
//region 系统缓存
/**
* 验证码key
*/
String CAPTCHA_KEY = "blade:auth::blade:captcha:";
/**
* 账号失败key
*/
String ACCOUNT_FAIL_KEY = "blade:lock::account:fail:";
/**
* IP失败key
*/
String IP_FAIL_KEY = "blade:lock::ip:fail:";
//endregion
//region 业务缓存
/**
* 基础信息缓存
*/
String BASIC = "mes:basic:";
//endregion
/** /**
* 返回拼接后的key * 返回拼接后的key
* *
@ -55,19 +80,4 @@ public interface CacheNames {
return tenantId.concat(":").concat(cacheKey).concat(cacheKeyValue); return tenantId.concat(":").concat(cacheKey).concat(cacheKeyValue);
} }
/**
* 验证码key
*/
String CAPTCHA_KEY = "blade:auth::blade:captcha:";
/**
* 账号失败key
*/
String ACCOUNT_FAIL_KEY = "blade:lock::account:fail:";
/**
* IP失败key
*/
String IP_FAIL_KEY = "blade:lock::ip:fail:";
} }

@ -14,7 +14,7 @@ public interface LauncherConstant {
*/ */
// String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e"; // String NACOS_NAMESPACE = "feaf627f-a847-463b-8b73-24a0538f526e";
// 生产环境 // 生产环境
String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401"; String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
// 测试环境 // 测试环境
// String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8"; // String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";

@ -14,7 +14,7 @@
<packaging>pom</packaging> <packaging>pom</packaging>
<modules> <modules>
<module>blade-admin</module> <!-- <module>blade-admin</module>-->
<module>blade-develop</module> <module>blade-develop</module>
<module>blade-job</module> <module>blade-job</module>
<module>blade-log</module> <module>blade-log</module>

@ -24,6 +24,10 @@
<groupId>org.springblade</groupId> <groupId>org.springblade</groupId>
<artifactId>blade-starter-excel</artifactId> <artifactId>blade-starter-excel</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-common</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springblade</groupId> <groupId>org.springblade</groupId>
<artifactId>blade-resource-api</artifactId> <artifactId>blade-resource-api</artifactId>

@ -0,0 +1,39 @@
package org.springblade.desk.basic.cache;
import org.springblade.common.cache.CacheNames;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.desk.basic.feign.IWorkCenterClient;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
/**
* 系统缓存
*
* @author Chill
*/
public class WorkCenterCache {
private static final String WORK_CENTER_CACHE_ID = "workCenter:id:";
private static IWorkCenterClient workCenterClient;
private static IWorkCenterClient getWorkCenterClient() {
if (workCenterClient == null) {
workCenterClient = SpringUtil.getBean(IWorkCenterClient.class);
}
return workCenterClient;
}
/**
* 获取用户
*
* @param workCenterId 作业中心id
* @return
*/
public static WorkCenter getById(Long workCenterId) {
return CacheUtil.get(CacheNames.BASIC, WORK_CENTER_CACHE_ID, workCenterId, () -> {
R<WorkCenter> result = getWorkCenterClient().getById(workCenterId);
return result.getData();
});
}
}

@ -0,0 +1,57 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.basic.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 作业中心 Feign接口类
*
* @author lqk
*/
@FeignClient(
value = AppConstant.APPLICATION_DESK_NAME
)
public interface IWorkCenterClient {
String API_PREFIX = "/feign/workCenter";
String GET_BY_ID = API_PREFIX + "/getById";
/**
* 根据id获取作业中心
*
* @param workCenterId 作业中心id
* @return
*/
@GetMapping(GET_BY_ID)
R<WorkCenter> getById(@RequestParam("id") Long workCenterId);
}

@ -60,4 +60,16 @@ public class AssayContent extends BaseEntity {
*/ */
@TableField(value = "SILVER_PLATE") @TableField(value = "SILVER_PLATE")
private BigDecimal silverPlate; private BigDecimal silverPlate;
/**
* 是否被使用默认0已使用过此次化验申报添加量后记录申报记录id同时更新为1
*/
@TableField(value = "IS_USED")
private Integer isUsed;
/**
* 申报记录id
*/
@TableField(value = "APPLY_ID")
private Long applyId;
} }

@ -56,17 +56,27 @@ public class MoldPlan extends BaseEntity {
private String erpWoCode; private String erpWoCode;
/** /**
* 状态;1新建2已下发3已完成 * 状态; 11001新建11002:已下发11003已完成
*/ */
@TableField(value = "MAF_STATUS") @TableField(value = "MAF_STATUS")
private Long mafStatus; private Integer mafStatus;
/** /**
* 计划类型名称 * 类型; 12001热表烧结12002仓库
*/ */
@TableField(value = "PLAN_TYPE") @TableField(value = "MAF_TYPE")
private String planType; private Integer mafType;
/**
* 计划类型; 13001:Z:制造(工装不为空且工装名称为压饼模),13002:D:夹具(工装不为空且工装名称为石墨模)
*/
@TableField(value = "PLAN_TYPE_CODE")
private String planTypeCode;
/**
* 计划类型名称;14001:Z:制造(工装不为空且工装名称为压饼模),14002:D:夹具(工装不为空且工装名称为石墨模)
*/
@TableField(value = "PLAN_TYPE_NAME")
private String planTypeName;
/** /**
* 需求日期 * 需求日期
*/ */
@ -91,12 +101,6 @@ public class MoldPlan extends BaseEntity {
@TableField(value = "QUA_LEVEL") @TableField(value = "QUA_LEVEL")
private String quaLevel; private String quaLevel;
/**
*
*/
@TableField(value = "PLAN_TYPE_NAME")
private String planTypeName;
/** /**
* 零件编码 * 零件编码
*/ */
@ -115,15 +119,14 @@ public class MoldPlan extends BaseEntity {
@TableField(value = "MEMO") @TableField(value = "MEMO")
private String memo; private String memo;
/**
* 类型;1热表烧结2仓库
*/
@TableField(value = "MAF_TYPE")
private Long mafType;
/** /**
* 紧急状态 * 紧急状态
*/ */
@TableField(value = "URGENT_TYPE") @TableField(value = "URGENT_TYPE")
private String urgentType; private String urgentType;
/**
* 计划来源;15001:自动生成15002人工添加
*/
@TableField(value = "SOURCE")
private Integer source;
} }

@ -14,12 +14,18 @@ import org.springblade.core.mp.base.BaseEntity;
@TableName(value = "MES_MOLD_PLAN_ORDER") @TableName(value = "MES_MOLD_PLAN_ORDER")
@Data @Data
public class MoldPlanOrder extends BaseEntity { public class MoldPlanOrder extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 烧结模具计划ID * 烧结模具计划ID
*/ */
@TableField(value = "MP_ID") @TableField(value = "MP_ID")
private Long mpId; private Long mpId;
/**
* 生产订单id
*/
@TableField(value = "ORDER_ID")
private Long orderId;
} }

@ -11,6 +11,7 @@ import org.springblade.core.mp.base.BaseEntity;
* @author lqk * @author lqk
* @TableName MES_MOLD_PLAN_TOOL * @TableName MES_MOLD_PLAN_TOOL
*/ */
@Deprecated
@TableName(value = "MES_MOLD_PLAN_TOOL") @TableName(value = "MES_MOLD_PLAN_TOOL")
@Data @Data
public class MoldPlanTool extends BaseEntity { public class MoldPlanTool extends BaseEntity {

@ -70,6 +70,7 @@ public class PlateGoodsRecord extends BaseEntity {
/** /**
* 审批状态 * 审批状态
* 11001:正常, 11002:审批中, 11003:不通过, 11004:通过
*/ */
@TableField(value = "APPROVAL_STATUS") @TableField(value = "APPROVAL_STATUS")
private Integer approvalStatus; private Integer approvalStatus;

@ -27,6 +27,6 @@ public class PlateGoodsRecordDetail extends BaseEntity {
* 生产订单ID * 生产订单ID
*/ */
@TableField(value = "YO_ID") @TableField(value = "YO_ID")
private String yoId; private Long yoId;
} }

@ -0,0 +1,58 @@
package org.springblade.desk.order.pojo.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringPool;
import java.util.Arrays;
/**
* 镀层物料需求枚举
*
* @author lqk
* @date 2025-12-19 9:25
*/
@Getter
@AllArgsConstructor
public enum AssayContentEnum {
EMPTY(StringPool.EMPTY, -1),
/**
* 状态, 10000:未使用, 10001:已使用, 10002:已过期
*/
STATUS_UNUSED("未使用", 10000),
STATUS_USED("已使用", 10001),
STATUS_OUTDATE("已过期", 10002),
;
final String name;
final int code;
/**
* 匹配枚举值
*
* @param name 名称
* @return BladeUserEnum
*/
public static AssayContentEnum of(String name) {
return Arrays.stream(AssayContentEnum.values())
.filter(userEnum -> userEnum.getName().equalsIgnoreCase(name != null ? name : "web"))
.findFirst()
// 在没有找到匹配项时返回默认值
.orElse(AssayContentEnum.EMPTY);
}
/**
* 根据值获取名称
*
* @param category
* @return
*/
public static String getName(int category) {
AssayContentEnum item = Arrays.stream(AssayContentEnum.values())
.filter(enumItem -> enumItem.getCode() == category)
.findFirst()
.orElse(null);
return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName();
}
}

@ -25,9 +25,36 @@ public enum MoldPlanEnum {
STATUS_OUT_STORE("已出库", 10001), STATUS_OUT_STORE("已出库", 10001),
STATUS_DONE("完成", 10002), STATUS_DONE("完成", 10002),
STATUS_CLOSE("关闭", 10003), STATUS_CLOSE("关闭", 10003),
/**
* 状态枚举; 11001新建11002:已下发11003已完成
*/
MAF_STATUS_CREATE("新建", 11001),
MAF_STATUS_SEND("已下发", 11002),
MAF_STATUS_DONE("已完成", 11003),
/**
* 类型;12001热表烧结12002仓库
*/
MAF_TYPE_RB("热表,烧结", 12001),
MAF_TYPE_STORE("仓库", 12002),
/**
* 计划类型; 13001:Z:制造(工装不为空且工装名称为压饼模),13002:D:夹具(工装不为空且工装名称为石墨模)
*/
PLAN_TYPE_CODE_Z("Z", 13001),
PLAN_TYPE_CODE_D("D", 13002),
PLAN_TYPE_NAME_Z("制造", 14001),
PLAN_TYPE_NAME_D("夹具", 15002),
/**
* 计划来源;15001:自动生成15002人工添加
*/
SOURCE_AUTO("自动生成", 15001),
SOURCE_USER("人工添加", 15002),
; ;
final String name; final String name;
final int category; final int code;
/** /**
* 匹配枚举值 * 匹配枚举值
@ -51,7 +78,7 @@ public enum MoldPlanEnum {
*/ */
public static String getName(int category) { public static String getName(int category) {
MoldPlanEnum item = Arrays.stream(MoldPlanEnum.values()) MoldPlanEnum item = Arrays.stream(MoldPlanEnum.values())
.filter(enumItem -> enumItem.getCategory() == category) .filter(enumItem -> enumItem.getCode() == category)
.findFirst() .findFirst()
.orElse(null); .orElse(null);
return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName(); return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName();

@ -19,7 +19,7 @@ public enum PlateGoodsEnum {
EMPTY(StringPool.EMPTY, -1), EMPTY(StringPool.EMPTY, -1),
/** /**
* 状态枚举 * 状态, 10000:待审核, 10001:审核通过, 10002:使用中, 10003:已超期, 10004:已完成, 10005:审核未通过, 10006:已关闭
*/ */
STATUS_WAITING("待审核", 10000), STATUS_WAITING("待审核", 10000),
STATUS_PASS("审核通过", 10001), STATUS_PASS("审核通过", 10001),
@ -30,7 +30,7 @@ public enum PlateGoodsEnum {
STATUS_CLOSE("已关闭", 10006), STATUS_CLOSE("已关闭", 10006),
; ;
final String name; final String name;
final int category; final int code;
/** /**
* 匹配枚举值 * 匹配枚举值
@ -54,7 +54,7 @@ public enum PlateGoodsEnum {
*/ */
public static String getName(int category) { public static String getName(int category) {
PlateGoodsEnum item = Arrays.stream(PlateGoodsEnum.values()) PlateGoodsEnum item = Arrays.stream(PlateGoodsEnum.values())
.filter(enumItem -> enumItem.getCategory() == category) .filter(enumItem -> enumItem.getCode() == category)
.findFirst() .findFirst()
.orElse(null); .orElse(null);
return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName(); return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName();

@ -12,6 +12,7 @@ import java.util.List;
* *
* @author lqk * @author lqk
*/ */
@Deprecated
@Data @Data
public class MoldPlanSave { public class MoldPlanSave {
/** /**

@ -4,8 +4,10 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data; import lombok.Data;
import org.springblade.desk.order.pojo.entity.AssayContent; import org.springblade.desk.order.pojo.entity.AssayContent;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import java.io.Serial; import java.io.Serial;
import java.util.List;
/** /**
* 化验含量-视图类 * 化验含量-视图类
@ -23,8 +25,23 @@ public class AssayContentVo extends AssayContent {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/**
* 作业中心名称
*/
String wcName;
/**
* 化验人名称
*/
String assayManName;
/** /**
* 状态名称 * 状态名称
*/ */
String statusName; String statusName;
/**
* 明细列表
*/
List<AssayContentDetail> detailList;
} }

@ -27,4 +27,14 @@ public class MoldPlanVo extends MoldPlan {
* 状态名称 * 状态名称
*/ */
String statusName; String statusName;
/**
* 状态名称
*/
String mafStatusName;
/**
* 类型名称
*/
String mafTypeName;
} }

@ -6,6 +6,7 @@ import lombok.Data;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import java.io.Serial; import java.io.Serial;
import java.util.List;
/** /**
* 镀层物料额外需求上报-视图类 * 镀层物料额外需求上报-视图类
@ -23,8 +24,20 @@ public class PlateGoodsRecordVo extends PlateGoodsRecord {
@JsonSerialize(using = ToStringSerializer.class) @JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
/**
* 作业中心名称
*/
String wcName;
/** /**
* 状态名称 * 状态名称
*/ */
String statusName; String statusName;
/**
* 创建人名称
*/
String createUserName;
List<YieldOrderVo> yieldOrderList;
} }

@ -0,0 +1,30 @@
package org.springblade.desk.basic.feign;
import io.swagger.v3.oas.annotations.Hidden;
import lombok.RequiredArgsConstructor;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.service.IWorkCenterService;
import org.springframework.web.bind.annotation.RestController;
/**
* 作业中心 Feign接口类
*
* @author lqk
*/
@NonDS
@Hidden()
@RestController
@RequiredArgsConstructor
public class WorkCenterClient implements IWorkCenterClient {
private final IWorkCenterService workCenterService;
@Override
public R<WorkCenter> getById(Long workCenterId) {
WorkCenter workCenter = workCenterService.getById(workCenterId);
return R.data(workCenter);
}
}

@ -45,7 +45,7 @@ public class AssayContentController extends BladeController {
@GetMapping("/page") @GetMapping("/page")
@Parameters({ @Parameters({
@Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int")) @Parameter(name = "status", description = "状态, 10000:未使用, 10001:已使用, 10002:已过期", in = ParameterIn.QUERY, schema = @Schema(type = "int"))
}) })
@Operation(summary = "分页", description = "") @Operation(summary = "分页", description = "")
public R<IPage<AssayContentVo>> page(@Parameter(hidden = true) AssayContent entity, Query query) { public R<IPage<AssayContentVo>> page(@Parameter(hidden = true) AssayContent entity, Query query) {
@ -54,56 +54,65 @@ public class AssayContentController extends BladeController {
} }
/** /**
* 详情 * 详情
*/ */
@GetMapping("/detail") @GetMapping("/detail")
@Operation(summary = "详情", description = "") @Operation(summary = "详情", description = "")
public R<AssayContent> detail(String id) { public R<AssayContentVo> detail(String id) {
AssayContent detail = assayContentService.getById(id); AssayContent content = assayContentService.getById(id);
return R.data(detail); List<AssayContentDetail> detailList = assayContentDetailService.getByContentId(content.getId());
}
/** AssayContentVo vo = AssayContentWrapper.build().entityVO(content);
* 新增 vo.setDetailList(detailList);
*/ return R.data(vo);
@PostMapping("/save") }
@Operation(summary = "新增", description = "")
public R save(@Valid @RequestBody AssayContentSave saveData) {
AssayContent entity = saveData.getAssayContent();
List<AssayContentDetail> detailList = saveData.getDetailList();
assayContentService.save(entity, detailList);
return R.status(true);
}
/** /**
* 修改 * 新增
*/ */
@PostMapping("/update") @PostMapping("/save")
@Operation(summary = "修改", description = "") @Operation(summary = "新增", description = "")
public R update(@Valid @RequestBody AssayContentSave saveData) { public R save(@Valid @RequestBody AssayContentSave saveData) {
AssayContent entity = saveData.getAssayContent(); AssayContent entity = saveData.getAssayContent();
List<AssayContentDetail> detailList = saveData.getDetailList(); List<AssayContentDetail> detailList = saveData.getDetailList();
assayContentService.update(entity, detailList); assayContentService.save(entity, detailList);
return R.status(true); return R.status(true);
} }
/** /**
* 删除 * 修改
*/ */
@PostMapping("/remove") @PostMapping("/update")
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "修改", description = "")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R update(@Valid @RequestBody AssayContentSave saveData) {
Boolean result = assayContentService.deleteLogic(Func.toLongList(ids)); AssayContent entity = saveData.getAssayContent();
return R.status(result); List<AssayContentDetail> detailList = saveData.getDetailList();
} assayContentService.update(entity, detailList);
return R.status(true);
}
/** /**
* 列表 - 未使用的化验含量 * 删除
*/ */
@GetMapping("/listNoUsed") @PostMapping("/remove")
@Operation(summary = "未使用的化验含量列表", description = "") @Operation(summary = "逻辑删除", description = "传入ids")
public R<AssayContent> listNoUsed(@Parameter(hidden = true) AssayContentDetail authClient, Query query) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.data(null); // 删除化验记录
} Boolean result = assayContentService.deleteLogic(Func.toLongList(ids));
// 删除化验记录明细
assayContentDetailService.deleteLogicByContentId(Func.toLongList(ids));
return R.status(result);
}
/**
* 列表 - 未使用的化验含量明细列表
*/
@GetMapping("/detailListNoUsed")
@Operation(summary = "未使用的化验含量明细列表", description = "")
public R<List<AssayContentDetail>> detailListNoUsed(@Parameter(hidden = true) Long workCenterId) {
List<AssayContentDetail> detailList = assayContentService.detailListNoUsed(workCenterId);
return R.data(detailList);
}
} }

@ -22,7 +22,6 @@ import org.springblade.desk.order.pojo.request.MoldPlanSave;
import org.springblade.desk.order.pojo.vo.MoldPlanVo; import org.springblade.desk.order.pojo.vo.MoldPlanVo;
import org.springblade.desk.order.service.IMoldPlanOrderService; import org.springblade.desk.order.service.IMoldPlanOrderService;
import org.springblade.desk.order.service.IMoldPlanService; import org.springblade.desk.order.service.IMoldPlanService;
import org.springblade.desk.order.service.IMoldPlanToolService;
import org.springblade.desk.order.wrapper.MoldPlanWrapper; import org.springblade.desk.order.wrapper.MoldPlanWrapper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -40,64 +39,84 @@ import java.util.List;
public class MoldPlanController extends BladeController { public class MoldPlanController extends BladeController {
private final IMoldPlanService moldPlanService; private final IMoldPlanService moldPlanService;
private final IMoldPlanToolService moldPlanToolService;
private final IMoldPlanOrderService moldPlanOrderService; private final IMoldPlanOrderService moldPlanOrderService;
/** /**
* 分页 * 分页
*/ */
@GetMapping("/page") @GetMapping("/page")
@Parameters({ @Parameters({
@Parameter(name = "moCode", description = "工装号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "moCode", description = "工装号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")) @Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
}) })
@Operation(summary = "分页", description = "") @Operation(summary = "分页-所有需求", description = "")
public R<IPage<MoldPlanVo>> page(@Parameter(hidden = true) MoldPlan entity, Query query) { public R<IPage<MoldPlanVo>> page(@Parameter(hidden = true) MoldPlan entity, Query query) {
IPage<MoldPlan> page = moldPlanService.selectPage(Condition.getPage(query), entity); IPage<MoldPlan> page = moldPlanService.selectPage(Condition.getPage(query), entity);
return R.data(MoldPlanWrapper.build().pageVO(page)); return R.data(MoldPlanWrapper.build().pageVO(page));
} }
/** /**
* 详情 * 分页
*/ */
@GetMapping("/detail") @GetMapping("/pageApply")
@Operation(summary = "详情", description = "") @Parameters({
public R<MoldPlan> detail(String id) { @Parameter(name = "moCode", description = "工装号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
MoldPlan detail = moldPlanService.getById(id); @Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
return R.data(detail); })
} @Operation(summary = "分页-申报记录", description = "")
public R<IPage<MoldPlanVo>> pageApply(@Parameter(hidden = true) MoldPlan entity, Query query) {
IPage<MoldPlan> page = moldPlanService.selectPageApply(Condition.getPage(query), entity);
return R.data(MoldPlanWrapper.build().pageVO(page));
}
/** /**
* 新增 * 分页-近一月的模具计划
*/ */
@PostMapping("/save") @GetMapping("/pageNearlyMonth")
@Operation(summary = "新增", description = "") @Operation(summary = "分页-近一月的模具计划", description = "")
public R save(@Valid @RequestBody MoldPlanSave saveData) { public R<IPage<MoldPlanVo>> pageNearlyMonth(@Parameter(hidden = true) MoldPlan entity, Query query) {
MoldPlan entity = saveData.getMoldPlan(); IPage<MoldPlan> page = moldPlanService.pageNearlyMonth(Condition.getPage(query), entity);
List<MoldPlanOrder> orderList = saveData.getOrderList(); return R.data(MoldPlanWrapper.build().pageVO(page));
List<MoldPlanTool> toolList = saveData.getToolList(); }
moldPlanService.save(entity, orderList, toolList);
return R.status(true);
}
/** /**
* 修改 * 详情
*/ */
@PostMapping("/update") @GetMapping("/detail")
@Operation(summary = "修改", description = "") @Operation(summary = "详情", description = "")
public R update(@Valid @RequestBody MoldPlanSave saveData) { public R<MoldPlan> detail(String id) {
MoldPlan entity = saveData.getMoldPlan(); MoldPlan detail = moldPlanService.getById(id);
List<MoldPlanOrder> orderList = saveData.getOrderList(); return R.data(detail);
List<MoldPlanTool> toolList = saveData.getToolList(); }
moldPlanService.update(entity, orderList, toolList);
return R.status(true);
}
/** /**
* 删除 * 新增
*/ */
@PostMapping("/remove") @PostMapping("/save")
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "新增", description = "")
public R save(@Valid @RequestBody List<MoldPlan> planList) {
moldPlanService.save(planList);
return R.status(true);
}
/**
* 修改
*/
@PostMapping("/update")
@Operation(summary = "修改", description = "")
public R update(@Valid @RequestBody MoldPlanSave saveData) {
MoldPlan entity = saveData.getMoldPlan();
List<MoldPlanOrder> orderList = saveData.getOrderList();
List<MoldPlanTool> toolList = saveData.getToolList();
moldPlanService.update(entity, orderList, toolList);
return R.status(true);
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
Boolean result = moldPlanService.deleteLogic(Func.toLongList(ids)); Boolean result = moldPlanService.deleteLogic(Func.toLongList(ids));
return R.status(result); return R.status(result);
@ -110,17 +129,7 @@ public class MoldPlanController extends BladeController {
@PostMapping("/closeBatch") @PostMapping("/closeBatch")
@Operation(summary = "批量关闭", description = "传入ids") @Operation(summary = "批量关闭", description = "传入ids")
public R closeBatch(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R closeBatch(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
Boolean result = moldPlanService.changeStatus(Func.toLongList(ids), MoldPlanEnum.STATUS_CLOSE.getCategory()); Boolean result = moldPlanService.changeStatus(Func.toLongList(ids), MoldPlanEnum.STATUS_CLOSE.getCode());
return R.status(result); return R.status(result);
} }
/**
* 分页-近一月的模具计划
*/
@GetMapping("/pageNearlyMonth")
@Operation(summary = "分页", description = "")
public R<IPage<MoldPlan>> pageNearlyMonth(@Parameter(hidden = true) MoldPlan authClient, Query query) {
// 根据零件号,分页查询近一月的模具申报
return R.data(null);
}
} }

@ -17,12 +17,14 @@ import org.springblade.core.tool.utils.Func;
import org.springblade.desk.order.pojo.entity.AssayContentDetail; import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail; import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum; import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import org.springblade.desk.order.pojo.request.PlateGoodsRecordSave; import org.springblade.desk.order.pojo.request.PlateGoodsRecordSave;
import org.springblade.desk.order.pojo.vo.PlateGoodsRecordVo; import org.springblade.desk.order.pojo.vo.PlateGoodsRecordVo;
import org.springblade.desk.order.service.IPlateGoodsRecordDetailService; import org.springblade.desk.order.service.IPlateGoodsRecordDetailService;
import org.springblade.desk.order.service.IPlateGoodsRecordService; import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.wrapper.PlateGoodsRecordWrapper; import org.springblade.desk.order.wrapper.PlateGoodsRecordWrapper;
import org.springblade.desk.order.wrapper.YieldOrderWrapper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@ -45,11 +47,9 @@ public class PlateGoodsRecordController extends BladeController {
* 分页 * 分页
*/ */
@GetMapping("/page") @GetMapping("/page")
@Parameters({ @Parameters({@Parameter(name = "demandCode", description = "需求单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "demandCode", description = "需求单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int")) @Parameter(name = "status", description = "状态,10000:待审核, 10001:审核通过, 10002:使用中, 10003:已超期, 10004:已完成, 10005:审核未通过, 10006:已关闭", in = ParameterIn.QUERY, schema = @Schema(type = "int"))})
})
@Operation(summary = "分页", description = "") @Operation(summary = "分页", description = "")
public R<IPage<PlateGoodsRecordVo>> page(@Parameter(hidden = true) PlateGoodsRecord entity, Query query) { public R<IPage<PlateGoodsRecordVo>> page(@Parameter(hidden = true) PlateGoodsRecord entity, Query query) {
IPage<PlateGoodsRecord> page = goodsRecordService.selectPage(Condition.getPage(query), entity); IPage<PlateGoodsRecord> page = goodsRecordService.selectPage(Condition.getPage(query), entity);
@ -61,9 +61,16 @@ public class PlateGoodsRecordController extends BladeController {
*/ */
@GetMapping("/detail") @GetMapping("/detail")
@Operation(summary = "详情", description = "") @Operation(summary = "详情", description = "")
public R<PlateGoodsRecord> detail(String id) { public R<PlateGoodsRecordVo> detail(String id) {
PlateGoodsRecord detail = goodsRecordService.getById(id); PlateGoodsRecord detail = goodsRecordService.getById(id);
return R.data(detail);
PlateGoodsRecordVo vo = PlateGoodsRecordWrapper.build().entityVO(detail);
// 查询关联订单列表
List<YieldOrder> yieldOrderList = goodsRecordService.listDetailYieldOrder(detail.getId());
vo.setYieldOrderList(YieldOrderWrapper.build().listVO(yieldOrderList));
return R.data(vo);
} }
/** /**
@ -96,6 +103,7 @@ public class PlateGoodsRecordController extends BladeController {
@PostMapping("/remove") @PostMapping("/remove")
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
// TODO 验证是否进行添加, 若已添加, 不允许删除
Boolean result = goodsRecordService.deleteLogic(Func.toLongList(ids)); Boolean result = goodsRecordService.deleteLogic(Func.toLongList(ids));
return R.status(result); return R.status(result);
} }
@ -118,7 +126,7 @@ public class PlateGoodsRecordController extends BladeController {
@PostMapping("/closeBatch") @PostMapping("/closeBatch")
@Operation(summary = "批量关闭", description = "传入ids") @Operation(summary = "批量关闭", description = "传入ids")
public R closeBatch(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R closeBatch(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
Boolean result = goodsRecordService.changeStatus(Func.toLongList(ids), PlateGoodsEnum.STATUS_CLOSE.getCategory()); Boolean result = goodsRecordService.changeStatus(Func.toLongList(ids), PlateGoodsEnum.STATUS_CLOSE.getCode());
return R.status(result); return R.status(result);
} }

@ -99,12 +99,31 @@ public class YieldOrderController extends BladeController {
page.setRecords(new ArrayList<>()); page.setRecords(new ArrayList<>());
if (ObjectUtil.isNotEmpty(entity.getValidationResult())) { if (ObjectUtil.isNotEmpty(entity.getValidationResult())) {
page = yieldOrderService.selectPageSintering(Condition.getPage(query), entity); page = yieldOrderService.selectPage(Condition.getPage(query), entity);
} }
return R.data(YieldOrderWrapper.build().pageVO(page)); return R.data(YieldOrderWrapper.build().pageVO(page));
} }
/**
* 分页查询列表 - 物料申请
*/
@GetMapping("/pageMaterialApply")
@Parameters({
@Parameter(name = "wcId", description = "作业中心", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "materialType", description = "物料类型,1:金钾,2:银钾", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "overHalfMon", description = "使用半月以上的数据,0:否,1:是", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@Operation(summary = "分页-物料申请", description = "")
public R<IPage<YieldOrderVo>> pageMaterialApply(Long wcId, Integer materialType, Integer overHalfMon, Query query) {
IPage<YieldOrder> page = Condition.getPage(query);
page.setRecords(new ArrayList<>());
page = yieldOrderService.pageMaterialApply(Condition.getPage(query), wcId, materialType, overHalfMon);
return R.data(YieldOrderWrapper.build().pageVO(page));
}
/** /**
* 详情 * 详情
*/ */

@ -58,7 +58,7 @@ public class YieldPlanController extends BladeController {
@Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int")) @Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int"))
}) })
@Operation(summary = "分页", description = "") @Operation(summary = "分页查询列表-电镀", description = "")
public R<IPage<YieldPlanVo>> pageElectroplate(@Parameter(hidden = true) YieldPlan entity, Query query) { public R<IPage<YieldPlanVo>> pageElectroplate(@Parameter(hidden = true) YieldPlan entity, Query query) {
IPage<YieldPlan> page = yieldPlanService.selectPageElectroplate(Condition.getPage(query), entity); IPage<YieldPlan> page = yieldPlanService.selectPageElectroplate(Condition.getPage(query), entity);
return R.data(YieldPlanWrapper.build().pageVO(page)); return R.data(YieldPlanWrapper.build().pageVO(page));
@ -73,7 +73,7 @@ public class YieldPlanController extends BladeController {
@Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int")) @Parameter(name = "status", description = "状态", in = ParameterIn.QUERY, schema = @Schema(type = "int"))
}) })
@Operation(summary = "分页", description = "") @Operation(summary = "分页查询列表-烧结", description = "")
public R<IPage<YieldPlanVo>> pageSintering(@Parameter(hidden = true) YieldPlan entity, Query query) { public R<IPage<YieldPlanVo>> pageSintering(@Parameter(hidden = true) YieldPlan entity, Query query) {
IPage<YieldPlan> page = yieldPlanService.selectPageSintering(Condition.getPage(query), entity); IPage<YieldPlan> page = yieldPlanService.selectPageSintering(Condition.getPage(query), entity);
return R.data(YieldPlanWrapper.build().pageVO(page)); return R.data(YieldPlanWrapper.build().pageVO(page));

@ -22,4 +22,12 @@ public interface AssayContentDetailMapper extends BaseMapper<AssayContentDetail>
* @return * @return
*/ */
List<AssayContentDetail> selectPage(IPage page, AssayContentDetail entity); List<AssayContentDetail> selectPage(IPage page, AssayContentDetail entity);
/**
* 根据化验记录逻辑删除明细
*
* @param contentIds
* @return
*/
boolean deleteLogicByContentId(List<Long> contentIds);
} }

@ -4,6 +4,17 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace = "org.springblade.desk.order.mapper.AssayContentDetailMapper"> <mapper namespace = "org.springblade.desk.order.mapper.AssayContentDetailMapper">
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.AssayContentDetail"> <select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.AssayContentDetail">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
AC_ID, SLOT, TEST_VAL, SAVE_GOLD_VAL, SAVE_SILVER_VAL, SAVE_BOARD_VAL, ACTUAL_VAL
FROM MES_ASSAY_CONTENT_DETAIL
</select> </select>
<update id = "deleteLogicByContentId">
UPDATE MES_ASSAY_CONTENT_DETAIL
SET IS_DELETED = TRUE
WHERE AC_ID IN
<foreach collection = "contentIds" item = "contentId" index = "index" open = "(" close = ")" separator = ",">
#{contentId}
</foreach>
</update>
</mapper> </mapper>

@ -5,8 +5,9 @@
<mapper namespace="org.springblade.desk.order.mapper.AssayContentMapper"> <mapper namespace="org.springblade.desk.order.mapper.AssayContentMapper">
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.AssayContent"> <select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.AssayContent">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED, SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
WC_ID, ASSAY_MAN, ASSAY_TIME, APPLY_STATUS, GOLD_POTASSIUM, SILVER_POTASSIUM, SILVER_PLATE WC_ID, ASSAY_MAN, ASSAY_TIME, APPLY_STATUS, GOLD_POTASSIUM, SILVER_POTASSIUM, SILVER_PLATE, IS_USED, APPLY_ID
FROM MES_ASSAY_CONTENT FROM MES_ASSAY_CONTENT
WHERE IS_DELETED = 0
<if test = "entity.wcId != null and entity.wcId != ''"> <if test = "entity.wcId != null and entity.wcId != ''">
AND WC_ID = #{entity.wcId} AND WC_ID = #{entity.wcId}
</if> </if>

@ -22,4 +22,13 @@ public interface MoldPlanMapper extends BaseMapper<MoldPlan> {
* @return * @return
*/ */
List<MoldPlan> selectPage(IPage page, MoldPlan entity); List<MoldPlan> selectPage(IPage page, MoldPlan entity);
/**
* 自定义分页 - 近一月的模具计划
*
* @param page
* @param entity
* @return
*/
List<MoldPlan> pageNearlyMonth(IPage page, MoldPlan entity);
} }

@ -5,9 +5,27 @@
<mapper namespace="org.springblade.desk.order.mapper.MoldPlanMapper"> <mapper namespace="org.springblade.desk.order.mapper.MoldPlanMapper">
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.MoldPlan"> <select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.MoldPlan">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED, SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
MO_CODE, MO_NAME, QUANTITY, ERP_ID, YP_ID, ERP_WO_CODE, MAF_STATUS, PLAN_TYPE, NEED_DATE, KEEPER, RELEASER, QUA_LEVEL, MO_CODE, MO_NAME, QUANTITY, ERP_ID, YP_ID, ERP_WO_CODE, MAF_STATUS, PLAN_TYPE_CODE, NEED_DATE, KEEPER, RELEASER, QUA_LEVEL,
PLAN_TYPE_NAME, PART_CODE, PART_NAME, MEMO, MAF_TYPE, URGENT_TYPE PLAN_TYPE_NAME, PART_CODE, PART_NAME, MEMO, MAF_TYPE, URGENT_TYPE
FROM MES_MOLD_PLAN FROM MES_MOLD_PLAN
WHERE IS_DELETED = 0
<if test = "entity.source != null and entity.source != ''">
AND SOURCE = #{entity.source}
</if>
<if test = "entity.moCode != null and entity.moCode != ''">
AND MO_CODE LIKE CONCAT('%', CONCAT(#{entity.moCode}, '%'))
</if>
<if test = "entity.partCode != null and entity.partCode != ''">
AND PART_CODE LIKE CONCAT('%', CONCAT(#{entity.partCode}, '%'))
</if>
</select>
<select id = "pageNearlyMonth" resultType = "org.springblade.desk.order.pojo.entity.MoldPlan">
SELECT ID, TENANT_ID, CREATE_USER, CREATE_DEPT, CREATE_TIME, UPDATE_USER, UPDATE_TIME, STATUS, IS_DELETED,
MO_CODE, MO_NAME, QUANTITY, ERP_ID, YP_ID, ERP_WO_CODE, MAF_STATUS, PLAN_TYPE_CODE, NEED_DATE, KEEPER, RELEASER, QUA_LEVEL,
PLAN_TYPE_NAME, PART_CODE, PART_NAME, MEMO, MAF_TYPE, URGENT_TYPE
FROM MES_MOLD_PLAN
WHERE IS_DELETED = 0 and create_time >= ADD_MONTHS(SYSDATE, -1)
<if test = "entity.moCode != null and entity.moCode != ''"> <if test = "entity.moCode != null and entity.moCode != ''">
AND MO_CODE LIKE CONCAT('%', CONCAT(#{entity.moCode}, '%')) AND MO_CODE LIKE CONCAT('%', CONCAT(#{entity.moCode}, '%'))
</if> </if>

@ -8,6 +8,7 @@
GOODS_CODE, GOODS_DEMAND, APPROVAL_STATUS, BO_ID, BR_ID, AC_ID, PGR_ID, WC_ID, INVOLVE_CODE, CODE_NUM, APPROVAL_MAN, GOODS_CODE, GOODS_DEMAND, APPROVAL_STATUS, BO_ID, BR_ID, AC_ID, PGR_ID, WC_ID, INVOLVE_CODE, CODE_NUM, APPROVAL_MAN,
APPROVAL_TIME, APPROVAL_MEMO APPROVAL_TIME, APPROVAL_MEMO
FROM MES_PLATE_GOODS_APPLY FROM MES_PLATE_GOODS_APPLY
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''"> <if test = "entity.demandCode != null and entity.demandCode != ''">
AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%')) AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%'))
</if> </if>

@ -9,6 +9,7 @@
APPROVAL_STATUS, APPROVAL_MEMO, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS, GOODS_BO_ID, COEFFICIENT_BO_ID, APPROVAL_STATUS, APPROVAL_MEMO, DECLARED_QUOTA, DECLARED_SILVER, DECLARED_STATUS, GOODS_BO_ID, COEFFICIENT_BO_ID,
PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE PGR_CODE, SURPLUS, SILVER_POTASSIUM_RESIDUE
FROM MES_PLATE_GOODS_RECORD FROM MES_PLATE_GOODS_RECORD
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''"> <if test = "entity.demandCode != null and entity.demandCode != ''">
AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%')) AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%'))
</if> </if>
@ -18,5 +19,11 @@
<if test = "entity.status != null and entity.status != ''"> <if test = "entity.status != null and entity.status != ''">
AND status = #{entity.status} AND status = #{entity.status}
</if> </if>
<if test = "entity.status != null and entity.status != ''">
AND status = #{entity.status}
</if>
<if test = "entity.status != null and entity.approvalStatus != ''">
AND approval_status = #{entity.approvalStatus}
</if>
</select> </select>
</mapper> </mapper>

@ -20,6 +20,9 @@
<foreach collection = "yieldTypeList" item = "yieldType" open = "(" separator = "," close = ")"> <foreach collection = "yieldTypeList" item = "yieldType" open = "(" separator = "," close = ")">
#{yieldType.code} #{yieldType.code}
</foreach> </foreach>
</if>
<if test = "entity.workCenterId != null and entity.workCenterId != ''">
AND WORK_CENTER_ID = #{entity.workCenterId}
</if> </if>
<if test = "entity.ypCode != null and entity.ypCode != ''"> <if test = "entity.ypCode != null and entity.ypCode != ''">
AND YP_CODE LIKE CONCAT('%', CONCAT(#{entity.ypCode}, '%')) AND YP_CODE LIKE CONCAT('%', CONCAT(#{entity.ypCode}, '%'))

@ -1,9 +1,12 @@
package org.springblade.desk.order.service; package org.springblade.desk.order.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.validation.constraints.NotEmpty;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.AssayContentDetail; import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import java.util.List;
/** /**
* 服务实现类 * 服务实现类
* *
@ -18,4 +21,22 @@ public interface IAssayContentDetailService extends BaseService<AssayContentDeta
* @return * @return
*/ */
IPage<AssayContentDetail> selectPage(IPage<AssayContentDetail> page, AssayContentDetail entity); IPage<AssayContentDetail> selectPage(IPage<AssayContentDetail> page, AssayContentDetail entity);
/**
* 根据化验记录查询明细列表
*
* @param contentId
* @return
*/
List<AssayContentDetail> getByContentId(Long contentId);
/**
* 根据化验记录逻辑删除明细
*
* @param contentIds
* @return
*/
boolean deleteLogicByContentId(@NotEmpty List<Long> contentIds);
} }

@ -39,4 +39,12 @@ public interface IAssayContentService extends BaseService<AssayContent> {
* @return * @return
*/ */
boolean update(AssayContent entity, List<AssayContentDetail> detailList); boolean update(AssayContent entity, List<AssayContentDetail> detailList);
/**
* 查询作业中心下未使用的化验含量明细列表
*
* @param workCenterId
* @return
*/
List<AssayContentDetail> detailListNoUsed(Long workCenterId);
} }

@ -23,6 +23,32 @@ public interface IMoldPlanService extends BaseService<MoldPlan> {
*/ */
IPage<MoldPlan> selectPage(IPage<MoldPlan> page, MoldPlan entity); IPage<MoldPlan> selectPage(IPage<MoldPlan> page, MoldPlan entity);
/**
* 自定义分页 - 人工申报的
*
* @param page
* @param entity
* @return
*/
IPage<MoldPlan> selectPageApply(IPage<MoldPlan> page, MoldPlan entity);
/**
* 自定义分页 - 近一月的模具计划
*
* @param page
* @param entity
* @return
*/
IPage<MoldPlan> pageNearlyMonth(IPage<MoldPlan> page, MoldPlan entity);
/**
* 保存
*
* @param planList
* @return
*/
boolean save(List<MoldPlan> planList);
/** /**
* 保存 * 保存
* *

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail; import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import java.util.List;
/** /**
* 服务实现类 * 服务实现类
* *
@ -18,4 +20,20 @@ public interface IPlateGoodsRecordDetailService extends BaseService<PlateGoodsRe
* @return * @return
*/ */
IPage<PlateGoodsRecordDetail> selectPage(IPage<PlateGoodsRecordDetail> page, PlateGoodsRecordDetail entity); IPage<PlateGoodsRecordDetail> selectPage(IPage<PlateGoodsRecordDetail> page, PlateGoodsRecordDetail entity);
/**
* 根据镀层需求上报删除明细列表
*
* @param recordId
* @return
*/
boolean deleteLogicByRecordId(Long recordId);
/**
* 根据镀层需求上报查询明细列表
*
* @param recordId
* @return
*/
List<PlateGoodsRecordDetail> listByRecordId(Long recordId);
} }

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail; import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import java.util.List; import java.util.List;
@ -40,13 +41,21 @@ public interface IPlateGoodsRecordService extends BaseService<PlateGoodsRecord>
*/ */
boolean update(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList); boolean update(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList);
/** /**
* 批量审核 * 批量审核
* *
* @param ids * @param ids
* @param approvalStatus * @param approvalStatus
* @param approvalMemo * @param approvalMemo
* @return * @return
*/ */
boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo); boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo);
/**
* 获取详情关联的生产订单列表
*
* @param id
* @return
*/
List<YieldOrder> listDetailYieldOrder(Long id);
} }

@ -43,6 +43,17 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
*/ */
IPage<YieldOrder> selectPageSintering(IPage<YieldOrder> page, YieldOrder entity); IPage<YieldOrder> selectPageSintering(IPage<YieldOrder> page, YieldOrder entity);
/**
* 自定义分页 - 物料申请
*
* @param page
* @param wcId
* @param materialType
* @param overHalfMon
* @return
*/
IPage<YieldOrder> pageMaterialApply(IPage<YieldOrder> page, Long wcId, Integer materialType, Integer overHalfMon);
/** /**
* 批量确认 * 批量确认
* *

@ -1,6 +1,9 @@
package org.springblade.desk.order.service.impl; package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.pojo.entity.AssayContentDetail; import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.mapper.AssayContentDetailMapper; import org.springblade.desk.order.mapper.AssayContentDetailMapper;
@ -22,4 +25,22 @@ public class AssayContentDetailServiceImpl extends BaseServiceImpl<AssayContentD
List<AssayContentDetail> dataList = baseMapper.selectPage(page, entity); List<AssayContentDetail> dataList = baseMapper.selectPage(page, entity);
return page.setRecords(dataList); return page.setRecords(dataList);
} }
@Override
public List<AssayContentDetail> getByContentId(Long contentId) {
Wrapper wrapper = Wrappers.lambdaQuery(AssayContentDetail.class)
.eq(AssayContentDetail::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(AssayContentDetail::getAcId, contentId);
List<AssayContentDetail> detailList = baseMapper.selectList(wrapper);
return detailList;
}
@Override
public boolean deleteLogicByContentId(List<Long> contentIds) {
return baseMapper.deleteLogicByContentId(contentIds);
}
} }

@ -1,11 +1,15 @@
package org.springblade.desk.order.service.impl; package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.mapper.AssayContentMapper;
import org.springblade.desk.order.pojo.entity.AssayContent; import org.springblade.desk.order.pojo.entity.AssayContent;
import org.springblade.desk.order.pojo.entity.AssayContentDetail; import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.mapper.AssayContentMapper; import org.springblade.desk.order.pojo.enums.AssayContentEnum;
import org.springblade.desk.order.service.IAssayContentDetailService; import org.springblade.desk.order.service.IAssayContentDetailService;
import org.springblade.desk.order.service.IAssayContentService; import org.springblade.desk.order.service.IAssayContentService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -31,6 +35,7 @@ public class AssayContentServiceImpl extends BaseServiceImpl<AssayContentMapper,
@Override @Override
public boolean save(AssayContent entity, List<AssayContentDetail> detailList) { public boolean save(AssayContent entity, List<AssayContentDetail> detailList) {
entity.setStatus(AssayContentEnum.STATUS_UNUSED.getCode());
if (this.save(entity)) { if (this.save(entity)) {
for (AssayContentDetail detail : detailList) { for (AssayContentDetail detail : detailList) {
detail.setAcId(entity.getId()); detail.setAcId(entity.getId());
@ -44,11 +49,31 @@ public class AssayContentServiceImpl extends BaseServiceImpl<AssayContentMapper,
@Override @Override
public boolean update(AssayContent entity, List<AssayContentDetail> detailList) { public boolean update(AssayContent entity, List<AssayContentDetail> detailList) {
if (this.updateById(entity)) { if (this.updateById(entity)) {
detailService.saveBatch(detailList); detailService.updateBatchById(detailList);
return true; return true;
} }
return false; return false;
} }
@Override
public List<AssayContentDetail> detailListNoUsed(Long workCenterId) {
// 1. 查询作业中心下,最新的未被使用的化验明细
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(AssayContent.class)
.eq(AssayContent::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(AssayContent::getWcId, workCenterId)
.orderByDesc(AssayContent::getCreateTime);
List<AssayContent> contentList = baseMapper.selectList(wrapper);
// 若未查询到化验记录,直接返回空
if (contentList.size() == 0) {
return null;
}
// 查询该化验记录的明细数据,并返回
AssayContent assayContent = contentList.get(0);
List<AssayContentDetail> detailList = detailService.getByContentId(assayContent.getId());
return detailList;
}
} }

@ -3,10 +3,13 @@ package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.service.IDsPartService;
import org.springblade.desk.order.pojo.entity.MoldPlan; import org.springblade.desk.order.pojo.entity.MoldPlan;
import org.springblade.desk.order.pojo.entity.MoldPlanOrder; import org.springblade.desk.order.pojo.entity.MoldPlanOrder;
import org.springblade.desk.order.pojo.entity.MoldPlanTool; import org.springblade.desk.order.pojo.entity.MoldPlanTool;
import org.springblade.desk.order.mapper.MoldPlanMapper; import org.springblade.desk.order.mapper.MoldPlanMapper;
import org.springblade.desk.order.pojo.enums.MoldPlanEnum;
import org.springblade.desk.order.service.IMoldPlanOrderService; import org.springblade.desk.order.service.IMoldPlanOrderService;
import org.springblade.desk.order.service.IMoldPlanService; import org.springblade.desk.order.service.IMoldPlanService;
import org.springblade.desk.order.service.IMoldPlanToolService; import org.springblade.desk.order.service.IMoldPlanToolService;
@ -28,12 +31,44 @@ public class MoldPlanServiceImpl extends BaseServiceImpl<MoldPlanMapper, MoldPla
private final IMoldPlanToolService toolService; private final IMoldPlanToolService toolService;
private final IDsPartService dsPartService;
@Override @Override
public IPage<MoldPlan> selectPage(IPage<MoldPlan> page, MoldPlan entity) { public IPage<MoldPlan> selectPage(IPage<MoldPlan> page, MoldPlan entity) {
List<MoldPlan> dataList = baseMapper.selectPage(page, entity); List<MoldPlan> dataList = baseMapper.selectPage(page, entity);
return page.setRecords(dataList); return page.setRecords(dataList);
} }
@Override
public IPage<MoldPlan> selectPageApply(IPage<MoldPlan> page, MoldPlan entity) {
entity.setSource(MoldPlanEnum.SOURCE_USER.getCode());
List<MoldPlan> dataList = baseMapper.selectPage(page, entity);
return page.setRecords(dataList);
}
@Override
public IPage<MoldPlan> pageNearlyMonth(IPage<MoldPlan> page, MoldPlan entity) {
return null;
}
@Override
public boolean save(List<MoldPlan> planList) {
for (MoldPlan moldPlan : planList) {
moldPlan.setStatus(MoldPlanEnum.MAF_STATUS_CREATE.getCode());
moldPlan.setSource(MoldPlanEnum.SOURCE_USER.getCode());
// 工装
DsPartEntity dsPart = dsPartService.selectDsPartByPatCode(moldPlan.getPartCode());
if (dsPart != null && "压饼模".equals(dsPart.getPartName())) {
moldPlan.setPlanTypeCode(MoldPlanEnum.PLAN_TYPE_CODE_Z.getName());
moldPlan.setPlanTypeName(MoldPlanEnum.PLAN_TYPE_CODE_D.getName());
} else if (dsPart != null && "石墨模".equals(dsPart.getPartName())) {
moldPlan.setPlanTypeCode(MoldPlanEnum.PLAN_TYPE_CODE_Z.getName());
moldPlan.setPlanTypeName(MoldPlanEnum.PLAN_TYPE_NAME_D.getName());
}
}
return this.saveBatch(planList);
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean save(MoldPlan entity, List<MoldPlanOrder> orderList, List<MoldPlanTool> toolList) { public boolean save(MoldPlan entity, List<MoldPlanOrder> orderList, List<MoldPlanTool> toolList) {

@ -1,6 +1,9 @@
package org.springblade.desk.order.service.impl; package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail; import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.mapper.PlateGoodsRecordDetailMapper; import org.springblade.desk.order.mapper.PlateGoodsRecordDetailMapper;
@ -22,4 +25,27 @@ public class PlateGoodsRecordDetailServiceImpl extends BaseServiceImpl<PlateGood
List<PlateGoodsRecordDetail> dataList = baseMapper.selectPage(page, entity); List<PlateGoodsRecordDetail> dataList = baseMapper.selectPage(page, entity);
return page.setRecords(dataList); return page.setRecords(dataList);
} }
@Override
public boolean deleteLogicByRecordId(Long recordId) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PlateGoodsRecordDetail.class)
.eq(PlateGoodsRecordDetail::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(PlateGoodsRecordDetail::getPgrdId, recordId);
List<PlateGoodsRecordDetail> dataList = baseMapper.selectList(wrapper);
dataList.forEach(data -> {
data.setIsDeleted(CommonConstant.DELETE_TRUE);
});
return this.saveBatch(dataList);
}
@Override
public List<PlateGoodsRecordDetail> listByRecordId(Long recordId) {
LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PlateGoodsRecordDetail.class)
.eq(PlateGoodsRecordDetail::getIsDeleted, CommonConstant.DELETE_FALSE)
.eq(PlateGoodsRecordDetail::getPgrdId, recordId);
List<PlateGoodsRecordDetail> dataList = baseMapper.selectList(wrapper);
return dataList;
}
} }

@ -6,15 +6,21 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.dashboard.utils.DateUtils;
import org.springblade.desk.order.mapper.PlateGoodsRecordMapper;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail; import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.mapper.PlateGoodsRecordMapper; import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import org.springblade.desk.order.service.IPlateGoodsRecordDetailService; import org.springblade.desk.order.service.IPlateGoodsRecordDetailService;
import org.springblade.desk.order.service.IPlateGoodsRecordService; import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 服务实现类 * 服务实现类
@ -26,6 +32,7 @@ import java.util.List;
public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecordMapper, PlateGoodsRecord> implements IPlateGoodsRecordService { public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecordMapper, PlateGoodsRecord> implements IPlateGoodsRecordService {
private final IPlateGoodsRecordDetailService detailService; private final IPlateGoodsRecordDetailService detailService;
private final IYieldOrderService yieldOrderService;
@Override @Override
public IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) { public IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) {
@ -35,26 +42,28 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
@Override @Override
public boolean save(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) { public boolean save(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
// todo 需求单号需要优化
entity.setDemandCode(DateUtils.dateTimeNow());
entity.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
if (this.save(entity)) { if (this.save(entity)) {
for (PlateGoodsRecordDetail detail : detailList) { for (PlateGoodsRecordDetail detail : detailList) {
detail.setPgrdId(entity.getId()); detail.setPgrdId(entity.getId());
} }
detailService.saveBatch(detailList); return detailService.saveBatch(detailList);
return true;
} }
return false; return Boolean.FALSE;
} }
@Override @Override
public boolean update(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) { public boolean update(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
if (this.save(entity)) { if (this.save(entity)) {
//TODO 先根据需求ID将原明细删除 // 先根据需求ID将原明细删除
detailService.deleteLogicByRecordId(entity.getId());
// 保存新的明细 // 保存新的明细
detailService.saveBatch(detailList); return detailService.saveBatch(detailList);
return true;
} }
return false; return Boolean.FALSE;
} }
@Override @Override
@ -74,4 +83,20 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
return this.updateBatchById(plateGoodsRecordList); return this.updateBatchById(plateGoodsRecordList);
} }
@Override
public List<YieldOrder> listDetailYieldOrder(Long id) {
// 先查询关联的明细列表
List<PlateGoodsRecordDetail> detailList = detailService.listByRecordId(id);
if (Func.isEmpty(detailList)) {
return null;
}
List<Long> yieldOrderIds = detailList.stream().map(PlateGoodsRecordDetail::getYoId).collect(Collectors.toList());
// 再根据明细中的生产订单id查询订单
List<YieldOrder> yieldOrderList = yieldOrderService.listByIds(yieldOrderIds);
return yieldOrderList;
}
} }

@ -90,6 +90,16 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return page.setRecords(dataList); return page.setRecords(dataList);
} }
@Override
public IPage<YieldOrder> pageMaterialApply(IPage<YieldOrder> page, Long wcId, Integer materialType, Integer overHalfMon) {
YieldOrder entity = new YieldOrder();
entity.setWorkCenterId(wcId);
//TODO 1. 金钾银钾如何区分
// 2. 允许使用半月以上的数据是以生产订单的什么时间算
List<YieldOrder> dataList = baseMapper.selectPage(page, entity, null);
return page.setRecords(dataList);
}
@Override @Override
public boolean confirmBatch(List<Long> ids) { public boolean confirmBatch(List<Long> ids) {
List<YieldOrder> yieldOrderList = new ArrayList<>(); List<YieldOrder> yieldOrderList = new ArrayList<>();
@ -504,6 +514,11 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
craft.setCraftNo(craftJson.getString("craftNo")); craft.setCraftNo(craftJson.getString("craftNo"));
craft.setProcessNo(craftJson.getString("processNo")); craft.setProcessNo(craftJson.getString("processNo"));
craft.setPpsId(craftJson.getLong("ppsId")); craft.setPpsId(craftJson.getLong("ppsId"));
if (6 == craft.getPpsId()) {
craft.setPpsId(1044L);
} else if (8 == craft.getPpsId()) {
craft.setPpsId(1045L);
}
craft.setStartTime(craftJson.getDate("startTime")); craft.setStartTime(craftJson.getDate("startTime"));
craft.setEndTime(craftJson.getDate("endTime")); craft.setEndTime(craftJson.getDate("endTime"));
craft.setHourQuota(craftJson.getDouble("hourQuota")); craft.setHourQuota(craftJson.getDouble("hourQuota"));

@ -2,8 +2,13 @@ package org.springblade.desk.order.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.cache.WorkCenterCache;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.order.pojo.entity.AssayContent; import org.springblade.desk.order.pojo.entity.AssayContent;
import org.springblade.desk.order.pojo.vo.AssayContentVo; import org.springblade.desk.order.pojo.vo.AssayContentVo;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import java.util.Objects; import java.util.Objects;
@ -21,7 +26,16 @@ public class AssayContentWrapper extends BaseEntityWrapper<AssayContent, AssayCo
@Override @Override
public AssayContentVo entityVO(AssayContent entity) { public AssayContentVo entityVO(AssayContent entity) {
AssayContentVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, AssayContentVo.class)); AssayContentVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, AssayContentVo.class));
// vo.setStatusName(AssayContentEnum.getName(entity.getStatus()));
User user = UserCache.getUser(entity.getAssayMan());
if (Func.isNotEmpty(user)) {
vo.setAssayManName(user.getAccount());
}
WorkCenter workCenter = WorkCenterCache.getById(entity.getWcId());
if (Func.isNotEmpty(workCenter)) {
vo.setAssayManName(workCenter.getWcName());
}
return vo; return vo;
} }
} }

@ -23,6 +23,8 @@ public class MoldPlanWrapper extends BaseEntityWrapper<MoldPlan, MoldPlanVo> {
public MoldPlanVo entityVO(MoldPlan entity) { public MoldPlanVo entityVO(MoldPlan entity) {
MoldPlanVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, MoldPlanVo.class)); MoldPlanVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, MoldPlanVo.class));
vo.setStatusName(MoldPlanEnum.getName(entity.getStatus())); vo.setStatusName(MoldPlanEnum.getName(entity.getStatus()));
vo.setMafStatusName(MoldPlanEnum.getName(entity.getMafStatus()));
vo.setMafTypeName(MoldPlanEnum.getName(entity.getMafType()));
return vo; return vo;
} }
} }

@ -2,8 +2,14 @@ package org.springblade.desk.order.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper; import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil; import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.cache.WorkCenterCache;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import org.springblade.desk.order.pojo.vo.PlateGoodsRecordVo; import org.springblade.desk.order.pojo.vo.PlateGoodsRecordVo;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import java.util.Objects; import java.util.Objects;
@ -21,7 +27,18 @@ public class PlateGoodsRecordWrapper extends BaseEntityWrapper<PlateGoodsRecord,
@Override @Override
public PlateGoodsRecordVo entityVO(PlateGoodsRecord entity) { public PlateGoodsRecordVo entityVO(PlateGoodsRecord entity) {
PlateGoodsRecordVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, PlateGoodsRecordVo.class)); PlateGoodsRecordVo vo = Objects.requireNonNull(BeanUtil.copyProperties(entity, PlateGoodsRecordVo.class));
// vo.setStatusName(PlateGoodsRecordEnum.getName(entity.getStatus()));
WorkCenter workCenter = WorkCenterCache.getById(entity.getWcId());
if (Func.isNotEmpty(workCenter)) {
vo.setWcName(workCenter.getWcName());
}
User createUser = UserCache.getUser(entity.getCreateUser());
if (Func.isNotEmpty(createUser)) {
vo.setCreateUserName(createUser.getAccount());
}
vo.setStatusName(PlateGoodsEnum.getName(entity.getStatus()));
return vo; return vo;
} }
} }

@ -36,4 +36,7 @@ request:
url: "http://203.15.10.153:80300" url: "http://203.15.10.153:80300"
lims: lims:
#计量记录 #计量记录
url: "http://192.168.169.50:30000" url: "http://192.168.169.50:30000"
logging:
config: classpath:logback.xml

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<contextName>logback</contextName>
<property name="log.path" value="../applogs/desk.log"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>
%-4relative [%thread] %-5level %logger{30} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
</pattern>
</encoder>
</appender>
<!-- 引入异步日志 appender -->
<appender name="asyncAppender" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</appender>
<root level="error">
<appender-ref ref="console"/>
</root>
<root level="info">
<appender-ref ref="file"/>
</root>
</configuration>

@ -371,4 +371,18 @@ ADD (WORKSTATION_ID NUMBER(11));
COMMENT COMMENT
ON COLUMN MES_EQUIPMENT.EQUIPMENT_LOCATION IS '设备位置'; ON COLUMN MES_EQUIPMENT.EQUIPMENT_LOCATION IS '设备位置';
COMMENT COMMENT
ON COLUMN MES_EQUIPMENT.WORKSTATION_ID IS '作业中心ID'; ON COLUMN MES_EQUIPMENT.WORKSTATION_ID IS '作业中心ID';
-- 修改字段及注释
ALTER TABLE mes_mold_plan DROP COLUMN plan_type;
ALTER TABLE mes_mold_plan ADD plan_type_code NUMBER(38, 0) NULL;
COMMENT ON COLUMN mes_mold_plan.plan_type_code IS '计划类型; 13001:Z:制造(工装不为空且工装名称为压饼模),13002:D:夹具(工装不为空且工装名称为石墨模)';
-- 修改字段及注释
ALTER TABLE mes_mold_plan DROP COLUMN plan_type_name;
ALTER TABLE mes_mold_plan ADD plan_type_name NVARCHAR2(255) NULL;
COMMENT ON COLUMN mes_mold_plan.plan_type_name IS '计划类型名称;14001:Z:制造(工装不为空且工装名称为压饼模),14002:D:夹具(工装不为空且工装名称为石墨模)';
-- 添加字段及注释
ALTER TABLE MES_MOLD_PLAN ADD "SOURCE" NUMBER(38,0) NULL;
COMMENT ON COLUMN MES_MOLD_PLAN."SOURCE" IS '计划来源;15001:自动生成,15002:人工添加';

Loading…
Cancel
Save