Bläddra i källkod

常用包材组合

24282 1 år sedan
förälder
incheckning
9f5fcd5042
18 ändrade filer med 542 tillägg och 0 borttagningar
  1. 63 0
      sd-business/src/main/java/com/sd/business/controller/common/CommonPackingBomController.java
  2. 20 0
      sd-business/src/main/java/com/sd/business/controller/common/CommonPackingBomDetailController.java
  3. 17 0
      sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomDetailDto.java
  4. 17 0
      sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomDetailSelectDto.java
  5. 25 0
      sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomDto.java
  6. 22 0
      sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomSelectDto.java
  7. 31 0
      sd-business/src/main/java/com/sd/business/entity/common/po/CommonPackingBom.java
  8. 38 0
      sd-business/src/main/java/com/sd/business/entity/common/po/CommonPackingBomDetail.java
  9. 32 0
      sd-business/src/main/java/com/sd/business/entity/common/vo/CommonPackingBomDetailVo.java
  10. 24 0
      sd-business/src/main/java/com/sd/business/entity/common/vo/CommonPackingBomVo.java
  11. 17 0
      sd-business/src/main/java/com/sd/business/mapper/common/CommonPackingBomDetailMapper.java
  12. 26 0
      sd-business/src/main/java/com/sd/business/mapper/common/CommonPackingBomMapper.java
  13. 17 0
      sd-business/src/main/java/com/sd/business/service/common/CommonPackingBomDetailService.java
  14. 41 0
      sd-business/src/main/java/com/sd/business/service/common/CommonPackingBomService.java
  15. 21 0
      sd-business/src/main/java/com/sd/business/service/common/impl/CommonPackingBomDetailServiceImpl.java
  16. 111 0
      sd-business/src/main/java/com/sd/business/service/common/impl/CommonPackingBomServiceImpl.java
  17. 4 0
      sd-business/src/main/resources/mapper/common/CommonPackingBomDetailMapper.xml
  18. 16 0
      sd-business/src/main/resources/mapper/common/CommonPackingBomMapper.xml

+ 63 - 0
sd-business/src/main/java/com/sd/business/controller/common/CommonPackingBomController.java

@@ -0,0 +1,63 @@
+package com.sd.business.controller.common;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.sd.business.entity.common.dto.CommonPackingBomDto;
+import com.sd.business.entity.common.dto.CommonPackingBomSelectDto;
+import com.sd.business.entity.common.vo.CommonPackingBomVo;
+import com.sd.business.service.common.CommonPackingBomService;
+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;
+
+
+/**
+ * <p>
+ * 常用包材组合 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@RestController
+@RequestMapping("/commonPackingBom")
+public class CommonPackingBomController {
+
+    @Autowired
+    private CommonPackingBomService commonPackingBomService;
+
+    /**
+     * 常用包材组合分页
+     */
+    @PostMapping("/page")
+    public Page<CommonPackingBomVo> page(@RequestBody CommonPackingBomSelectDto dto) {
+        return commonPackingBomService.getPage(dto);
+    }
+
+    /**
+     * 常用包材组合新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody CommonPackingBomDto commonPackingBomDto) {
+        commonPackingBomService.add(commonPackingBomDto);
+    }
+
+    /**
+     * 常用包材组合编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody CommonPackingBomDto commonPackingBomDto) {
+        commonPackingBomService.edit(commonPackingBomDto);
+    }
+
+    /**
+     * 常用包材组合删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        commonPackingBomService.delete(dto.getId());
+    }
+
+}

+ 20 - 0
sd-business/src/main/java/com/sd/business/controller/common/CommonPackingBomDetailController.java

@@ -0,0 +1,20 @@
+package com.sd.business.controller.common;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 常用包材组合明细 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@RestController
+@RequestMapping("/commonPackingBomDetail")
+public class CommonPackingBomDetailController {
+
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomDetailDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.common.dto;
+
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 常用包材组合明细新增编辑入参实体
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+public class CommonPackingBomDetailDto extends CommonPackingBomDetail {
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomDetailSelectDto.java

@@ -0,0 +1,17 @@
+package com.sd.business.entity.common.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 常用包材组合明细列表查询入参实体
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+public class CommonPackingBomDetailSelectDto extends BaseSelectDto {
+
+}

+ 25 - 0
sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomDto.java

@@ -0,0 +1,25 @@
+package com.sd.business.entity.common.dto;
+
+import com.sd.business.entity.common.po.CommonPackingBom;
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 常用包材组合新增编辑入参实体
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+public class CommonPackingBomDto extends CommonPackingBom {
+
+    /**
+     * 组合明细
+     */
+    private List<CommonPackingBomDetail> commonPackingBomDetailList;
+
+}

