Просмотр исходного кода

生产任务流转,维多利亚问题处理

yzc 2 лет назад
Родитель
Сommit
16906d9475
20 измененных файлов с 420 добавлено и 17 удалено
  1. 25 1
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskDetailController.java
  2. 19 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskDetailRecordController.java
  3. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailRecordDto.java
  4. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailRecordSelectDto.java
  5. 13 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java
  6. 37 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetailRecord.java
  7. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailRecordVo.java
  8. 10 1
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailMapper.java
  9. 17 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailRecordMapper.java
  10. 17 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailRecordService.java
  11. 15 1
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailService.java
  12. 21 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailRecordServiceImpl.java
  13. 129 3
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java
  14. 26 10
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java
  15. 18 0
      hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.xml
  16. 4 0
      hx-mes/src/main/resources/mapper/production/ProductionTaskDetailRecordMapper.xml
  17. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java
  18. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeDetailVo.java
  19. 5 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java
  20. 3 1
      hx-purchase/src/main/resources/mapper/subscribe/SubscribeDetailMapper.xml

+ 25 - 1
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskDetailController.java

@@ -1,6 +1,12 @@
 package com.fjhx.mes.controller.production;
 
 import org.springframework.web.bind.annotation.*;
+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;
+import com.fjhx.mes.service.production.ProductionTaskDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
 
 
 /**
@@ -9,11 +15,29 @@ import org.springframework.web.bind.annotation.*;
  * </p>
  *
  * @author 
- * @since 2023-05-17
+ * @since 2023-05-18
  */
 @RestController
 @RequestMapping("/productionTaskDetail")
 public class ProductionTaskDetailController {
 
+    @Autowired
+    private ProductionTaskDetailService productionTaskDetailService;
+
+    /**
+     * 生产任务明细分页
+     */
+    @PostMapping("/page")
+    public Page<ProductionTaskDetailVo> page(@RequestBody ProductionTaskDetailSelectDto dto) {
+        return productionTaskDetailService.getPage(dto);
+    }
+
+    /**
+     * 生产任务明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductionTaskDetailDto productionTaskDetailDto) {
+        productionTaskDetailService.edit(productionTaskDetailDto);
+    }
 
 }

+ 19 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskDetailRecordController.java

@@ -0,0 +1,19 @@
+package com.fjhx.mes.controller.production;
+
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * <p>
+ * 任务明细记录 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@RestController
+@RequestMapping("/productionTaskDetailRecord")
+public class ProductionTaskDetailRecordController {
+
+
+}

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

@@ -0,0 +1,17 @@
+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 {
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 任务明细记录列表查询入参实体
+ *
+ * @author 
+ * @since 2023-05-18
+ */
+@Getter
+@Setter
+public class ProductionTaskDetailRecordSelectDto extends BaseSelectDto {
+
+}

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

@@ -54,4 +54,17 @@ public class ProductionTaskDetail extends BasePo {
      */
     private Long personLiableId;
 
+    /**
+     * 下一工序id
+     */
+    private Long nextProductionProcessesId;
+    /**
+     * 流转人id
+     */
+    private Long circulationUserId;
+    /**
+     * 流转状态
+     */
+    private Integer circulationStatus;
+
 }

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

@@ -0,0 +1,37 @@
+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;
+
+}

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

@@ -0,0 +1,17 @@
+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 {
+
+}

+ 10 - 1
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailMapper.java

@@ -2,6 +2,10 @@ 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.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
@@ -10,8 +14,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * </p>
  *
  * @author 
- * @since 2023-05-17
+ * @since 2023-05-18
  */
 public interface ProductionTaskDetailMapper extends BaseMapper<ProductionTaskDetail> {
 
+    /**
+     * 生产任务明细分页
+     */
+    Page<ProductionTaskDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionTaskDetail> wrapper);
+
 }

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

@@ -0,0 +1,17 @@
+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> {
+
+}

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

@@ -0,0 +1,17 @@
+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> {
+
+}

+ 15 - 1
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailService.java

@@ -2,6 +2,10 @@ 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;
 
 
 /**
@@ -10,8 +14,18 @@ import com.ruoyi.common.core.service.BaseService;
  * </p>
  *
  * @author 
- * @since 2023-05-17
+ * @since 2023-05-18
  */
 public interface ProductionTaskDetailService extends BaseService<ProductionTaskDetail> {
 
+    /**
+     * 生产任务明细分页
+     */
+    Page<ProductionTaskDetailVo> getPage(ProductionTaskDetailSelectDto dto);
+
+    /**
+     * 生产任务明细编辑
+     */
+    void edit(ProductionTaskDetailDto productionTaskDetailDto);
+
 }

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

