瀏覽代碼

生产任务

yzc 2 年之前
父節點
當前提交
557b0314f4
共有 33 個文件被更改,包括 407 次插入110 次删除
  1. 0 22
      hx-jxst/src/main/java/com/fjhx/jxst/mapper/work/WorkOrderBomMapper.java
  2. 0 21
      hx-jxst/src/main/java/com/fjhx/jxst/mapper/work/WorkOrderProductionProcessesMapper.java
  3. 1 1
      hx-jxst/src/main/resources/mapper/work/WorkOrderBomMapper.xml
  4. 1 1
      hx-jxst/src/main/resources/mapper/work/WorkOrderProductionProcessesMapper.xml
  5. 16 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskController.java
  6. 19 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskDetailController.java
  7. 5 6
      hx-mes/src/main/java/com/fjhx/mes/controller/work/WorkOrderBomController.java
  8. 5 6
      hx-mes/src/main/java/com/fjhx/mes/controller/work/WorkOrderProductionProcessesController.java
  9. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailDto.java
  10. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailSelectDto.java
  11. 57 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTaskDetail.java
  12. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskDetailVo.java
  13. 18 5
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskVo.java
  14. 2 2
      hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderBomDto.java
  15. 1 1
      hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderBomSelectDto.java
  16. 3 3
      hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderProductionProcessesDto.java
  17. 1 1
      hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderProductionProcessesSelectDto.java
  18. 1 1
      hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrderBom.java
  19. 1 1
      hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrderProductionProcesses.java
  20. 2 2
      hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderBomVo.java
  21. 2 2
      hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderProductionProcessesVo.java
  22. 17 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskDetailMapper.java
  23. 17 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/work/WorkOrderBomMapper.java
  24. 16 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/work/WorkOrderProductionProcessesMapper.java
  25. 17 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskDetailService.java
  26. 4 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskService.java
  27. 21 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskDetailServiceImpl.java
  28. 105 10
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java
  29. 4 5
      hx-mes/src/main/java/com/fjhx/mes/service/work/WorkOrderBomService.java
  30. 4 5
      hx-mes/src/main/java/com/fjhx/mes/service/work/WorkOrderProductionProcessesService.java
  31. 6 9
      hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderBomServiceImpl.java
  32. 6 6
      hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderProductionProcessesServiceImpl.java
  33. 4 0
      hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.xml

+ 0 - 22
hx-jxst/src/main/java/com/fjhx/jxst/mapper/work/WorkOrderBomMapper.java

@@ -1,22 +0,0 @@
-package com.fjhx.jxst.mapper.work;
-
-import com.fjhx.jxst.entity.work.po.WorkOrderBom;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.fjhx.jxst.entity.work.vo.WorkOrderBomVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>
- * 工单bom Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-05-17
- */
-public interface WorkOrderBomMapper extends BaseMapper<WorkOrderBom> {
-
-
-}

+ 0 - 21
hx-jxst/src/main/java/com/fjhx/jxst/mapper/work/WorkOrderProductionProcessesMapper.java

@@ -1,21 +0,0 @@
-package com.fjhx.jxst.mapper.work;
-
-import com.fjhx.jxst.entity.work.po.WorkOrderProductionProcesses;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.fjhx.jxst.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-/**
- * <p>
- * 工单工序 Mapper 接口
- * </p>
- *
- * @author 
- * @since 2023-05-17
- */
-public interface WorkOrderProductionProcessesMapper extends BaseMapper<WorkOrderProductionProcesses> {
-
-}

+ 1 - 1
hx-jxst/src/main/resources/mapper/work/WorkOrderBomMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.fjhx.jxst.mapper.work.WorkOrderBomMapper">
+<mapper namespace="com.fjhx.mes.mapper.work.WorkOrderBomMapper">
 
 </mapper>

+ 1 - 1
hx-jxst/src/main/resources/mapper/work/WorkOrderProductionProcessesMapper.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.fjhx.jxst.mapper.work.WorkOrderProductionProcessesMapper">
+<mapper namespace="com.fjhx.mes.mapper.work.WorkOrderProductionProcessesMapper">
 
 </mapper>

