소스 검색

任务名称:调仓bug —— 后端研发 - 完成
————————————————————
任务名称:生产计划 - 生产计划页面功能开发 —— 后端研发 - 完成
————————————————————
任务名称:生产计划 - 生产任务页面功能开发 —— 后端研发 - 完成
————————————————————
任务名称:生产管理 - 生产报工页面功能开发 —— 后端研发 - 完成
————————————————————

yzc 2 년 전
부모
커밋
f440b577c4
27개의 변경된 파일1130개의 추가작업 그리고 0개의 파일을 삭제
  1. 77 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionReportingController.java
  2. 68 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionReportingDetailController.java
  3. 71 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionTaskController.java
  4. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionReportingDetailDto.java
  5. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionReportingDetailSelectDto.java
  6. 25 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionReportingDto.java
  7. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionReportingSelectDto.java
  8. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskDto.java
  9. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionTaskSelectDto.java
  10. 27 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionReporting.java
  11. 42 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionReportingDetail.java
  12. 52 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionTask.java
  13. 20 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionReportingDetailVo.java
  14. 60 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionReportingVo.java
  15. 25 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionTaskVo.java
  16. 26 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionReportingDetailMapper.java
  17. 29 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionReportingMapper.java
  18. 26 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionTaskMapper.java
  19. 46 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionReportingDetailService.java
  20. 46 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionReportingService.java
  21. 46 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionTaskService.java
  22. 57 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionReportingDetailServiceImpl.java
  23. 125 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionReportingServiceImpl.java
  24. 98 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionTaskServiceImpl.java
  25. 19 0
      hx-mes/src/main/resources/mapper/production/ProductionReportingDetailMapper.xml
  26. 35 0
      hx-mes/src/main/resources/mapper/production/ProductionReportingMapper.xml
  27. 25 0
      hx-mes/src/main/resources/mapper/production/ProductionTaskMapper.xml

+ 77 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionReportingController.java

@@ -0,0 +1,77 @@
+package com.fjhx.mes.controller.production;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDto;
+import com.fjhx.mes.entity.production.dto.ProductionReportingSelectDto;
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import com.fjhx.mes.entity.production.vo.ProductionReportingVo;
+import com.fjhx.mes.service.production.ProductionReportingService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 生产报工 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-03-30
+ */
+@DS(SourceConstant.MES)
+@RestController
+@RequestMapping("/productionReporting")
+public class ProductionReportingController {
+
+    @Autowired
+    private ProductionReportingService productionReportingService;
+
+    /**
+     * 生产报工分页
+     */
+    @PostMapping("/page")
+    public Page<ProductionReportingVo> page(@RequestBody ProductionReportingSelectDto dto) {
+        return productionReportingService.getPage(dto);
+    }
+
+    /**
+     * 生产报工明细
+     */
+    @PostMapping("/detail")
+    public ProductionReportingVo detail(@RequestBody BaseSelectDto dto) {
+        return productionReportingService.detail(dto.getId());
+    }
+
+    /**
+     * 生产报工新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductionReportingDto productionReportingDto) {
+        productionReportingService.add(productionReportingDto);
+    }
+
+    /**
+     * 生产报工编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductionReportingDto productionReportingDto) {
+        productionReportingService.edit(productionReportingDto);
+    }
+
+    /**
+     * 生产报工删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        productionReportingService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionReportingDetailController.java

@@ -0,0 +1,68 @@
+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.ProductionReportingDetailVo;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailSelectDto;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.mes.service.production.ProductionReportingDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 生产报工明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+@RestController
+@RequestMapping("/productionReportingDetail")
+public class ProductionReportingDetailController {
+
+    @Autowired
+    private ProductionReportingDetailService productionReportingDetailService;
+
+    /**
+     * 生产报工明细分页
+     */
+    @PostMapping("/page")
+    public Page<ProductionReportingDetailVo> page(@RequestBody ProductionReportingDetailSelectDto dto) {
+        return productionReportingDetailService.getPage(dto);
+    }
+
+    /**
+     * 生产报工明细明细
+     */
+    @PostMapping("/detail")
+    public ProductionReportingDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return productionReportingDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 生产报工明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductionReportingDetailDto productionReportingDetailDto) {
+        productionReportingDetailService.add(productionReportingDetailDto);
+    }
+
+    /**
+     * 生产报工明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductionReportingDetailDto productionReportingDetailDto) {
+        productionReportingDetailService.edit(productionReportingDetailDto);
+    }
+
+    /**
+     * 生产报工明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        productionReportingDetailService.delete(dto.getId());
+    }
+
+}

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

@@ -0,0 +1,71 @@
+package com.fjhx.mes.controller.production;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.web.bind.annotation.*;
+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.core.domain.BaseSelectDto;
+import com.fjhx.mes.service.production.ProductionTaskService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 生产任务 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+@DS(SourceConstant.MES)
+@RestController
+@RequestMapping("/productionTask")
+public class ProductionTaskController {
+
+    @Autowired
+    private ProductionTaskService productionTaskService;
+
+    /**
+     * 生产任务分页
+     */
+    @PostMapping("/page")
+    public Page<ProductionTaskVo> page(@RequestBody ProductionTaskSelectDto dto) {
+        return productionTaskService.getPage(dto);
+    }
+
+    /**
+     * 生产任务明细
+     */
+    @PostMapping("/detail")
+    public ProductionTaskVo detail(@RequestBody BaseSelectDto dto) {
+        return productionTaskService.detail(dto.getId());
+    }
+
+    /**
+     * 生产任务新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductionTaskDto productionTaskDto) {
+        productionTaskService.add(productionTaskDto);
+    }
+
+    /**
+     * 生产任务编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductionTaskDto productionTaskDto) {
+        productionTaskService.edit(productionTaskDto);
+    }
+
+    /**
+     * 生产任务删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        productionTaskService.delete(dto.getId());
+    }
+
+}

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

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

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

+ 25 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionReportingDto.java

@@ -0,0 +1,25 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.fjhx.mes.entity.production.po.ProductionReporting;
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 生产报工新增编辑入参实体
+ *
+ * @author
+ * @since 2023-03-30
+ */
+@Getter
+@Setter
+public class ProductionReportingDto extends ProductionReporting {
+
+    /**
+     * 报工明细列表
+     */
+    List<ProductionReportingDetail> productionReportingDetailList;
+
+}

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

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

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

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