@@ -0,0 +1,21 @@
+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 {
+
+}

+ 129 - 3
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java

@@ -1,21 +1,147 @@
 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.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.ProductionPlan;
+import com.fjhx.mes.entity.production.po.ProductionTask;
 import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
+import com.fjhx.mes.entity.production.po.ProductionTaskDetailRecord;
+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.mapper.production.ProductionTaskDetailMapper;
+import com.fjhx.mes.service.production.ProductionPlanService;
+import com.fjhx.mes.service.production.ProductionTaskDetailRecordService;
 import com.fjhx.mes.service.production.ProductionTaskDetailService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mes.service.production.ProductionTaskService;
+import com.fjhx.mes.service.work.WorkOrderProductionProcessesService;
+import com.fjhx.mes.service.work.WorkOrderService;
+import com.obs.services.internal.ServiceException;
+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.util.List;
+
 
 /**
  * <p>
  * 生产任务明细 服务实现类
  * </p>
  *
- * @author 
- * @since 2023-05-17
+ * @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;
+
+    @Override
+    public Page<ProductionTaskDetailVo> getPage(ProductionTaskDetailSelectDto dto) {
+        IWrapper<ProductionTaskDetail> wrapper = getWrapper();
+        //过滤负责人为自己的任务
+        wrapper.eq(ProductionTaskDetail::getPersonLiableId, SecurityUtils.getUserId());
+        wrapper.orderByDesc("ptd", ProductionTaskDetail::getId);
+        Page<ProductionTaskDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public void edit(ProductionTaskDetailDto productionTaskDetailDto) {
+        this.updateById(productionTaskDetailDto);
+    }
+
+    /**
+     * 任务流转
+     */
+    public void circulation(ProductionTaskDetailDto productionTaskDetailDto) {
+        //修改流转状态
+        productionTaskDetailDto.setCirculationStatus(1);
+        //赋值流转人id
+        productionTaskDetailDto.setCirculationUserId(SecurityUtils.getUserId());
+        this.updateById(productionTaskDetailDto);
+    }
+
+    /**
+     * 任务流转接收
+     */
+    public void receive(ProductionTaskDetailDto productionTaskDetailDto) {
+        //修改流转状态
+        productionTaskDetailDto.setCirculationStatus(0);
+        //将下一工序赋值到当前工序
+        productionTaskDetailDto.setProductionProcessesId(productionTaskDetailDto.getNextProductionProcessesId());
+        //将负责人赋值为接收人id
+        productionTaskDetailDto.setPersonLiableId(SecurityUtils.getUserId());
+
+        //赋值下一工序相关信息
+//        ProductionTask productionTask = productionTaskService.getById(productionTaskDetailDto.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("定制工单 工序列表为空");
+//            }
+//
+//            for (int i = 0; i < workOrderProductionProcesses.size(); i++) {
+//                WorkOrderProductionProcesses wopp = workOrderProductionProcesses.get(i);
+//                if(wopp.getId().equals(productionTaskDetailDto.getProductionProcessesId())){
+//
+//                }
+//            }
+//
+//            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]);
+//            }
+//        }
+
+        this.updateById(productionTaskDetailDto);
+
+        //创建任务明细记录
+        ProductionTaskDetailRecord productionTaskDetailRecord = new ProductionTaskDetailRecord();
+        productionTaskDetailRecord.setProductionTaskDetailId(productionTaskDetailDto.getId());
+        productionTaskDetailRecord.setProductionProcessesId(productionTaskDetailDto.getProductionProcessesId());
+        productionTaskDetailRecord.setPersonLiableId(SecurityUtils.getUserId());
+        productionTaskDetailRecordService.save(productionTaskDetailRecord);
+
+    }
 
 }

+ 26 - 10
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java

@@ -4,6 +4,7 @@ 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;
@@ -13,10 +14,7 @@ import com.fjhx.mes.entity.bom.po.BomDetail;
 import com.fjhx.mes.entity.bom.po.BomInfo;
 import com.fjhx.mes.entity.production.dto.ProductionTaskDto;
 import com.fjhx.mes.entity.production.dto.ProductionTaskSelectDto;