+ 16 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskController.java

@@ -68,4 +68,20 @@ public class ProductionTaskController {
         productionTaskService.delete(dto.getId());
     }
 
+    /**
+     * 生产任务新增 嘉兴双拓
+     */
+    @PostMapping("/addByJxst")
+    public void addByJxst(@RequestBody ProductionTaskDto productionTaskDto) {
+        productionTaskService.addByJxst(productionTaskDto);
+    }
+
+    /**
+     * 生产任务明细 嘉兴双拓
+     */
+    @PostMapping("/detailByJxst")
+    public ProductionTaskVo detailByJxst(@RequestBody BaseSelectDto dto) {
+        return productionTaskService.detailByJxst(dto.getId());
+    }
+
 }

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

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

+ 5 - 6
hx-jxst/src/main/java/com/fjhx/jxst/controller/work/WorkOrderBomController.java → hx-mes/src/main/java/com/fjhx/mes/controller/work/WorkOrderBomController.java

@@ -1,11 +1,10 @@
-package com.fjhx.jxst.controller.work;
+package com.fjhx.mes.controller.work;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderBom;
+import com.fjhx.mes.entity.work.po.WorkOrderBom;
 import org.springframework.web.bind.annotation.*;
-import com.fjhx.jxst.entity.work.vo.WorkOrderBomVo;
-import com.fjhx.jxst.entity.work.dto.WorkOrderBomSelectDto;
-import com.fjhx.jxst.entity.work.dto.WorkOrderBomDto;
-import com.fjhx.jxst.service.work.WorkOrderBomService;
+import com.fjhx.mes.entity.work.vo.WorkOrderBomVo;
+import com.fjhx.mes.entity.work.dto.WorkOrderBomDto;
+import com.fjhx.mes.service.work.WorkOrderBomService;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.List;

+ 5 - 6
hx-jxst/src/main/java/com/fjhx/jxst/controller/work/WorkOrderProductionProcessesController.java → hx-mes/src/main/java/com/fjhx/mes/controller/work/WorkOrderProductionProcessesController.java

@@ -1,11 +1,10 @@
-package com.fjhx.jxst.controller.work;
+package com.fjhx.mes.controller.work;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderProductionProcesses;
+import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
 import org.springframework.web.bind.annotation.*;
-import com.fjhx.jxst.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.fjhx.jxst.entity.work.dto.WorkOrderProductionProcessesSelectDto;
-import com.fjhx.jxst.entity.work.dto.WorkOrderProductionProcessesDto;
-import com.fjhx.jxst.service.work.WorkOrderProductionProcessesService;
+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;

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

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

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDetailSelectDto.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-17
+ */
+@Getter
+@Setter
+public class ProductionTaskDetailSelectDto extends BaseSelectDto {
+
+}

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

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

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

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

+ 18 - 5
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskVo.java

@@ -1,25 +1,38 @@
 package com.fjhx.mes.entity.production.vo;
 
-import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.mes.entity.production.po.ProductionTask;
+import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.List;
+
 /**
  * 生产任务列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-03-30
  */
 @Getter
 @Setter
 public class ProductionTaskVo extends ProductionTask {
 
-    /**产品名称*/
+    /**
+     * 产品名称
+     */
     private String productName;
-    /**产品id*/
+    /**
+     * 产品id
+     */
     private Long productId;
 
-    /**生产任务负责人名称*/
+    /**
+     * 生产任务负责人名称
+     */
     private String personLiableName;
+
+    /**
+     * 生产任务明细列表
+     */
+    private List<ProductionTaskDetail> productionTaskDetailList;
 }

+ 2 - 2
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/dto/WorkOrderBomDto.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderBomDto.java

@@ -1,6 +1,6 @@
-package com.fjhx.jxst.entity.work.dto;
+package com.fjhx.mes.entity.work.dto;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderBom;
+import com.fjhx.mes.entity.work.po.WorkOrderBom;
 import lombok.Getter;
 import lombok.Setter;
 

