yzc 10 місяців тому
батько
коміт
be10870181
37 змінених файлів з 0 додано та 2190 видалено
  1. 0 43
      hx-mes/src/main/java/com/fjhx/mes/controller/work/WorkOrderProductionProcessesController.java
  2. 0 17
      hx-mes/src/main/java/com/fjhx/mes/entity/completion/dto/CompletionInfoDto.java
  3. 0 34
      hx-mes/src/main/java/com/fjhx/mes/entity/completion/po/CompletionInfo.java
  4. 0 44
      hx-mes/src/main/java/com/fjhx/mes/entity/completion/vo/CompletionInfoVo.java
  5. 0 17
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionPlanDto.java
  6. 0 17
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailDto.java
  7. 0 17
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailRecordDto.java
  8. 0 17
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDto.java
  9. 0 57
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionPlan.java
  10. 0 56
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTask.java
  11. 0 76
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java
  12. 0 37
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetailRecord.java
  13. 0 29
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionPlanVo.java
  14. 0 17
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailRecordVo.java
  15. 0 50
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailVo.java
  16. 0 48
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskVo.java
  17. 0 25
      hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderProductionProcessesDto.java
  18. 0 47
      hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrderProductionProcesses.java
  19. 0 30
      hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderProductionProcessesVo.java
  20. 0 26
      hx-mes/src/main/java/com/fjhx/mes/mapper/completion/CompletionInfoMapper.java
  21. 0 26
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionPlanMapper.java
  22. 0 33
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailMapper.java
  23. 0 17
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailRecordMapper.java
  24. 0 31
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskMapper.java
  25. 0 16
      hx-mes/src/main/java/com/fjhx/mes/mapper/work/WorkOrderProductionProcessesMapper.java
  26. 0 46
      hx-mes/src/main/java/com/fjhx/mes/service/completion/CompletionInfoService.java
  27. 0 167
      hx-mes/src/main/java/com/fjhx/mes/service/completion/impl/CompletionInfoServiceImpl.java
  28. 0 46
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionPlanService.java
  29. 0 17
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailRecordService.java
  30. 0 57
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailService.java
  31. 0 57
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskService.java
  32. 0 152
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionPlanServiceImpl.java
  33. 0 21
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailRecordServiceImpl.java
  34. 0 315
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java
  35. 0 340
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java
  36. 0 30
      hx-mes/src/main/java/com/fjhx/mes/service/work/WorkOrderProductionProcessesService.java
  37. 0 115
      hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderProductionProcessesServiceImpl.java

+ 0 - 43
hx-mes/src/main/java/com/fjhx/mes/controller/work/WorkOrderProductionProcessesController.java