-import com.fjhx.mes.entity.production.po.ProductionPlan;
-import com.fjhx.mes.entity.production.po.ProductionProcesses;
-import com.fjhx.mes.entity.production.po.ProductionTask;
-import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
+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;
@@ -27,10 +25,7 @@ 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.ProductionPlanService;
-import com.fjhx.mes.service.production.ProductionProcessesService;
-import com.fjhx.mes.service.production.ProductionTaskDetailService;
-import com.fjhx.mes.service.production.ProductionTaskService;
+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;
@@ -89,6 +84,8 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
     private ProductionTaskDetailService productionTaskDetailService;
     @Autowired
     private ProductionProcessesService productionProcessesService;
+    @Autowired
+    private ProductionTaskDetailRecordService productionTaskDetailRecordService;
 
     @Override
     public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
@@ -228,14 +225,19 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
         }
         //判断是否为定制 获取工序信息
         Long productionProcessesId;
+        Long nextProductionProcessesId = null;
         if ("1".equals(workOrder.getIsCustomized())) {
-            WorkOrderProductionProcesses workOrderProductionProcesses = workOrderProductionProcessesService.getOne(q -> q
+            List<WorkOrderProductionProcesses> workOrderProductionProcesses = workOrderProductionProcessesService.list(q -> q
                     .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
                     .orderByAsc(WorkOrderProductionProcesses::getSort));
             if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
                 throw new ServiceException("定制工单 工序列表为空");
             }
-            productionProcessesId = workOrderProductionProcesses.getId();
+            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)) {
@@ -251,21 +253,35 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
             }
             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

+ 18 - 0
hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.xml

@@ -1,4 +1,22 @@
 <?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="com.fjhx.mes.mapper.production.ProductionTaskDetailMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionTaskDetailVo">
+        select
+            ptd.id,
+            ptd.product_id,
+            ptd.production_task_id,
+            ptd.product_sn,
+            ptd.production_processes_id,
+            ptd.finish_time,
+            ptd.finish_status,
+            ptd.person_liable_id,
+            ptd.create_user,
+            ptd.create_time,
+            ptd.update_user,
+            ptd.update_time
+        from production_task_detail ptd
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 4 - 0
hx-mes/src/main/resources/mapper/production/ProductionTaskDetailRecordMapper.xml

@@ -0,0 +1,4 @@
+<?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="com.fjhx.mes.mapper.production.ProductionTaskDetailRecordMapper">
+</mapper>

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/dto/SubscribeDetailSelectDto.java

@@ -43,4 +43,9 @@ public class SubscribeDetailSelectDto extends BaseSelectDto {
      */
     private Integer definition;
 
+    /**
+     * 部门id
+     */
+    private Long deptId;
+
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/subscribe/vo/SubscribeDetailVo.java

@@ -71,4 +71,9 @@ public class SubscribeDetailVo extends SubscribeDetail {
      * 产品自定义编码
      */
     private String productCustomCode;
+
+    /**
+     * 流程id
+     */
+    private Long flowId;
 }

+ 5 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/subscribe/impl/SubscribeDetailServiceImpl.java

@@ -78,6 +78,7 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
 
         // 维多利亚扩展根据到货仓库id过滤
         wrapper.eq("json_unquote(t2.victoriatourist_json -> '$.receiptWarehouseId')", dto.getReceiptWarehouseId());
+        wrapper.eq("json_unquote(pi.victoriatourist_json -> '$.deptId')", dto.getDeptId());
         wrapper.orderByDesc("t1", SubscribeDetail::getCreateTime);
 
         Page<SubscribeDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
@@ -97,6 +98,10 @@ public class SubscribeDetailServiceImpl extends ServiceImpl<SubscribeDetailMappe
             s.setProductUnit(productInfo.getUnit());
             s.setProductDefinition(productInfo.getDefinition());
             s.setProductCustomCode(productInfo.getCustomCode());
+
+            String victoriatouristJson = productInfo.getVictoriatouristJson();
+            JSONObject json = ObjectUtil.isNotEmpty(victoriatouristJson) ? JSONObject.parseObject(victoriatouristJson) : new JSONObject();
+            s.setDeptId(json.getLong("deptId"));
         }
 
         return page;

+ 3 - 1
hx-purchase/src/main/resources/mapper/subscribe/SubscribeDetailMapper.xml

@@ -11,10 +11,12 @@
             t2.id AS subcribeId,
             t2.required_arrival_time AS requiredArrivalTime,
             t2.put_warehouse_id AS putWarehouseId,
-            t2.victoriatourist_json
+            t2.victoriatourist_json,
+            t2.flow_id
         FROM
             subscribe_detail t1
         LEFT JOIN subscribe t2 ON t1.subscribe_id = t2.id
+        left JOIN bytesailing_item.product_info pi on t1.bussiness_id = pi.id
             ${ew.customSqlSegment}
     </select>