+ 27 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionReporting.java

@@ -0,0 +1,27 @@
+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-03-30
+ */
+@Getter
+@Setter
+@TableName("production_reporting")
+public class ProductionReporting extends BasePo {
+
+    /**
+     * 生产任务id
+     */
+    private Long productionTaskId;
+
+}

+ 42 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionReportingDetail.java

@@ -0,0 +1,42 @@
+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-03-30
+ */
+@Getter
+@Setter
+@TableName("production_reporting_detail")
+public class ProductionReportingDetail extends BasePo {
+
+    /**
+     * 生产报工id
+     */
+    private Long productionReportingId;
+
+    /**
+     * 工序id
+     */
+    private Long productionProcessesId;
+
+    /**
+     * 报工姓名
+     */
+    private String name;
+
+    /**
+     * 报工数量
+     */
+    private Long quantity;
+
+}

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

@@ -0,0 +1,52 @@
+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-03-30
+ */
+@Getter
+@Setter
+@TableName("production_task")
+public class ProductionTask extends BasePo {
+
+    /**
+     * 生产计划id
+     */
+    private Long productionPlanId;
+
+    /**
+     * 生产任务编码
+     */
+    private String code;
+
+    /**
+     * 任务数量
+     */
+    private Long quantity;
+
+    /**
+     * 负责人id
+     */
+    private Long personLiableId;
+
+    /**
+     * 任务状态
+     */
+    private String status;
+
+    /**
+     * 完成期限
+     */
+    private Date dueDate;
+
+}

+ 20 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionReportingDetailVo.java

@@ -0,0 +1,20 @@
+package com.fjhx.mes.entity.production.vo;
+
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 生产报工明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+@Getter
+@Setter
+public class ProductionReportingDetailVo extends ProductionReportingDetail {
+
+    /**工序名称*/
+    private String productionProcessesName;
+
+}

+ 60 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionReportingVo.java

@@ -0,0 +1,60 @@
+package com.fjhx.mes.entity.production.vo;
+
+import com.fjhx.mes.entity.production.po.ProductionReporting;
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 生产报工列表查询返回值实体
+ *
+ * @author
+ * @since 2023-03-30
+ */
+@Getter
+@Setter
+public class ProductionReportingVo extends ProductionReporting {
+
+    /**
+     * 任务编码
+     */
+    private String code;
+
+    /**
+     * 操作人名称
+     */
+    private String operatorName;
+
+    /**
+     * 商品id
+     */
+    private Long productId;
+    /**
+     * 商品名称
+     */
+    private String productName;
+    /**
+     * 任务数量
+     */
+    private BigDecimal quantity;
+    /**
+     * 负责人id
+     */
+    private Long personLiableId;
+    /**
+     * 负责人名字
+     */
+    private String personLiableName;
+    /**
+     * 完成期限
+     */
+    private Date dueDate;
+
+    /**报工明细列表*/
+    List<ProductionReportingDetailVo> productionReportingDetailVoList;
+
+}

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

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

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

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