+ 22 - 0
sd-business/src/main/java/com/sd/business/entity/common/dto/CommonPackingBomSelectDto.java

@@ -0,0 +1,22 @@
+package com.sd.business.entity.common.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 常用包材组合列表查询入参实体
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+public class CommonPackingBomSelectDto extends BaseSelectDto {
+
+    /**
+     * 组合名称
+     */
+    private String name;
+
+}

+ 31 - 0
sd-business/src/main/java/com/sd/business/entity/common/po/CommonPackingBom.java

@@ -0,0 +1,31 @@
+package com.sd.business.entity.common.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 常用包材组合
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+@TableName("common_packing_bom")
+public class CommonPackingBom extends BasePo {
+
+    /**
+     * 组合名称
+     */
+    private String name;
+
+    /**
+     * 事业部id
+     */
+    private Long departmentId;
+
+}

+ 38 - 0
sd-business/src/main/java/com/sd/business/entity/common/po/CommonPackingBomDetail.java

@@ -0,0 +1,38 @@
+package com.sd.business.entity.common.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 常用包材组合明细
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+@TableName("common_packing_bom_detail")
+public class CommonPackingBomDetail extends BasePo {
+
+    /**
+     * 常用包材id
+     */
+    private Long commonPackingBomId;
+
+    /**
+     * bom规格id
+     */
+    private Long bomSpecId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+}

+ 32 - 0
sd-business/src/main/java/com/sd/business/entity/common/vo/CommonPackingBomDetailVo.java

@@ -0,0 +1,32 @@
+package com.sd.business.entity.common.vo;
+
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * 常用包材组合明细列表查询返回值实体
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+public class CommonPackingBomDetailVo extends CommonPackingBomDetail {
+
+    private String bomSpecCode;
+    private String bomSpecName;
+
+    /**
+     * 单价
+     */
+    private BigDecimal unitPrice;
+
+    /**
+     * 图片路径
+     */
+    private String mainImgUrl;
+
+}

+ 24 - 0
sd-business/src/main/java/com/sd/business/entity/common/vo/CommonPackingBomVo.java

@@ -0,0 +1,24 @@
+package com.sd.business.entity.common.vo;
+
+import com.sd.business.entity.common.po.CommonPackingBom;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 常用包材组合列表查询返回值实体
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Getter
+@Setter
+public class CommonPackingBomVo extends CommonPackingBom {
+
+    /**
+     * 组合明细
+     */
+    private List<CommonPackingBomDetailVo> commonPackingBomDetailList;
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/mapper/common/CommonPackingBomDetailMapper.java

@@ -0,0 +1,17 @@
+package com.sd.business.mapper.common;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+
+
+/**
+ * <p>
+ * 常用包材组合明细 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+public interface CommonPackingBomDetailMapper extends BaseMapper<CommonPackingBomDetail> {
+
+}

+ 26 - 0
sd-business/src/main/java/com/sd/business/mapper/common/CommonPackingBomMapper.java

@@ -0,0 +1,26 @@
+package com.sd.business.mapper.common;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.common.po.CommonPackingBom;
+import com.sd.business.entity.common.vo.CommonPackingBomVo;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 常用包材组合 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+public interface CommonPackingBomMapper extends BaseMapper<CommonPackingBom> {
+
+    /**
+     * 常用包材组合分页
+     */
+    Page<CommonPackingBomVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<CommonPackingBom> wrapper);
+
+}