+ 1 - 1
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/dto/WorkOrderBomSelectDto.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderBomSelectDto.java

@@ -1,4 +1,4 @@
-package com.fjhx.jxst.entity.work.dto;
+package com.fjhx.mes.entity.work.dto;
 
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;

+ 3 - 3
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/dto/WorkOrderProductionProcessesDto.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderProductionProcessesDto.java

@@ -1,7 +1,7 @@
-package com.fjhx.jxst.entity.work.dto;
+package com.fjhx.mes.entity.work.dto;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderProductionProcesses;
-import com.fjhx.jxst.entity.work.vo.WorkOrderProductionProcessesVo;
+import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
+import com.fjhx.mes.entity.work.vo.WorkOrderProductionProcessesVo;
 import lombok.Getter;
 import lombok.Setter;
 

+ 1 - 1
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/dto/WorkOrderProductionProcessesSelectDto.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/dto/WorkOrderProductionProcessesSelectDto.java

@@ -1,4 +1,4 @@
-package com.fjhx.jxst.entity.work.dto;
+package com.fjhx.mes.entity.work.dto;
 
 import com.ruoyi.common.core.domain.BaseSelectDto;
 import lombok.Getter;

+ 1 - 1
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/po/WorkOrderBom.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrderBom.java

@@ -1,4 +1,4 @@
-package com.fjhx.jxst.entity.work.po;
+package com.fjhx.mes.entity.work.po;
 
 import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/po/WorkOrderProductionProcesses.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/po/WorkOrderProductionProcesses.java

@@ -1,4 +1,4 @@
-package com.fjhx.jxst.entity.work.po;
+package com.fjhx.mes.entity.work.po;
 
 import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 2 - 2
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/vo/WorkOrderBomVo.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderBomVo.java

@@ -1,6 +1,6 @@
-package com.fjhx.jxst.entity.work.vo;
+package com.fjhx.mes.entity.work.vo;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderBom;
+import com.fjhx.mes.entity.work.po.WorkOrderBom;
 import lombok.Getter;
 import lombok.Setter;
 

+ 2 - 2
hx-jxst/src/main/java/com/fjhx/jxst/entity/work/vo/WorkOrderProductionProcessesVo.java → hx-mes/src/main/java/com/fjhx/mes/entity/work/vo/WorkOrderProductionProcessesVo.java

@@ -1,7 +1,7 @@
-package com.fjhx.jxst.entity.work.vo;
+package com.fjhx.mes.entity.work.vo;
 
 import com.fjhx.file.entity.ObsFile;
-import com.fjhx.jxst.entity.work.po.WorkOrderProductionProcesses;
+import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
 import lombok.Getter;
 import lombok.Setter;
 

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

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

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/work/WorkOrderBomMapper.java

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

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

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

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

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

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

@@ -1,5 +1,6 @@
 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;
@@ -50,4 +51,7 @@ public interface ProductionTaskService extends BaseService<ProductionTask> {
 
     List<ProductionTaskVo> myListByIds(List<Long> ids);
 
+    void addByJxst(ProductionTaskDto productionTaskDto);
+
+    ProductionTaskVo detailByJxst(Long id);
 }

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

@@ -0,0 +1,21 @@
+package com.fjhx.mes.service.production.impl;
+
+import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
+import com.fjhx.mes.mapper.production.ProductionTaskDetailMapper;
+import com.fjhx.mes.service.production.ProductionTaskDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 生产任务明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-05-17
+ */
+@Service
+public class ProductionTaskDetailServiceImpl extends ServiceImpl<ProductionTaskDetailMapper, ProductionTaskDetail> implements ProductionTaskDetailService {
+
+}

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

@@ -1,5 +1,6 @@
 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;
@@ -7,19 +8,29 @@ 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.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.ProductionTask;
+import com.fjhx.mes.entity.production.po.ProductionTaskDetail;
 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.WorkOrderBom;
+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.ProductionPlanService;
+import com.fjhx.mes.service.production.ProductionTaskDetailService;
 import com.fjhx.mes.service.production.ProductionTaskService;
