소스 검색

工序,工艺,

yzc 2 년 전
부모
커밋
2789859d08
28개의 변경된 파일1056개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      hx-mes/pom.xml
  2. 68 0
      hx-mes/src/main/java/com/fjhx/mes/controller/applicable/ApplicableProductsController.java
  3. 72 0
      hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionProcessesController.java
  4. 68 0
      hx-mes/src/main/java/com/fjhx/mes/controller/technology/TechnologyController.java
  5. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/applicable/dto/ApplicableProductsDto.java
  6. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/applicable/dto/ApplicableProductsSelectDto.java
  7. 32 0
      hx-mes/src/main/java/com/fjhx/mes/entity/applicable/po/ApplicableProducts.java
  8. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/applicable/vo/ApplicableProductsVo.java
  9. 22 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionProcessesDto.java
  10. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionProcessesSelectDto.java
  11. 37 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionProcesses.java
  12. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/production/vo/ProductionProcessesVo.java
  13. 24 0
      hx-mes/src/main/java/com/fjhx/mes/entity/technology/dto/TechnologyDto.java
  14. 17 0
      hx-mes/src/main/java/com/fjhx/mes/entity/technology/dto/TechnologySelectDto.java
  15. 37 0
      hx-mes/src/main/java/com/fjhx/mes/entity/technology/po/Technology.java
  16. 28 0
      hx-mes/src/main/java/com/fjhx/mes/entity/technology/vo/TechnologyVo.java
  17. 26 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/applicable/ApplicableProductsMapper.java
  18. 26 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/production/ProductionProcessesMapper.java
  19. 26 0
      hx-mes/src/main/java/com/fjhx/mes/mapper/technology/TechnologyMapper.java
  20. 46 0
      hx-mes/src/main/java/com/fjhx/mes/service/applicable/ApplicableProductsService.java
  21. 57 0
      hx-mes/src/main/java/com/fjhx/mes/service/applicable/impl/ApplicableProductsServiceImpl.java
  22. 48 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionProcessesService.java
  23. 85 0
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionProcessesServiceImpl.java
  24. 46 0
      hx-mes/src/main/java/com/fjhx/mes/service/technology/TechnologyService.java
  25. 149 0
      hx-mes/src/main/java/com/fjhx/mes/service/technology/impl/TechnologyServiceImpl.java
  26. 17 0
      hx-mes/src/main/resources/mapper/applicable/ApplicableProductsMapper.xml
  27. 18 0
      hx-mes/src/main/resources/mapper/production/ProductionProcessesMapper.xml
  28. 18 0
      hx-mes/src/main/resources/mapper/technology/TechnologyMapper.xml

+ 4 - 0
hx-mes/pom.xml

@@ -21,6 +21,10 @@
             <groupId>com.fjhx</groupId>
             <artifactId>hx-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-item</artifactId>
+        </dependency>
     </dependencies>
 
 

