基于Jeecgboot前后端分离的ERP系统开发代码生成(六)

简介: 基于Jeecgboot前后端分离的ERP系统开发代码生成(六)

     商品信息原先生成的不符合要求,重新生成,包括一个附表商品价格信息表

    一、采用TAB主题一对多的模式

      因为主键,在online表单配置是灰的,所以不能进行外键管理,只能通过下面数据库进行关联录入,否则online界面上不能录入。

效果如下:

二、生成代码使用页面风格tab风格

三、生成tab风格的代码还是需要进行修改

1、没有详情了,所以ErpGoodsList.vue需要增加

<a-menu-item>
         <a @click="handleDetail(record)">详情</a>
</a-menu-item>

同时需要增加下面信息:

增加几个价格信息的列

{
            title:'采购价格',
            align:"center",
            dataIndex: 'purchasePrice'
          },
          {
            title:'销售价格',
            align:"center",
            dataIndex: 'salePrice'
          },
          {
            title:'零售价格',
            align:"center",
            dataIndex: 'retailPrice'
          },

list修改成如下:

url: {
          list: "/goods/erpGoodsDto/list",
同时在ErpGoodsModal.vue文件把按钮要隐藏掉
:okButtonProps="{ class:{'jee-hidden': disableSubmit}

2、ErpGoodsForm.vue增加两个名称显示

<a-col :xs="24" :sm="12">
                    <a-form-model-item label="类别编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="categoryId">
                      <j-popup
                        v-model="model.categoryId"
                        field="categoryId"
                        org-fields="id,name"
                        dest-fields="categoryId,categoryName"
                        code="SelectorGoodsCategory"
                        :multi="true"
                        @input="popupCallback"
                        />
                        <a-input v-model="model.categoryName"></a-input>
                    </a-form-model-item>
                  </a-col>
                  <a-col :xs="24" :sm="12">
                    <a-form-model-item label="品牌编号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="brandId">
                      <j-popup
                        v-model="model.brandId"
                        field="brandId"
                        org-fields="id,name"
                        dest-fields="brandId,brandName"
                        code="SelectorBrand"
                        :multi="true"
                        @input="popupCallback"
                        />
                        <a-input v-model="model.brandName"></a-input>
                    </a-form-model-item>
                  </a-col>

3、后端增加相关文件

   3.1 ErpGoodsDto.java文件

package com.nbcio.modules.erp.goods.dto;
import java.io.Serializable;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ErpGoodsDto implements Serializable {
    private static final long serialVersionUID = 1L;
  /**ID*/
    private java.lang.String id;
    
  /**编号*/
    private java.lang.String code;
    
  /**名称*/
    private java.lang.String name;
    
  /**SPU编号*/
    //private java.lang.String spuId;
    
  /**类别编号*/
    private java.lang.String categoryId;
    
    /**类别名称*/
    private java.lang.String categoryName;
    
  /**品牌编号*/
    private java.lang.String brandId;
    
    /**品牌名称*/
    private java.lang.String brandName;
    
  /**规格*/
    private java.lang.String spec;
    
  /**单位*/
    private java.lang.String unit;
    
    /**采购价格*/
    private java.math.BigDecimal purchasePrice;
    
    /**销售价格*/
    private java.math.BigDecimal salePrice;
    
    /**零售价格*/
    private java.math.BigDecimal retailPrice;
    
    /**税率(%)*/
    private java.math.BigDecimal taxRate;
    
    /**销项税率(%)*/
    private java.math.BigDecimal saleTaxRate;
    
    /**数量*/
    private java.lang.Integer num;
    
    /**总价格*/
    private java.math.BigDecimal totalPrice;
    
    /**库存数量*/
    private java.lang.Integer stockNum;
    
    @Dict(dicCode = "erp_status")
    @ApiModelProperty(value = "状态")
    private java.lang.Integer status;
}

 3.2 ErpGoodsDtoController.java文件

package com.nbcio.modules.erp.goods.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.jeecg.common.api.vo.Result;
import com.nbcio.modules.erp.goods.dto.ErpGoodsDto;
import com.nbcio.modules.erp.goods.service.IErpGoodsDtoService;
import com.nbcio.modules.erp.goods.vo.QueryGoodsVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
 /**
 * @Description: erp_goods_dto
 * @Author: nbacheng
 * @Date:   2023-02-09
 * @Version: V1.0
 */
@Api(tags="erp_goods_dto")
@RestController
@RequestMapping("/goods/erpGoodsDto")
@Slf4j
public class ErpGoodsDtoController extends JeecgController<ErpGoodsDto, IErpGoodsDtoService> {
  @Autowired
  private IErpGoodsDtoService erpGoodsDtoService;
  
  
  /**
   * 分页列表查询
   *
   * @param erpGoods
   * @param pageNo
   * @param pageSize
   * @param req
   * @return
   */
  @AutoLog(value = "erp_goods-商品信息列表查询")
  @ApiOperation(value="erp_goods-商品信息列表查询", notes="erp_goods-商品信息列表查询")
  @GetMapping(value = "/list")
  public Result<?> queryGoodsList(QueryGoodsVo queryGoodsvo,
                   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                   HttpServletRequest req) {
    Page<ErpGoodsDto> page = new Page<ErpGoodsDto>(pageNo, pageSize);
    IPage<ErpGoodsDto> pageList = erpGoodsDtoService.queryGoodsList(page, queryGoodsvo);
    return Result.OK(pageList);
  }
  
  /**
   * 通过ids查询
   *
   * @param ids
   * @return
   */
  @AutoLog(value = "商品-通过ids查询")
  @ApiOperation(value="商品-通过ids查询", notes="商品-通过ids查询")
  @GetMapping(value = "/queryByIds")
  public Result<?> queryByIds(@RequestParam(name="ids",required=true) String ids) {
    List<ErpGoodsDto> listErpGoodsDto = erpGoodsDtoService.queryByIds(ids);
    if(listErpGoodsDto.size()==0) {
      return Result.error("未找到对应数据");
    }
    return Result.OK(listErpGoodsDto);
  }
  
}

3.3 ErpGoodsDtoMapper.java文件

package com.nbcio.modules.erp.goods.mapper;
import com.nbcio.modules.erp.goods.dto.ErpGoodsDto;
import com.nbcio.modules.erp.goods.vo.QueryGoodsVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
 * @Description: erp_goods_dto
 * @Author: nbacheng
 * @Date:   2023-02-09
 * @Version: V1.0
 */
public interface ErpGoodsDtoMapper extends BaseMapper<ErpGoodsDto> {
   List<ErpGoodsDto> queryGoodsList(Page<ErpGoodsDto> page, @Param("vo") QueryGoodsVo vo);
   public List<ErpGoodsDto> getByIds(@Param("idArray") String[] idArray);
}

3.4 ErpGoodsDtoMapper.xml文件

<?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.nbcio.modules.erp.goods.mapper.ErpGoodsDtoMapper">
  <resultMap id="ErpGoodsDtoMap" type="com.nbcio.modules.erp.goods.dto.ErpGoodsDto">
        <id column="id" property="id"/>
        <result column="code" property="code"/>
        <result column="name" property="name"/>
        <result column="category_id" property="categoryId"/>
        <result column="category_name" property="categoryName"/>
        <result column="brand_id" property="brandId"/>
        <result column="brand_name" property="brandName"/>
        <result column="spec" property="spec"/>
        <result column="unit" property="unit"/>
        <result column="status" property="status"/>
        <result column="purchase_price" property="purchasePrice"/>
        <result column="sale_price" property="salePrice"/>
        <result column="retail_price" property="retailPrice"/>
        <result column="tax_rate" property="taxRate"/>
        <result column="sale_tax_rate" property="saleTaxRate"/>
        <result column="num" property="num"/>
        <result column="total_price" property="totalPrice"/>
    </resultMap>
    <sql id="ErpGoodsDto_sql">
        SELECT
            a.id,
            a.code,
            a.name,
            c.id AS category_id,
            c.name AS category_name,
            b.id AS brand_id,
            b.name AS brand_name,
            a.spec,
            a.unit,
            a.status,
            price.purchase AS purchase_price,
            price.sale AS sale_price,
            price.retail AS retail_price,
      a.tax_rate,
      a.sale_tax_rate,
      1 as num,
      price.sale*1 as total_price
        FROM erp_goods AS a
        LEFT JOIN erp_goods_price AS price ON price.id = a.id
        LEFT JOIN erp_goods_category AS c ON c.id = a.category_id
        LEFT JOIN erp_goods_brand AS b ON b.id = a.brand_id
    </sql>
    <select id="queryGoodsList" resultMap="ErpGoodsDtoMap">
        <include refid="ErpGoodsDto_sql"/>
        <where>
           <if test="vo != null">
              <if test="vo.condition != null and vo.condition != ''">
                  AND (
                  a.id LIKE CONCAT('%', #{vo.condition}, '%')
                  OR a.code LIKE CONCAT('%', #{vo.condition}, '%')
                  OR a.name LIKE CONCAT('%', #{vo.condition}, '%')
                  )
              </if>
              <if test="vo.brandId != null and vo.brandId != ''">
                  AND b.id = #{vo.brandId}
              </if>
              <if test="vo.categoryId != null and vo.categoryId != ''">
                  AND (c.id = #{vo.categoryId} 
              </if>
            </if>
            AND a.status = '1' 
        </where>
        ORDER BY a.code
    </select>
    
    <select id="getByIds" resultType="com.nbcio.modules.erp.goods.dto.ErpGoodsDto">
    <include refid="ErpGoodsDto_sql"/>
    <where>
          a.id IN (
          <foreach collection="idArray" item="id" separator=",">
            #{id}
          </foreach>
          )
     </where>
      order by a.code desc
    </select>  
    
</mapper>

3.5 IErpGoodsDtoService.java文件

package com.nbcio.modules.erp.goods.service;
import com.nbcio.modules.erp.goods.dto.ErpGoodsDto;
import com.nbcio.modules.erp.goods.vo.QueryGoodsVo;
import java.util.List;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: erp_goods_dto
 * @Author: nbacheng
 * @Date:   2023-02-09
 * @Version: V1.0
 */
public interface IErpGoodsDtoService extends IService<ErpGoodsDto> {
  IPage<ErpGoodsDto> queryGoodsList(Page<ErpGoodsDto> page, QueryGoodsVo queryGoodsVo);
  List<ErpGoodsDto> queryByIds(String ids);
}

3.6 ErpGoodsDtoServiceImpl.java文件

package com.nbcio.modules.erp.goods.service.impl;
import com.nbcio.modules.erp.goods.dto.ErpGoodsDto;
import com.nbcio.modules.erp.goods.mapper.ErpGoodsDtoMapper;
import com.nbcio.modules.erp.goods.service.IErpGoodsDtoService;
import com.nbcio.modules.erp.goods.vo.QueryGoodsVo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
 * @Description: erp_goods
 * @Author: nbacheng
 * @Date:   2023-02-09
 * @Version: V1.0
 */
@Service
public class ErpGoodsDtoServiceImpl extends ServiceImpl<ErpGoodsDtoMapper, ErpGoodsDto> implements IErpGoodsDtoService {
  @Autowired
  private ErpGoodsDtoMapper erpGoodsDtoMapper;
  
  @Override
  public IPage<ErpGoodsDto> queryGoodsList(Page<ErpGoodsDto> page, QueryGoodsVo queryGoodsVo) {
    List<ErpGoodsDto> erpGoodsDtoLists = this.baseMapper.queryGoodsList(page, queryGoodsVo);
        return page.setRecords(erpGoodsDtoLists);
  }
  @Override
  public List<ErpGoodsDto> queryByIds(String ids) {
    // TODO Auto-generated method stub
    String [] idArray=ids.split(",");
    return erpGoodsDtoMapper.getByIds(idArray);
  }
}

四、效果图

 


相关文章
|
5天前
|
移动开发 供应链 前端开发
基于jeecgboot的ERP部分演示功能发布
基于jeecgboot的ERP部分演示功能发布
10 0
|
5天前
|
前端开发
基于Jeecgboot前后端分离的ERP系统开发系列--出库单(3)
基于Jeecgboot前后端分离的ERP系统开发系列--出库单(3)
12 0
|
5天前
|
JavaScript 前端开发
基于Jeecgboot前后端分离的ERP系统开发系列--出库单(2)
基于Jeecgboot前后端分离的ERP系统开发系列--出库单(2)
|
5天前
|
BI 数据库
基于Jeecgboot前后端分离的ERP系统开发系列--出库单(1)
基于Jeecgboot前后端分离的ERP系统开发系列--出库单(1)
10 1
|
5天前
|
监控 供应链 物联网
ERP系统中的在制品管理与工艺路线规划
ERP系统中的在制品管理与工艺路线规划
51 2
|
5天前
|
数据采集 监控 供应链
ERP系统在大型企业中的实施案例研究
ERP系统在大型企业中的实施案例研究
51 0
|
5天前
|
安全
选择最佳供应商:ERP系统的供应商选择与评估方法论
选择最佳供应商:ERP系统的供应商选择与评估方法论
101 0
|
5天前
|
存储 自然语言处理 Oracle
打造全球化企业:ERP系统的国际化与多语言支持
打造全球化企业:ERP系统的国际化与多语言支持
50 2
|
5天前
|
安全 虚拟化 数据安全/隐私保护
比较本地部署与私有云方案:选择适合你的ERP系统
比较本地部署与私有云方案:选择适合你的ERP系统
106 2
|
5天前
|
存储 供应链 Oracle
探究ERP系统的云端部署与SaaS模式
探究ERP系统的云端部署与SaaS模式
84 0