+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.mes.utils.code.CodeEnum;
 import com.fjhx.wms.entity.stock.emums.StockWaitType;
@@ -65,6 +76,16 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
     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;
 
     @Override
     public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
@@ -123,20 +144,30 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
         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("查询不到该任务的工单信息");
         }
-        //查询BOM信息
-        BomInfo bomInfo = bomInfoService.getOne(q -> q.eq(BomInfo::getProductId, workOrder.getProductId()));
-        if (ObjectUtil.isEmpty(bomInfo)) {
-            throw new ServiceException("查询不到产品的BOM信息");
-        }
-        List<BomDetail> bomDetailList = bomDetailService.list(q -> q.eq(BomDetail::getBomInfoId, bomInfo.getId()));
-        if (ObjectUtil.isEmpty(bomDetailList)) {
-            throw new ServiceException("查询不到BOM明细");
+
+        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()));
+            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();
@@ -178,4 +209,68 @@ public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper,
         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;
+        if ("1".equals(workOrder.getIsCustomized())) {
+            WorkOrderProductionProcesses workOrderProductionProcesses = workOrderProductionProcessesService.getOne(q -> q
+                    .eq(WorkOrderProductionProcesses::getWorkOrderId, workOrder.getId())
+                    .orderByAsc(WorkOrderProductionProcesses::getSort));
+            if (ObjectUtil.isEmpty(workOrderProductionProcesses)) {
+                throw new ServiceException("定制工单 工序列表为空");
+            }
+            productionProcessesId = workOrderProductionProcesses.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]);
+        }
+        //创建任务明细
+        List<ProductionTaskDetail> productionTaskDetailList = new ArrayList<>();
+        for (int i = 0; i < productionTaskDto.getQuantity().intValue(); i++) {
+            ProductionTaskDetail productionTaskDetail = new ProductionTaskDetail();
+            productionTaskDetail.setProductionTaskId(productionTaskDto.getId());//任务id
+            productionTaskDetail.setFinishStatus(0);//默认状态未完工
+            productionTaskDetail.setProductId(workOrder.getProductId());//产品id
+            productionTaskDetail.setProductionProcessesId(productionProcessesId);//第一个工序id
+            //生成SN
+            productionTaskDetail.setProductSn(String.format("%s-%03d", productionTaskDto.getCode(), i + 1));
+            productionTaskDetail.setPersonChargeId(productionTaskDto.getPersonLiableId());//负责人ID
+            productionTaskDetailList.add(productionTaskDetail);
+        }
+        productionTaskDetailService.saveBatch(productionTaskDetailList);
+    }
+
+    @Override
+    public ProductionTaskVo detailByJxst(Long id) {
+        ProductionTaskVo detail = detail(id);
+        List<ProductionTaskDetail> list = productionTaskDetailService.list(q -> q.eq(ProductionTaskDetail::getProductionTaskId, id));
+        detail.setProductionTaskDetailList(list);
+        return detail;
+    }
+
 }

+ 4 - 5
hx-jxst/src/main/java/com/fjhx/jxst/service/work/WorkOrderBomService.java → hx-mes/src/main/java/com/fjhx/mes/service/work/WorkOrderBomService.java

@@ -1,10 +1,9 @@
-package com.fjhx.jxst.service.work;
+package com.fjhx.mes.service.work;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderBom;
+import com.fjhx.mes.entity.work.po.WorkOrderBom;
 import com.ruoyi.common.core.service.BaseService;
-import com.fjhx.jxst.entity.work.vo.WorkOrderBomVo;
-import com.fjhx.jxst.entity.work.dto.WorkOrderBomSelectDto;
-import com.fjhx.jxst.entity.work.dto.WorkOrderBomDto;
+import com.fjhx.mes.entity.work.vo.WorkOrderBomVo;
+import com.fjhx.mes.entity.work.dto.WorkOrderBomDto;
 
 import java.util.List;
 