@@ -1,43 +0,0 @@
-package com.fjhx.mes.controller.work;
-
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import org.springframework.web.bind.annotation.*;
-import com.fjhx.mes.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.fjhx.mes.entity.work.dto.WorkOrderProductionProcessesDto;
-import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import java.util.List;
-
-/**
- * <p>
- * 工单工序 前端控制器
- * </p>
- *
- * @author 
- * @since 2023-05-17
- */
-@RestController
-@RequestMapping("/workOrderProductionProcesses")
-public class WorkOrderProductionProcessesController {
-
-    @Autowired
-    private WorkOrderProductionProcessesService workOrderProductionProcessesService;
-
-    /**
-     * 工单工序列表
-     */
-    @PostMapping("/list")
-    public List<WorkOrderProductionProcessesVo> list(@RequestBody WorkOrderProductionProcesses dto) {
-        return workOrderProductionProcessesService.getList(dto);
-    }
-
-    /**
-     * 工单工序编辑
-     */
-    @PostMapping("/edit")
-    public void edit(@RequestBody WorkOrderProductionProcessesDto workOrderProductionProcessesDto) {
-        workOrderProductionProcessesService.edit(workOrderProductionProcessesDto);
-    }
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/entity/completion/dto/CompletionInfoDto.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.entity.completion.dto;
-
-import com.fjhx.mes.entity.completion.po.CompletionInfo;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 完工入库新增编辑入参实体
- *
- * @author 
- * @since 2023-03-31
- */
-@Getter
-@Setter
-public class CompletionInfoDto extends CompletionInfo {
-
-}

+ 0 - 34
hx-mes/src/main/java/com/fjhx/mes/entity/completion/po/CompletionInfo.java

@@ -1,34 +0,0 @@
-package com.fjhx.mes.entity.completion.po;
-
-import com.ruoyi.common.core.domain.BasePo;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- * 完工入库
- * </p>
- *
- * @author 
- * @since 2023-03-31
- */
-@Getter
-@Setter
-@TableName("completion_info")
-public class CompletionInfo extends BasePo {
-
-    /**
-     * 生产任务id
-     */
-    private Long productionTaskId;
-
-    /**
-     * 完工数量
-     */
-    private BigDecimal quantity;
-
-}

+ 0 - 44
hx-mes/src/main/java/com/fjhx/mes/entity/completion/vo/CompletionInfoVo.java

@@ -1,44 +0,0 @@
-package com.fjhx.mes.entity.completion.vo;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fjhx.mes.entity.completion.po.CompletionInfo;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 完工入库列表查询返回值实体
- *
- * @author
- * @since 2023-03-31
- */
-@Getter
-@Setter
-public class CompletionInfoVo extends CompletionInfo {
-
-    /**
-     * 产品名
-     */
-    private String productName;
-
-    /**
-     * 生产任务编号
-     */
-    private String productionTaskCode;
-    /**
-     * 生产任务数量
-     */
-    private BigDecimal productionTaskQuantity;
-    /**
-     * 生产任务负责人
-     */
-    private String personLiableName;
-    /**
-     * 生产任务期限
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date productionTaskDueDate;
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionPlanDto.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.entity.production.dto;
-
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 生产计划新增编辑入参实体
- *
- * @author 
- * @since 2023-03-29
- */
-@Getter
-@Setter
-public class ProductionPlanDto extends ProductionPlan {
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailDto.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.entity.production.dto;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 生产任务明细新增编辑入参实体
- *
- * @author 
- * @since 2023-05-17
- */
-@Getter
-@Setter
-public class ProductionTaskDetailDto extends ProductionTaskDetail {
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailRecordDto.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.entity.production.dto;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 任务明细记录新增编辑入参实体
- *
- * @author 
- * @since 2023-05-18
- */
-@Getter
-@Setter
-public class ProductionTaskDetailRecordDto extends ProductionTaskDetailRecord {
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDto.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.entity.production.dto;
-
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 生产任务新增编辑入参实体
- *
- * @author 
- * @since 2023-03-30
- */
-@Getter
-@Setter
-public class ProductionTaskDto extends ProductionTask {
-
-}

+ 0 - 57
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionPlan.java

@@ -1,57 +0,0 @@
-package com.fjhx.mes.entity.production.po;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.core.domain.BasePo;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- * 生产计划
- * </p>
- *
- * @author 
- * @since 2023-03-29
- */
-@Getter
-@Setter
-@TableName("production_plan")
-public class ProductionPlan extends BasePo {
-
-    /**
-     * 工单id
-     */
-    private Long workOrderId;
-
-    /**
-     * 计划编码
-     */
-    private String code;
-
-    /**
-     * 计划开始时间
-     */
-    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    private Date startDate;
-
-    /**
-     * 计划结束时间
-     */
-    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    private Date stopDate;
-
-    /**
-     * 计划数量
-     */
-    private BigDecimal quantity;
-
-    /**
-     * 计划状态 0未开始 1进行中 2完成
-     */
-    private Integer status;
-
-}

+ 0 - 56
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTask.java

@@ -1,56 +0,0 @@
-package com.fjhx.mes.entity.production.po;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.ruoyi.common.core.domain.BasePo;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- * 生产任务
- * </p>
- *
- * @author 
- * @since 2023-03-30
- */
-@Getter
-@Setter
-@TableName("production_task")
-public class ProductionTask extends BasePo {
-
-    /**
-     * 生产计划id
-     */
-    private Long productionPlanId;
-
-    /**
-     * 生产任务编码
-     */
-    private String code;
-
-    /**
-     * 任务数量
-     */
-    private BigDecimal quantity;
-
-    /**
-     * 负责人id
-     */
-    private Long personLiableId;
-
-    /**
-     * 任务状态
-     */
-    private Integer status;
-
-    /**
-     * 完成期限
-     */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date dueDate;
-
-}

+ 0 - 76
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java

@@ -1,76 +0,0 @@
-package com.fjhx.mes.entity.production.po;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.ruoyi.common.core.domain.BasePo;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.Date;
-
-/**
- * <p>
- * 生产任务明细
- * </p>
- *
- * @author
- * @since 2023-05-17
- */
-@Getter
-@Setter
-@TableName("production_task_detail")
-public class ProductionTaskDetail extends BasePo {
-
-    /**
-     * 产品id
-     */
-    private Long productId;
-
-    /**
-     * 生产任务id
-     */
-    private Long productionTaskId;
-
-    /**
-     * 产品sn
-     */
-    private String productSn;
-
-    /**
-     * 当前工序id
-     */
-    private Long productionProcessesId;
-
-    /**
-     * 完成时间
-     */
-    private Date finishTime;
-
-    /**
-     * 完成状态 1完成 0未完成
-     */
-    private Integer finishStatus;
-
-    /**
-     * 负责人id
-     */
-    private Long personLiableId;
-
-    /**
-     * 下一工序id
-     */
-    private Long nextProductionProcessesId;
-    /**
-     * 流转人id
-     */
-    private Long circulationUserId;
-    /**
-     * 流转状态
-     */
-    private Integer circulationStatus;
-
-    /**
-     * 接收人id
-     */
-    private Long receivedUserId;
-
-}

+ 0 - 37
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetailRecord.java

@@ -1,37 +0,0 @@
-package com.fjhx.mes.entity.production.po;
-
-import com.ruoyi.common.core.domain.BasePo;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- * 任务明细记录
- * </p>
- *
- * @author 
- * @since 2023-05-18
- */
-@Getter
-@Setter
-@TableName("production_task_detail_record")
-public class ProductionTaskDetailRecord extends BasePo {
-
-    /**
-     * 任务明细id
-     */
-    private Long productionTaskDetailId;
-
-    /**
-     * 工序id
-     */
-    private Long productionProcessesId;
-
-    /**
-     * 负责人id
-     */
-    private Long personLiableId;
-
-}

+ 0 - 29
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionPlanVo.java

@@ -1,29 +0,0 @@
-package com.fjhx.mes.entity.production.vo;
-
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-/**
- * 生产计划列表查询返回值实体
- *
- * @author 
- * @since 2023-03-29
- */
-@Getter
-@Setter
-public class ProductionPlanVo extends ProductionPlan {
-
-    /**产品名称*/
-    private String productName;
-
-    /**生产任务列表*/
-    private List<ProductionTaskVo> productionTaskList;
-
-    /**待排程数量*/
-    private BigDecimal remainingQuantity;
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailRecordVo.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.entity.production.vo;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 任务明细记录列表查询返回值实体
- *
- * @author 
- * @since 2023-05-18
- */
-@Getter
-@Setter
-public class ProductionTaskDetailRecordVo extends ProductionTaskDetailRecord {
-
-}

+ 0 - 50
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailVo.java

@@ -1,50 +0,0 @@
-package com.fjhx.mes.entity.production.vo;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * 生产任务明细列表查询返回值实体
- *
- * @author 
- * @since 2023-05-17
- */
-@Getter
-@Setter
-public class ProductionTaskDetailVo extends ProductionTaskDetail {
-
-    /**
-     * 产品名
-     */
-    private String productName;
-
-    /**
-     * 工序名称
-     */
-    private String productionProcessesName;
-    /**
-     * 下一工序名称
-     */
-    private String nextProductionProcessesName;
-
-    /**
-     * 累计耗时
-     */
-    private String cumulativeTime;
-
-    /**
-     * 流转人名称
-     */
-    private String circulationUserName;
-
-    /**
-     * 产品编号
-     */
-    private String code;
-
-    /**
-     * 工单id
-     */
-    private Long workOrderId;
-}

+ 0 - 48
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskVo.java

@@ -1,48 +0,0 @@
-package com.fjhx.mes.entity.production.vo;
-
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-/**
- * 生产任务列表查询返回值实体
- *
- * @author
- * @since 2023-03-30
- */
-@Getter
-@Setter
-public class ProductionTaskVo extends ProductionTask {
-
-    /**
-     * 产品名称
-     */
-    private String productName;
-    /**
-     * 产品id
-     */
-    private Long productId;
-
-    /**
-     * 生产任务负责人名称
-     */
-    private String personLiableName;
-
-    /**
-     * 待排程数
-     */
-    private BigDecimal remainingQuantity;
-    /**
-     * 生产计划编号
-     */
-    private String productionPlanCode;
-
-    /**
-     * 生产任务明细列表
-     */
-    private List<ProductionTaskDetailVo> productionTaskDetailList;
-}

+ 0 - 25
hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderProductionProcessesDto.java

@@ -1,25 +0,0 @@
-package com.fjhx.mes.entity.work.dto;
-
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import com.fjhx.mes.entity.work.vo.WorkOrderProductionProcessesVo;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * 工单工序新增编辑入参实体
- *
- * @author 
- * @since 2023-05-17
- */
-@Getter
-@Setter
-public class WorkOrderProductionProcessesDto extends WorkOrderProductionProcesses {
-
-    /**
-     * 工序列表
-     */
-    List<WorkOrderProductionProcessesVo> workOrderProductionProcessesList;
-
-}

+ 0 - 47
hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrderProductionProcesses.java

@@ -1,47 +0,0 @@
-package com.fjhx.mes.entity.work.po;
-
-import com.ruoyi.common.core.domain.BasePo;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.util.Date;
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * <p>
- * 工单工序
- * </p>
- *
- * @author 
- * @since 2023-05-17
- */
-@Getter
-@Setter
-@TableName("work_order_production_processes")
-public class WorkOrderProductionProcesses extends BasePo {
-
-    /**
-     * 工单id
-     */
-    private Long workOrderId;
-
-    /**
-     * 排序
-     */
-    private Integer sort;
-
-    /**
-     * 工序名称
-     */
-    private String name;
-
-    /**
-     * 工序说明
-     */
-    private String remarks;
-
-    /**
-     * 工序文件名
-     */
-    private String fileName;
-
-}

+ 0 - 30
hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderProductionProcessesVo.java

@@ -1,30 +0,0 @@
-package com.fjhx.mes.entity.work.vo;
-
-import com.fjhx.file.entity.ObsFile;
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.List;
-
-/**
- * 工单工序列表查询返回值实体
- *
- * @author
- * @since 2023-05-17
- */
-@Getter
-@Setter
-public class WorkOrderProductionProcessesVo extends WorkOrderProductionProcesses {
-
-    /**
-     * 附件列表
-     */
-    private List<ObsFile> fileList;
-
-    /**
-     * 带过来的工序id
-     */
-    private Long oldId;
-
-}

+ 0 - 26
hx-mes/src/main/java/com/fjhx/mes/mapper/completion/CompletionInfoMapper.java

@@ -1,26 +0,0 @@
-package com.fjhx.mes.mapper.completion;
-
-import com.fjhx.mes.entity.completion.po.CompletionInfo;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.completion.vo.CompletionInfoVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-
-/**
- * <p>
- * 完工入库 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-03-31
- */
-public interface CompletionInfoMapper extends BaseMapper<CompletionInfo> {
-
-    /**
-     * 完工入库分页
-     */
-    Page<CompletionInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<CompletionInfo> wrapper);
-
-}

+ 0 - 26
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionPlanMapper.java

@@ -1,26 +0,0 @@
-package com.fjhx.mes.mapper.production;
-
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionPlanVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-
-/**
- * <p>
- * 生产计划 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-03-29
- */
-public interface ProductionPlanMapper extends BaseMapper<ProductionPlan> {
-
-    /**
-     * 生产计划分页
-     */
-    Page<ProductionPlanVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionPlan> wrapper);
-
-}

+ 0 - 33
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailMapper.java

@@ -1,33 +0,0 @@
-package com.fjhx.mes.mapper.production;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
-import com.fjhx.mes.entity.work.vo.WorkOrderVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-
-/**
- * <p>
- * 生产任务明细 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-05-18
- */
-public interface ProductionTaskDetailMapper extends BaseMapper<ProductionTaskDetail> {
-
-    /**
-     * 生产任务明细分页
-     */
-    Page<ProductionTaskDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionTaskDetail> wrapper);
-
-    List<WorkOrderVo> getWorkOrderByProductionTask(@Param("ew") IWrapper<ProductionTaskDetail> wrapper);
-
-    ProductionTaskDetailVo snInfo(@Param("sn") String sn);
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailRecordMapper.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.mapper.production;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-
-/**
- * <p>
- * 任务明细记录 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-05-18
- */
-public interface ProductionTaskDetailRecordMapper extends BaseMapper<ProductionTaskDetailRecord> {
-
-}

+ 0 - 31
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskMapper.java

@@ -1,31 +0,0 @@
-package com.fjhx.mes.mapper.production;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-
-/**
- * <p>
- * 生产任务 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-03-30
- */
-public interface ProductionTaskMapper extends BaseMapper<ProductionTask> {
-
-    /**
-     * 生产任务分页
-     */
-    Page<ProductionTaskVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionTask> wrapper);
-
-    ProductionTaskVo detail(@Param("id") Long id);
-    List<ProductionTaskVo> myListByIds(@Param("ew") QueryWrapper<ProductionTask> wrapper);
-}

+ 0 - 16
hx-mes/src/main/java/com/fjhx/mes/mapper/work/WorkOrderProductionProcessesMapper.java

@@ -1,16 +0,0 @@
-package com.fjhx.mes.mapper.work;
-
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- * 工单工序 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-05-17
- */
-public interface WorkOrderProductionProcessesMapper extends BaseMapper<WorkOrderProductionProcesses> {
-
-}

+ 0 - 46
hx-mes/src/main/java/com/fjhx/mes/service/completion/CompletionInfoService.java

@@ -1,46 +0,0 @@
-package com.fjhx.mes.service.completion;
-
-import com.fjhx.mes.entity.completion.po.CompletionInfo;
-import com.ruoyi.common.core.service.BaseService;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.completion.vo.CompletionInfoVo;
-import com.fjhx.mes.entity.completion.dto.CompletionInfoSelectDto;
-import com.fjhx.mes.entity.completion.dto.CompletionInfoDto;
-
-
-/**
- * <p>
- * 完工入库 服务类
- * </p>
- *
- * @author 
- * @since 2023-03-31
- */
-public interface CompletionInfoService extends BaseService<CompletionInfo> {
-
-    /**
-     * 完工入库分页
-     */
-    Page<CompletionInfoVo> getPage(CompletionInfoSelectDto dto);
-
-    /**
-     * 完工入库明细
-     */
-    CompletionInfoVo detail(Long id);
-
-    /**
-     * 完工入库新增
-     */
-    void add(CompletionInfoDto completionInfoDto);
-
-    /**
-     * 完工入库编辑
-     */
-    void edit(CompletionInfoDto completionInfoDto);
-
-    /**
-     * 完工入库删除
-     */
-    void delete(Long id);
-
-}

+ 0 - 167
hx-mes/src/main/java/com/fjhx/mes/service/completion/impl/CompletionInfoServiceImpl.java

@@ -1,167 +0,0 @@
-package com.fjhx.mes.service.completion.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.item.entity.product.po.ProductInfo;
-import com.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.mes.entity.completion.dto.CompletionInfoDto;
-import com.fjhx.mes.entity.completion.dto.CompletionInfoSelectDto;
-import com.fjhx.mes.entity.completion.po.CompletionInfo;
-import com.fjhx.mes.entity.completion.vo.CompletionInfoVo;
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
-import com.fjhx.mes.entity.work.po.WorkOrder;
-import com.fjhx.mes.mapper.completion.CompletionInfoMapper;
-import com.fjhx.mes.service.completion.CompletionInfoService;
-import com.fjhx.mes.service.production.ProductionPlanService;
-import com.fjhx.mes.service.production.ProductionTaskService;
-import com.fjhx.mes.service.work.WorkOrderService;
-import com.fjhx.wms.entity.stock.emums.JournalType;
-import com.fjhx.wms.entity.stock.po.StockWait;
-import com.fjhx.wms.entity.stock.po.StockWaitDetails;
-import com.fjhx.wms.service.stock.StockWaitDetailsService;
-import com.fjhx.wms.service.stock.StockWaitService;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 完工入库 服务实现类
- * </p>
- *
- * @author
- * @since 2023-03-31
- */
-@Service
-public class CompletionInfoServiceImpl extends ServiceImpl<CompletionInfoMapper, CompletionInfo> implements CompletionInfoService {
-    @Autowired
-    StockWaitService stockWaitService;
-    @Autowired
-    StockWaitDetailsService stockWaitDetailsService;
-    @Autowired
-    ProductionTaskService productionTaskService;
-    @Autowired
-    ProductInfoService productInfoService;
-    @Autowired
-    ProductionPlanService productionPlanService;
-    @Autowired
-    WorkOrderService workOrderService;
-
-    @Override
-    public Page<CompletionInfoVo> getPage(CompletionInfoSelectDto dto) {
-        IWrapper<CompletionInfo> wrapper = getWrapper();
-        wrapper.orderByDesc("ci", CompletionInfo::getId);
-        Page<CompletionInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        List<CompletionInfoVo> records = page.getRecords();
-        List<Long> productionTaskIds = records.stream().map(CompletionInfo::getProductionTaskId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(productionTaskIds)) {
-            List<ProductionTaskVo> productionTaskVoList = productionTaskService.myListByIds(productionTaskIds);
-            Map<Long, ProductionTaskVo> productionTaskVoMap = productionTaskVoList.stream().collect(Collectors.groupingBy(ProductionTaskVo::getId,
-                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-            List<Long> productIds = productionTaskVoList.stream().map(ProductionTaskVo::getProductId).collect(Collectors.toList());
-            if (ObjectUtil.isNotEmpty(productIds)) {
-                List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-                Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
-                        Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-                for (CompletionInfoVo completionInfoVo : records) {
-                    ProductionTaskVo productionTaskVo = productionTaskVoMap.get(completionInfoVo.getProductionTaskId());
-                    if (ObjectUtil.isNotEmpty(productionTaskVo)) {
-                        //赋值产品名
-                        ProductInfo productInfo = productInfoMap.get(productionTaskVo.getProductId());
-                        if (ObjectUtil.isNotEmpty(productInfo)) {
-                            completionInfoVo.setProductName(productInfo.getName());
-                        }
-                        //复制任务编号
-                        completionInfoVo.setProductionTaskCode(productionTaskVo.getCode());
-                    }
-                }
-            }
-        }
-        return page;
-    }
-
-    @Override
-    public CompletionInfoVo detail(Long id) {
-        CompletionInfo CompletionInfo = this.getById(id);
-        CompletionInfoVo result = BeanUtil.toBean(CompletionInfo, CompletionInfoVo.class);
-        Long productionTaskId = result.getProductionTaskId();
-        ProductionTaskVo productionTask = productionTaskService.detail(productionTaskId);
-        if (ObjectUtil.isNotEmpty(productionTask)) {
-            result.setProductionTaskCode(productionTask.getCode());
-            result.setProductName(productionTask.getProductName());
-            result.setProductionTaskQuantity(productionTask.getQuantity());
-            result.setPersonLiableName(productionTask.getPersonLiableName());
-            result.setProductionTaskDueDate(productionTask.getDueDate());
-        }
-        return result;
-    }
-
-    @Override
-    public void add(CompletionInfoDto completionInfoDto) {
-        this.save(completionInfoDto);
-        //查询任务信息
-        ProductionTaskVo detail = productionTaskService.detail(completionInfoDto.getProductionTaskId());
-        //添加一条完工入库类型的待入库数据
-        StockWait stockWait = new StockWait();
-        stockWait.setType(1);
-        stockWait.setBusinessType(JournalType.COMPLETION_IN.getDetailType());
-        stockWait.setBusinessId(completionInfoDto.getId());
-        stockWait.setStatus(0);
-        stockWait.setCompanyId(SecurityUtils.getCompanyId());
-        stockWaitService.save(stockWait);
-        StockWaitDetails stockWaitDetails =new StockWaitDetails();
-        stockWaitDetails.setStockWaitId(stockWait.getId());
-        stockWaitDetails.setProductId(detail.getProductId());
-        stockWaitDetails.setQuantity(completionInfoDto.getQuantity());
-        stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
-        stockWaitDetailsService.save(stockWaitDetails);
-        //判断完工数量是否等于任务数量如果是修改任务状态为完成
-        if (completionInfoDto.getQuantity().compareTo(detail.getQuantity()) >= 0) {
-            detail.setStatus(2);
-            productionTaskService.updateById(detail);
-
-            //检查生产计划下的任务完成数量是否等于计划数量是就修改状态 生产计划状态
-            ProductionPlan productionPlan = productionPlanService.getById(detail.getProductionPlanId());
-            List<ProductionTask> productionTaskList = productionTaskService.list(q -> q.eq(ProductionTask::getProductionPlanId,
-                    detail.getProductionPlanId()).eq(ProductionTask::getStatus, 2));
-            BigDecimal count = productionTaskList.stream().map(ProductionTask::getQuantity)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            if (productionPlan.getQuantity().compareTo(count) >= 0) {
-                productionPlan.setStatus(2);
-                productionPlanService.updateById(productionPlan);
-            }
-            //检查工单下的计划完成数量是否等于工单数量是就修改状态 工单状态
-            List<ProductionPlan> productionPlanList = productionPlanService.list(q -> q.eq(ProductionPlan::getWorkOrderId,
-                    productionPlan.getWorkOrderId()).eq(ProductionPlan::getStatus, 2));
-            BigDecimal count1 = productionPlanList.stream().map(ProductionPlan::getQuantity)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
-            if (workOrder.getQuantity().compareTo(count1) >= 0) {
-                workOrder.setStatus(2);
-                workOrderService.updateById(workOrder);
-            }
-        }
-    }
-
-    @Override
-    public void edit(CompletionInfoDto completionInfoDto) {
-        this.updateById(completionInfoDto);
-    }
-
-    @Override
-    public void delete(Long id) {
-        this.removeById(id);
-    }
-
-}

+ 0 - 46
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionPlanService.java

@@ -1,46 +0,0 @@
-package com.fjhx.mes.service.production;
-
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import com.ruoyi.common.core.service.BaseService;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionPlanVo;
-import com.fjhx.mes.entity.production.dto.ProductionPlanSelectDto;
-import com.fjhx.mes.entity.production.dto.ProductionPlanDto;
-
-
-/**
- * <p>
- * 生产计划 服务类
- * </p>
- *
- * @author 
- * @since 2023-03-29
- */
-public interface ProductionPlanService extends BaseService<ProductionPlan> {
-
-    /**
-     * 生产计划分页
-     */
-    Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto);
-
-    /**
-     * 生产计划明细
-     */
-    ProductionPlanVo detail(Long id);
-
-    /**
-     * 生产计划新增
-     */
-    void add(ProductionPlanDto productionPlanDto);
-
-    /**
-     * 生产计划编辑
-     */
-    void edit(ProductionPlanDto productionPlanDto);
-
-    /**
-     * 生产计划删除
-     */
-    void delete(Long id);
-
-}

+ 0 - 17
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailRecordService.java

@@ -1,17 +0,0 @@
-package com.fjhx.mes.service.production;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
-import com.ruoyi.common.core.service.BaseService;
-
-
-/**
- * <p>
- * 任务明细记录 服务类
- * </p>
- *
- * @author 
- * @since 2023-05-18
- */
-public interface ProductionTaskDetailRecordService extends BaseService<ProductionTaskDetailRecord> {
-
-}

+ 0 - 57
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailService.java

@@ -1,57 +0,0 @@
-package com.fjhx.mes.service.production;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
-import com.ruoyi.common.core.service.BaseService;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
-import com.fjhx.mes.entity.production.dto.ProductionTaskDetailSelectDto;
-import com.fjhx.mes.entity.production.dto.ProductionTaskDetailDto;
-
-
-/**
- * <p>
- * 生产任务明细 服务类
- * </p>
- *
- * @author 
- * @since 2023-05-18
- */
-public interface ProductionTaskDetailService extends BaseService<ProductionTaskDetail> {
-
-    /**
-     * 生产任务明细分页
-     */
-    Page<ProductionTaskDetailVo> getPage(ProductionTaskDetailSelectDto dto);
-
-    /**
-     * 生产任务流转分页
-     */
-    Page<ProductionTaskDetailVo> circulationPage(ProductionTaskDetailSelectDto dto);
-
-    /**
-     * 生产任务流转
-     */
-    void circulation(ProductionTaskDetailDto productionTaskDetailDto);
-
-    /**
-     * 生产任务流转入库
-     */
-    void productStorage(Long id);
-
-    /**
-     * 生产任务接收分页
-     */
-    Page<ProductionTaskDetailVo> receivePage(ProductionTaskDetailSelectDto dto);
-
-    /**
-     * 生产任务接收
-     */
-    void receive(ProductionTaskDetailDto productionTaskDetailDto);
-
-    /**
-     * 生产任务拒绝接收
-     */
-    void rejection(ProductionTaskDetailDto productionTaskDetailDto);
-
-    ProductionTaskDetailVo snInfo(String sn);
-}

+ 0 - 57
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskService.java

@@ -1,57 +0,0 @@
-package com.fjhx.mes.service.production;
-
-import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.ruoyi.common.core.service.BaseService;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
-import com.fjhx.mes.entity.production.dto.ProductionTaskSelectDto;
-import com.fjhx.mes.entity.production.dto.ProductionTaskDto;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-
-/**
- * <p>
- * 生产任务 服务类
- * </p>
- *
- * @author 
- * @since 2023-03-30
- */
-public interface ProductionTaskService extends BaseService<ProductionTask> {
-
-    /**
-     * 生产任务分页
-     */
-    Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto);
-
-    /**
-     * 生产任务明细
-     */
-    ProductionTaskVo detail(Long id);
-
-    /**
-     * 生产任务新增
-     */
-    void add(ProductionTaskDto productionTaskDto);
-
-    /**
-     * 生产任务编辑
-     */
-    void edit(ProductionTaskDto productionTaskDto);
-
-    /**
-     * 生产任务删除
-     */
-    void delete(Long id);
-
-    List<ProductionTaskVo> myListByIds(List<Long> ids);
-
-    void addByJxst(ProductionTaskDto productionTaskDto);
-
-    ProductionTaskVo detailByJxst(Long id);
-}

+ 0 - 152
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionPlanServiceImpl.java

@@ -1,152 +0,0 @@
-package com.fjhx.mes.service.production.impl;
-
-import cn.hutool.core.util.ObjectUtil;
-import com.fjhx.item.entity.product.po.ProductInfo;
-import com.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
-import com.fjhx.mes.entity.work.po.WorkOrder;
-import com.fjhx.mes.entity.work.vo.WorkOrderVo;
-import com.fjhx.mes.mapper.production.ProductionPlanMapper;
-import com.fjhx.mes.service.production.ProductionPlanService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.mes.service.production.ProductionTaskService;
-import com.fjhx.mes.service.work.WorkOrderService;
-import com.fjhx.mes.utils.code.CodeEnum;
-import com.ruoyi.system.utils.UserUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mes.entity.production.vo.ProductionPlanVo;
-import com.fjhx.mes.entity.production.dto.ProductionPlanSelectDto;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.mes.entity.production.dto.ProductionPlanDto;
-import cn.hutool.core.bean.BeanUtil;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-
-/**
- * <p>
- * 生产计划 服务实现类
- * </p>
- *
- * @author
- * @since 2023-03-29
- */
-@Service
-public class ProductionPlanServiceImpl extends ServiceImpl<ProductionPlanMapper, ProductionPlan> implements ProductionPlanService {
-
-    @Autowired
-    WorkOrderService workOrderService;
-    @Autowired
-    ProductInfoService productInfoService;
-    @Autowired
-    ProductionTaskService productionTaskService;
-
-    @Override
-    public Page<ProductionPlanVo> getPage(ProductionPlanSelectDto dto) {
-        IWrapper<ProductionPlan> wrapper = getWrapper();
-        wrapper.orderByDesc("pp", ProductionPlan::getId);
-        if(ObjectUtil.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(q->q.like(ProductionPlan::getStartDate, dto.getKeyword())
-                    .or().like(ProductionPlan::getStopDate, dto.getKeyword())
-                    .or().like(ProductionPlan::getQuantity, dto.getKeyword()));
-        }
-        Page<ProductionPlanVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        List<ProductionPlanVo> records = page.getRecords();
-
-        //获取工单信息
-        List<Long> workOrderIds = records.stream().map(ProductionPlanVo::getWorkOrderId).collect(Collectors.toList());
-        if(ObjectUtil.isNotEmpty(workOrderIds)) {
-            List<WorkOrder> workOrderList = workOrderService.list(q -> q.in(WorkOrder::getId, workOrderIds));
-            Map<Long, WorkOrder> workOrderMap = workOrderList.stream().collect(Collectors.groupingBy(WorkOrder::getId,
-                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-            //获取产品信息
-            List<Long> productIds = workOrderList.stream().map(WorkOrder::getProductId).collect(Collectors.toList());
-            if(ObjectUtil.isNotEmpty(productIds)) {
-                List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-                Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
-                        Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-                for (ProductionPlanVo productionPlanVo : records) {
-                    WorkOrder workOrder = workOrderMap.get(productionPlanVo.getWorkOrderId());
-                    ProductInfo productInfo = productInfoMap.get(workOrder.getProductId());
-                    if (ObjectUtil.isNotEmpty(productInfo)) {
-                        productionPlanVo.setProductName(productInfo.getName());
-                    }
-                }
-            }
-        }
-        //赋值待排程数量
-        for (ProductionPlanVo productionPlanVo : records) {
-            productionPlanVo.setRemainingQuantity(productionPlanVo.getQuantity());
-        }
-        List<Long> productionPlanIds = records.stream().map(ProductionPlan::getId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(productionPlanIds)) {
-            List<ProductionTask> productionTaskList = productionTaskService.list(q -> q.in(ProductionTask::getProductionPlanId, productionPlanIds));
-            if (ObjectUtil.isNotEmpty(productionTaskList)) {
-                //根据生产计划id分组
-                Map<Long, List<ProductionTask>> productionTaskMap = productionTaskList.stream().collect(Collectors.groupingBy(ProductionTask::getProductionPlanId));
-                for (ProductionPlanVo productionPlanVo : records) {
-                    List<ProductionTask> productionTaskList1 = productionTaskMap.get(productionPlanVo.getId());
-                    BigDecimal count = BigDecimal.ZERO;
-                    if (ObjectUtil.isNotEmpty(productionTaskList1)) {
-                        count = productionTaskList1.stream().map(ProductionTask::getQuantity)
-                                .reduce(BigDecimal.ZERO, BigDecimal::add);
-                    }
-                    productionPlanVo.setRemainingQuantity(productionPlanVo.getQuantity().subtract(count));
-                }
-            }
-        }
-        return page;
-    }
-
-    @Override
-    public ProductionPlanVo detail(Long id) {
-        ProductionPlan ProductionPlan = this.getById(id);
-        ProductionPlanVo result = BeanUtil.toBean(ProductionPlan, ProductionPlanVo.class);
-        //赋值产品信息
-        WorkOrder workOrder = workOrderService.getById(result.getWorkOrderId());
-        ProductInfo productInfo = productInfoService.getById(workOrder.getProductId());
-        if(ObjectUtil.isNotEmpty(productInfo)) {
-            result.setProductName(productInfo.getName());
-        }
-        //赋值生产任务列表
-        List<ProductionTask> list = productionTaskService.list(q -> q.eq(ProductionTask::getProductionPlanId, id));
-        List<ProductionTaskVo> productionTaskVos = BeanUtil.copyToList(list, ProductionTaskVo.class);
-        //赋值负责人名字
-        UserUtil.assignmentNickName(productionTaskVos, ProductionTask::getPersonLiableId, ProductionTaskVo::setPersonLiableName);
-        result.setProductionTaskList(productionTaskVos);
-        return result;
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void add(ProductionPlanDto productionPlanDto) {
-        productionPlanDto.setStatus(0);
-        productionPlanDto.setCode(CodeEnum.PRODUCTION_PLAN.getCode());
-        this.save(productionPlanDto);
-        Long workOrderId = productionPlanDto.getWorkOrderId();
-        //修改工单状态为进行中
-        WorkOrder byId = workOrderService.getById(workOrderId);
-        byId.setStatus(1);
-        workOrderService.updateById(byId);
-    }
-
-    @Override
-    public void edit(ProductionPlanDto productionPlanDto) {
-        this.updateById(productionPlanDto);
-    }
-
-    @Override
-    public void delete(Long id) {
-        this.removeById(id);
-    }
-
-}

+ 0 - 21
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailRecordServiceImpl.java

@@ -1,21 +0,0 @@
-package com.fjhx.mes.service.production.impl;
-
-import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
-import com.fjhx.mes.mapper.production.ProductionTaskDetailRecordMapper;
-import com.fjhx.mes.service.production.ProductionTaskDetailRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-
-/**
- * <p>
- * 任务明细记录 服务实现类
- * </p>
- *
- * @author 
- * @since 2023-05-18
- */
-@Service
-public class ProductionTaskDetailRecordServiceImpl extends ServiceImpl<ProductionTaskDetailRecordMapper, ProductionTaskDetailRecord> implements ProductionTaskDetailRecordService {
-
-}

+ 0 - 315
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -1,315 +0,0 @@
-package com.fjhx.mes.service.production.impl;
-
-import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.common.utils.Assert;
-import com.fjhx.item.entity.product.po.ProductInfo;
-import com.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
-import com.fjhx.mes.entity.production.dto.ProductionTaskDetailDto;
-import com.fjhx.mes.entity.production.dto.ProductionTaskDetailSelectDto;
-import com.fjhx.mes.entity.production.po.*;
-import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
-import com.fjhx.mes.entity.technology.po.Technology;
-import com.fjhx.mes.entity.work.po.WorkOrder;
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import com.fjhx.mes.entity.work.vo.WorkOrderVo;
-import com.fjhx.mes.mapper.production.ProductionTaskDetailMapper;
-import com.fjhx.mes.service.applicable.ApplicableProductsService;
-import com.fjhx.mes.service.production.*;
-import com.fjhx.mes.service.technology.TechnologyService;
-import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
-import com.fjhx.mes.service.work.WorkOrderService;
-import com.fjhx.wms.entity.stock.emums.JournalType;
-import com.fjhx.wms.entity.stock.po.StockWait;
-import com.fjhx.wms.entity.stock.po.StockWaitDetails;
-import com.fjhx.wms.service.stock.StockWaitDetailsService;
-import com.fjhx.wms.service.stock.StockWaitService;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.system.utils.UserUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 生产任务明细 服务实现类
- * </p>
- *
- * @author
- * @since 2023-05-18
- */
-@Service
-public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskDetailMapper, ProductionTaskDetail> implements ProductionTaskDetailService {
-    @Autowired
-    private ProductionTaskDetailRecordService productionTaskDetailRecordService;
-    @Autowired
-    private ProductionTaskService productionTaskService;
-    @Autowired
-    private ProductionPlanService productionPlanService;
-    @Autowired
-    private WorkOrderService workOrderService;
-    @Autowired
-    private WorkOrderProductionProcessesService workOrderProductionProcessesService;
-    @Autowired
-    private ApplicableProductsService applicableProductsService;
-    @Autowired
-    private TechnologyService technologyService;
-    @Autowired
-    private StockWaitService stockWaitService;
-    @Autowired
-    private StockWaitDetailsService stockWaitDetailsService;
-    @Autowired
-    private ProductInfoService productInfoService;
-    @Autowired
-    private ProductionProcessesService productionProcessesService;
-
-    @Override
-    public Page<ProductionTaskDetailVo> getPage(ProductionTaskDetailSelectDto dto) {
-        IWrapper<ProductionTaskDetail> wrapper = getWrapper();
-        return pageCom(wrapper, dto);
-    }
-
-    @Override
-    public Page<ProductionTaskDetailVo> circulationPage(ProductionTaskDetailSelectDto dto) {
-        IWrapper<ProductionTaskDetail> wrapper = getWrapper();
-        //过滤负责人为自己的任务
-        wrapper.eq(ProductionTaskDetail::getPersonLiableId, SecurityUtils.getUserId());
-        //过滤未在流转的记录
-        wrapper.eq(ProductionTaskDetail::getCirculationStatus,0);
-        //过滤未完成的记录
-        wrapper.eq(ProductionTaskDetail::getFinishStatus,0);
-        return pageCom(wrapper, dto);
-    }
-
-    /**
-     * 分页公共方法
-     */
-    Page<ProductionTaskDetailVo> pageCom(IWrapper<ProductionTaskDetail> wrapper, ProductionTaskDetailSelectDto dto) {
-        //关键字搜索
-        if (ObjectUtil.isNotEmpty(dto.getKeyword())){
-            List<Long> productIds = productInfoService.listObject(ProductInfo::getId, q -> q.like(ProductInfo::getName, dto.getKeyword()));
-            wrapper.and(q->q.in(ProductionTaskDetail::getProductId,productIds).or().like(ProductionTaskDetail::getProductSn,dto.getKeyword()));
-        }
-
-        wrapper.orderByDesc("ptd", ProductionTaskDetail::getId);
-        Page<ProductionTaskDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        List<ProductionTaskDetailVo> records = page.getRecords();
-        if(ObjectUtil.isEmpty(records)){
-            return new Page<>();
-        }
-        //赋值流转人名称
-        UserUtil.assignmentNickName(records, ProductionTaskDetailVo::getCirculationUserId, ProductionTaskDetailVo::setCirculationUserName);
-
-        //赋值产品名
-        productInfoService.attributeAssign(records, ProductionTaskDetailVo::getProductId, (item, productInfo) -> {
-            item.setProductName(productInfo.getName());
-        });
-        //赋值当前工序名 目标工序名
-        List<Long> productionTaskIds = records.stream().map(ProductionTaskDetail::getProductionTaskId).collect(Collectors.toList());
-        IWrapper<ProductionTaskDetail> wrapper1 = IWrapper.getWrapper();
-        wrapper1.in("pt", ProductionTaskDetail::getId, productionTaskIds);
-        wrapper1.groupBy("wo.id");
-        List<WorkOrderVo> workOrderByProductionTask = baseMapper.getWorkOrderByProductionTask(wrapper1);
-        Map<Long, WorkOrderVo> WorkOrderMap = workOrderByProductionTask.stream().collect(Collectors.toMap(WorkOrderVo::getProductionTaskId, Function.identity()));
-        List<Long> workIds = workOrderByProductionTask.stream().map(WorkOrderVo::getId).collect(Collectors.toList());
-
-        //获取工序id列表
-        List<Long> productionProcessesIds = records.stream().map(ProductionTaskDetail::getProductionProcessesId).collect(Collectors.toList());
-        productionProcessesIds.addAll(records.stream().map(ProductionTaskDetail::getNextProductionProcessesId).collect(Collectors.toList()));
-        //获取基本工序map
-        Map<Long, String> stringMap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName,
-                q -> q.in(ProductionProcesses::getId, productionProcessesIds));
-        //获取定制工序map
-        Map<Long, String> workOrderProductionPMap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId,
-                WorkOrderProductionProcesses::getName, q -> q.in(WorkOrderProductionProcesses::getWorkOrderId, workIds));
-
-        for (ProductionTaskDetailVo record : records) {
-            WorkOrderVo workOrderVo = WorkOrderMap.get(record.getProductionTaskId());
-            if ("1".equals(workOrderVo.getIsCustomized())) {
-                //如果是定制
-                String name = workOrderProductionPMap.get(record.getProductionProcessesId());
-                String nextName = workOrderProductionPMap.get(record.getNextProductionProcessesId());
-                record.setProductionProcessesName(name);
-                record.setNextProductionProcessesName(nextName);
-            } else {
-                //不是定制
-                String name = stringMap.get(record.getProductionProcessesId());
-                String nextName = stringMap.get(record.getNextProductionProcessesId());
-                record.setProductionProcessesName(name);
-                record.setNextProductionProcessesName(nextName);
-            }
-        }
-
-        return page;
-    }
-
-    /**
-     * 任务流转
-     */
-    @Override
-    public void circulation(ProductionTaskDetailDto productionTaskDetailDto) {
-        //修改流转状态
-        productionTaskDetailDto.setCirculationStatus(1);
-        //赋值接收人id
-        productionTaskDetailDto.setReceivedUserId(productionTaskDetailDto.getReceivedUserId());
-        //赋值流转人id
-        productionTaskDetailDto.setCirculationUserId(SecurityUtils.getUserId());
-        this.updateById(productionTaskDetailDto);
-    }
-
-    /**
-     * 完工入库
-     */
-    @Override
-    public void productStorage(Long id) {
-        ProductionTaskDetail productionTaskDetail = getById(id);
-        if (ObjectUtil.isEmpty(productionTaskDetail)) {
-            throw new ServiceException("未查询到任务明细信息");
-        }
-        productionTaskDetail.setFinishStatus(1);//标记为完成
-        productionTaskDetail.setFinishTime(new Date());//记录完成时间
-        this.updateById(productionTaskDetail);
-
-        StockWait stockWait = new StockWait();
-        stockWait.setCompanyId(SecurityUtils.getCompanyId());
-        stockWait.setType(1);//入库
-        stockWait.setStatus(0);//待入库
-        stockWait.setBusinessType(JournalType.COMPLETION_IN.getDetailType());//
-        stockWait.setBusinessId(productionTaskDetail.getId());//生产任务明细id
-        stockWait.setBusinessCode(productionTaskDetail.getProductSn());//产品sn
-        stockWaitService.save(stockWait);
-        StockWaitDetails stockWaitDetails = new StockWaitDetails();
-        stockWaitDetails.setStockWaitId(stockWait.getId());
-        stockWaitDetails.setProductId(productionTaskDetail.getProductId());
-        stockWaitDetails.setQuantity(BigDecimal.ONE);//生产任务明细入库 数量默认只有1
-        stockWaitDetailsService.save(stockWaitDetails);
-    }
-
-    /**
-     * 任务接收分页
-     */
-    @Override
-    public Page<ProductionTaskDetailVo> receivePage(ProductionTaskDetailSelectDto dto) {
-        IWrapper<ProductionTaskDetail> wrapper = getWrapper();
-        //过滤接收人为自己的任务
-        wrapper.eq(ProductionTaskDetail::getReceivedUserId, SecurityUtils.getUserId());
-        return pageCom(wrapper, dto);
-    }
-
-    /**
-     * 任务接收
-     */
-    @Override
-    public void receive(ProductionTaskDetailDto productionTaskDetailDto) {
-        ProductionTaskDetail productionTaskDetail = getById(productionTaskDetailDto.getId());
-
-        //修改流转状态
-        productionTaskDetail.setCirculationStatus(0);
-        //将下一工序赋值到当前工序
-        productionTaskDetail.setProductionProcessesId(productionTaskDetail.getNextProductionProcessesId());
-        //将负责人赋值为接收人id
-        productionTaskDetail.setPersonLiableId(SecurityUtils.getUserId());
-        //清空接收人
-        productionTaskDetail.setReceivedUserId(-1l);
-
-        //清空下一工序
-        productionTaskDetail.setNextProductionProcessesId(-1l);
-
-
-
-        //查找下一工序相关信息 如果有则赋值
-        ProductionTask productionTask = productionTaskService.getById(productionTaskDetail.getProductionTaskId());
-        ProductionPlan productionPlan = productionPlanService.getById(productionTask.getProductionPlanId());
-        WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
-        if ("1".equals(workOrder.getIsCustomized())) {
-            List<WorkOrderProductionProcesses> workOrderProductionProcesses = workOrderProductionProcessesService.list(q -> q
-                    .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
-                    .orderByAsc(WorkOrderProductionProcesses::getSort));
-            if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
-                throw new ServiceException("定制工单 工序列表为空");
-            }
-
-            //赋值下一工序id
-            for (int i = 0; i < workOrderProductionProcesses.size(); i++) {
-                WorkOrderProductionProcesses wopp = workOrderProductionProcesses.get(i);
-                if (wopp.getId().equals(productionTaskDetail.getProductionProcessesId())) {
-                    //默认赋值空 如果有下一节点赋值下一节点id
-                    if ((i + 1) < workOrderProductionProcesses.size()) {
-                        WorkOrderProductionProcesses nextProductionProcesses = workOrderProductionProcesses.get(i + 1);
-                        productionTaskDetail.setNextProductionProcessesId(nextProductionProcesses.getId());
-                        break;
-                    }
-                }
-            }
-        } else {
-            ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
-            if (ObjectUtil.isEmpty(applicableProducts)) {
-                throw new ServiceException("未找到适用于该产品的工艺信息");
-            }
-            Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
-            if (ObjectUtil.isEmpty(technology)) {
-                throw new ServiceException("工艺信息不存在");
-            }
-            String processRoute = technology.getProcessRoute();
-            if (ObjectUtil.isEmpty(processRoute)) {
-                throw new ServiceException("工艺线路为空");
-            }
-            String[] split = processRoute.split(",");
-            //赋值下一工序id
-            for (int i = 0; i < split.length; i++) {
-                if (Long.parseLong(split[i])==productionTaskDetail.getProductionProcessesId()) {
-                    //默认赋值空 如果有下一节点赋值下一节点id
-                    if ((i + 1) < split.length) {
-                        productionTaskDetail.setNextProductionProcessesId(Long.parseLong(split[i + 1]));
-                        break;
-                    }
-                }
-            }
-        }
-
-        this.updateById(productionTaskDetail);
-
-        //创建任务明细记录
-        ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
-        productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
-        productionTaskDetailRecord.setProductionProcessesId(productionTaskDetail.getProductionProcessesId());
-        productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
-        productionTaskDetailRecordService.save(productionTaskDetailRecord);
-    }
-
-    /**
-     * 任务接收拒绝
-     */
-    @Override
-    public void rejection(ProductionTaskDetailDto productionTaskDetailDto) {
-        //取消流转状态
-        productionTaskDetailDto.setCirculationStatus(0);
-        //将接收人赋值为空
-        productionTaskDetailDto.setReceivedUserId(-1l);
-        this.updateById(productionTaskDetailDto);
-    }
-
-
-    @Override
-    public ProductionTaskDetailVo snInfo(String sn){
-        Assert.notEmpty(sn, "sn不能为空");
-        ProductionTaskDetailVo productionTaskDetailVo = baseMapper.snInfo(sn);
-        Assert.notEmpty(productionTaskDetailVo, "查询不到sn信息");
-        ProductInfo productInfo = productInfoService.getById(productionTaskDetailVo.getProductId());
-        Assert.notEmpty(productInfo, "查询不到产品信息");
-        productionTaskDetailVo.setProductName(productInfo.getName());
-        return productionTaskDetailVo;
-    }
-
-}

+ 0 - 340
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -1,340 +0,0 @@
-package com.fjhx.mes.service.production.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.item.entity.product.po.ProductInfo;
-import com.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
-import com.fjhx.mes.entity.production.dto.ProductionTaskDto;
-import com.fjhx.mes.entity.production.dto.ProductionTaskSelectDto;
-import com.fjhx.mes.entity.production.po.*;
-import com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo;
-import com.fjhx.mes.entity.production.vo.ProductionTaskVo;
-import com.fjhx.mes.entity.technology.po.Technology;
-import com.fjhx.mes.entity.work.po.WorkOrder;
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import com.fjhx.mes.mapper.production.ProductionTaskMapper;
-import com.fjhx.mes.service.applicable.ApplicableProductsService;
-import com.fjhx.mes.service.bom.BomDetailService;
-import com.fjhx.mes.service.bom.BomInfoService;
-import com.fjhx.mes.service.production.*;
-import com.fjhx.mes.service.technology.TechnologyService;
-import com.fjhx.mes.service.work.WorkOrderBomService;
-import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
-import com.fjhx.mes.service.work.WorkOrderService;
-import com.fjhx.wms.service.stock.StockWaitDetailsService;
-import com.fjhx.wms.service.stock.StockWaitService;
-import com.ruoyi.common.exception.ServiceException;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.ruoyi.system.utils.UserUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.math.BigDecimal;
-import java.text.DecimalFormat;
-import java.util.*;
-import java.util.stream.Collectors;
-
-
-/**
- * <p>
- * 生产任务 服务实现类
- * </p>
- *
- * @author
- * @since 2023-03-30
- */
-@Service
-public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper, ProductionTask> implements ProductionTaskService {
-    @Autowired
-    private ProductInfoService productInfoService;
-    @Autowired
-    private ProductionPlanService productionPlanService;
-    @Autowired
-    private WorkOrderService workOrderService;
-    @Autowired
-    private BomInfoService bomInfoService;
-    @Autowired
-    private BomDetailService bomDetailService;
-    @Autowired
-    private StockWaitService stockWaitService;
-    @Autowired
-    private StockWaitDetailsService stockWaitDetailsService;
-    @Autowired
-    private WorkOrderBomService workOrderBomService;
-    @Autowired
-    private WorkOrderProductionProcessesService workOrderProductionProcessesService;
-    @Autowired
-    private TechnologyService technologyService;
-    @Autowired
-    private ApplicableProductsService applicableProductsService;
-    @Autowired
-    private ProductionTaskDetailService productionTaskDetailService;
-    @Autowired
-    private ProductionProcessesService productionProcessesService;
-    @Autowired
-    private ProductionTaskDetailRecordService productionTaskDetailRecordService;
-
-    @Override
-    public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
-        IWrapper<ProductionTask> wrapper = getWrapper();
-        wrapper.orderByDesc("pt", ProductionTask::getId);
-        if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
-            wrapper.and(q -> q.like("pt", ProductionTaskVo::getCode, dto.getKeyword())
-                    .or().like("pt", ProductionTaskVo::getQuantity, dto.getKeyword())
-                    .or().like("pt", ProductionTaskVo::getDueDate, dto.getKeyword()));
-        }
-        Page<ProductionTaskVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
-        List<ProductionTaskVo> records = page.getRecords();
-        //赋值产品名称
-        List<Long> productIds = records.stream().map(ProductionTaskVo::getProductId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(productIds)) {
-            List<ProductInfo> productInfos = productInfoService.listByIds(productIds);
-            Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId,
-                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
-            for (ProductionTaskVo productionTaskVo : records) {
-                Long productId = productionTaskVo.getProductId();
-                if (ObjectUtil.isNotEmpty(productId)) {
-                    ProductInfo productInfo = productInfoMap.get(productId);
-                    if (ObjectUtil.isNotEmpty(productInfo)) {
-                        productionTaskVo.setProductName(productInfo.getName());
-                    }
-                }
-            }
-        }
-
-        //赋值负责人名字
-        UserUtil.assignmentNickName(records, ProductionTask::getPersonLiableId, ProductionTaskVo::setPersonLiableName);
-        return page;
-    }
-
-    @Override
-    public ProductionTaskVo detail(Long id) {
-        ProductionTaskVo productionTaskVo = baseMapper.detail(id);
-        ProductInfo productInfo = productInfoService.getById(productionTaskVo.getProductId());
-        if (ObjectUtil.isNotEmpty(productInfo)) {
-            productionTaskVo.setProductName(productInfo.getName());
-        }
-        Map<Long, String> nickNameMapByIds = UserUtil.getNickNameMapByIds(Arrays.asList(productionTaskVo.getPersonLiableId()));
-        if (ObjectUtil.isNotEmpty(nickNameMapByIds)) {
-            productionTaskVo.setPersonLiableName(nickNameMapByIds.get(productionTaskVo.getPersonLiableId()));
-        }
-        return productionTaskVo;
-    }
-
-    @DSTransactional
-    @Override
-    public void add(ProductionTaskDto productionTaskDto) {
-//        productionTaskDto.setCode(CodeEnum.PRODUCTION_TASK.getCode());
-//        this.save(productionTaskDto);
-//        Long productionPlanId = productionTaskDto.getProductionPlanId();
-//        //更新生产计划状态为进行中
-//        ProductionPlan productionPlan = productionPlanService.getById(productionPlanId);
-//        productionPlan.setStatus(1);
-//        productionPlanService.updateById(productionPlan);
-//
-//        //根据工单是否是定制工单 创建BOM待出库数据
-//        WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
-//        if (ObjectUtil.isEmpty(workOrder)) {
-//            throw new ServiceException("查询不到该任务的工单信息");
-//        }
-//
-//        List<BomDetail> bomDetailList = new ArrayList<>();
-//        if ("1".equals(workOrder.getIsCustomized())) {
-//            List<WorkOrderBom> workOrderBomList = workOrderBomService.list(q -> q.eq(WorkOrderBom::getWorkOrderId, workOrder.getId()));
-//            if (ObjectUtil.isEmpty(workOrderBomList)) {
-//                throw new ServiceException("该工单为定制工单 未配置定制BOM");
-//            }
-//            bomDetailList = BeanUtil.copyToList(workOrderBomList, BomDetail.class);
-//        } else {
-//            //查询BOM信息
-//            BomInfo bomInfo = bomInfoService.getOne(q -> q.eq(BomInfo::getProductId, workOrder.getProductId()).eq(BomInfo::getCurrentVersion,1));
-//            if (ObjectUtil.isEmpty(bomInfo)) {
-//                throw new ServiceException("查询不到产品的BOM信息");
-//            }
-//            bomDetailList = bomDetailService.list(q -> q.eq(BomDetail::getBomInfoId, bomInfo.getId()));
-//            if (ObjectUtil.isEmpty(bomDetailList)) {
-//                throw new ServiceException("查询不到BOM明细");
-//            }
-//        }
-//        //创建待出库信息
-//        StockWait stockWait = new StockWait();
-//        stockWait.setCompanyId(SecurityUtils.getCompanyId());
-//        stockWait.setBusinessId(productionTaskDto.getId());
-//        stockWait.setType(2);//出库
-//        stockWait.setStatus(0);//待出库
-//        stockWait.setBusinessType(JournalType.PROD_OUT.getDetailType());//生产任务出库
-//        stockWaitService.save(stockWait);
-//        //创建待出库明细
-//        List<StockWaitDetails> stockWaitDetailsList = new ArrayList<>();
-//        for (BomDetail bomDetail : bomDetailList) {
-//            //计算数量
-//            BigDecimal multiply = bomDetail.getQuantity().multiply(productionTaskDto.getQuantity());
-//            //创建待出库明细
-//            StockWaitDetails stockWaitDetails = new StockWaitDetails();
-//            stockWaitDetails.setStockWaitId(stockWait.getId());
-//            stockWaitDetails.setProductId(bomDetail.getProductId());
-//            stockWaitDetails.setQuantity(multiply);
-//            stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
-//            stockWaitDetailsList.add(stockWaitDetails);
-//        }
-//        stockWaitDetailsService.saveBatch(stockWaitDetailsList);
-    }
-
-    @Override
-    public void edit(ProductionTaskDto productionTaskDto) {
-        this.updateById(productionTaskDto);
-    }
-
-    @Override
-    public void delete(Long id) {
-        this.removeById(id);
-    }
-
-    @Override
-    public List<ProductionTaskVo> myListByIds(List<Long> ids) {
-        QueryWrapper queryWrapper = new QueryWrapper();
-        queryWrapper.in("pt.id", ids);
-        return baseMapper.myListByIds(queryWrapper);
-    }
-
-    @DSTransactional
-    @Override
-    public void addByJxst(ProductionTaskDto productionTaskDto) {
-        add(productionTaskDto);
-        //获取生产计划信息
-        ProductionPlan productionPlan = productionPlanService.getById(productionTaskDto.getProductionPlanId());
-        if (ObjectUtil.isEmpty(productionPlan)) {
-            throw new ServiceException("查询不到该任务的生产计划信息");
-        }
-        //获取工单信息
-        WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
-        if (ObjectUtil.isEmpty(workOrder)) {
-            throw new ServiceException("查询不到该任务的工单信息");
-        }
-        //判断是否为定制 获取工序信息
-        Long productionProcessesId;
-        Long nextProductionProcessesId = null;
-        if ("1".equals(workOrder.getIsCustomized())) {
-            List<WorkOrderProductionProcesses> workOrderProductionProcesses = workOrderProductionProcessesService.list(q -> q
-                    .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
-                    .orderByAsc(WorkOrderProductionProcesses::getSort));
-            if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
-                throw new ServiceException("定制工单 工序列表为空");
-            }
-            productionProcessesId = workOrderProductionProcesses.get(0).getId();
-            //赋值下一工序id
-            if(workOrderProductionProcesses.size()>1){
-                nextProductionProcessesId =  workOrderProductionProcesses.get(1).getId();
-            }
-        } else {
-            ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
-            if (ObjectUtil.isEmpty(applicableProducts)) {
-                throw new ServiceException("未找到适用于该产品的工艺信息");
-            }
-            Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
-            if (ObjectUtil.isEmpty(technology)) {
-                throw new ServiceException("工艺信息不存在");
-            }
-            String processRoute = technology.getProcessRoute();
-            if (ObjectUtil.isEmpty(processRoute)) {
-                throw new ServiceException("工艺线路为空");
-            }
-            String[] split = processRoute.split(",");
-            productionProcessesId = Long.valueOf(split[0]);
-            //赋值下一工序id
-            if(split.length>1){
-                nextProductionProcessesId =  Long.valueOf(split[1]);
-            }
-        }
-        //创建任务明细
-        List<ProductionTaskDetail> productionTaskDetailList = new ArrayList<>();
-        List<ProductionTaskDetailRecord> productionTaskDetailRecordList = new ArrayList<>();
-        for (int i = 0; i < productionTaskDto.getQuantity().intValue(); i++) {
-            ProductionTaskDetail productionTaskDetail = new ProductionTaskDetail();
-            productionTaskDetail.setId(IdWorker.getId());
-            productionTaskDetail.setProductionTaskId(productionTaskDto.getId());//任务id
-            productionTaskDetail.setFinishStatus(0);//默认状态未完工
-            productionTaskDetail.setProductId(workOrder.getProductId());//产品id
-            productionTaskDetail.setProductionProcessesId(productionProcessesId);//第一个工序id
-            productionTaskDetail.setNextProductionProcessesId(nextProductionProcessesId);//第二个工序id
-            //生成SN
-            productionTaskDetail.setProductSn(String.format("%s-%03d", productionTaskDto.getCode(), i + 1));
-            productionTaskDetail.setPersonLiableId(productionTaskDto.getPersonLiableId());//负责人ID
-            productionTaskDetailList.add(productionTaskDetail);
-            //创建任务明细记录
-            ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
-            productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetail.getId());
-            productionTaskDetailRecord.setProductionProcessesId(productionProcessesId);
-            productionTaskDetailRecord.setPersonLiableId(productionTaskDto.getPersonLiableId());
-            productionTaskDetailRecordList.add(productionTaskDetailRecord);
-        }
-        productionTaskDetailService.saveBatch(productionTaskDetailList);
-        productionTaskDetailRecordService.saveBatch(productionTaskDetailRecordList);
-    }
-
-    @Override
-    public ProductionTaskVo detailByJxst(Long id) {
-        ProductionTaskVo detail = detail(id);
-        //赋值待排程数
-        Long productionPlanId = detail.getProductionPlanId();
-        ProductionPlan productionPlan = productionPlanService.getById(productionPlanId);
-        List<ProductionTask> list1 = list(q -> q.eq(ProductionTask::getProductionPlanId, productionPlan.getId()));
-        BigDecimal remainingQuantity = productionPlan.getQuantity().subtract(BigDecimal.valueOf(list1.size()));
-        detail.setRemainingQuantity(remainingQuantity);
-        detail.setProductionPlanCode(productionPlan.getCode());
-
-        List<ProductionTaskDetail> list = productionTaskDetailService.list(q -> q.eq(ProductionTaskDetail::getProductionTaskId, id));
-        List<ProductionTaskDetailVo> productionTaskDetailVos = BeanUtil.copyToList(list, ProductionTaskDetailVo.class);
-        //赋值当前工序名称
-        WorkOrder workOrder = workOrderService.getById(productionPlan.getWorkOrderId());
-        //判断是否是定制工单 获取指定工序
-        if ("1".equals(workOrder.getIsCustomized())) {
-            //获取定制工序
-            Map<Long, String> gxmap = workOrderProductionProcessesService.mapKV(WorkOrderProductionProcesses::getId, WorkOrderProductionProcesses::getName, q -> q.eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId()));
-            if (ObjectUtil.isNotEmpty(gxmap)) {
-                for (ProductionTaskDetailVo productionTaskDetail : productionTaskDetailVos) {
-                    String gxname = gxmap.get(productionTaskDetail.getProductionProcessesId());
-                    productionTaskDetail.setProductionProcessesName(gxname);
-                }
-            }
-        } else {
-            //获取基本工序
-            ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
-            if (ObjectUtil.isNotEmpty(applicableProducts)) {
-                Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
-                if (ObjectUtil.isNotEmpty(technology)) {
-                    String processRoute = technology.getProcessRoute();
-                    if (ObjectUtil.isNotEmpty(processRoute)) {
-                        String[] split = processRoute.split(",");
-                        Map<Long, String> gxmap = productionProcessesService.mapKV(ProductionProcesses::getId, ProductionProcesses::getName, q -> q.in(ProductionProcesses::getId, split));
-                        for (ProductionTaskDetailVo productionTaskDetail : productionTaskDetailVos) {
-                            String gxname = gxmap.get(productionTaskDetail.getProductionProcessesId());
-                            productionTaskDetail.setProductionProcessesName(gxname);
-                        }
-                    }
-                }
-            }
-        }
-        //赋值累计耗时
-        for (ProductionTaskDetailVo productionTaskDetail : productionTaskDetailVos) {
-            long diff = new Date().getTime() - productionTaskDetail.getCreateTime().getTime();
-            DecimalFormat decimalFormat = new DecimalFormat("#0.00");
-            String formattedResult = decimalFormat.format(diff / 60.0 / 60.0 / 1000.0);
-            productionTaskDetail.setCumulativeTime(formattedResult);
-
-            //判断是否完工
-            if(productionTaskDetail.getFinishStatus()==1){
-                productionTaskDetail.setProductionProcessesName("已完成");
-            }
-        }
-        detail.setProductionTaskDetailList(productionTaskDetailVos);
-        return detail;
-    }
-
-}

