订单管理接口修改

develop-QA
liuqingkun 3 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 {
//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
*
@ -55,19 +80,4 @@ public interface CacheNames {
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 = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
String NACOS_NAMESPACE = "db3f4da1-ae19-4104-8c17-6d9b8f069401";
// 测试环境
// String NACOS_NAMESPACE = "6cdd0310-0d61-4f54-891a-7fb06224d9b8";

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

@ -24,6 +24,10 @@
<groupId>org.springblade</groupId>
<artifactId>blade-starter-excel</artifactId>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-common</artifactId>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<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")
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;
/**
* 状态;1新建2已下发3已完成
* 状态; 11001新建11002:已下发11003已完成
*/
@TableField(value = "MAF_STATUS")
private Long mafStatus;
private Integer mafStatus;
/**
* 计划类型名称
* 类型; 12001热表烧结12002仓库
*/
@TableField(value = "PLAN_TYPE")
private String planType;
@TableField(value = "MAF_TYPE")
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")
private String quaLevel;
/**
*
*/
@TableField(value = "PLAN_TYPE_NAME")
private String planTypeName;
/**
* 零件编码
*/
@ -115,15 +119,14 @@ public class MoldPlan extends BaseEntity {
@TableField(value = "MEMO")
private String memo;
/**
* 类型;1热表烧结2仓库
*/
@TableField(value = "MAF_TYPE")
private Long mafType;
/**
* 紧急状态
*/
@TableField(value = "URGENT_TYPE")
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")
@Data
public class MoldPlanOrder extends BaseEntity {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 烧结模具计划ID
*/
@TableField(value = "MP_ID")
private Long mpId;
/**
* 生产订单id
*/
@TableField(value = "ORDER_ID")
private Long orderId;
}

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

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

@ -27,6 +27,6 @@ public class PlateGoodsRecordDetail extends BaseEntity {
* 生产订单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_DONE("完成", 10002),
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 int category;
final int code;
/**
* 匹配枚举值
@ -51,7 +78,7 @@ public enum MoldPlanEnum {
*/
public static String getName(int category) {
MoldPlanEnum item = Arrays.stream(MoldPlanEnum.values())
.filter(enumItem -> enumItem.getCategory() == category)
.filter(enumItem -> enumItem.getCode() == category)
.findFirst()
.orElse(null);
return ObjectUtil.isEmpty(item) ? StringPool.EMPTY : item.getName();

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

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

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

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

@ -6,6 +6,7 @@ import lombok.Data;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecord;
import java.io.Serial;
import java.util.List;
/**
* 镀层物料额外需求上报-视图类
@ -23,8 +24,20 @@ public class PlateGoodsRecordVo extends PlateGoodsRecord {
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 作业中心名称
*/
String wcName;
/**
* 状态名称
*/
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")
@Parameters({
@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 = "")
public R<IPage<AssayContentVo>> page(@Parameter(hidden = true) AssayContent entity, Query query) {
@ -54,56 +54,65 @@ public class AssayContentController extends BladeController {
}
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<AssayContent> detail(String id) {
AssayContent detail = assayContentService.getById(id);
return R.data(detail);
}
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<AssayContentVo> detail(String id) {
AssayContent content = assayContentService.getById(id);
List<AssayContentDetail> detailList = assayContentDetailService.getByContentId(content.getId());
/**
* 新增
*/
@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);
}
AssayContentVo vo = AssayContentWrapper.build().entityVO(content);
vo.setDetailList(detailList);
return R.data(vo);
}
/**
* 修改
*/
@PostMapping("/update")
@Operation(summary = "修改", description = "")
public R update(@Valid @RequestBody AssayContentSave saveData) {
AssayContent entity = saveData.getAssayContent();
List<AssayContentDetail> detailList = saveData.getDetailList();
assayContentService.update(entity, detailList);
return R.status(true);
}
/**
* 新增
*/
@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("/remove")
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
Boolean result = assayContentService.deleteLogic(Func.toLongList(ids));
return R.status(result);
}
/**
* 修改
*/
@PostMapping("/update")
@Operation(summary = "修改", description = "")
public R update(@Valid @RequestBody AssayContentSave saveData) {
AssayContent entity = saveData.getAssayContent();
List<AssayContentDetail> detailList = saveData.getDetailList();
assayContentService.update(entity, detailList);
return R.status(true);
}
/**
* 列表 - 未使用的化验含量
*/
@GetMapping("/listNoUsed")
@Operation(summary = "未使用的化验含量列表", description = "")
public R<AssayContent> listNoUsed(@Parameter(hidden = true) AssayContentDetail authClient, Query query) {
return R.data(null);
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
// 删除化验记录
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.service.IMoldPlanOrderService;
import org.springblade.desk.order.service.IMoldPlanService;
import org.springblade.desk.order.service.IMoldPlanToolService;
import org.springblade.desk.order.wrapper.MoldPlanWrapper;
import org.springframework.web.bind.annotation.*;
@ -40,64 +39,84 @@ import java.util.List;
public class MoldPlanController extends BladeController {
private final IMoldPlanService moldPlanService;
private final IMoldPlanToolService moldPlanToolService;
private final IMoldPlanOrderService moldPlanOrderService;
/**
* 分页
*/
@GetMapping("/page")
* 分页
*/
@GetMapping("/page")
@Parameters({
@Parameter(name = "moCode", description = "工装号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@Operation(summary = "分页", description = "")
public R<IPage<MoldPlanVo>> page(@Parameter(hidden = true) MoldPlan entity, Query query) {
@Operation(summary = "分页-所有需求", description = "")
public R<IPage<MoldPlanVo>> page(@Parameter(hidden = true) MoldPlan entity, Query query) {
IPage<MoldPlan> page = moldPlanService.selectPage(Condition.getPage(query), entity);
return R.data(MoldPlanWrapper.build().pageVO(page));
}
}
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<MoldPlan> detail(String id) {
MoldPlan detail = moldPlanService.getById(id);
return R.data(detail);
}
/**
* 分页
*/
@GetMapping("/pageApply")
@Parameters({
@Parameter(name = "moCode", description = "工装号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string"))
})
@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")
@Operation(summary = "新增", description = "")
public R save(@Valid @RequestBody MoldPlanSave saveData) {
MoldPlan entity = saveData.getMoldPlan();
List<MoldPlanOrder> orderList = saveData.getOrderList();
List<MoldPlanTool> toolList = saveData.getToolList();
moldPlanService.save(entity, orderList, toolList);
return R.status(true);
}
/**
* 分页-近一月的模具计划
*/
@GetMapping("/pageNearlyMonth")
@Operation(summary = "分页-近一月的模具计划", description = "")
public R<IPage<MoldPlanVo>> pageNearlyMonth(@Parameter(hidden = true) MoldPlan entity, Query query) {
IPage<MoldPlan> page = moldPlanService.pageNearlyMonth(Condition.getPage(query), entity);
return R.data(MoldPlanWrapper.build().pageVO(page));
}
/**
* 修改
*/
@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);
}
/**
* 详情
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<MoldPlan> detail(String id) {
MoldPlan detail = moldPlanService.getById(id);
return R.data(detail);
}
/**
* 删除
*/
@PostMapping("/remove")
@Operation(summary = "逻辑删除", description = "传入ids")
/**
* 新增
*/
@PostMapping("/save")
@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) {
Boolean result = moldPlanService.deleteLogic(Func.toLongList(ids));
return R.status(result);
@ -110,17 +129,7 @@ public class MoldPlanController extends BladeController {
@PostMapping("/closeBatch")
@Operation(summary = "批量关闭", description = "传入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);
}
/**
* 分页-近一月的模具计划
*/
@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.PlateGoodsRecord;
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.request.PlateGoodsRecordSave;
import org.springblade.desk.order.pojo.vo.PlateGoodsRecordVo;
import org.springblade.desk.order.service.IPlateGoodsRecordDetailService;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.wrapper.PlateGoodsRecordWrapper;
import org.springblade.desk.order.wrapper.YieldOrderWrapper;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -45,11 +47,9 @@ public class PlateGoodsRecordController extends BladeController {
* 分页
*/
@GetMapping("/page")
@Parameters({
@Parameter(name = "demandCode", description = "需求单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@Parameters({@Parameter(name = "demandCode", 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 = "")
public R<IPage<PlateGoodsRecordVo>> page(@Parameter(hidden = true) PlateGoodsRecord entity, Query query) {
IPage<PlateGoodsRecord> page = goodsRecordService.selectPage(Condition.getPage(query), entity);
@ -61,9 +61,16 @@ public class PlateGoodsRecordController extends BladeController {
*/
@GetMapping("/detail")
@Operation(summary = "详情", description = "")
public R<PlateGoodsRecord> detail(String id) {
public R<PlateGoodsRecordVo> detail(String 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")
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
// TODO 验证是否进行添加, 若已添加, 不允许删除
Boolean result = goodsRecordService.deleteLogic(Func.toLongList(ids));
return R.status(result);
}
@ -118,7 +126,7 @@ public class PlateGoodsRecordController extends BladeController {
@PostMapping("/closeBatch")
@Operation(summary = "批量关闭", description = "传入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);
}

@ -99,12 +99,31 @@ public class YieldOrderController extends BladeController {
page.setRecords(new ArrayList<>());
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));
}
/**
* 分页查询列表 - 物料申请
*/
@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 = "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) {
IPage<YieldPlan> page = yieldPlanService.selectPageElectroplate(Condition.getPage(query), entity);
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 = "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) {
IPage<YieldPlan> page = yieldPlanService.selectPageSintering(Condition.getPage(query), entity);
return R.data(YieldPlanWrapper.build().pageVO(page));

@ -22,4 +22,12 @@ public interface AssayContentDetailMapper extends BaseMapper<AssayContentDetail>
* @return
*/
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">
<mapper namespace = "org.springblade.desk.order.mapper.AssayContentDetailMapper">
<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>
<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>

@ -5,8 +5,9 @@
<mapper namespace="org.springblade.desk.order.mapper.AssayContentMapper">
<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,
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
WHERE IS_DELETED = 0
<if test = "entity.wcId != null and entity.wcId != ''">
AND WC_ID = #{entity.wcId}
</if>

@ -22,4 +22,13 @@ public interface MoldPlanMapper extends BaseMapper<MoldPlan> {
* @return
*/
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">
<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,
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
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 != ''">
AND MO_CODE LIKE CONCAT('%', CONCAT(#{entity.moCode}, '%'))
</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,
APPROVAL_TIME, APPROVAL_MEMO
FROM MES_PLATE_GOODS_APPLY
WHERE IS_DELETED = 0
<if test = "entity.demandCode != null and entity.demandCode != ''">
AND DEMAND_CODE LIKE CONCAT('%', CONCAT(#{entity.demandCode}, '%'))
</if>

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

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

@ -1,9 +1,12 @@
package org.springblade.desk.order.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.validation.constraints.NotEmpty;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.order.pojo.entity.AssayContentDetail;
import java.util.List;
/**
* 服务实现类
*
@ -18,4 +21,22 @@ public interface IAssayContentDetailService extends BaseService<AssayContentDeta
* @return
*/
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
*/
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);
/**
* 自定义分页 - 人工申报的
*
* @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.desk.order.pojo.entity.PlateGoodsRecordDetail;
import java.util.List;
/**
* 服务实现类
*
@ -18,4 +20,20 @@ public interface IPlateGoodsRecordDetailService extends BaseService<PlateGoodsRe
* @return
*/
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.desk.order.pojo.entity.PlateGoodsRecord;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import java.util.List;
@ -40,13 +41,21 @@ public interface IPlateGoodsRecordService extends BaseService<PlateGoodsRecord>
*/
boolean update(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList);
/**
* 批量审核
*
* @param ids
* @param approvalStatus
* @param approvalMemo
* @return
*/
boolean confirmBatch(List<Long> ids, Integer approvalStatus, String approvalMemo);
/**
* 批量审核
*
* @param ids
* @param approvalStatus
* @param approvalMemo
* @return
*/
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);
/**
* 自定义分页 - 物料申请
*
* @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;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.desk.order.pojo.entity.AssayContentDetail;
import org.springblade.desk.order.mapper.AssayContentDetailMapper;
@ -22,4 +25,22 @@ public class AssayContentDetailServiceImpl extends BaseServiceImpl<AssayContentD
List<AssayContentDetail> dataList = baseMapper.selectPage(page, entity);
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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.CommonConstant;
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.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.IAssayContentService;
import org.springframework.stereotype.Service;
@ -31,6 +35,7 @@ public class AssayContentServiceImpl extends BaseServiceImpl<AssayContentMapper,
@Override
public boolean save(AssayContent entity, List<AssayContentDetail> detailList) {
entity.setStatus(AssayContentEnum.STATUS_UNUSED.getCode());
if (this.save(entity)) {
for (AssayContentDetail detail : detailList) {
detail.setAcId(entity.getId());
@ -44,11 +49,31 @@ public class AssayContentServiceImpl extends BaseServiceImpl<AssayContentMapper,
@Override
public boolean update(AssayContent entity, List<AssayContentDetail> detailList) {
if (this.updateById(entity)) {
detailService.saveBatch(detailList);
detailService.updateBatchById(detailList);
return true;
}
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 lombok.RequiredArgsConstructor;
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.MoldPlanOrder;
import org.springblade.desk.order.pojo.entity.MoldPlanTool;
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.IMoldPlanService;
import org.springblade.desk.order.service.IMoldPlanToolService;
@ -28,12 +31,44 @@ public class MoldPlanServiceImpl extends BaseServiceImpl<MoldPlanMapper, MoldPla
private final IMoldPlanToolService toolService;
private final IDsPartService dsPartService;
@Override
public IPage<MoldPlan> selectPage(IPage<MoldPlan> page, MoldPlan entity) {
List<MoldPlan> dataList = baseMapper.selectPage(page, entity);
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)
@Override
public boolean save(MoldPlan entity, List<MoldPlanOrder> orderList, List<MoldPlanTool> toolList) {

@ -1,6 +1,9 @@
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.toolkit.Wrappers;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.mapper.PlateGoodsRecordDetailMapper;
@ -22,4 +25,27 @@ public class PlateGoodsRecordDetailServiceImpl extends BaseServiceImpl<PlateGood
List<PlateGoodsRecordDetail> dataList = baseMapper.selectPage(page, entity);
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.utils.AuthUtil;
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.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.IPlateGoodsRecordService;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
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 {
private final IPlateGoodsRecordDetailService detailService;
private final IYieldOrderService yieldOrderService;
@Override
public IPage<PlateGoodsRecord> selectPage(IPage<PlateGoodsRecord> page, PlateGoodsRecord entity) {
@ -35,26 +42,28 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
@Override
public boolean save(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
// todo 需求单号需要优化
entity.setDemandCode(DateUtils.dateTimeNow());
entity.setStatus(PlateGoodsEnum.STATUS_WAITING.getCode());
if (this.save(entity)) {
for (PlateGoodsRecordDetail detail : detailList) {
detail.setPgrdId(entity.getId());
}
detailService.saveBatch(detailList);
return true;
return detailService.saveBatch(detailList);
}
return false;
return Boolean.FALSE;
}
@Override
public boolean update(PlateGoodsRecord entity, List<PlateGoodsRecordDetail> detailList) {
if (this.save(entity)) {
//TODO 先根据需求ID将原明细删除
// 先根据需求ID将原明细删除
detailService.deleteLogicByRecordId(entity.getId());
// 保存新的明细
detailService.saveBatch(detailList);
return true;
return detailService.saveBatch(detailList);
}
return false;
return Boolean.FALSE;
}
@Override
@ -74,4 +83,20 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
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);
}
@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
public boolean confirmBatch(List<Long> ids) {
List<YieldOrder> yieldOrderList = new ArrayList<>();
@ -504,6 +514,11 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
craft.setCraftNo(craftJson.getString("craftNo"));
craft.setProcessNo(craftJson.getString("processNo"));
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.setEndTime(craftJson.getDate("endTime"));
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.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.vo.AssayContentVo;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import java.util.Objects;
@ -21,7 +26,16 @@ public class AssayContentWrapper extends BaseEntityWrapper<AssayContent, AssayCo
@Override
public AssayContentVo entityVO(AssayContent entity) {
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;
}
}

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

@ -2,8 +2,14 @@ package org.springblade.desk.order.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
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.enums.PlateGoodsEnum;
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;
@ -21,7 +27,18 @@ public class PlateGoodsRecordWrapper extends BaseEntityWrapper<PlateGoodsRecord,
@Override
public PlateGoodsRecordVo entityVO(PlateGoodsRecord entity) {
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;
}
}

@ -36,4 +36,7 @@ request:
url: "http://203.15.10.153:80300"
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
ON COLUMN MES_EQUIPMENT.EQUIPMENT_LOCATION IS '设备位置';
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