From f71482cffc51e00c02b2a0d7372513b50bacad58 Mon Sep 17 00:00:00 2001
From: mahuandong <752432958@qq.com>
Date: Mon, 12 Aug 2019 16:21:57 +0800
Subject: [PATCH] 添加商品详情

---
 src/main/java/com/huaheng/pc/general/bom/controller/BomDetailController.java |  18 ++++++++++++++++++
 src/main/java/com/huaheng/pc/general/bom/controller/BomHeaderController.java | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/huaheng/pc/general/bom/domain/BomDetail.java               | 259 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/huaheng/pc/general/bom/mapper/BomDetailMapper.java         |   7 +++++++
 src/main/java/com/huaheng/pc/general/bom/service/BomDetailService.java       |   8 ++++++++
 src/main/java/com/huaheng/pc/general/bom/service/BomDetailServiceImpl.java   |  11 +++++++++++
 src/main/java/com/huaheng/pc/general/carrier/domain/Carrier.java             |   3 +++
 7 files changed, 457 insertions(+), 0 deletions(-)
 create mode 100644 src/main/java/com/huaheng/pc/general/bom/controller/BomDetailController.java
 create mode 100644 src/main/java/com/huaheng/pc/general/bom/controller/BomHeaderController.java
 create mode 100644 src/main/java/com/huaheng/pc/general/bom/domain/BomDetail.java
 create mode 100644 src/main/java/com/huaheng/pc/general/bom/mapper/BomDetailMapper.java
 create mode 100644 src/main/java/com/huaheng/pc/general/bom/service/BomDetailService.java
 create mode 100644 src/main/java/com/huaheng/pc/general/bom/service/BomDetailServiceImpl.java