+ 17 - 0
sd-business/src/main/java/com/sd/business/service/common/CommonPackingBomDetailService.java

@@ -0,0 +1,17 @@
+package com.sd.business.service.common;
+
+import com.ruoyi.common.core.service.BaseService;
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+
+
+/**
+ * <p>
+ * 常用包材组合明细 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+public interface CommonPackingBomDetailService extends BaseService<CommonPackingBomDetail> {
+
+}

+ 41 - 0
sd-business/src/main/java/com/sd/business/service/common/CommonPackingBomService.java

@@ -0,0 +1,41 @@
+package com.sd.business.service.common;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.service.BaseService;
+import com.sd.business.entity.common.dto.CommonPackingBomDto;
+import com.sd.business.entity.common.dto.CommonPackingBomSelectDto;
+import com.sd.business.entity.common.po.CommonPackingBom;
+import com.sd.business.entity.common.vo.CommonPackingBomVo;
+
+
+/**
+ * <p>
+ * 常用包材组合 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+public interface CommonPackingBomService extends BaseService<CommonPackingBom> {
+
+    /**
+     * 常用包材组合分页
+     */
+    Page<CommonPackingBomVo> getPage(CommonPackingBomSelectDto dto);
+
+    /**
+     * 常用包材组合新增
+     */
+    void add(CommonPackingBomDto commonPackingBomDto);
+
+    /**
+     * 常用包材组合编辑
+     */
+    void edit(CommonPackingBomDto commonPackingBomDto);
+
+    /**
+     * 常用包材组合删除
+     */
+    void delete(Long id);
+
+}

+ 21 - 0
sd-business/src/main/java/com/sd/business/service/common/impl/CommonPackingBomDetailServiceImpl.java

@@ -0,0 +1,21 @@
+package com.sd.business.service.common.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+import com.sd.business.mapper.common.CommonPackingBomDetailMapper;
+import com.sd.business.service.common.CommonPackingBomDetailService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 常用包材组合明细 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Service
+public class CommonPackingBomDetailServiceImpl extends ServiceImpl<CommonPackingBomDetailMapper, CommonPackingBomDetail> implements CommonPackingBomDetailService {
+
+}

+ 111 - 0
sd-business/src/main/java/com/sd/business/service/common/impl/CommonPackingBomServiceImpl.java

