生产监控模块接口开发

liweidong
李涛 3 months ago
parent 69199221c7
commit 46083a4196
  1. 35
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/DeductionPreserveDto.java
  2. 28
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/OrderDeclareDto.java
  3. 56
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/PlateAroundDto.java
  4. 18
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SaveDeclareDto.java
  5. 23
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/SavePlateAroundDto.java
  6. 48
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/TaskCompleteDTO.java
  7. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/YieldOrderDTO.java
  8. 45
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DeductionPreserve.java
  9. 86
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/DisTasking.java
  10. 59
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/OrderDeclare.java
  11. 32
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/PlateAroundDelLog.java
  12. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java
  13. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
  14. 53
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlanLog.java
  15. 22
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/AfterPlateInVO.java
  16. 50
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java
  17. 63
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/DeductionPreserveVO.java
  18. 61
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/OrderDeclareVO.java
  19. 58
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PlateAroundVO.java
  20. 55
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/TaskCompleteVO.java
  21. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  22. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  23. 96
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DeductionPreserveController.java
  24. 108
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/DisTaskingController.java
  25. 116
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PlateAroundController.java
  26. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.java
  27. 43
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.xml
  28. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.java
  29. 74
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.xml
  30. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.java
  31. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/OrderDeclareMapper.xml
  32. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundDelLogMapper.java
  33. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.java
  34. 115
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/PlateAroundMapper.xml
  35. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanLogMapper.java
  36. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDeductionPreserveService.java
  37. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDisTaskingService.java
  38. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IOrderDeclareService.java
  39. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundDelLogService.java
  40. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPlateAroundService.java
  41. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  42. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanLogService.java
  43. 113
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DeductionPreserveServiceImpl.java
  44. 78
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DisTaskingServiceImpl.java
  45. 65
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/OrderDeclareServiceImpl.java
  46. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundDelLogServiceImpl.java
  47. 146
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PlateAroundServiceImpl.java
  48. 56
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  49. 21
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanLogServiceImpl.java
  50. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java

@ -0,0 +1,35 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 扣数维护 数据传输对象实体类
*
* @author litao
*/
@Data
public class DeductionPreserveDto {
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "维护人")
private Long userId;
@Schema(description = "维护时间-开始")
private Date startTime;
@Schema(description = "维护时间-结束")
private Date endTime;
}

@ -0,0 +1,28 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 缺件申请记录 数据传输对象实体类
*
* @author litao
*/
@Data
public class OrderDeclareDto {
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "生产标识")
private String quaLevel;
}

@ -0,0 +1,56 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 烧结配套齐套流转 数据传输对象实体类
*
* @author litao
*/
@Data
public class PlateAroundDto {
@Schema(description = "车间订单id")
private Long woId;
@Schema(description = "类型:1-镀前入库 2-镀前出库 3-镀后入库")
private Short paType;
@Schema(description = "单号")
private String paCode;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "入库班组")
private Long tsId;
@Schema(description = "入库供应商")
private Long ocId;
@Schema(description = "入库工序号")
private String orders;
@Schema(description = "入库工序名称")
private Long ppsId;
@Schema(description = "入库时间")
private Date createTimeStart;
@Schema(description = "入库时间")
private Date createTimeEnd;
}

@ -0,0 +1,18 @@
package org.springblade.desk.produce.pojo.dto;
import lombok.Data;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import java.util.List;
/**
* 提交申报数据 数据传输对象实体类
*
* @author litao
*/
@Data
public class SaveDeclareDto {
private List<OrderDeclare> orderDeclares;
}

@ -0,0 +1,23 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springblade.desk.produce.pojo.entity.PlateAround;
import java.util.List;
/**
* 镀前镀后保存 数据传输对象实体类
*
* @author litao
*/
@Data
public class SavePlateAroundDto {
@Schema(description = "镀前镀后")
private List<PlateAround> plateArounds;
@Schema(description = "类型:1-镀前入库 2-镀前出库 3-镀后入库")
private Short paType;
}

@ -0,0 +1,48 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
/**
* 调度任务分派 数据传输对象实体类
* @author litao
*/
@Data
public class TaskCompleteDTO {
@Schema(description = "id集合")
private List<Long> ddtIdList;
@Schema(description = "审理单号")
private String rsCode;
@Schema(description = "处理结果")
private String handleResult;
@Schema(description = "当前登录人")
private Long loginUser;
private Integer isDefault;
@Schema(description = "物料号")
private String partCode;
@Schema(description = "物料名称")
private String partName;
@Schema(description = "镀种")
private String plate;
@Schema(description = "版本")
private String version;
@Schema(description = "更改单号")
private String changeNo;
@Schema(description = "调度员")
private Long disAssignMan;
}

@ -6,7 +6,7 @@ import lombok.Data;
import java.util.Date;
/**
* 烧结配套齐套流转 数据传输对象实体类
* 镀前镀后 数据传输对象实体类
*
* @author litao
*/

@ -0,0 +1,45 @@
package org.springblade.desk.produce.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
/**
* 扣数维护 实体类
*
* @author BladeX
*/
@Data
@TableName("MES_DEDUCTION_PRESERVE")
@Schema(description = "DeductionPreserve对象")
@EqualsAndHashCode(callSuper = true)
public class DeductionPreserve extends BaseEntity {
@Schema(description = "车间订单id")
private Long woId;
@Schema(description = "当前工序")
private Long wpId;
@Schema(description = "数量")
private Double qty;
@Schema(description = "扣数工序")
private Long deductionProcess;
@Schema(description = "试验数")
private Double testQty;
@Schema(description = "报废数")
private Double scrapQty;
@Schema(description = "损耗数")
private Double lossQty;
@Schema(description = "备注")
private String memo;
}

@ -0,0 +1,86 @@
package org.springblade.desk.produce.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 调度任务分派 实体类
*
* @author BladeX
*/
@Data
@TableName("MES_DIS_TASKING")
@Schema(description = "DisTasking对象")
@EqualsAndHashCode(callSuper = true)
public class DisTasking extends BaseEntity {
/**
* 待分派
*/
public static Integer TASK_STATUS_WAIT = 0;
/**
* 已分派
*/
public static Integer TASK_STATUS_ALREADY = 1;
/**
* 已处理
*/
public static Integer TASK_STATUS_COMPLETED = 2;
/**
* 待质量处理
*/
public static Integer TASK_STATUS_QUALITY = 3;
public static Map<Integer, String> taskStatusMap = new HashMap<>();
static {
taskStatusMap.put(TASK_STATUS_WAIT, "待分派");
taskStatusMap.put(TASK_STATUS_ALREADY, "已分派");
taskStatusMap.put(TASK_STATUS_COMPLETED, "已处理");
taskStatusMap.put(TASK_STATUS_QUALITY, "待处理");
}
@Schema(description = "工艺任务分派")
private Long dtId;
@Schema(description = "调度分派人")
private Long disAssignMan;
@Schema(description = "调度分派时间")
private Date disAssignTime;
@Schema(description = "调度处理人")
private Long dispatchMan;
@Schema(description = "调度处理时间")
private Date dispatchTime;
@Schema(description = "工艺任务状态")
private Integer disTaskStatus;
@Schema(description = "工艺任务标记")
private String disOutFlag;
@Schema(description = "审理单号")
private String rsCode;
@Schema(description = "处理结果")
private String handleResult;
@Schema(description = "路线卡号")
private String cardNo;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "备注")
private String memo;
}

@ -0,0 +1,59 @@
package org.springblade.desk.produce.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 缺件申请记录 实体类
*
* @author BladeX
*/
@Data
@TableName("MES_ORDER_DECLARE")
@Schema(description = "OrderDeclare对象")
@EqualsAndHashCode(callSuper = true)
public class OrderDeclare extends BaseEntity {
@Schema(description = "领用单号")
private String useCode;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "返工单号")
private String reworkCode;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "生产标识")
private String quaLevel;
@Schema(description = "数量")
private Double quantity;
@Schema(description = "备注")
private String remark;
@Schema(description = "保管员")
private String keeper;
@Schema(description = "计划员")
private String planMan;
@Schema(description = "状态 1、新建")
private Short podStatus;
@Schema(description = "库位")
private String locationNo;
}