+ 29 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionReportingMapper.java

@@ -0,0 +1,29 @@
+package com.fjhx.mes.mapper.production;
+
+import com.fjhx.mes.entity.production.po.ProductionReporting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.production.vo.ProductionReportingVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 生产报工 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+public interface ProductionReportingMapper extends BaseMapper<ProductionReporting> {
+
+    /**
+     * 生产报工分页
+     */
+    Page<ProductionReportingVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ProductionReporting> wrapper);
+
+    /**生产报工明细*/
+    ProductionReportingVo detail(@Param("id") Long id);
+
+}

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

@@ -0,0 +1,26 @@
+package com.fjhx.mes.mapper.production;
+
+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;
+
+
+/**
+ * <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);
+
+}

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

@@ -0,0 +1,46 @@
+package com.fjhx.mes.service.production;
+
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.production.vo.ProductionReportingDetailVo;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailSelectDto;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailDto;
+
+
+/**
+ * <p>
+ * 生产报工明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+public interface ProductionReportingDetailService extends BaseService<ProductionReportingDetail> {
+
+    /**
+     * 生产报工明细分页
+     */
+    Page<ProductionReportingDetailVo> getPage(ProductionReportingDetailSelectDto dto);
+
+    /**
+     * 生产报工明细明细
+     */
+    ProductionReportingDetailVo detail(Long id);
+
+    /**
+     * 生产报工明细新增
+     */
+    void add(ProductionReportingDetailDto productionReportingDetailDto);
+
+    /**
+     * 生产报工明细编辑
+     */
+    void edit(ProductionReportingDetailDto productionReportingDetailDto);
+
+    /**
+     * 生产报工明细删除
+     */
+    void delete(Long id);
+
+}

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

@@ -0,0 +1,46 @@
+package com.fjhx.mes.service.production;
+
+import com.fjhx.mes.entity.production.po.ProductionReporting;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.production.vo.ProductionReportingVo;
+import com.fjhx.mes.entity.production.dto.ProductionReportingSelectDto;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDto;
+
+
+/**
+ * <p>
+ * 生产报工 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+public interface ProductionReportingService extends BaseService<ProductionReporting> {
+
+    /**
+     * 生产报工分页
+     */
+    Page<ProductionReportingVo> getPage(ProductionReportingSelectDto dto);
+
+    /**
+     * 生产报工明细
+     */
+    ProductionReportingVo detail(Long id);
+
+    /**
+     * 生产报工新增
+     */
+    void add(ProductionReportingDto productionReportingDto);
+
+    /**
+     * 生产报工编辑
+     */
+    void edit(ProductionReportingDto productionReportingDto);
+
+    /**
+     * 生产报工删除
+     */
+    void delete(Long id);
+
+}

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