+ 68 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/applicable/ApplicableProductsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.mes.controller.applicable;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.applicable.vo.ApplicableProductsVo;
+import com.fjhx.mes.entity.applicable.dto.ApplicableProductsSelectDto;
+import com.fjhx.mes.entity.applicable.dto.ApplicableProductsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.mes.service.applicable.ApplicableProductsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 工艺适用产品明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@RestController
+@RequestMapping("/applicableProducts")
+public class ApplicableProductsController {
+
+    @Autowired
+    private ApplicableProductsService applicableProductsService;
+
+    /**
+     * 工艺适用产品明细分页
+     */
+    @PostMapping("/page")
+    public Page<ApplicableProductsVo> page(@RequestBody ApplicableProductsSelectDto dto) {
+        return applicableProductsService.getPage(dto);
+    }
+
+    /**
+     * 工艺适用产品明细明细
+     */
+    @PostMapping("/detail")
+    public ApplicableProductsVo detail(@RequestBody BaseSelectDto dto) {
+        return applicableProductsService.detail(dto.getId());
+    }
+
+    /**
+     * 工艺适用产品明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ApplicableProductsDto applicableProductsDto) {
+        applicableProductsService.add(applicableProductsDto);
+    }
+
+    /**
+     * 工艺适用产品明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ApplicableProductsDto applicableProductsDto) {
+        applicableProductsService.edit(applicableProductsDto);
+    }
+
+    /**
+     * 工艺适用产品明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        applicableProductsService.delete(dto.getId());
+    }
+
+}

+ 72 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/production/ProductionProcessesController.java

@@ -0,0 +1,72 @@
+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.ProductionProcessesVo;
+import com.fjhx.mes.entity.production.dto.ProductionProcessesSelectDto;
+import com.fjhx.mes.entity.production.dto.ProductionProcessesDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.mes.service.production.ProductionProcessesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * <p>
+ * 工序 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-03-28
+ */
+@DS(SourceConstant.MES)
+@RestController
+@RequestMapping("/productionProcesses")
+public class ProductionProcessesController {
+
+    @Autowired
+    private ProductionProcessesService productionProcessesService;
+
+    /**
+     * 工序分页
+     */
+    @PostMapping("/page")
+    public Page<ProductionProcessesVo> page(@RequestBody ProductionProcessesSelectDto dto) {
+        return productionProcessesService.getPage(dto);
+    }
+
+    /**
+     * 工序明细
+     */
+    @PostMapping("/detail")
+    public ProductionProcessesVo detail(@RequestBody BaseSelectDto dto) {
+        return productionProcessesService.detail(dto.getId());
+    }
+
+    /**
+     * 工序新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ProductionProcessesDto productionProcessesDto) {
+        productionProcessesService.add(productionProcessesDto);
+    }
+
+    /**
+     * 工序编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ProductionProcessesDto productionProcessesDto) {
+        productionProcessesService.edit(productionProcessesDto);
+    }
+
+    /**
+     * 工序删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        productionProcessesService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/technology/TechnologyController.java

@@ -0,0 +1,68 @@
+package com.fjhx.mes.controller.technology;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.technology.vo.TechnologyVo;
+import com.fjhx.mes.entity.technology.dto.TechnologySelectDto;
+import com.fjhx.mes.entity.technology.dto.TechnologyDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.mes.service.technology.TechnologyService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 工艺 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@RestController
+@RequestMapping("/technology")
+public class TechnologyController {
+
+    @Autowired
+    private TechnologyService technologyService;
+
+    /**
+     * 工艺分页
+     */
+    @PostMapping("/page")
+    public Page<TechnologyVo> page(@RequestBody TechnologySelectDto dto) {
+        return technologyService.getPage(dto);
+    }
+
+    /**
+     * 工艺明细
+     */
+    @PostMapping("/detail")
+    public TechnologyVo detail(@RequestBody BaseSelectDto dto) {
+        return technologyService.detail(dto.getId());
+    }
+
+    /**
+     * 工艺新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody TechnologyDto technologyDto) {
+        technologyService.add(technologyDto);
+    }
+
+    /**
+     * 工艺编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody TechnologyDto technologyDto) {
+        technologyService.edit(technologyDto);
+    }
+
+    /**
+     * 工艺删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        technologyService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/applicable/dto/ApplicableProductsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.applicable.dto;
+
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 工艺适用产品明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class ApplicableProductsDto extends ApplicableProducts {
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/applicable/dto/ApplicableProductsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.applicable.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 工艺适用产品明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class ApplicableProductsSelectDto extends BaseSelectDto {
+
+}

+ 32 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/applicable/po/ApplicableProducts.java

@@ -0,0 +1,32 @@
+package com.fjhx.mes.entity.applicable.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-28
+ */
+@Getter
+@Setter
+@TableName("applicable_products")
+public class ApplicableProducts extends BasePo {
+
+    /**
+     * 工艺id
+     */
+    private Long technologyId;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/applicable/vo/ApplicableProductsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.applicable.vo;
+
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 工艺适用产品明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class ApplicableProductsVo extends ApplicableProducts {
+
+}

+ 22 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/dto/ProductionProcessesDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.mes.entity.production.dto;
+
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.mes.entity.production.po.ProductionProcesses;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 工序新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class ProductionProcessesDto extends ProductionProcesses {
+
+    private List<ObsFile> fileList;
+
+}

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

+ 37 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/production/po/ProductionProcesses.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-03-28
+ */
+@Getter
+@Setter
+@TableName("production_processes")
+public class ProductionProcesses extends BasePo {
+
+    /**
+     * 工序名称
+     */
+    private String name;
+
+    /**
+     * 工序说明
+     */
+    private String remarks;
+
+    /**
+     * 工序文件名
+     */
+    private String fileName;
+
+}

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

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.production.vo;
+
+import com.fjhx.mes.entity.production.po.ProductionProcesses;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 工序列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class ProductionProcessesVo extends ProductionProcesses {
+
+}

+ 24 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/technology/dto/TechnologyDto.java

@@ -0,0 +1,24 @@
+package com.fjhx.mes.entity.technology.dto;
+
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
+import com.fjhx.mes.entity.technology.po.Technology;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 工艺新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class TechnologyDto extends Technology {
+
+    /**适用产品列表*/
+    private List<ApplicableProducts> productList;
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/technology/dto/TechnologySelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.technology.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 工艺列表查询入参实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class TechnologySelectDto extends BaseSelectDto {
+
+}

+ 37 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/technology/po/Technology.java

@@ -0,0 +1,37 @@
+package com.fjhx.mes.entity.technology.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 工艺
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+@TableName("technology")
+public class Technology extends BasePo {
+
+    /**
+     * 工艺名称
+     */
+    private String name;
+
+    /**
+     * 工艺线路
+     */
+    private String processRoute;
+
+    /**
+     * 说明
+     */
+    private String remarks;
+
+}

+ 28 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/technology/vo/TechnologyVo.java

@@ -0,0 +1,28 @@
+package com.fjhx.mes.entity.technology.vo;
+
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.mes.entity.technology.po.Technology;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 工艺列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Getter
+@Setter
+public class TechnologyVo extends Technology {
+
+    /**工艺线路列表*/
+    private List<String> processRouteList;
+
+    /**适用商品列表*/
+    private List<String> applicableProductsList;
+
+    private List<ProductInfo> productsList;
+
+}

+ 26 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/applicable/ApplicableProductsMapper.java

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

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

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

+ 26 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/technology/TechnologyMapper.java

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

+ 46 - 0
hx-mes/src/main/java/com/fjhx/mes/service/applicable/ApplicableProductsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.mes.service.applicable;
+
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.applicable.vo.ApplicableProductsVo;
+import com.fjhx.mes.entity.applicable.dto.ApplicableProductsSelectDto;
+import com.fjhx.mes.entity.applicable.dto.ApplicableProductsDto;
+
+
+/**
+ * <p>
+ * 工艺适用产品明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+public interface ApplicableProductsService extends BaseService<ApplicableProducts> {
+
+    /**
+     * 工艺适用产品明细分页
+     */
+    Page<ApplicableProductsVo> getPage(ApplicableProductsSelectDto dto);
+
+    /**
+     * 工艺适用产品明细明细
+     */
+    ApplicableProductsVo detail(Long id);
+
+    /**
+     * 工艺适用产品明细新增
+     */
+    void add(ApplicableProductsDto applicableProductsDto);
+
+    /**
+     * 工艺适用产品明细编辑
+     */
+    void edit(ApplicableProductsDto applicableProductsDto);
+
+    /**
+     * 工艺适用产品明细删除
+     */
+    void delete(Long id);
+
+}

+ 57 - 0
hx-mes/src/main/java/com/fjhx/mes/service/applicable/impl/ApplicableProductsServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.mes.service.applicable.impl;
+
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
+import com.fjhx.mes.mapper.applicable.ApplicableProductsMapper;
+import com.fjhx.mes.service.applicable.ApplicableProductsService;
+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.applicable.vo.ApplicableProductsVo;
+import com.fjhx.mes.entity.applicable.dto.ApplicableProductsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mes.entity.applicable.dto.ApplicableProductsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 工艺适用产品明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+@Service
+public class ApplicableProductsServiceImpl extends ServiceImpl<ApplicableProductsMapper, ApplicableProducts> implements ApplicableProductsService {
+
+    @Override
+    public Page<ApplicableProductsVo> getPage(ApplicableProductsSelectDto dto) {
+        IWrapper<ApplicableProducts> wrapper = getWrapper();
+        wrapper.orderByDesc("ap", ApplicableProducts::getId);
+        Page<ApplicableProductsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ApplicableProductsVo detail(Long id) {
+        ApplicableProducts ApplicableProducts = this.getById(id);
+        ApplicableProductsVo result = BeanUtil.toBean(ApplicableProducts, ApplicableProductsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ApplicableProductsDto applicableProductsDto) {
+        this.save(applicableProductsDto);
+    }
+
+    @Override
+    public void edit(ApplicableProductsDto applicableProductsDto) {
+        this.updateById(applicableProductsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 48 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/ProductionProcessesService.java

@@ -0,0 +1,48 @@
+package com.fjhx.mes.service.production;
+
+import com.fjhx.mes.entity.production.po.ProductionProcesses;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.production.vo.ProductionProcessesVo;
+import com.fjhx.mes.entity.production.dto.ProductionProcessesSelectDto;
+import com.fjhx.mes.entity.production.dto.ProductionProcessesDto;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * <p>
+ * 工序 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+public interface ProductionProcessesService extends BaseService<ProductionProcesses> {
+
+    /**
+     * 工序分页
+     */
+    Page<ProductionProcessesVo> getPage(ProductionProcessesSelectDto dto);
+
+    /**
+     * 工序明细
+     */
+    ProductionProcessesVo detail(Long id);
+
+    /**
+     * 工序新增
+     */
+    void add(ProductionProcessesDto productionProcessesDto);
+
+    /**
+     * 工序编辑
+     */
+    void edit(ProductionProcessesDto productionProcessesDto);
+
+    /**
+     * 工序删除
+     */
+    void delete(Long id);
+
+}

+ 85 - 0
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionProcessesServiceImpl.java

@@ -0,0 +1,85 @@
+package com.fjhx.mes.service.production.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fjhx.file.entity.FileInfo;
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.file.service.FileInfoService;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.mes.entity.production.po.ProductionProcesses;
+import com.fjhx.mes.mapper.production.ProductionProcessesMapper;
+import com.fjhx.mes.service.production.ProductionProcessesService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.ProductionProcessesVo;
+import com.fjhx.mes.entity.production.dto.ProductionProcessesSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mes.entity.production.dto.ProductionProcessesDto;
+import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+
+/**
+ * <p>
+ * 工序 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-03-28
+ */
+@Service
+public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProcessesMapper, ProductionProcesses> implements ProductionProcessesService {
+
+    @Autowired
+    FileInfoService fileInfoService;
+
+    @Override
+    public Page<ProductionProcessesVo> getPage(ProductionProcessesSelectDto dto) {
+        IWrapper<ProductionProcesses> wrapper = getWrapper();
+        wrapper.orderByDesc("pp", ProductionProcesses::getId);
+        wrapper.like(ProductionProcesses::getName, dto.getKeyword());
+        Page<ProductionProcessesVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public ProductionProcessesVo detail(Long id) {
+        ProductionProcesses ProductionProcesses = this.getById(id);
+        ProductionProcessesVo result = BeanUtil.toBean(ProductionProcesses, ProductionProcessesVo.class);
+        return result;
+    }
+
+    @Transactional
+    @Override
+    public void add(ProductionProcessesDto productionProcessesDto) {
+        ObsFile obsFile = productionProcessesDto.getFileList().get(0);
+        productionProcessesDto.setFileName(obsFile.getFileName());
+        this.save(productionProcessesDto);
+        ObsFileUtil.saveFile(productionProcessesDto.getFileList(), productionProcessesDto.getId());
+    }
+
+    @Transactional
+    @Override
+    public void edit(ProductionProcessesDto productionProcessesDto) {
+        ObsFile obsFile = productionProcessesDto.getFileList().get(0);
+        productionProcessesDto.setFileName(obsFile.getFileName());
+        this.updateById(productionProcessesDto);
+        ObsFileUtil.editFile(productionProcessesDto.getFileList(), productionProcessesDto.getId());
+    }
+
+    @Transactional
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+        ObsFileUtil.removeFile(id);
+    }
+
+}

+ 46 - 0
hx-mes/src/main/java/com/fjhx/mes/service/technology/TechnologyService.java

@@ -0,0 +1,46 @@
+package com.fjhx.mes.service.technology;
+
+import com.fjhx.mes.entity.technology.po.Technology;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.technology.vo.TechnologyVo;
+import com.fjhx.mes.entity.technology.dto.TechnologySelectDto;
+import com.fjhx.mes.entity.technology.dto.TechnologyDto;
+
+
+/**
+ * <p>
+ * 工艺 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-03-28
+ */
+public interface TechnologyService extends BaseService<Technology> {
+
+    /**
+     * 工艺分页
+     */
+    Page<TechnologyVo> getPage(TechnologySelectDto dto);
+
+    /**
+     * 工艺明细
+     */
+    TechnologyVo detail(Long id);
+
+    /**
+     * 工艺新增
+     */
+    void add(TechnologyDto technologyDto);
+
+    /**
+     * 工艺编辑
+     */
+    void edit(TechnologyDto technologyDto);
+
+    /**
+     * 工艺删除
+     */
+    void delete(Long id);
+
+}

+ 149 - 0
hx-mes/src/main/java/com/fjhx/mes/service/technology/impl/TechnologyServiceImpl.java

@@ -0,0 +1,149 @@
+package com.fjhx.mes.service.technology.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.mes.entity.applicable.po.ApplicableProducts;
+import com.fjhx.mes.entity.production.po.ProductionProcesses;
+import com.fjhx.mes.entity.technology.po.Technology;
+import com.fjhx.mes.mapper.technology.TechnologyMapper;
+import com.fjhx.mes.service.applicable.ApplicableProductsService;
+import com.fjhx.mes.service.production.ProductionProcessesService;
+import com.fjhx.mes.service.technology.TechnologyService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.technology.vo.TechnologyVo;
+import com.fjhx.mes.entity.technology.dto.TechnologySelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.mes.entity.technology.dto.TechnologyDto;
+import cn.hutool.core.bean.BeanUtil;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+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-28
+ */
+@DS(SourceConstant.MES)
+@Service
+public class TechnologyServiceImpl extends ServiceImpl<TechnologyMapper, Technology> implements TechnologyService {
+
+    @Autowired
+    ProductionProcessesService productionProcessesService;
+    @Autowired
+    ApplicableProductsService applicableProductsService;
+    @Autowired
+    ProductInfoService productInfoService;
+
+    @Override
+    public Page<TechnologyVo> getPage(TechnologySelectDto dto) {
+        IWrapper<Technology> wrapper = getWrapper();
+        wrapper.orderByDesc("t", Technology::getId);
+        wrapper.like(Technology::getName, dto.getKeyword());
+        Page<TechnologyVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+
+        List<TechnologyVo> records = page.getRecords();
+        //获取所有适用商品列表
+        List<Long> technologyIds = records.stream().map(TechnologyVo::getId).collect(Collectors.toList());
+        if(ObjectUtil.isNotEmpty(technologyIds)) {
+            List<ApplicableProducts> applicableProductsList = applicableProductsService.list(q -> q.in(ApplicableProducts::getTechnologyId, technologyIds));
+            List<Long> productsIds = applicableProductsList.stream().map(ApplicableProducts::getProductId).collect(Collectors.toList());
+            List<ProductInfo> productInfos = productInfoService.listByIds(productsIds);
+            Map<Long, ProductInfo> productInfoMap = productInfos.stream().collect(Collectors.groupingBy(ProductInfo::getId, Collectors.collectingAndThen(Collectors.toList(), item -> item.get(0))));
+            Map<Long, List<ApplicableProducts>> applicableProductsMap = applicableProductsList.stream().collect(Collectors.groupingBy(ApplicableProducts::getTechnologyId));
+            for (TechnologyVo technologyVo : records) {
+                //处理适用产品列表
+                List<String> productNameList = new ArrayList<>();
+                List<ApplicableProducts> applicableProductsList1 = applicableProductsMap.get(technologyVo.getId());
+                for (ApplicableProducts applicableProducts : applicableProductsList1) {
+                    ProductInfo productInfo = productInfoMap.get(applicableProducts.getProductId());
+                    productNameList.add(productInfo.getName());
+                }
+                technologyVo.setApplicableProductsList(productNameList);
+            }
+        }
+
+        //获取所有的工艺线路
+        List<String> processRouteIdList = new ArrayList<>();
+        List<String> processRoutes = records.stream().map(TechnologyVo::getProcessRoute).collect(Collectors.toList());
+        for (String processRoute : processRoutes){
+            List<String> processRouteIds = Arrays.asList(processRoute.split(","));
+            processRouteIdList.addAll(processRouteIds);
+        }
+        if(ObjectUtil.isNotEmpty(processRouteIdList)) {
+            //查出所有工序信息
+            List<ProductionProcesses> productionProcessesList = productionProcessesService.listByIds(processRouteIdList);
+            //根据工序id分组
+            Map<Long, ProductionProcesses> productionProcessesMap = productionProcessesList.stream().distinct().collect(Collectors.groupingBy(ProductionProcesses::getId, Collectors.collectingAndThen(Collectors.toList(), item -> item.get(0))));
+            for (TechnologyVo technologyVo : records) {
+                if(ObjectUtil.isNotEmpty(technologyVo.getProcessRoute())) {
+                    List<String> arr = new ArrayList<>();
+                    List<String> processRouteIds = Arrays.asList(technologyVo.getProcessRoute().split(","));
+                    for (String processRouteId : processRouteIds) {
+                        ProductionProcesses productionProcesses = productionProcessesMap.get(processRouteId);
+                        arr.add(productionProcesses.getName());
+                    }
+                    technologyVo.setProcessRouteList(arr);
+                }
+            }
+        }
+        return page;
+    }
+
+    @Override
+    public TechnologyVo detail(Long id) {
+        Technology Technology = this.getById(id);
+        TechnologyVo result = BeanUtil.toBean(Technology, TechnologyVo.class);
+        List<ApplicableProducts> list = applicableProductsService.list(q -> q.eq(ApplicableProducts::getTechnologyId, result.getId()));
+        List<Long> productList = list.stream().map(ApplicableProducts::getProductId).collect(Collectors.toList());
+        List<ProductInfo> productInfos = productInfoService.listByIds(productList);
+        result.setProductsList(productInfos);
+        return result;
+    }
+
+    @Transactional
+    @Override
+    public void add(TechnologyDto technologyDto) {
+        this.save(technologyDto);
+        List<ApplicableProducts> productList = technologyDto.getProductList();
+        for (ApplicableProducts applicableProducts : productList){
+            applicableProducts.setTechnologyId(technologyDto.getId());
+        }
+        applicableProductsService.saveBatch(productList);
+    }
+
+    @Transactional
+    @Override
+    public void edit(TechnologyDto technologyDto) {
+        this.updateById(technologyDto);
+        List<ApplicableProducts> productList = technologyDto.getProductList();
+        applicableProductsService.remove(q->q.eq(ApplicableProducts::getTechnologyId,technologyDto.getId()));
+        for (ApplicableProducts applicableProducts : productList){
+            applicableProducts.setTechnologyId(technologyDto.getId());
+        }
+        applicableProductsService.saveBatch(productList);
+    }
+
+    @Transactional
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+        applicableProductsService.remove(q->q.eq(ApplicableProducts::getTechnologyId,id));
+    }
+
+}

+ 17 - 0
hx-mes/src/main/resources/mapper/applicable/ApplicableProductsMapper.xml

@@ -0,0 +1,17 @@
+<?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.applicable.ApplicableProductsMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.applicable.vo.ApplicableProductsVo">
+        select
+            ap.id,
+            ap.technology_id,
+            ap.product_id,
+            ap.create_user,
+            ap.create_time,
+            ap.update_user,
+            ap.update_time
+        from applicable_products ap
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

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

@@ -0,0 +1,18 @@
+<?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.ProductionProcessesMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.production.vo.ProductionProcessesVo">
+        select
+            pp.id,
+            pp.name,
+            pp.remarks,
+            pp.file_name,
+            pp.create_user,
+            pp.create_time,
+            pp.update_user,
+            pp.update_time
+        from production_processes pp
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 18 - 0
hx-mes/src/main/resources/mapper/technology/TechnologyMapper.xml

@@ -0,0 +1,18 @@
+<?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.technology.TechnologyMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.technology.vo.TechnologyVo">
+        select
+            t.id,
+            t.name,
+            t.process_route,
+            t.remarks,
+            t.create_user,
+            t.create_time,
+            t.update_user,
+            t.update_time
+        from technology t
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>