@ -0,0 +1,32 @@
package org.springblade.desk.produce.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
import java.util.Date;
/**
* 镀后入库删除记录 实体类
*
* @author BladeX
*/
@Data
@TableName("MES_PLATE_AROUND_DEL_LOG")
@Schema(description = "PlateAroundDelLog对象")
@EqualsAndHashCode(callSuper = true)
public class PlateAroundDelLog extends BaseEntity {
@Schema(description = "作业计划")
private Long wpId;
@Schema(description = "车间订单编码")
private String woCode;
@Schema(description = "删除的数据")
private String aroundData;
}

@ -170,12 +170,12 @@ public class WorkOrder extends BaseEntity {
* 试验数量
*/
@Schema(description = "试验数量")
private Integer testQty;
private Double testQty;
/**
* 损耗数量
*/
@Schema(description = "损耗数量")
private Integer lossQty;
private Double lossQty;
/**
* 镀层单件定额
*/
@ -335,7 +335,7 @@ public class WorkOrder extends BaseEntity {
* 报废数量
*/
@Schema(description = "报废数量")
private Integer scrapQty;
private Double scrapQty;
/**
* 外协订单发送状态
*/

@ -114,7 +114,7 @@ public class WorkPlan extends BaseEntity {
* 试验数量
*/
@Schema(description = "试验数量")
private Integer testQty;
private Double testQty;
/**
* 合格数量
*/
@ -124,7 +124,7 @@ public class WorkPlan extends BaseEntity {
* 报废数量
*/
@Schema(description = "报废数量")
private Integer scrapQty;
private Double scrapQty;
/**
* 不合格数量
*/
@ -189,7 +189,7 @@ public class WorkPlan extends BaseEntity {
* 消耗数量
*/
@Schema(description = "消耗数量")
private Short lossQty;
private Double lossQty;
/**
* 金额
*/

@ -0,0 +1,53 @@
package org.springblade.desk.produce.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
/**
* 车间作业计划修改日志 实体类
*
* @author BladeX
*/
@Data
@TableName("MES_WORK_PLAN_LOG")
@Schema(description = "WorkPlanLog对象")
@EqualsAndHashCode(callSuper = true)
public class WorkPlanLog extends BaseEntity {
@Schema(description = "车间订单")
private Long woId;
@Schema(description = "订单编号")
private String woCode;
@Schema(description = "路线卡号")
private String cardNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "批次")
private String batchNo;
@Schema(description = "工序")
private String ppsName;
@Schema(description = "数量")
private Double workQty;
@Schema(description = "原班组")
private String oriMakeTeam;
@Schema(description = "现班组")
private String makeTeam;
@Schema(description = "原接收人")
private String oriReceiveMan;
@Schema(description = "现接收人")
private String receiveMan;
}

@ -0,0 +1,22 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import java.util.Date;
/**
* 镀前镀后 视图实体类
*
* @author litao
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class AfterPlateInVO extends WorkPlan {
@Schema(description = "0-转工 1-入库")
private Integer hrTypeBool;
}

@ -0,0 +1,50 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 报工调整列表 视图实体类
*
* @author litao
*/
@Data
public class ByCardNoByPlanVO {
@Schema(description = "工序id")
private Long wpId;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "当前工序")
private String ppsName;
@Schema(description = "数量")
private Double workQty;
@Schema(description = "班组id")
private Long tsId;
@Schema(description = "班组名称")
private String tsName;
@Schema(description = "接收人id")
private Long userId;
@Schema(description = "接收人名称")
private String userName;
}

@ -0,0 +1,63 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import java.util.Date;
/**
* 扣数维护 视图实体类
*
* @author litao
*/
@Data
public class DeductionPreserveVO {
@Schema(description = "车间订单id")
private Long woId;
@Schema(description = "当前工序")
private Long wpId;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "当前工序")
private Long ppsId;
@Schema(description = "当前工序")
private String ppsName;
@Schema(description = "数量")
private Double qty;
@Schema(description = "试验数")
private Double testQty;
@Schema(description = "报废数")
private Double scrapQty;
@Schema(description = "损耗数")
private Double lossQty;
@Schema(description = "备注")
private String memo;
@Schema(description = "维护时间")
private Date maintenanceTime;
@Schema(description = "维护人")
private Long maintenance;
@Schema(description = "维护人")
private String maintenanceName;
}

@ -0,0 +1,61 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 缺件申请记录 视图实体类
*
* @author litao
*/
@Data
public class OrderDeclareVO {
@Schema(description = "车间订单id")
private Long woId;
@Schema(description = "当前工序")
private Long wpId;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "当前工序")
private Long ppsId;
@Schema(description = "当前工序")
private String ppsName;
@Schema(description = "数量")
private Double qty;
@Schema(description = "试验数")
private Double testQty;
@Schema(description = "报废数")
private Double scrapQty;
@Schema(description = "损耗数")
private Double lossQty;
@Schema(description = "备注")
private String memo;
@Schema(description = "维护时间")
private Date maintenanceTime;
@Schema(description = "维护人")
private Long maintenance;
@Schema(description = "维护人")
private String maintenanceName;
}

@ -0,0 +1,58 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 镀前镀后 视图实体类
*
* @author litao
*/
@Data
public class PlateAroundVO {
@Schema(description = "车间订单id")
private Long woId;
@Schema(description = "单号")
private String paCode;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "零件名称")
private String partName;
@Schema(description = "入库数量")
private Double quantity;
@Schema(description = "入库班组")
private Long tsId;
@Schema(description = "入库供应商")
private Long ocId;
@Schema(description = "入库工序号")
private String orders;
@Schema(description = "入库工序名称")
private Long ppsId;
@Schema(description = "入库人员")
private Long createUser;
@Schema(description = "入库时间")
private Date createTime;
}

@ -0,0 +1,55 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 调度任务分派 视图实体类
*
* @author litao
*/
@Data
public class TaskCompleteVO {
@Schema(description = "调度任务id")
private Long id;
@Schema(description = "物料号")
private String partCode;
@Schema(description = "物料名称")
private String partName;
@Schema(description = "镀种")
private String plate;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "版本")
private String version;
@Schema(description = "PDM发布时间")
private Date pdmCreateTime;
@Schema(description = "工艺路线详情")
private String wayDetails;
@Schema(description = "在制品意见")
private String wipTake;
@Schema(description = "更改单号")
private String changeNo;
@Schema(description = "完成时间")
private Date craftTime;
@Schema(description = "任务时间")
private Date taskTime;
}

@ -197,4 +197,12 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
String getMaxCardNo();
/**
* <p>方法名: getNewCardNo </p>
* <p>方法描述: 通过旧路线卡号去erp获取新的 </p>
*
* @param cardNo 旧单号
* @return java.lang.String
*/
String getNewCardNo(String cardNo);
}