@@ -0,0 +1,46 @@
+package com.fjhx.mes.service.production;
+
+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;
+
+
+/**
+ * <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);
+
+}

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

@@ -0,0 +1,57 @@
+package com.fjhx.mes.service.production.impl;
+
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import com.fjhx.mes.mapper.production.ProductionReportingDetailMapper;
+import com.fjhx.mes.service.production.ProductionReportingDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.production.vo.ProductionReportingDetailVo;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 生产报工明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+@Service
+public class ProductionReportingDetailServiceImpl extends ServiceImpl<ProductionReportingDetailMapper, ProductionReportingDetail> implements ProductionReportingDetailService {
+
+    @Override
+    public Page<ProductionReportingDetailVo> getPage(ProductionReportingDetailSelectDto dto) {
+        IWrapper<ProductionReportingDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("prd", ProductionReportingDetail::getId);
+        Page<ProductionReportingDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ProductionReportingDetailVo detail(Long id) {
+        ProductionReportingDetail ProductionReportingDetail = this.getById(id);
+        ProductionReportingDetailVo result = BeanUtil.toBean(ProductionReportingDetail, ProductionReportingDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ProductionReportingDetailDto productionReportingDetailDto) {
+        this.save(productionReportingDetailDto);
+    }
+
+    @Override
+    public void edit(ProductionReportingDetailDto productionReportingDetailDto) {
+        this.updateById(productionReportingDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 125 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionReportingServiceImpl.java

@@ -0,0 +1,125 @@
+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.ProductionProcesses;
+import com.fjhx.mes.entity.production.po.ProductionReporting;
+import com.fjhx.mes.entity.production.po.ProductionReportingDetail;
+import com.fjhx.mes.entity.production.vo.ProductionReportingDetailVo;
+import com.fjhx.mes.mapper.production.ProductionReportingMapper;
+import com.fjhx.mes.service.production.ProductionProcessesService;
+import com.fjhx.mes.service.production.ProductionReportingDetailService;
+import com.fjhx.mes.service.production.ProductionReportingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.entity.SysUser;
+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.ProductionReportingVo;
+import com.fjhx.mes.entity.production.dto.ProductionReportingSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mes.entity.production.dto.ProductionReportingDto;
+import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+
+/**
+ * <p>
+ * 生产报工 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+@Service
+public class ProductionReportingServiceImpl extends ServiceImpl<ProductionReportingMapper, ProductionReporting> implements ProductionReportingService {
+    @Autowired
+    ProductionReportingDetailService productionReportingDetailService;
+    @Autowired
+    ProductInfoService productInfoService;
+    @Autowired
+    ProductionProcessesService productionProcessesService;
+
+    @Override
+    public Page<ProductionReportingVo> getPage(ProductionReportingSelectDto dto) {
+        IWrapper<ProductionReporting> wrapper = getWrapper();
+        wrapper.orderByDesc("pr", ProductionReporting::getId);
+        wrapper.like("pt.code",dto.getKeyword());
+        Page<ProductionReportingVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<ProductionReportingVo> records = page.getRecords();
+        UserUtil.assignmentNickName(records,ProductionReporting::getCreateUser,ProductionReportingVo::setOperatorName);
+        return page;
+    }
+
+    @Override
+    public ProductionReportingVo detail(Long id) {
+        ProductionReportingVo productionReporting = baseMapper.detail(id);
+        ProductInfo productInfo = productInfoService.getById(productionReporting.getProductId());
+        if(ObjectUtil.isNotEmpty(productInfo)){
+            productionReporting.setProductName(productInfo.getName());
+        }
+        Map<Long, String> nickNameMapByIds = UserUtil.getNickNameMapByIds(Arrays.asList(productionReporting.getPersonLiableId()));
+        if(ObjectUtil.isNotEmpty(nickNameMapByIds)) {
+            String name = nickNameMapByIds.get(productionReporting.getPersonLiableId());
+            productionReporting.setPersonLiableName(name);
+        }
+
+        //赋值报工明细
+        List<ProductionReportingDetail> productionReportingDetailList = productionReportingDetailService.list(q -> q.eq(ProductionReportingDetail::getProductionReportingId, productionReporting.getId()));
+        List<ProductionReportingDetailVo> productionReportingDetailVos = BeanUtil.copyToList(productionReportingDetailList, ProductionReportingDetailVo.class);
+        //赋值工序名称
+        List<Long> ProductionProcessesIds = productionReportingDetailList.stream().map(ProductionReportingDetail::getProductionProcessesId).collect(Collectors.toList());
+        if (ObjectUtil.isNotEmpty(ProductionProcessesIds)) {
+            List<ProductionProcesses> productionProcessesList = productionProcessesService.listByIds(ProductionProcessesIds);
+            Map<Long, ProductionProcesses> productionProcessesMap = productionProcessesList.stream().collect(Collectors.groupingBy(ProductionProcesses::getId,
+                    Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
+            for (ProductionReportingDetailVo productionReportingDetailVo : productionReportingDetailVos) {
+                Long productionProcessesId = productionReportingDetailVo.getProductionProcessesId();
+                ProductionProcesses productionProcesses = productionProcessesMap.get(productionProcessesId);
+                if (ObjectUtil.isNotEmpty(productionProcesses)) {
+                    productionReportingDetailVo.setProductionProcessesName(productionProcesses.getName());
+                }
+            }
+            productionReporting.setProductionReportingDetailVoList(productionReportingDetailVos);
+        }
+        return productionReporting;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(ProductionReportingDto productionReportingDto) {
+        this.save(productionReportingDto);
+        //保存报工明细
+        List<ProductionReportingDetail> productionReportingDetailList = productionReportingDto.getProductionReportingDetailList();
+        for (ProductionReportingDetail productionReportingDetail : productionReportingDetailList) {
+            productionReportingDetail.setProductionReportingId(productionReportingDto.getId());
+        }
+        productionReportingDetailService.saveBatch(productionReportingDetailList);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(ProductionReportingDto productionReportingDto) {
+        this.updateById(productionReportingDto);
+        //保存报工明细
+        List<ProductionReportingDetail> productionReportingDetailList = productionReportingDto.getProductionReportingDetailList();
+        for (ProductionReportingDetail productionReportingDetail : productionReportingDetailList) {
+            productionReportingDetail.setProductionReportingId(productionReportingDto.getId());
+        }
+        productionReportingDetailService.updateBatchById(productionReportingDetailList);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

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

@@ -0,0 +1,98 @@
+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.mapper.production.ProductionTaskMapper;
+import com.fjhx.mes.service.production.ProductionPlanService;
+import com.fjhx.mes.service.production.ProductionTaskService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mes.utils.code.CodeEnum;
+import com.ruoyi.system.utils.UserUtil;
+import org.checkerframework.checker.units.qual.A;
+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.ProductionTaskVo;
+import com.fjhx.mes.entity.production.dto.ProductionTaskSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mes.entity.production.dto.ProductionTaskDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 生产任务 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-30
+ */
+@Service
+public class ProductionTaskServiceImpl extends ServiceImpl<ProductionTaskMapper, ProductionTask> implements ProductionTaskService {
+    @Autowired
+    ProductInfoService productInfoService;
+
+    @Override
+    public Page<ProductionTaskVo> getPage(ProductionTaskSelectDto dto) {
+        IWrapper<ProductionTask> wrapper = getWrapper();
+        wrapper.orderByDesc("pt", ProductionTask::getId);
+        wrapper.like(ProductionTaskVo::getCode,dto.getKeyword());
+        wrapper.or();
+        wrapper.like(ProductionTaskVo::getQuantity,dto.getKeyword());
+        wrapper.or();
+        wrapper.like(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) {
+        ProductionTask ProductionTask = this.getById(id);
+        ProductionTaskVo result = BeanUtil.toBean(ProductionTask, ProductionTaskVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ProductionTaskDto productionTaskDto) {
+        productionTaskDto.setCode(CodeEnum.PRODUCTION_TASK.getCode());
+        this.save(productionTaskDto);
+    }
+
+    @Override
+    public void edit(ProductionTaskDto productionTaskDto) {
+        this.updateById(productionTaskDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 19 - 0
hx-mes/src/main/resources/mapper/production/ProductionReportingDetailMapper.xml

@@ -0,0 +1,19 @@
+<?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.ProductionReportingDetailMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionReportingDetailVo">
+        select
+            prd.id,
+            prd.production_reporting_id,
+            prd.production_processes_id,
+            prd.name,
+            prd.quantity,
+            prd.create_user,
+            prd.create_time,
+            prd.update_user,
+            prd.update_time
+        from production_reporting_detail prd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 35 - 0
hx-mes/src/main/resources/mapper/production/ProductionReportingMapper.xml

@@ -0,0 +1,35 @@
+<?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.ProductionReportingMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionReportingVo">
+        SELECT
+            pr.id,
+            pr.production_task_id,
+            pt.CODE,
+            pr.create_user,
+            pr.create_time,
+            pr.update_user,
+            pr.update_time
+        FROM
+            production_reporting pr
+                JOIN production_task pt ON pr.production_task_id = pt.id
+            ${ew.customSqlSegment}
+    </select>
+    <select id="detail" resultType="com.fjhx.mes.entity.production.vo.ProductionReportingVo">
+        SELECT
+            pr.id,
+            pt.CODE,
+            wo.product_id,
+            pt.quantity,
+            pt.person_liable_id,
+            pt.due_date
+        FROM
+            work_order wo
+                JOIN production_plan pp ON pp.work_order_id = wo.id
+                JOIN production_task pt ON pt.production_plan_id = pp.id
+                JOIN production_reporting pr ON pr.production_task_id = pt.id
+        WHERE
+            pr.id = #{id}
+    </select>
+
+</mapper>

+ 25 - 0
hx-mes/src/main/resources/mapper/production/ProductionTaskMapper.xml

@@ -0,0 +1,25 @@
+<?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.ProductionTaskMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionTaskVo">
+        SELECT
+            pt.id,
+            pt.production_plan_id,
+            pt.CODE,
+            pt.quantity,
+            pt.person_liable_id,
+            pt.STATUS,
+            pt.due_date,
+            pt.create_user,
+            pt.create_time,
+            pt.update_user,
+            pt.update_time,
+            wo.product_id
+        FROM
+            production_task pt
+                LEFT JOIN production_plan pp ON pt.production_plan_id = pp.id
+                LEFT JOIN work_order wo ON pp.work_order_id = wo.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>