diff --git a/src/main/java/com/huaheng/pc/general/bom/controller/BomDetailController.java b/src/main/java/com/huaheng/pc/general/bom/controller/BomDetailController.java
new file mode 100644
index 0000000..638996c
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/general/bom/controller/BomDetailController.java
@@ -0,0 +1,18 @@
+package com.huaheng.pc.general.bom.controller;
+
+import com.huaheng.pc.general.bom.domain.BomDetail;
+import com.huaheng.pc.general.bom.service.BomDetailService;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.annotation.Resource;
+
+@Controller
+@RequestMapping("/general/bomDetail")
+public class BomDetailController {
+
+    private String prefix = "general/bomDetail";
+
+    @Resource
+    private BomDetailService bomDetailService;
+}
diff --git a/src/main/java/com/huaheng/pc/general/bom/controller/BomHeaderController.java b/src/main/java/com/huaheng/pc/general/bom/controller/BomHeaderController.java
new file mode 100644
index 0000000..1e6f011
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/general/bom/controller/BomHeaderController.java
@@ -0,0 +1,151 @@
+package com.huaheng.pc.general.bom.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huaheng.common.support.Convert;
+import com.huaheng.common.utils.StringUtils;
+import com.huaheng.framework.aspectj.lang.annotation.Log;
+import com.huaheng.framework.aspectj.lang.constant.BusinessType;
+import com.huaheng.framework.web.controller.BaseController;
+import com.huaheng.framework.web.domain.AjaxResult;
+import com.huaheng.framework.web.page.PageDomain;
+import com.huaheng.framework.web.page.TableDataInfo;
+import com.huaheng.framework.web.page.TableSupport;
+import com.huaheng.pc.general.bom.domain.BomDetail;
+import com.huaheng.pc.general.bom.domain.BomHeader;
+import com.huaheng.pc.general.bom.service.BomDetailService;
+import com.huaheng.pc.general.bom.service.BomHeaderService;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+@Controller
+@RequestMapping("/general/bomHeader")
+public class BomHeaderController extends BaseController {
+
+    private String prefix = "general/bomHeader";
+
+    @Resource
+    private BomHeaderService bomHeaderService;
+
+    @Resource
+    private BomDetailService bomDetailService;
+
+    @RequiresPermissions("general:bomHeader:view")
+    @GetMapping()
+    public String company() {
+        return prefix + "/bomHeader";
+    }
+
+    /**
+     * 查询商品列表
+     */
+    @ApiOperation(value="查看商品列表", notes="根据物料编码、物料名称、货主编码、创建时间获取商品信息", httpMethod = "POST")
+    @RequiresPermissions("general:bomHeader:list")
+    @Log(title = "通用-商品管理", operating = "查看商品列表", action = BusinessType.GRANT)
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(
+            @ApiParam(name="bomHeader",value="物料编码、物料名称、货主编码") BomHeader bomHeader,
+            @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin,
+            @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) {
+        LambdaQueryWrapper<BomHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), BomHeader::getCreated, createdBegin)
+                .lt(StringUtils.isNotEmpty(createdEnd), BomHeader::getCreated, createdEnd)
+                .eq(StringUtils.isNotEmpty(bomHeader.getMaterialCode()), BomHeader::getMaterialCode, bomHeader.getMaterialCode())
+                .eq(StringUtils.isNotEmpty(bomHeader.getMaterialName()), BomHeader::getMaterialName, bomHeader.getMaterialName())
+                .eq(StringUtils.isNotEmpty(bomHeader.getCompanyCode()), BomHeader::getCompanyCode, bomHeader.getCompanyCode());
+
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
+            /*使用分页查询*/
+            Page<BomHeader> page = new Page<>(pageNum, pageSize);
+            IPage<BomHeader> iPage = bomHeaderService.page(page, lambdaQueryWrapper);
+            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
+        } else {
+            List<BomHeader> list = bomHeaderService.list(lambdaQueryWrapper);
+            return getDataTable(list);
+        }
+    }
+
+    /**
+     * 新增商品
+     */
+    @GetMapping("/add")
+    public String add() {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存商品
+     */
+    @ApiOperation(value="新增商品", notes="新增商品", httpMethod = "POST")
+    @RequiresPermissions("general:bomHeader:add")
+    @Log(title = "通用-商品", operating = "新增商品", action = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(@ApiParam(name = "containerType", value = "商品类型", required = true)
+                                          BomHeader bomHeader)  {
+        return toAjax(bomHeaderService.save(bomHeader));
+    }
+
+    /**
+     * 修改商品
+     */
+    @GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
+        mmap.put("bomHeader", bomHeaderService.getById(id));
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存商品
+     */
+    @ApiOperation(value="修改商品", notes="修改商品", httpMethod = "POST")
+    @RequiresPermissions("general:bomHeader:edit")
+    @Log(title = "通用-商品", operating = "修改商品", action = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(
+            @ApiParam(name = "bomHeader", value = "商品实体类", required = true)BomHeader bomHeader) {
+        return toAjax(bomHeaderService.updateById(bomHeader));
+    }
+
+    /**
+     * 删除容器
+     */
+    @ApiOperation(value="删除商品", notes="根据id批量删除商品,参数示例1,2,3", httpMethod = "POST")
+    @RequiresPermissions("general:bomHeader:remove")
+    @Log(title = "通用-商品", operating = "删除商品", action = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids) {
+        if (StringUtils.isEmpty(ids)){
+            return AjaxResult.error("id不能为空");
+        }
+        List<Integer> list = new ArrayList<>();
+        for (Integer id : Convert.toIntArray(ids)) {
+
+            LambdaQueryWrapper<BomDetail> lambda = Wrappers.lambdaQuery();
+            List<BomDetail> bomDetailList = bomDetailService.list(lambda.eq(BomDetail::getBomId, id));
+            if (bomDetailList.size() != 0) {
+                list.add(id);
+            } else {
+                return AjaxResult.error("商品编码为(" + id + ")存在商品详情");
+            }
+        }
+        return toAjax(bomHeaderService.removeByIds(list));
+    }
+
+}
diff --git a/src/main/java/com/huaheng/pc/general/bom/domain/BomDetail.java b/src/main/java/com/huaheng/pc/general/bom/domain/BomDetail.java
new file mode 100644
index 0000000..3e07239
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/general/bom/domain/BomDetail.java
@@ -0,0 +1,259 @@
+package com.huaheng.pc.general.bom.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+@ApiModel(value="com.huaheng.pc.general.bom.domain.BomDetail")
+@Data
+@TableName(value = "bom_detail")
+public class BomDetail implements Serializable {
+    /**
+     * 内部号
+     */
+     @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value="内部号")
+    private Integer id;
+
+    /**
+     * 仓库代码
+     */
+    @TableField(value = "warehouseCode")
+    @ApiModelProperty(value="仓库代码")
+    private String warehouseCode;
+
+    /**
+     * 货主
+     */
+    @TableField(value = "companyCode")
+    @ApiModelProperty(value="货主")
+    private String companyCode;
+
+    /**
+     * 物料清单内部号
+     */
+    @TableField(value = "bomId")
+    @ApiModelProperty(value="物料清单内部号")
+    private Integer bomId;
+
+    /**
+     * 物料编码
+     */
+    @TableField(value = "materialCode")
+    @ApiModelProperty(value="物料编码")
+    private String materialCode;
+
+    /**
+     * 物料名称
+     */
+    @TableField(value = "materialName")
+    @ApiModelProperty(value="物料名称")
+    private String materialName;
+
+    /**
+     * 数量单位
+     */
+    @TableField(value = "materialUnit")
+    @ApiModelProperty(value="数量单位")
+    private String materialUnit;
+
+    /**
+     * 组套层次
+     */
+    @TableField(value = "buildLevel")
+    @ApiModelProperty(value="组套层次")
+    private Integer buildLevel;
+
+    /**
+     * 序号
+     */
+    @TableField(value = "buildSequence")
+    @ApiModelProperty(value="序号")
+    private Integer buildSequence;
+
+    /**
+     * 每成品需要数量
+     */
+    @TableField(value = "qty")
+    @ApiModelProperty(value="每成品需要数量")
+    private Integer qty;
+
+    /**
+     * 分配规则
+     */
+    @TableField(value = "allocationRule")
+    @ApiModelProperty(value="分配规则")
+    private String allocationRule;
+
+    /**
+     * 从货位
+     */
+    @TableField(value = "fromLocation")
+    @ApiModelProperty(value="从货位")
+    private String fromLocation;
+
+    /**
+     * 有效
+     */
+    @TableField(value = "enable")
+    @ApiModelProperty(value="有效")
+    private Boolean enable;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "created")
+    @ApiModelProperty(value="创建时间")
+    private Date created;
+
+    /**
+     * 创建用户
+     */
+    @TableField(value = "createdBy")
+    @ApiModelProperty(value="创建用户")
+    private String createdBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "lastUpdated")
+    @ApiModelProperty(value="创建时间")
+    private Date lastUpdated;
+
+    /**
+     * 更新用户
+     */
+    @TableField(value = "lastUpdatedBy")
+    @ApiModelProperty(value="更新用户")
+    private String lastUpdatedBy;
+
+    /**
+     * 数据版本
+     */
+    @TableField(value = "version")
+    @ApiModelProperty(value="数据版本")
+    private Integer version;
+
+    /**
+     * 自定义字段1
+     */
+    @TableField(value = "userDef1")
+    @ApiModelProperty(value="自定义字段1")
+    private String userDef1;
+
+    /**
+     * 自定义字段2
+     */
+    @TableField(value = "userDef2")
+    @ApiModelProperty(value="自定义字段2")
+    private String userDef2;
+
+    /**
+     * 自定义字段3
+     */
+    @TableField(value = "userDef3")
+    @ApiModelProperty(value="自定义字段3")
+    private String userDef3;
+
+    /**
+     * 自定义字段4
+     */
+    @TableField(value = "userDef4")
+    @ApiModelProperty(value="自定义字段4")
+    private String userDef4;
+
+    /**
+     * 自定义字段5
+     */
+    @TableField(value = "userDef5")
+    @ApiModelProperty(value="自定义字段5")
+    private String userDef5;
+
+    /**
+     * 自定义字段6
+     */
+    @TableField(value = "userDef6")
+    @ApiModelProperty(value="自定义字段6")
+    private String userDef6;
+
+    /**
+     * 自定义字段7
+     */
+    @TableField(value = "userDef7")
+    @ApiModelProperty(value="自定义字段7")
+    private String userDef7;
+
+    /**
+     * 自定义字段8
+     */
+    @TableField(value = "userDef8")
+    @ApiModelProperty(value="自定义字段8")
+    private String userDef8;
+
+    /**
+     * 处理标记
+     */
+    @TableField(value = "processStamp")
+    @ApiModelProperty(value="处理标记")
+    private String processStamp;
+
+    private static final long serialVersionUID = 1L;
+
+    public static final String COL_WAREHOUSECODE = "warehouseCode";
+
+    public static final String COL_COMPANYCODE = "companyCode";
+
+    public static final String COL_BOMID = "bomId";
+
+    public static final String COL_MATERIALCODE = "materialCode";
+
+    public static final String COL_MATERIALNAME = "materialName";
+
+    public static final String COL_MATERIALUNIT = "materialUnit";
+
+    public static final String COL_BUILDLEVEL = "buildLevel";
+
+    public static final String COL_BUILDSEQUENCE = "buildSequence";
+
+    public static final String COL_QTY = "qty";
+
+    public static final String COL_ALLOCATIONRULE = "allocationRule";
+
+    public static final String COL_FROMLOCATION = "fromLocation";
+
+    public static final String COL_ENABLE = "enable";
+
+    public static final String COL_CREATED = "created";
+
+    public static final String COL_CREATEDBY = "createdBy";
+
+    public static final String COL_LASTUPDATED = "lastUpdated";
+
+    public static final String COL_LASTUPDATEDBY = "lastUpdatedBy";
+
+    public static final String COL_VERSION = "version";
+
+    public static final String COL_USERDEF1 = "userDef1";
+
+    public static final String COL_USERDEF2 = "userDef2";
+
+    public static final String COL_USERDEF3 = "userDef3";
+
+    public static final String COL_USERDEF4 = "userDef4";
+
+    public static final String COL_USERDEF5 = "userDef5";
+
+    public static final String COL_USERDEF6 = "userDef6";
+
+    public static final String COL_USERDEF7 = "userDef7";
+
+    public static final String COL_USERDEF8 = "userDef8";
+
+    public static final String COL_PROCESSSTAMP = "processStamp";
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/general/bom/mapper/BomDetailMapper.java b/src/main/java/com/huaheng/pc/general/bom/mapper/BomDetailMapper.java
new file mode 100644
index 0000000..5ac36c5
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/general/bom/mapper/BomDetailMapper.java
@@ -0,0 +1,7 @@
+package com.huaheng.pc.general.bom.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huaheng.pc.general.bom.domain.BomDetail;
+
+public interface BomDetailMapper extends BaseMapper<BomDetail> {
+}
\ No newline at end of file
diff --git a/src/main/java/com/huaheng/pc/general/bom/service/BomDetailService.java b/src/main/java/com/huaheng/pc/general/bom/service/BomDetailService.java
new file mode 100644
index 0000000..d1568ed
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/general/bom/service/BomDetailService.java
@@ -0,0 +1,8 @@
+package com.huaheng.pc.general.bom.service;
+
+import com.huaheng.pc.general.bom.domain.BomDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+public interface BomDetailService extends IService<BomDetail>{
+
+
+}
diff --git a/src/main/java/com/huaheng/pc/general/bom/service/BomDetailServiceImpl.java b/src/main/java/com/huaheng/pc/general/bom/service/BomDetailServiceImpl.java
new file mode 100644
index 0000000..7368c50
--- /dev/null
+++ b/src/main/java/com/huaheng/pc/general/bom/service/BomDetailServiceImpl.java
@@ -0,0 +1,11 @@
+package com.huaheng.pc.general.bom.service;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huaheng.pc.general.bom.domain.BomDetail;
+import com.huaheng.pc.general.bom.mapper.BomDetailMapper;
+
+@Service
+public class BomDetailServiceImpl extends ServiceImpl<BomDetailMapper, BomDetail> implements BomDetailService{
+
+}
diff --git a/src/main/java/com/huaheng/pc/general/carrier/domain/Carrier.java b/src/main/java/com/huaheng/pc/general/carrier/domain/Carrier.java
index a4b9b3f..64cde2c 100644
--- a/src/main/java/com/huaheng/pc/general/carrier/domain/Carrier.java
+++ b/src/main/java/com/huaheng/pc/general/carrier/domain/Carrier.java
@@ -10,6 +10,9 @@ import java.io.Serializable;
 import java.util.Date;
 import lombok.Data;
 
+/**
+ * 承运商
+ */
 @ApiModel(value="com.huaheng.pc.general.carrier.domain.Carrier")
 @Data
 @TableName(value = "carrier")
--
libgit2 0.22.2