@ -695,6 +695,16 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return workOrderMapper.getMaxCardNo();
}
@Override
public String getNewCardNo(String cardNo) {
YieldOrder yieldOrder = this.getOne(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, cardNo));
if (yieldOrder != null) {
return yieldOrder.getCardNo();
}
// todo 通过旧路线卡号去erp获取新的
return "";
}
/**
* 验证零件子件信息
*

@ -0,0 +1,96 @@
package org.springblade.desk.produce.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.DeductionPreserveDto;
import org.springblade.desk.produce.pojo.dto.OrderDeclareDto;
import org.springblade.desk.produce.pojo.dto.SaveDeclareDto;
import org.springblade.desk.produce.pojo.entity.DeductionPreserve;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO;
import org.springblade.desk.produce.service.IDeductionPreserveService;
import org.springblade.desk.produce.service.IOrderDeclareService;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springframework.web.bind.annotation.*;
/**
* 扣数维护
*
* @author litao
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/deductionPreserve")
@Tag(name = "扣数维护", description = "接口")
public class DeductionPreserveController extends BladeController {
private final IDeductionPreserveService deductionPreserveService;
private final IOrderDeclareService orderDeclareService;
@GetMapping("/workOrderByCardNo")
@ApiOperationSupport(order = 1)
@Operation(summary = "扣数维护查询", description = "cardNo")
public R workOrderByCardNo(String cardNo) {
return R.data(deductionPreserveService.workOrderByCardNo(cardNo));
}
@PostMapping("/savaData")
@ApiOperationSupport(order = 2)
@Operation(summary = "保存修改的扣数维护", description = "deductionPreserve")
public R savaData(@RequestBody DeductionPreserve deductionPreserve) {
return R.data(deductionPreserveService.savaData(deductionPreserve));
}
@GetMapping("/queryData")
@ApiOperationSupport(order = 3)
@Operation(summary = "加载扣数维护记录", description = "")
public R<IPage<DeductionPreserveVO>> queryData(DeductionPreserveDto deductionPreserve, Query query) {
return R.data(deductionPreserveService.queryData(Condition.getPage(query), deductionPreserve));
}
@GetMapping("/orderDeclarePage")
@ApiOperationSupport(order = 4)
@Operation(summary = "缺件申请列表", description = "")
public R<IPage<OrderDeclare>> orderDeclarePage(OrderDeclareDto orderDeclareDto, Query query) {
LambdaQueryWrapper<OrderDeclare> wrapper = Wrappers.lambdaQuery(OrderDeclare.class);
// wrapper.eq(OrderDeclare::getCreateUser, AuthUtil.getUserId());
wrapper.like(orderDeclareDto.getWoCode() != null, OrderDeclare::getWoCode, orderDeclareDto.getWoCode());
wrapper.like(orderDeclareDto.getPartCode() != null, OrderDeclare::getPartCode, orderDeclareDto.getPartCode());
wrapper.like(orderDeclareDto.getBatchNo() != null, OrderDeclare::getBatchNo, orderDeclareDto.getBatchNo());
wrapper.like(orderDeclareDto.getQuaLevel() != null, OrderDeclare::getQuaLevel, orderDeclareDto.getQuaLevel());
return R.data(orderDeclareService.page(Condition.getPage(query), wrapper));
}
@PostMapping("/signDelete")
@ApiOperationSupport(order = 5)
@Operation(summary = "删除提交的缺件申报数据", description = "id")
public R signDelete(@RequestParam Long id) {
return R.data(orderDeclareService.signDelete(id));
}
@GetMapping("/queryBatch")
@ApiOperationSupport(order = 6)
@Operation(summary = "缺件申报-通过零件号获取批次号", description = "")
public R<QueryBatchVO> queryBatch(String partCode) {
return R.data(orderDeclareService.queryBatch(partCode));
}
@PostMapping("/saveDeclare")
@ApiOperationSupport(order = 7)
@Operation(summary = "缺件申报-提交申报数据", description = "id")
public R saveDeclare(@RequestBody SaveDeclareDto saveDeclareDto) {
return R.data(orderDeclareService.saveDeclare(saveDeclareDto));
}
}

@ -0,0 +1,108 @@
package org.springblade.desk.produce.controller;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.utils.CommonUtil;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO;
import org.springblade.desk.produce.pojo.entity.DisTasking;
import org.springblade.desk.produce.pojo.entity.MakeRec;
import org.springblade.desk.produce.pojo.entity.WorkPlanLog;
import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO;
import org.springblade.desk.produce.pojo.vo.TaskCompleteVO;
import org.springblade.desk.produce.service.IDisTaskingService;
import org.springblade.desk.produce.service.IWorkPlanLogService;
import org.springblade.job.pojo.entity.JobInfo;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
* 调度任务分派
*
* @author litao
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/disTasking")
@Tag(name = "调度任务分派", description = "接口")
public class DisTaskingController extends BladeController {
private final IDisTaskingService disTaskingService;
private final IWorkPlanLogService workPlanLogService;
@GetMapping("/disTaskHandle")
@ApiOperationSupport(order = 1)
@Operation(summary = "调度任务分派", description = "传入taskCompleteDTO")
public R<IPage<TaskCompleteVO>> disTaskHandle(TaskCompleteDTO taskCompleteDTO, Query query) {
if (CommonUtil.isAllFieldsEmpty(taskCompleteDTO)) {
taskCompleteDTO.setIsDefault(1);
}
taskCompleteDTO.setLoginUser(AuthUtil.getUserId());
IPage<TaskCompleteVO> pages = disTaskingService.disTaskHandle(Condition.getPage(query), taskCompleteDTO);
return R.data(pages);
}
@PostMapping("/taskComplete")
@ApiOperationSupport(order = 2)
@Operation(summary = "任务完成", description = "传入taskCompleteDTO")
public R taskComplete(@RequestBody TaskCompleteDTO taskCompleteDTO) {
List<Long> ddtIdList = taskCompleteDTO.getDdtIdList();
String rsCode = taskCompleteDTO.getRsCode();
String handleResult = taskCompleteDTO.getHandleResult();
if (CollectionUtils.isEmpty(ddtIdList) || StringUtils.isBlank(rsCode) || StringUtils.isBlank(handleResult)) {
return R.fail("参数错误");
}
List<DisTasking> disTaskings = disTaskingService.list(Wrappers.lambdaQuery(DisTasking.class).in(DisTasking::getId, ddtIdList));
disTaskings.forEach(disTasking -> {
disTasking.setDispatchTime(new Date());
disTasking.setRsCode(rsCode);
disTasking.setHandleResult(handleResult);
disTasking.setDisTaskStatus(DisTasking.TASK_STATUS_COMPLETED);
});
return R.data(disTaskingService.updateBatchById(disTaskings));
}
@GetMapping("/getByCardNoByPlan")
@ApiOperationSupport(order = 3)
@Operation(summary = "报工调整列表", description = "传入cardNo")
public R getByCardNoByPlan(String cardNo) {
if (StringUtils.isBlank(cardNo)) {
return R.fail("流程卡号为空");
}
List<ByCardNoByPlanVO> list = disTaskingService.getByCardNoByPlan(cardNo);
return R.data(list);
}
@GetMapping("/queryByWpIdlLst")
@ApiOperationSupport(order = 4)
@Operation(summary = "报工调整详情", description = "传入wpId")
public R queryByWpIdlLst(Long wpId) {
if (wpId == null) {
return R.fail("参数为空");
}
List<MakeRec> list = disTaskingService.queryByWpIdlLst(wpId);
return R.data(list);
}
@GetMapping("/workPlanLogPage")
@ApiOperationSupport(order = 5)
@Operation(summary = "车间作业计划修改日志", description = "workPlanLog")
public R<IPage<WorkPlanLog>> workPlanLogPage(WorkPlanLog workPlanLog, Query query) {
return R.data(workPlanLogService.page(Condition.getPage(query), Wrappers.lambdaQuery(workPlanLog)));
}
}

@ -0,0 +1,116 @@
package org.springblade.desk.produce.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.produce.pojo.dto.PlateAroundDto;
import org.springblade.desk.produce.pojo.dto.SavePlateAroundDto;
import org.springblade.desk.produce.pojo.entity.PlateAround;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.AfterPlateInVO;
import org.springblade.desk.produce.pojo.vo.PlateAroundVO;
import org.springblade.desk.produce.service.IPlateAroundService;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 镀前镀后管理
*
* @author litao
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/plateAround")
@Tag(name = "镀前镀后", description = "接口")
public class PlateAroundController extends BladeController {
private final IPlateAroundService plateAroundService;
@GetMapping("/queryPlateAround")
@ApiOperationSupport(order = 1)
@Operation(summary = "镀前镀后列表(通用)", description = "传入PlateAroundDto")
public R<IPage<PlateAroundVO>> queryByReadStatus(PlateAroundDto plateAroundDto, Query query) {
if (plateAroundDto.getPaType() == null) {
throw new ServiceException("请选择类型");
}
IPage<PlateAroundVO> pages = plateAroundService.queryByReadStatus(Condition.getPage(query), plateAroundDto);
return R.data(pages);
}
@GetMapping("/getBeforePlatInCardNo")
@ApiOperationSupport(order = 2)
@Operation(summary = "扫描流程卡获取镀前入库数据", description = "传入cardNo")
public R getBeforePlatInCardNo(String cardNo) {
// todo 获取当前登录人班组
List<Long> tsIds = new ArrayList<>();
// 获取镀前入库数据
WorkPlan wp = plateAroundService.getBeforePlatInCardNo(cardNo, tsIds);
if (wp != null) {
if (!wp.getStatus().equals(WorkPlan.STATUS_WORK_OK)) {
throw new ServiceException("工序未报工完成,不能进行镀前入库!");
}
} else {
throw new ServiceException("未找到镀前入库工序,无法入库!");
}
return R.data(wp);
}
@GetMapping("/getBeforePlatOutCardNo")
@ApiOperationSupport(order = 3)
@Operation(summary = "扫描流程卡获取镀前出库数据", description = "传入cardNo")
public R getBeforePlatOutCardNo(String cardNo) {
// todo 获取当前登录人班组
List<Long> tsIds = new ArrayList<>();
PlateAround plateAround = plateAroundService.getBeforePlatOutCardNo(cardNo, tsIds);
if (plateAround == null) {
throw new ServiceException("未找到镀前出库工序,无法出库!");
}
return R.data(plateAround);
}
@GetMapping("/getAfterPlatInCardNo")
@ApiOperationSupport(order = 4)
@Operation(summary = "扫描流程卡获取镀后数据", description = "传入cardNo")
public R getAfterPlatInCardNo(String cardNo) {
// todo 获取当前登录人班组
List<Long> tsIds = new ArrayList<>();
return R.data(plateAroundService.getAfterPlatInCardNo(cardNo, tsIds));
}
@PostMapping(value = "/savePlateAround")
@ApiOperationSupport(order = 5)
@Operation(summary = "镀前镀后保存", description = "")
public R savePlateAround(@RequestBody SavePlateAroundDto plateAroundDto) {
return R.data(plateAroundService.savePlateAround(plateAroundDto));
}
@PostMapping(value = "/deleteById")
@ApiOperationSupport(order = 6)
@Operation(summary = "删除镀后入库", description = "")
public R deleteById(@RequestParam Long id) {
return R.data(plateAroundService.deletePlateAround(id));
}
@GetMapping("/queryDelLogRecord")
@ApiOperationSupport(order = 7)
@Operation(summary = "加载镀后入库记录", description = "传入cardNo")
public R queryDelLogRecord(PlateAroundDto plateAroundDto, Query query) {
return R.data(plateAroundService.queryDelLogRecord(Condition.getPage(query), plateAroundDto));
}
}

@ -0,0 +1,20 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.produce.pojo.dto.DeductionPreserveDto;
import org.springblade.desk.produce.pojo.entity.DeductionPreserve;
import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO;
import java.util.List;
/**
* 扣数维护 Mapper 接口
*
* @author BladeX
*/
public interface DeductionPreserveMapper extends BaseMapper<DeductionPreserve> {
List<DeductionPreserveVO> queryData(IPage<DeductionPreserveVO> page, DeductionPreserveDto query);
}

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.produce.mapper.DeductionPreserveMapper">
<select id="queryData" resultType="org.springblade.desk.produce.pojo.vo.DeductionPreserveVO">
SELECT
b.WO_CODE AS woCode,
c.PART_CODE AS partCode,
b.BATCH_NO AS batchNo,
d.PPS_ID AS ppsId,
a.QTY AS qty,
a.TEST_QTY AS testQty,
a.SCRAP_QTY AS scrapQty,
a.LOSS_QTY AS lossQty,
a.MEMO AS memo,
a.CREATE_TIME AS maintenanceTime,
a.CREATE_USER AS maintenance
FROM MES_DEDUCTION_PRESERVE a
INNER JOIN MES_WORK_ORDER b ON a.WO_ID = b.ID
INNER JOIN MES_YIELD_ORDER c ON b.YO_ID = c.ID
INNER JOIN MES_WORK_PLAN d ON a.WP_ID = d.ID
<where>
a.IS_DELETED = 0
<if test="query.woCode != null and query.woCode != ''">
AND b.WO_CODE LIKE concat(concat('%', #{query.woCode}),'%')
</if>
<if test="query.partCode != null and query.partCode != ''">
AND c.PART_CODE LIKE concat(concat('%', #{query.partCode}),'%')
</if>
<if test="query.batchNo != null and query.batchNo != ''">
AND b.BATCH_NO LIKE concat(concat('%', #{query.batchNo}),'%')
</if>
<if test="query.userId != null and query.userId != ''">
AND a.CREATE_USER = #{query.userId}
</if>
<if test="query.startTime != null and query.endTime != null">
AND a.CREATE_TIME BETWEEN #{query.startTime} AND #{query.endTime}
</if>
</where>
order by a.CREATE_TIME desc
</select>
</mapper>

@ -0,0 +1,25 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO;
import org.springblade.desk.produce.pojo.entity.DisTasking;
import org.springblade.desk.produce.pojo.entity.MakeRec;
import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO;
import org.springblade.desk.produce.pojo.vo.TaskCompleteVO;
import java.util.List;
/**
* 调度任务分派 Mapper 接口
*
* @author BladeX
*/
public interface DisTaskingMapper extends BaseMapper<DisTasking> {
List<TaskCompleteVO> disTaskHandle(IPage<TaskCompleteVO> page, TaskCompleteDTO query);
List<ByCardNoByPlanVO> getByCardNoByPlan(Long id);
List<MakeRec> queryByWpIdlLst(Long wpId);
}

@ -0,0 +1,74 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.produce.mapper.DisTaskingMapper">
<select id="disTaskHandle" resultType="org.springblade.desk.produce.pojo.vo.TaskCompleteVO">
SELECT
a.id as id,
b.plate as plate,
a.card_no as cardNo,
a.batch_no as batchNo,
b.part_code as partCode,
b.part_name as partName,
b.version as version,
b.pdm_create_time as pdmCreateTime,
b.way_details as wayDetails,
b.wip_take as wipTake,
b.change_no as changeNo,
b.craft_time as craftTime,
a.DIS_ASSIGN_TIME as taskTime
FROM
MES_DIS_TASKING a INNER JOIN DS_TASKING b ON a.DT_ID = b.ID
<where>
a.DISPATCH_MAN = #{query.loginUser} AND
a.DIS_TASK_STATUS != 3
<if test="query.isDefault == 1">
AND a.DIS_TASK_STATUS = 1
</if>
<if test="query.partCode != null and query.partCode != ''">
AND b.PART_CODE LIKE concat(concat('%', #{query.partCode}),'%')
</if>
<if test="query.partName != null and query.partName != ''">
AND b.PART_NAME LIKE concat(concat('%', #{query.partName}),'%')
</if>
<if test="query.plate != null and query.plate != ''">
AND b.plate LIKE concat(concat('%', #{query.plate}),'%')
</if>
<if test="query.version != null and query.version != ''">
AND b.version LIKE concat(concat('%', #{query.version}),'%')
</if>
<if test="query.changeNo != null and query.changeNo != ''">
AND b.CHANGE_NO LIKE concat(concat('%', #{query.changeNo}),'%')
</if>
<if test="query.disAssignMan != null and query.disAssignMan != ''">
AND a.DIS_ASSIGN_MAN = #{query.disAssignMan}
</if>
</where>
</select>
<select id="getByCardNoByPlan" resultType="org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO">
SELECT
a.ID AS wpId,
b.WO_CODE AS woCode,
c.PART_CODE AS partCode,
b.CARD_NO AS cardNo,
b.BATCH_NO AS batchNo,
d.NAME AS ppsName,
a.WORK_QTY AS workQty,
a.MAKE_TEAM AS tsId,
e.TS_NAME AS tsName,
a.RECEIVE_MAN AS userId
FROM
MES_WORK_PLAN a
INNER JOIN MES_WORK_ORDER b ON a.WO_ID = b.ID
INNER JOIN MES_YIELD_ORDER c ON b.yo_id = c.id
LEFT JOIN BS_PROCESS_SET d ON a.PPS_ID = d.ID
LEFT JOIN BA_TEAM_SET e ON a.MAKE_TEAM = e.ID
WHERE a.WO_ID = #{id}
</select>
<select id="queryByWpIdlLst" resultType="org.springblade.desk.produce.pojo.entity.MakeRec">
select a.* from mes_make_rec a
inner join mes_work_plan b on b.id =a.WP_ID
inner join BS_PROCESS_SET c on b.PPS_ID = c.ID
where c.IS_DISPATCH = 0 and a.WP_ID = #{wpId}
</select>
</mapper>

@ -0,0 +1,13 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
/**
* 缺件申请记录 Mapper 接口
*
* @author BladeX
*/
public interface OrderDeclareMapper extends BaseMapper<OrderDeclare> {
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.produce.mapper.OrderDeclareMapper">
</mapper>

@ -0,0 +1,14 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog;
/**
* 镀后入库删除记录 Mapper 接口
*
* @author BladeX
*/
public interface PlateAroundDelLogMapper extends BaseMapper<PlateAroundDelLog> {
}

@ -1,7 +1,13 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.produce.pojo.dto.PlateAroundDto;
import org.springblade.desk.produce.pojo.entity.PlateAround;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.PlateAroundVO;
import java.util.List;
/**
* 镀前镀后 Mapper 接口
@ -10,4 +16,13 @@ import org.springblade.desk.produce.pojo.entity.PlateAround;
*/
public interface PlateAroundMapper extends BaseMapper<PlateAround> {
List<PlateAroundVO> queryByReadStatus(IPage<PlateAroundVO> page, PlateAroundDto query);
WorkPlan getBeforePlatInCardNo(Long id, List<Long> tsIds, Long userId);
PlateAround getBeforePlatOutCardNo(Long id, List<Long> tsIds, Long userId);
WorkPlan getAfterPlatInCardNo(Long id, List<Long> tsIds);
List<PlateAround> listByWoCardNo(String cardNo);
}

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.produce.mapper.PlateAroundMapper">
<select id="queryByReadStatus" resultType="org.springblade.desk.produce.pojo.vo.PlateAroundVO">
SELECT
c.ID AS woId,
a.PA_CODE as paCode,
c.CARD_NO as cardNo,
c.WO_CODE as woCode,
c.BATCH_NO as batchNo,
d.PART_CODE as partCode,
d.PART_NAME as partName,
a.QUANTITY as quantity,
a.TS_ID as tsId,
a.OC_ID as ocId,
b.ORDERS as orders,
b.PPS_ID as ppsId,
a.CREATE_USER as createUser,
a.CREATE_TIME as createTime
FROM MES_PLATE_AROUND a
INNER JOIN MES_WORK_PLAN b ON a.WP_ID = b.ID
INNER JOIN MES_WORK_ORDER c ON b.WO_ID = C.ID
INNER JOIN MES_YIELD_ORDER d ON c.YO_ID = d.ID
<where>
a.IS_DELETED = 0 and a.PA_TYPE = #{query.paType}
<if test="query.paCode != null and query.paCode != ''">
AND a.PA_CODE LIKE concat(concat('%', #{query.paCode}),'%')
</if>
<if test="query.cardNo != null and query.cardNo != ''">
AND c.CARD_NO LIKE concat(concat('%', #{query.cardNo}),'%')
</if>
<if test="query.woCode != null and query.woCode != ''">
AND c.WO_CODE LIKE concat(concat('%', #{query.woCode}),'%')
</if>
<if test="query.batchNo != null and query.batchNo != ''">
AND c.BATCH_NO LIKE concat(concat('%', #{query.batchNo}),'%')
</if>
<if test="query.partCode != null and query.partCode != ''">
AND d.PART_CODE LIKE concat(concat('%', #{query.partCode}),'%')
</if>
<if test="query.tsId != null">
AND a.TS_ID = #{query.tsId}
</if>
<if test="query.ocId != null">
AND a.OC_ID = #{query.ocId}
</if>
<if test="query.orders != null and query.orders != ''">
AND b.ORDERS LIKE concat(concat('%', #{query.orders}),'%')
</if>
<if test="query.ppsId != null">
AND b.PPS_ID = #{query.ppsId}
</if>
<if test="query.createTimeStart != null and query.createTimeEnd != null">
AND a.CREATE_TIME BETWEEN #{query.createTimeStart} AND #{query.createTimeEnd}
</if>
</where>
order by a.CREATE_TIME desc
</select>
<select id="getBeforePlatInCardNo" resultType="org.springblade.desk.produce.pojo.entity.WorkPlan">
SELECT a.* FROM MES_WORK_PLAN a
INNER JOIN MES_WORK_PLAN b ON a.NEXT_WP_ID = b.ID
INNER JOIN MES_WORK_ORDER c ON a.WO_ID = c.ID
<where>
a.status = 3 and c.ID = #{id} and b.next_wp_id > 0 and (a.make_team in
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
or a.subsidiary_team in
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
or c.dispatcher= #{userId}) and c.run_status = 3
</where>
</select>
<select id="getBeforePlatOutCardNo" resultType="org.springblade.desk.produce.pojo.entity.PlateAround">
SELECT * FROM MES_PLATE_AROUND a
INNER JOIN MES_WORK_PLAN b ON a.WP_ID = b.ID
INNER JOIN MES_WORK_PLAN c ON b.NEXT_WP_ID = c.ID
INNER JOIN MES_WORK_ORDER d ON b.WO_ID = d.ID
<where>
a.PA_TYPE = 1 AND a.CUR_STATUS = 1 AND (c.MAKE_TEAM in
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
or c.SUBSIDIARY_TEAM in
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
or (c.MAKE_TEAM is null and c.OC_ID is null and d.dispatcher is not null and d.dispatcher = #{userId}))
and d.ID = #{id}
</where>
</select>
<select id="getAfterPlatInCardNo" resultType="org.springblade.desk.produce.pojo.entity.WorkPlan">
SELECT a.* FROM MES_WORK_PLAN a
INNER JOIN MES_WORK_PLAN b ON a.NEXT_WP_ID = b.ID
INNER JOIN MES_WORK_ORDER c ON a.WO_ID = c.ID
LEFT JOIN MES_PLATE_AROUND d ON a.ID = d.WP_ID
<where>
where a.STATUS = 2 and c.ID = #{id} and a.next_wp_id is null and a.make_team in
<foreach collection="tsIds" item="tsId" open="(" separator="," close=")">
#{tsId}
</foreach>
and d.ID is null and c.run_status = 3
</where>
</select>
<select id="listByWoCardNo" resultType="org.springblade.desk.produce.pojo.entity.PlateAround">
SELECT * FROM MES_PLATE_AROUND a
INNER JOIN MES_WORK_PLAN b ON a.WP_ID = b.ID
INNER JOIN MES_WORK_ORDER c ON b.WO_ID = c.ID
<where>
a.PA_TYPE = 3 AND c.CARD_NO = #{cardNo}
</where>
</select>
</mapper>

@ -0,0 +1,13 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.produce.pojo.entity.WorkPlanLog;
/**
* 车间作业计划修改日志 Mapper 接口
*
* @author BladeX
*/
public interface WorkPlanLogMapper extends BaseMapper<WorkPlanLog> {
}

@ -0,0 +1,21 @@
package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.DeductionPreserveDto;
import org.springblade.desk.produce.pojo.entity.DeductionPreserve;
import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO;
/**
* 扣数维护 服务类
*
* @author BladeX
*/
public interface IDeductionPreserveService extends BaseService<DeductionPreserve> {
DeductionPreserveVO workOrderByCardNo(String cardNo);
boolean savaData(DeductionPreserve deductionPreserve);
IPage<DeductionPreserveVO> queryData(IPage<DeductionPreserveVO> page, DeductionPreserveDto deductionPreserve);
}

@ -0,0 +1,25 @@
package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO;
import org.springblade.desk.produce.pojo.entity.DisTasking;
import org.springblade.desk.produce.pojo.entity.MakeRec;
import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO;
import org.springblade.desk.produce.pojo.vo.TaskCompleteVO;
import java.util.List;
/**
* 调度任务分派 服务类
*
* @author BladeX
*/
public interface IDisTaskingService extends BaseService<DisTasking> {
IPage<TaskCompleteVO> disTaskHandle(IPage<TaskCompleteVO> page, TaskCompleteDTO taskCompleteDTO);
List<ByCardNoByPlanVO> getByCardNoByPlan(String cardNo);
List<MakeRec> queryByWpIdlLst(Long wpId);
}

@ -0,0 +1,20 @@
package org.springblade.desk.produce.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.SaveDeclareDto;
import org.springblade.desk.produce.pojo.entity.OrderDeclare;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
/**
* 缺件申请记录 服务类
*
* @author BladeX
*/
public interface IOrderDeclareService extends BaseService<OrderDeclare> {
boolean signDelete(Long id);
QueryBatchVO queryBatch(String partCode);
boolean saveDeclare(SaveDeclareDto saveDeclareDto);
}

@ -0,0 +1,13 @@
package org.springblade.desk.produce.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog;
/**
* 镀后入库删除记录 服务类
*
* @author BladeX
*/
public interface IPlateAroundDelLogService extends BaseService<PlateAroundDelLog> {
}

@ -1,7 +1,16 @@
package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.PlateAroundDto;
import org.springblade.desk.produce.pojo.dto.SavePlateAroundDto;
import org.springblade.desk.produce.pojo.entity.PlateAround;
import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.AfterPlateInVO;
import org.springblade.desk.produce.pojo.vo.PlateAroundVO;
import java.util.List;
/**
* 镀前镀后 服务类
@ -11,4 +20,17 @@ import org.springblade.desk.produce.pojo.entity.PlateAround;
public interface IPlateAroundService extends BaseService<PlateAround> {
IPage<PlateAroundVO> queryByReadStatus(IPage<PlateAroundVO> page, PlateAroundDto query);
WorkPlan getBeforePlatInCardNo(String cardNo, List<Long> tsIds);
PlateAround getBeforePlatOutCardNo(String cardNo, List<Long> tsIds);
AfterPlateInVO getAfterPlatInCardNo(String cardNo, List<Long> tsIds);
boolean savePlateAround(SavePlateAroundDto plateAroundDto);
boolean deletePlateAround(Long id);
IPage<PlateAroundDelLog> queryDelLogRecord(IPage<PlateAroundDelLog> page, PlateAroundDto plateAroundDto);
}

@ -53,4 +53,6 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
IPage<QueryByReadStatusVO> queryByReadStatusPage(IPage<QueryByReadStatusVO> page, QueryByReadStatusDTO queryByReadStatusDTO);
boolean setReadStatus(String woIds);
WorkOrder getWorkOrderByCardNo(String cardNo);
}

@ -0,0 +1,13 @@
package org.springblade.desk.produce.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.entity.WorkPlanLog;
/**
* 车间作业计划修改日志 服务类
*
* @author BladeX
*/
public interface IWorkPlanLogService extends BaseService<WorkPlanLog> {
}

@ -0,0 +1,113 @@
package org.springblade.desk.produce.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.dashboard.service.IBsProcessSetService;
import org.springblade.desk.produce.mapper.DeductionPreserveMapper;
import org.springblade.desk.produce.pojo.dto.DeductionPreserveDto;
import org.springblade.desk.produce.pojo.entity.DeductionPreserve;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.DeductionPreserveVO;
import org.springblade.desk.produce.service.IDeductionPreserveService;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springblade.desk.produce.service.IWorkPlanService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
* 扣数维护 服务实现类
*
* @author BladeX
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class DeductionPreserveServiceImpl extends BaseServiceImpl<DeductionPreserveMapper, DeductionPreserve> implements IDeductionPreserveService {
private final IWorkOrderService workOrderService;
private final IWorkPlanService workPlanService;
private final IBsProcessSetService bsProcessSetService;
@Override
public DeductionPreserveVO workOrderByCardNo(String cardNo) {
WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(cardNo);
if (workOrder != null) {
WorkPlan workPlan = workPlanService.getById(workOrder.getWpId());
if (workPlan != null && workPlan.getNextWpId() == null) {
throw new ServiceException("当前工序不是镀后接收,暂时无法进行维护");
}
DeductionPreserveVO preserveVO = new DeductionPreserveVO();
preserveVO.setWoId(workOrder.getId());
preserveVO.setWpId(workOrder.getWpId());
preserveVO.setWoCode(workOrder.getWoCode());
preserveVO.setPartCode(workOrder.getPartCode());
preserveVO.setBatchNo(workOrder.getBatchNo());
if (workPlan != null) {
preserveVO.setPpsId(workPlan.getPpsId());
BsProcessSetEntity processSet = bsProcessSetService.getById(workPlan.getPpsId());
preserveVO.setPpsName(processSet != null ? processSet.getName() : "");
}
preserveVO.setQty(workOrder.getMakeQty());
preserveVO.setTestQty(workOrder.getTestQty());
preserveVO.setScrapQty(workOrder.getScrapQty());
preserveVO.setLossQty(workOrder.getLossQty());
return preserveVO;
}
return null;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean savaData(DeductionPreserve deductionPreserve) {
Long woId = deductionPreserve.getWoId();
if (woId == null) {
return false;
}
WorkOrder workOrder = workOrderService.getById(woId);
List<WorkPlan> prWorkPlanList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, woId));
// prWorkPlanList根据workOrder的wpId过滤出一条数据
WorkPlan prWorkPlan = prWorkPlanList.stream().filter(workPlan -> workPlan.getId().equals(workOrder.getWpId())).findFirst().orElse(null);
if (prWorkPlan == null) {
return false;
}
Double testQty = deductionPreserve.getTestQty() != null ? deductionPreserve.getTestQty() : 0;
Double scrapQty = deductionPreserve.getScrapQty() != null ? deductionPreserve.getScrapQty() : 0;
Double lossQty = deductionPreserve.getLossQty() != null ? deductionPreserve.getLossQty() : 0;
prWorkPlan.setTestQty(testQty);
prWorkPlan.setScrapQty(scrapQty);
prWorkPlan.setLossQty(lossQty);
// 如果当前序是镀后接收
prWorkPlan.setQualifiedQty(prWorkPlan.getQualifiedQty() - testQty - scrapQty - lossQty);
workPlanService.updateById(prWorkPlan);
// 新增扣数维护记录
deductionPreserve.setWpId(prWorkPlan.getId());
deductionPreserve.setDeductionProcess(prWorkPlan.getId());
deductionPreserve.setQty(workOrder.getMakeQty());
this.save(deductionPreserve);
// 更新车间订单
workOrder.setLossQty(workOrder.getLossQty()+lossQty);
workOrder.setScrapQty(workOrder.getScrapQty()+scrapQty);
workOrder.setTestQty(workOrder.getTestQty()+testQty);
workOrder.setMakeQty(workOrder.getMakeQty()-lossQty-scrapQty-testQty);
log.info("车间订单:{}, 扣除测试数量:{}", workOrder.getWoCode(), workOrder.getTestQty());
return workOrderService.updateById(workOrder);
}
@Override
public IPage<DeductionPreserveVO> queryData(IPage<DeductionPreserveVO> page, DeductionPreserveDto deductionPreserve) {
return page.setRecords(baseMapper.queryData(page, deductionPreserve));
}
}

@ -0,0 +1,78 @@
package org.springblade.desk.produce.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.produce.mapper.DisTaskingMapper;
import org.springblade.desk.produce.pojo.dto.TaskCompleteDTO;
import org.springblade.desk.produce.pojo.entity.DisTasking;
import org.springblade.desk.produce.pojo.entity.MakeRec;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
import org.springblade.desk.produce.pojo.vo.ByCardNoByPlanVO;
import org.springblade.desk.produce.pojo.vo.TaskCompleteVO;
import org.springblade.desk.produce.service.IDisTaskingService;
import org.springblade.desk.produce.service.IWorkOrderRunService;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springblade.system.cache.UserCache;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 调度任务分派 服务实现类
*
* @author BladeX
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class DisTaskingServiceImpl extends BaseServiceImpl<DisTaskingMapper, DisTasking> implements IDisTaskingService {
private final IWorkOrderService workOrderService;
private final IWorkOrderRunService workOrderRunService;
private IUserClient userClient;
@Override
public IPage<TaskCompleteVO> disTaskHandle(IPage<TaskCompleteVO> page, TaskCompleteDTO taskCompleteDTO) {
return page.setRecords(baseMapper.disTaskHandle(page, taskCompleteDTO));
}
@Override
public List<ByCardNoByPlanVO> getByCardNoByPlan(String cardNo) {
WorkOrder workOrder = workOrderService.getOne(Wrappers.lambdaQuery(WorkOrder.class).eq(WorkOrder::getCardNo, cardNo));
if (workOrder == null) {
throw new ServiceException("车间订单不存在!");
}
String oem = workOrder.getOem();
if ("1".equals(oem)) {
WorkOrderRun workOrderRun = workOrderRunService.getById(workOrder.getWorId());
if (!(WorkOrderRun.RUN_STATUS_DELIVERED.equals(workOrderRun.getRunStatus())
|| WorkOrderRun.RUN_STATUS_COMPLETED.equals(workOrderRun.getRunStatus())
|| WorkOrderRun.RUN_STATUS_VOIDED.equals(workOrderRun.getRunStatus()))) {
throw new ServiceException("外协订单不允许修改!");
}
}
List<ByCardNoByPlanVO> byCardNoByPlan = baseMapper.getByCardNoByPlan(workOrder.getId());
for (ByCardNoByPlanVO byCardNoByPlanVO : byCardNoByPlan) {
User user = UserCache.getUser(byCardNoByPlanVO.getUserId());
if (user != null) {
byCardNoByPlanVO.setUserName(user.getName());
}
}
return byCardNoByPlan;
}
@Override
public List<MakeRec> queryByWpIdlLst(Long wpId) {
return baseMapper.queryByWpIdlLst(wpId);
}
}

@ -0,0 +1,65 @@
package org.springblade.desk.produce.service.impl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.mapper.OrderDeclareMapper;
import org.springblade.desk.produce.pojo.dto.SaveDeclareDto;
import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.service.IOrderDeclareService;
import org.springblade.erpdata.feign.IErpDataProduceClient;
import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* 缺件申请记录 服务实现类
*
* @author BladeX
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class OrderDeclareServiceImpl extends BaseServiceImpl<OrderDeclareMapper, OrderDeclare> implements IOrderDeclareService {
private final IErpDataProduceClient erpDataProduceClient;
@Override
public boolean signDelete(Long id) {
OrderDeclare orderDeclare = this.getById(id);
if (orderDeclare == null) {
return false;
}
// todo 调用erp,删除提交的数据
// this.signDeleteErp(orderDeclare.getUseCode());
// 删除本地提交记录
return this.removeById(id);
}
@Override
public QueryBatchVO queryBatch(String partCode) {
if (StringUtils.isBlank(partCode)) {
throw new ServiceException("请输入零件号!");
}
return erpDataProduceClient.queryBatch(partCode).getData();
}
@Override
public boolean saveDeclare(SaveDeclareDto saveDeclareDto) {
List<OrderDeclare> orderDeclares = saveDeclareDto.getOrderDeclares();
if (CollectionUtils.isEmpty(orderDeclares)) {
return false;
}
for (OrderDeclare orderDeclare : orderDeclares) {
// 调用erp,提交申请,获取领用单号
// String code = prWorkOrderDao.saveDeclare(jsonObject, curUserInfo);
orderDeclare.setUseCode("code");
}
return this.saveBatch(orderDeclares);
}
}

@ -0,0 +1,21 @@
package org.springblade.desk.produce.service.impl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.produce.mapper.PlateAroundDelLogMapper;
import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog;
import org.springblade.desk.produce.service.IPlateAroundDelLogService;
import org.springframework.stereotype.Service;
/**
* 镀后入库删除记录 服务实现类
*
* @author BladeX
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class PlateAroundDelLogServiceImpl extends BaseServiceImpl<PlateAroundDelLogMapper, PlateAroundDelLog> implements IPlateAroundDelLogService {
}

@ -1,12 +1,37 @@
package org.springblade.desk.produce.service.impl;
import com.alibaba.nacos.common.utils.CollectionUtils;
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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.produce.mapper.PlateAroundMapper;
import org.springblade.desk.produce.pojo.dto.PlateAroundDto;
import org.springblade.desk.produce.pojo.dto.SavePlateAroundDto;
import org.springblade.desk.produce.pojo.entity.PlateAround;
import org.springblade.desk.produce.pojo.entity.PlateAroundDelLog;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.AfterPlateInVO;
import org.springblade.desk.produce.pojo.vo.PlateAroundVO;
import org.springblade.desk.produce.service.IPlateAroundDelLogService;
import org.springblade.desk.produce.service.IPlateAroundService;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springblade.job.pojo.entity.JobInfo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 镀前镀后 服务实现类
@ -18,4 +43,125 @@ import org.springframework.stereotype.Service;
@RequiredArgsConstructor
public class PlateAroundServiceImpl extends BaseServiceImpl<PlateAroundMapper, PlateAround> implements IPlateAroundService {
private final IWorkOrderService workOrderService;
private final IYieldOrderService yieldOrderService;
private final IPlateAroundDelLogService plateAroundDelLogService;
@Override
public IPage<PlateAroundVO> queryByReadStatus(IPage<PlateAroundVO> page, PlateAroundDto plateAroundDto) {
return page.setRecords(baseMapper.queryByReadStatus(page, plateAroundDto));
}
@Override
public WorkPlan getBeforePlatInCardNo(String cardNo, List<Long> tsIds) {
WorkOrder wo = workOrderService.getWorkOrderByCardNo(cardNo);
if (wo == null) {
throw new ServiceException("车间订单不存在!");
}
return baseMapper.getBeforePlatInCardNo(wo.getId(), tsIds, AuthUtil.getUserId());
}
@Override
public PlateAround getBeforePlatOutCardNo(String cardNo, List<Long> tsIds) {
WorkOrder wo = workOrderService.getWorkOrderByCardNo(cardNo);
if (wo == null) {
throw new ServiceException("车间订单不存在!");
}
return baseMapper.getBeforePlatOutCardNo(wo.getId(), tsIds, AuthUtil.getUserId());
}
@Override
public AfterPlateInVO getAfterPlatInCardNo(String cardNo, List<Long> tsIds) {
WorkOrder wo = workOrderService.getWorkOrderByCardNo(cardNo);
if (wo == null) {
throw new ServiceException("车间订单不存在!");
}
WorkPlan wp = baseMapper.getAfterPlatInCardNo(wo.getId(), tsIds);
if (wp == null) {
throw new ServiceException("未找到镀后入库工序,无法入库!");
}
//判断是转工还是入库
WorkOrder workOrder = workOrderService.getById(wp.getWoId());
YieldOrder pjYieldOrder = yieldOrderService.getById(workOrder.getYoId());
AfterPlateInVO afterPlateInVO = new AfterPlateInVO();
BeanUtils.copyProperties(wp, afterPlateInVO);
//返工的订单判定入库类型特殊处理
if (StringUtils.isNotBlank(workOrder.getReworkMemo()) && "1".equals(workOrder.getReInStore())) {
if (workOrder.getReworkMemo().contains("转") && workOrder.getReworkMemo().contains("现场")
&& !workOrder.getReworkMemo().contains("库")) {
afterPlateInVO.setHrTypeBool(1);
} else {
afterPlateInVO.setHrTypeBool(0);
}
} else {
//正常判定入库类型
if (StringUtils.isBlank(pjYieldOrder.getRoamNoNext())) {
afterPlateInVO.setHrTypeBool(0);
} else {
afterPlateInVO.setHrTypeBool(1);
}
}
//zxh 20241213 增加为pjyieldorder.roamname赋值
// pjYieldOrder.setRoamName(dsPartService.findNameByRoamNo(pjYieldOrder.getPartCode(), pjYieldOrder.getRoamNo()));
//zxh 20250509 增加为pjyieldorder.nextroamname赋值
// if (pjYieldOrder.getNextRoam()!=null) {
// pjYieldOrder.setNextRoamName(dsPartService.findNameByRoamNo(pjYieldOrder.getPartCode(), pjYieldOrder.getNextRoam()));
// }
return afterPlateInVO;
}
@Override
public boolean savePlateAround(SavePlateAroundDto plateAroundDto) {
List<PlateAround> plateArounds = plateAroundDto.getPlateArounds();
Short paType = plateAroundDto.getPaType();
Long userId = AuthUtil.getUserId();
if (CollectionUtils.isNotEmpty(plateArounds) || paType == null || userId == null) {
return false;
}
return false;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deletePlateAround(Long id) {
PlateAround plateAround = this.getById(id);
WorkOrder workOrder = workOrderService.getById(plateAround.getWpId());
if (workOrder == null) {
return false;
}
// 根据流程卡号检查入库单是否重复, 对于没有重复的不允许删除
List<PlateAround> aroundList = baseMapper.listByWoCardNo(workOrder.getCardNo());
if (ObjectUtils.isNotEmpty(aroundList) && aroundList.size() == 1) {
String errorMsg = "删除重复入库失败!该订单不存在重复的入库单";
log.error(errorMsg);
throw new ServiceException(errorMsg);
}
// 构建删除日志
PlateAroundDelLog delLog = new PlateAroundDelLog();
delLog.setWpId(plateAround.getWpId());
delLog.setWoCode(workOrder.getWoCode());
delLog.setAroundData(plateAround.toString());
try {
// 保存删除日志
plateAroundDelLogService.save(delLog);
// 删除数据
return this.removeById(id);
} catch (Exception e) {
String errorMsg = "删除重复入库失败!错误信息:" + e.getMessage();
log.error(errorMsg);
throw new ServiceException(errorMsg);
}
}
@Override
public IPage<PlateAroundDelLog> queryDelLogRecord(IPage<PlateAroundDelLog> page, PlateAroundDto plateAroundDto) {
LambdaQueryWrapper<PlateAroundDelLog> wrapper = Wrappers.lambdaQuery(PlateAroundDelLog.class);
return plateAroundDelLogService.page(page, wrapper);
}
}

@ -1,6 +1,7 @@
package org.springblade.desk.produce.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -16,6 +17,7 @@ import org.springblade.desk.dashboard.service.IBsProcessSetService;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.produce.mapper.PlateAroundMapper;
import org.springblade.desk.produce.mapper.WorkOrderMapper;
import org.springblade.desk.produce.pojo.dto.InBatchesDTO;
import org.springblade.desk.produce.pojo.dto.ListProProcessDTO;
@ -33,11 +35,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.rmi.ServerException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import static com.alibaba.fastjson2.util.DateUtils.DEFAULT_ZONE_ID;
@ -72,7 +72,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IWorkPlanRunService workPlanRunService;
private final IPlateAroundService plateAroundService;
private final PlateAroundMapper plateAroundMapper;
private final IProcessAbilityService processAbilityService;
@ -268,7 +268,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
//验证当前工序是否有镀前入库
WorkPlan wp = workPlanService.getById(wo.getWpId());
if (WorkOrderRun.RUN_TYPE_1.equals(workOrderRun.getRunType()) && wp.getStatus() > WorkPlan.STATUS_START) {
PlateAround pa = plateAroundService.getOne(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, wp.getId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAT_IN));
PlateAround pa = plateAroundMapper.selectOne(Wrappers.lambdaQuery(PlateAround.class).eq(PlateAround::getWpId, wp.getId()).eq(PlateAround::getPaType, PlateAround.BEFORE_PLAT_IN));
if (pa == null) {
//下序外协,当前工序需要镀前入库
throw new ServiceException("未找到工序【"+wp.getPpsId()+"】镀前入库记录,无法转单!");
@ -412,6 +412,54 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return this.updateBatchById(orders);
}
@Override
public WorkOrder getWorkOrderByCardNo(String cardNo) {
LambdaQueryWrapper<WorkOrder> wrapper = Wrappers.lambdaQuery();
WorkOrder prWorkOrder = this.getOne(wrapper.eq(WorkOrder::getCardNo, cardNo).lt(WorkOrder::getRunStatus, WorkOrder.RUN_STATUS_COMPLETED));
if (prWorkOrder == null) {
String newCardNo = yieldOrderService.getNewCardNo(cardNo);
wrapper.clear();
prWorkOrder = this.getOne(wrapper.eq(WorkOrder::getCardNo, newCardNo).lt(WorkOrder::getRunStatus, WorkOrder.RUN_STATUS_COMPLETED));
}
// 根据返工单号去查
if (prWorkOrder == null) {
wrapper.clear();
prWorkOrder = this.getOne(wrapper.eq(WorkOrder::getReworkCode, cardNo).lt(WorkOrder::getRunStatus, WorkOrder.RUN_STATUS_COMPLETED));
}
if (prWorkOrder != null && prWorkOrder.getId() != null) {
// todo 获取到所有除玻璃饼外的其他子件车间订单
// wrapper.clear();
// List<YieldOrder> yieldOrders = yieldOrderService.list(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getFatherYoId, prWorkOrder.getYoId()));
// List<WorkOrder> subList = new ArrayList<>();
// if (CollectionUtils.isNotEmpty(yieldOrders)) {
// subList = this.list(wrapper.in(WorkOrder::getYoId, yieldOrders.stream().map(YieldOrder::getId).toList()));
// }
// //获取到部件下面的玻璃饼信息
// List<DsPartSub> dpsList = null;
// List<WorkOrder> blbList = null;
// dpsList = dsPartSubService.listByPartCode(prWorkOrder.getPjYieldOrder().getPartCode(), DsPartSub.SIN_TER_TYPE_BLB);
// if (dpsList != null && !dpsList.isEmpty()) {
// for (DsPartSub dps : dpsList) {
// blbList = prWorkOrderDao.findByPartCodeAndMemo(dps.getSubCode(), prWorkOrder.getPjYieldOrder().getPoCode());
// if (blbList != null && !blbList.isEmpty()) {
// subList.addAll(blbList);
// }
// }
// }
// //zxh 20250528 烧结车间订单查询模块增加查询'针'子件订单的执行状态
// if (subList != null && !subList.isEmpty()) {
// for (WorkOrder subPrWorkOrder : subList) {
// if (subPrWorkOrder.getPjYieldOrder().getPartName().contains("针")) {
// prWorkOrder.setSubRunStatus(subPrWorkOrder.getRunStatusTitle());
// }
// }
// }
// prWorkOrder.setSubList(subList);
}
return prWorkOrder;
}
private boolean checkWp(WorkPlan wp, Integer runType) {
//不分派工序不能操作
BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId());

@ -0,0 +1,21 @@
package org.springblade.desk.produce.service.impl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.produce.mapper.WorkPlanLogMapper;
import org.springblade.desk.produce.pojo.entity.*;
import org.springblade.desk.produce.service.IWorkPlanLogService;
import org.springframework.stereotype.Service;
/**
* 车间作业计划修改日志 服务实现类
*
* @author BladeX
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class WorkPlanLogServiceImpl extends BaseServiceImpl<WorkPlanLogMapper, WorkPlanLog> implements IWorkPlanLogService {
}

@ -73,8 +73,8 @@ public class WorkPlanServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPla
for (WorkPlan wp : wpList) {
ObjectUtils.defaultIfNull(wp, new WorkPlan());
wp.setWoId(wo.getId());
wp.setTestQty(0);
wp.setScrapQty(0);
wp.setTestQty(0d);
wp.setScrapQty(0d);
wp.setCreateTime(new Date());
wp.setUnqualifiedQty(0);
//判定工序是否特殊工序,如果是,则附属班组存在值

Loading…
Cancel
Save