@@ -0,0 +1,111 @@
+package com.sd.business.service.common.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.BaseIdPo;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.sd.business.entity.common.dto.CommonPackingBomDto;
+import com.sd.business.entity.common.dto.CommonPackingBomSelectDto;
+import com.sd.business.entity.common.po.CommonPackingBom;
+import com.sd.business.entity.common.po.CommonPackingBomDetail;
+import com.sd.business.entity.common.vo.CommonPackingBomDetailVo;
+import com.sd.business.entity.common.vo.CommonPackingBomVo;
+import com.sd.business.mapper.common.CommonPackingBomMapper;
+import com.sd.business.service.bom.BomSpecService;
+import com.sd.business.service.common.CommonPackingBomDetailService;
+import com.sd.business.service.common.CommonPackingBomService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 常用包材组合 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-10-07
+ */
+@Service
+public class CommonPackingBomServiceImpl extends ServiceImpl<CommonPackingBomMapper, CommonPackingBom> implements CommonPackingBomService {
+
+    @Autowired
+    private CommonPackingBomDetailService commonPackingBomDetailService;
+
+    @Autowired
+    private BomSpecService bomSpecService;
+
+    @Override
+    public Page<CommonPackingBomVo> getPage(CommonPackingBomSelectDto dto) {
+        IWrapper<CommonPackingBom> wrapper = getWrapper();
+        wrapper.orderByDesc("cpb", CommonPackingBom::getId);
+        wrapper.like("cpb", CommonPackingBom::getName, dto.getName());
+        wrapper.eq("cpb", CommonPackingBom::getDepartmentId, SecurityUtils.getDeptId());
+        Page<CommonPackingBomVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<CommonPackingBomVo> records = page.getRecords();
+        if (records.isEmpty()) {
+            return page;
+        }
+
+        List<Long> idList = records.stream().map(BaseIdPo::getId).collect(Collectors.toList());
+        List<CommonPackingBomDetail> tempList = commonPackingBomDetailService.list(q -> q.in(CommonPackingBomDetail::getCommonPackingBomId, idList));
+        List<CommonPackingBomDetailVo> list = BeanUtil.copyToList(tempList, CommonPackingBomDetailVo.class);
+
+        bomSpecService.attributeAssign(list, CommonPackingBomDetail::getBomSpecId, (item, bomSpec) -> {
+            item.setBomSpecCode(bomSpec.getCode());
+            item.setBomSpecName(bomSpec.getName());
+            item.setUnitPrice(bomSpec.getInternalSellingPrice());
+            item.setMainImgUrl(bomSpec.getMainImgUrl());
+        });
+
+        Map<Long, List<CommonPackingBomDetailVo>> map = list.stream().collect(Collectors.groupingBy(CommonPackingBomDetail::getCommonPackingBomId));
+
+        for (CommonPackingBomVo record : records) {
+            record.setCommonPackingBomDetailList(map.getOrDefault(record.getId(), Collections.emptyList()));
+        }
+
+        return page;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(CommonPackingBomDto commonPackingBomDto) {
+        commonPackingBomDto.setDepartmentId(SecurityUtils.getDeptId());
+        this.save(commonPackingBomDto);
+        List<CommonPackingBomDetail> commonPackingBomDetailList = commonPackingBomDto.getCommonPackingBomDetailList();
+        for (CommonPackingBomDetail commonPackingBomDetail : commonPackingBomDetailList) {
+            commonPackingBomDetail.setCommonPackingBomId(commonPackingBomDto.getId());
+        }
+        commonPackingBomDetailService.saveBatch(commonPackingBomDetailList);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(CommonPackingBomDto commonPackingBomDto) {
+        this.updateById(commonPackingBomDto);
+        List<CommonPackingBomDetail> commonPackingBomDetailList = commonPackingBomDto.getCommonPackingBomDetailList();
+        for (CommonPackingBomDetail commonPackingBomDetail : commonPackingBomDetailList) {
+            commonPackingBomDetail.setCommonPackingBomId(commonPackingBomDto.getId());
+        }
+        commonPackingBomDetailService.editLinked(
+                commonPackingBomDetailList,
+                CommonPackingBomDetail::getCommonPackingBomId,
+                commonPackingBomDto.getId());
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+        commonPackingBomDetailService.remove(q -> q.eq(CommonPackingBomDetail::getCommonPackingBomId, id));
+    }
+
+}

+ 4 - 0
sd-business/src/main/resources/mapper/common/CommonPackingBomDetailMapper.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.sd.business.mapper.common.CommonPackingBomDetailMapper">
+</mapper>

+ 16 - 0
sd-business/src/main/resources/mapper/common/CommonPackingBomMapper.xml

@@ -0,0 +1,16 @@
+<?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.sd.business.mapper.common.CommonPackingBomMapper">
+    <select id="getPage" resultType="com.sd.business.entity.common.vo.CommonPackingBomVo">
+        select cpb.id,
+               cpb.name,
+               cpb.department_id,
+               cpb.create_user,
+               cpb.create_time,
+               cpb.update_user,
+               cpb.update_time
+        from common_packing_bom cpb
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>