+ 4 - 5
hx-jxst/src/main/java/com/fjhx/jxst/service/work/WorkOrderProductionProcessesService.java → hx-mes/src/main/java/com/fjhx/mes/service/work/WorkOrderProductionProcessesService.java

@@ -1,10 +1,9 @@
-package com.fjhx.jxst.service.work;
+package com.fjhx.mes.service.work;
 
-import com.fjhx.jxst.entity.work.po.WorkOrderProductionProcesses;
+import com.fjhx.mes.entity.work.po.WorkOrderProductionProcesses;
 import com.ruoyi.common.core.service.BaseService;
-import com.fjhx.jxst.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.fjhx.jxst.entity.work.dto.WorkOrderProductionProcessesSelectDto;
-import com.fjhx.jxst.entity.work.dto.WorkOrderProductionProcessesDto;
+import com.fjhx.mes.entity.work.vo.WorkOrderProductionProcessesVo;
+import com.fjhx.mes.entity.work.dto.WorkOrderProductionProcessesDto;
 
 import java.util.List;
 

+ 6 - 9
hx-jxst/src/main/java/com/fjhx/jxst/service/work/impl/WorkOrderBomServiceImpl.java → hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderBomServiceImpl.java

@@ -1,12 +1,12 @@
-package com.fjhx.jxst.service.work.impl;
+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.fjhx.item.service.product.ProductInfoService;
-import com.fjhx.jxst.entity.work.po.WorkOrderBom;
-import com.fjhx.jxst.mapper.work.WorkOrderBomMapper;
-import com.fjhx.jxst.service.work.WorkOrderBomService;
+import com.fjhx.mes.entity.work.po.WorkOrderBom;
+import com.fjhx.mes.mapper.work.WorkOrderBomMapper;
+import com.fjhx.mes.service.work.WorkOrderBomService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.mes.entity.bom.po.BomDetail;
 import com.fjhx.mes.entity.bom.po.BomInfo;
@@ -14,14 +14,11 @@ import com.fjhx.mes.entity.work.po.WorkOrder;
 import com.fjhx.mes.service.bom.BomDetailService;
 import com.fjhx.mes.service.bom.BomInfoService;
 import com.fjhx.mes.service.work.WorkOrderService;
-import com.fjhx.purchase.entity.arrival.po.ArrivalDetail;
 import com.obs.services.internal.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.fjhx.jxst.entity.work.vo.WorkOrderBomVo;
-import com.fjhx.jxst.entity.work.dto.WorkOrderBomSelectDto;
-import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.jxst.entity.work.dto.WorkOrderBomDto;
+import com.fjhx.mes.entity.work.vo.WorkOrderBomVo;
+import com.fjhx.mes.entity.work.dto.WorkOrderBomDto;
 
 import java.util.List;
 

+ 6 - 6
hx-jxst/src/main/java/com/fjhx/jxst/service/work/impl/WorkOrderProductionProcessesServiceImpl.java → hx-mes/src/main/java/com/fjhx/mes/service/work/impl/WorkOrderProductionProcessesServiceImpl.java

@@ -1,4 +1,4 @@
-package com.fjhx.jxst.service.work.impl;
+package com.fjhx.mes.service.work.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -6,11 +6,11 @@ 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.jxst.entity.work.dto.WorkOrderProductionProcessesDto;
-import com.fjhx.jxst.entity.work.po.WorkOrderProductionProcesses;
-import com.fjhx.jxst.entity.work.vo.WorkOrderProductionProcessesVo;
-import com.fjhx.jxst.mapper.work.WorkOrderProductionProcessesMapper;
-import com.fjhx.jxst.service.work.WorkOrderProductionProcessesService;
+import com.fjhx.mes.entity.work.dto.WorkOrderProductionProcessesDto;
+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.work.WorkOrderProductionProcessesService;
 import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
 import com.fjhx.mes.entity.production.po.ProductionProcesses;
 import com.fjhx.mes.entity.technology.po.Technology;

+ 4 - 0
hx-mes/src/main/resources/mapper/production/ProductionTaskDetailMapper.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.ProductionTaskDetailMapper">
+</mapper>