+ 0 - 30
hx-mes/src/main/java/com/fjhx/mes/service/work/WorkOrderProductionProcessesService.java

@@ -1,30 +0,0 @@
-package com.fjhx.mes.service.work;
-
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import com.ruoyi.common.core.service.BaseService;
-import com.fjhx.mes.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.fjhx.mes.entity.work.dto.WorkOrderProductionProcessesDto;
-
-import java.util.List;
-
-/**
- * <p>
- * 工单工序 服务类
- * </p>
- *
- * @author 
- * @since 2023-05-17
- */
-public interface WorkOrderProductionProcessesService extends BaseService<WorkOrderProductionProcesses> {
-
-    /**
-     * 工单工序列表
-     */
-    List<WorkOrderProductionProcessesVo> getList(WorkOrderProductionProcesses dto);
-
-    /**
-     * 工单工序编辑
-     */
-    void edit(WorkOrderProductionProcessesDto workOrderProductionProcessesDto);
-
-}

+ 0 - 115
hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderProductionProcessesServiceImpl.java

@@ -1,115 +0,0 @@
-package com.fjhx.mes.service.work.impl;
-
-import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.dynamic.datasource.annotation.DSTransactional;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fjhx.file.entity.ObsFile;
-import com.fjhx.file.utils.ObsFileUtil;
-import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
-import com.fjhx.mes.entity.production.po.ProductionProcesses;
-import com.fjhx.mes.entity.technology.po.Technology;
-import com.fjhx.mes.entity.work.dto.WorkOrderProductionProcessesDto;
-import com.fjhx.mes.entity.work.po.WorkOrder;
-import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
-import com.fjhx.mes.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.fjhx.mes.mapper.work.WorkOrderProductionProcessesMapper;
-import com.fjhx.mes.service.applicable.ApplicableProductsService;
-import com.fjhx.mes.service.production.ProductionProcessesService;
-import com.fjhx.mes.service.technology.TechnologyService;
-import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
-import com.fjhx.mes.service.work.WorkOrderService;
-import com.ruoyi.common.exception.ServiceException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * <p>
- * 工单工序 服务实现类
- * </p>
- *
- * @author
- * @since 2023-05-17
- */
-@Service
-public class WorkOrderProductionProcessesServiceImpl extends ServiceImpl<WorkOrderProductionProcessesMapper, WorkOrderProductionProcesses> implements WorkOrderProductionProcessesService {
-
-    @Autowired
-    private TechnologyService technologyService;
-    @Autowired
-    private ApplicableProductsService applicableProductsService;
-    @Autowired
-    private WorkOrderService workOrderService;
-    @Autowired
-    private ProductionProcessesService productionProcessesService;
-
-    @Override
-    public List<WorkOrderProductionProcessesVo> getList(WorkOrderProductionProcesses dto) {
-        WorkOrder workOrder = workOrderService.getById(dto.getWorkOrderId());
-        if (ObjectUtil.isEmpty(workOrder)) {
-            throw new ServiceException("查询不到工单信息");
-        }
-        List<WorkOrderProductionProcesses> workOrderProductionProcessesList = list(q -> q
-                .eq(WorkOrderProductionProcesses::getWorkOrderId, dto.getWorkOrderId())
-                .orderByAsc(WorkOrderProductionProcesses::getSort));
-        //如果定制工序信息为空就获取基础工艺工序信息
-        if (ObjectUtil.isEmpty(workOrderProductionProcessesList)) {
-            ApplicableProducts applicableProducts = applicableProductsService.getOne(q -> q.eq(ApplicableProducts::getProductId, workOrder.getProductId()));
-            if (ObjectUtil.isEmpty(applicableProducts)) {
-                throw new ServiceException("未找到适用于该产品的工艺信息");
-            }
-            Technology technology = technologyService.getById(applicableProducts.getTechnologyId());
-            if (ObjectUtil.isEmpty(technology)) {
-                throw new ServiceException("工艺信息不存在");
-            }
-            String processRoute = technology.getProcessRoute();
-            if (ObjectUtil.isEmpty(processRoute)) {
-                throw new ServiceException("工艺线路为空");
-            }
-            String[] split = processRoute.split(",");
-            List<ProductionProcesses> productionProcesses = productionProcessesService.list(q -> q.in(ProductionProcesses::getId, split));
-            List<WorkOrderProductionProcessesVo> workOrderProductionProcessesList0 = BeanUtil.copyToList(productionProcesses, WorkOrderProductionProcessesVo.class);
-            int i = 0;
-            for (WorkOrderProductionProcessesVo workOrderProductionProcesses : workOrderProductionProcessesList0) {
-                workOrderProductionProcesses.setOldId(workOrderProductionProcesses.getId());//赋值带过来的id
-                workOrderProductionProcesses.setId(null);
-                workOrderProductionProcesses.setSort(i);
-                i++;
-            }
-            return workOrderProductionProcessesList0;
-        }
-        List<WorkOrderProductionProcessesVo> workOrderProductionProcessesVos = BeanUtil.copyToList(workOrderProductionProcessesList, WorkOrderProductionProcessesVo.class);
-        return workOrderProductionProcessesVos;
-    }
-
-    @DSTransactional
-    @Override
-    public void edit(WorkOrderProductionProcessesDto workOrderProductionProcessesDto) {
-//        this.updateById(workOrderProductionProcessesDto);
-
-        List<WorkOrderProductionProcessesVo> workOrderProductionProcessesList = workOrderProductionProcessesDto.getWorkOrderProductionProcessesList();
-
-        int i = 0;
-        for (WorkOrderProductionProcessesVo workOrderProductionProcesses : workOrderProductionProcessesList) {
-            workOrderProductionProcesses.setWorkOrderId(workOrderProductionProcessesDto.getWorkOrderId());
-            workOrderProductionProcesses.setSort(i);
-            List<ObsFile> fileList = workOrderProductionProcesses.getFileList();
-            if (ObjectUtil.isNotEmpty(fileList)) {
-                workOrderProductionProcesses.setFileName(fileList.get(0).getFileName());
-            }
-            i++;
-
-            //处理附件信息
-            if (ObjectUtil.isEmpty(workOrderProductionProcesses.getId())) {
-                ObsFileUtil.saveFile(workOrderProductionProcesses.getFileList(), workOrderProductionProcesses.getId());
-            } else {
-                ObsFileUtil.editFile(workOrderProductionProcesses.getFileList(), workOrderProductionProcesses.getId());
-            }
-        }
-        List<WorkOrderProductionProcesses> workOrderProductionProcessesList1 = BeanUtil.copyToList(workOrderProductionProcessesList, WorkOrderProductionProcesses.class);
-        this.editLinked(workOrderProductionProcessesList1, WorkOrderProductionProcesses::getWorkOrderId, workOrderProductionProcessesDto.getWorkOrderId());
-    }
-
-}