基于Jeecgboot前后端分离的ERP系统开发系列--出库单(2)

简介: 基于Jeecgboot前后端分离的ERP系统开发系列--出库单(2)

原来online表单生成的出库单列表也不满足要求,所以需要重新进行编写与调整。

   一、重新建ErpSaleOutDto如下:

package com.nbcio.modules.erp.sale.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @Description: 销售出库单DTO
 * @Author: nbacheng
 * @Date:   2023-02-15
 * @Version: V1.0
 */
@Data
public class ErpSaleOutDto implements Serializable {
    private static final long serialVersionUID = 1L;
    /**ID*/
    private String id;
    /**单号*/
    private String code;
    /**仓库ID*/
    private String scId;
    
    /**仓库编号*/
    private String wsCode;
    /** 仓库名称*/
    private String wsName;
    
    /**客户ID*/
    private String customerId;
    /** 客户编号*/
    private String csCode;
    /** 客户名称*/
    private String csName;
    
    /**付款日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "付款日期")
    private java.util.Date paymentDate;
    
    /**销售员ID*/
    private String salerId;
    /** 销售员姓名*/
    private String salerName;
    /** 销售订单ID*/
    private String saleOrderId;
    /** 销售订单号*/
    private String saleOrderCode;
    /** 销售数量*/
    private Integer totalNum;
    
    /** 赠品数量*/
    private Integer totalGiftNum;
    /** 销售金额*/
    private BigDecimal totalAmount;
    /** 备注*/
    private String description;
    /** 创建人*/
    private String createBy;
    /** 创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
    /** 审核人*/
    private String approveBy;
    /** 审核时间*/
  @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "审核时间")
    private java.util.Date approveTime;
    /** 状态*/
    private Integer status;
    /** 拒绝原因*/
    private String refuseReason;
    /** 结算状态*/
    private Integer settleStatus;
}

二、重新建ErpSaleOutDtoController

package com.nbcio.modules.erp.sale.controller;
import javax.servlet.http.HttpServletRequest;
import org.jeecg.common.api.vo.Result;
import com.nbcio.modules.erp.sale.dto.ErpSaleOutDto;
import com.nbcio.modules.erp.sale.vo.QuerySaleOutVo;
import com.nbcio.modules.erp.sale.service.IErpSaleOutDtoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
/**
 * @Description: 销售出库单
 * @Author: nbacheng
 * @Date:   2023-02-15
 * @Version: V1.0
 */
@Api(tags="销售出库单DTO")
@RestController
@RequestMapping("/sale/erpSaleOutDto")
@Slf4j
public class ErpSaleOutDtoController {
  @Autowired
  private IErpSaleOutDtoService erpSaleOutDtoService;
  
  /**
   * 分页列表查询
   *
   * @param erpSaleOut
   * @param pageNo
   * @param pageSize
   * @param req
   * @return
   */
  @AutoLog(value = "销售出库单-分页列表查询")
  @ApiOperation(value="销售出库单-分页列表查询", notes="销售出库单-分页列表查询")
  @GetMapping(value = "/list")
  public Result<?> querySaleOutList(QuerySaleOutVo querySaleOutVo,
         @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
         @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
         HttpServletRequest req) {
      Page<ErpSaleOutDto> page = new Page<ErpSaleOutDto>(pageNo, pageSize);
      IPage<ErpSaleOutDto> pageList = erpSaleOutDtoService.querySaleOutList(page, querySaleOutVo);
      return Result.OK(pageList);
    }
  
}

三、ErpSaleOutDtoMapper 如下

package com.nbcio.modules.erp.sale.mapper;
import com.nbcio.modules.erp.sale.dto.ErpSaleOutDto;
import com.nbcio.modules.erp.sale.vo.QuerySaleOutVo;
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: 销售出库单
 * @Author: nbacheng
 * @Date:   2023-02-15
 * @Version: V1.0
 */
public interface ErpSaleOutDtoMapper extends BaseMapper<ErpSaleOutDto> {
  List<ErpSaleOutDto> querySaleOutList(Page<ErpSaleOutDto> page, @Param("vo") QuerySaleOutVo vo);
}

四、ErpSaleOutDtoMapper.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.sale.mapper.ErpSaleOutDtoMapper">
  <resultMap id="ErpSaleOutDtoMap" type="com.nbcio.modules.erp.sale.dto.ErpSaleOutDto">
        <id column="id" property="id"/>
        <result column="code" property="code"/>
        <result column="sc_id" property="scId"/>
        <result column="customer_id" property="customerId"/>
        <result column="saler_id" property="salerId"/>
        <result column="payment_date" property="paymentDate"/>
        <result column="sale_order_id" property="saleOrderId"/>
        <result column="total_num" property="totalNum"/>
        <result column="total_gift_num" property="totalGiftNum"/>
        <result column="total_amount" property="totalAmount"/>
        <result column="description" property="description"/>
        <result column="create_by" property="createBy"/>
        <result column="create_time" property="createTime"/>
        <result column="approve_by" property="approveBy"/>
        <result column="approve_time" property="approveTime"/>
        <result column="status" property="status"/>
        <result column="refuse_reason" property="refuseReason"/>
        <result column="settle_status" property="settleStatus"/>
        <result column="ws_code" property="wsCode"/>
        <result column="ws_name" property="wsName"/>
        <result column="cs_code" property="csCode"/>
        <result column="cs_name" property="csName"/>
        <result column="saler_name" property="salerName"/>
        
    </resultMap>
    <sql id="ErpSaleOutDto_sql">
        SELECT
            a.id,
            a.code,
            a.sc_id,
      a.customer_id,
      a.saler_id,
      a.payment_date,
      a.sale_order_id,
      a.total_num,
      a.total_gift_num,
      a.total_amount,
      a.description,
      a.create_by,
      a.create_time,
      a.approve_by,
      a.approve_time,
      a.status,
      a.refuse_reason,
      a.settle_status,
      ws.code as ws_code,
            ws.name as ws_name,
      cs.code as cs_code,
      cs.name as cs_name,
      u.realname saler_name
        FROM erp_sale_out AS a
        LEFT JOIN erp_warehouse AS ws ON ws.id = a.sc_id
        LEFT JOIN erp_customer AS cs ON cs.id = a.customer_id
        LEFT JOIN sys_user AS u ON u.username = a.saler_id
    </sql>
    <select id="querySaleOutList" resultMap="ErpSaleOutDtoMap">
        <include refid="ErpSaleOutDto_sql"/>
        <where>
           <if test="vo != null">
              <if test="vo.scId != null and vo.scId != ''">
                  AND a.sc_id = #{vo.scId}
              </if>
              <if test="vo.customerId != null and vo.customerId != ''">
                  AND (a.customer_id = #{vo.customerId} 
              </if>
            </if>
            AND a.status = '1' 
        </where>
        ORDER BY a.code
    </select>
    
</mapper>

五、IErpSaleOutDtoService

package com.nbcio.modules.erp.sale.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nbcio.modules.erp.sale.dto.ErpSaleOutDto;
import com.nbcio.modules.erp.sale.vo.QuerySaleOutVo;
/**
 * @Description: 销售出库单
 * @Author: nbacheng
 * @Date:   2023-02-15
 * @Version: V1.0
 */
public interface IErpSaleOutDtoService extends IService<ErpSaleOutDto> {
  IPage<ErpSaleOutDto> querySaleOutList(Page<ErpSaleOutDto> page, QuerySaleOutVo querySaleOutVo);
}

六、ErpSaleOutDtoServiceImpl

package com.nbcio.modules.erp.sale.service.impl;
import com.nbcio.modules.erp.sale.dto.ErpSaleOutDto;
import com.nbcio.modules.erp.sale.mapper.ErpSaleOutDtoMapper;
import com.nbcio.modules.erp.sale.service.IErpSaleOutDtoService;
import com.nbcio.modules.erp.sale.vo.QuerySaleOutVo;
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_dto
 * @Author: nbacheng
 * @Date:   2023-02-15
 * @Version: V1.0
 */
@Service
public class ErpSaleOutDtoServiceImpl extends ServiceImpl<ErpSaleOutDtoMapper, ErpSaleOutDto> implements IErpSaleOutDtoService {
  @Autowired
  private ErpSaleOutDtoMapper erpSaleOutDtoMapper;
  
  @Override
  public IPage<ErpSaleOutDto> querySaleOutList(Page<ErpSaleOutDto> page, QuerySaleOutVo querySaleOutVo) {
    List<ErpSaleOutDto> erpSaleOutDtoLists = this.baseMapper.querySaleOutList(page, querySaleOutVo);
        return page.setRecords(erpSaleOutDtoLists);
  }
}

七、vue前端代码主要增加一些列表

data () {
      return {
        description: '销售出库单管理页面',
        // 表头
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },
          {
            title:'单号',
            align:"center",
            dataIndex: 'code'
          },
          /*{
            title:'仓库ID',
            align:"center",
            dataIndex: 'scId'
          },*/
          {
            title:'仓库编码',
            align:"center",
            dataIndex: 'wsCode'
          },
          {
            title:'仓库名称',
            align:"center",
            dataIndex: 'wsName'
          },
          /*{
            title:'客户ID',
            align:"center",
            dataIndex: 'customerId'
          },*/
          {
            title:'客户编码',
            align:"center",
            dataIndex: 'csCode'
          },
          {
            title:'客户名称',
            align:"center",
            dataIndex: 'csName'
          },
          /*{
            title:'销售员ID',
            align:"center",
            dataIndex: 'salerId'
          },*/
          {
            title:'销售员',
            align:"center",
            dataIndex: 'salerName'
          },
          {
            title:'付款日期',
            align:"center",
            dataIndex: 'paymentDate',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'销售单ID',
            align:"center",
            dataIndex: 'saleOrderId'
          },
          {
            title:'商品数量',
            align:"center",
            dataIndex: 'totalNum'
          },
          {
            title:'赠品数量',
            align:"center",
            dataIndex: 'totalGiftNum'
          },
          {
            title:'出库金额',
            align:"center",
            dataIndex: 'totalAmount'
          },
          {
            title:'备注',
            align:"center",
            dataIndex: 'description'
          },
          {
            title:'状态',
            align:"center",
            dataIndex: 'status_dictText'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' },
          }
        ],

八、效果图如下:

 

相关文章
|
2月前
|
人工智能 运维 安全
如何自己开发一套ERP系统?
本文探讨了企业自建ERP系统的可行性,分析了轻量、中型和重型ERP的区别,并指出自研ERP需明确业务需求、流程逻辑及投入成本。文章建议企业在决定自研前,应先梳理清楚管理逻辑,而非盲目追求技术方案。
|
2月前
|
存储 关系型数据库 BI
如何开发ERP系统中的财务管理板块(附架构图+流程图+代码参考)
本文深入解析ERP系统中财务管理模块的设计与实现,涵盖核心功能、业务流程、开发技巧及代码示例,助力企业打造高效、智能的财务管理系统。
|
2月前
|
SQL 存储 供应链
如何开发ERP系统中的库存管理板块(附架构图+流程图+代码参考)
本文介绍如何通过ERP系统实现企业库存管理的数字化与自动化,涵盖仓库管理、库位管理、出入库操作、库存调拨与盘点等功能设计,并提供开发技巧及代码参考,帮助企业提升库存管理效率,减少错误与资源浪费。
|
2月前
|
供应链 Python
如何开发ERP系统中的采购管理板块(附架构图+流程图+代码参考)
本文介绍如何在ERP系统中开发高效采购管理模块,涵盖采购申请、订单处理、入库与退货等关键流程,解析核心功能与业务逻辑,并提供代码参考及开发技巧,助力企业优化采购管理效率。
|
2月前
|
监控 数据挖掘 BI
如何开发ERP系统中的生产管理板块(附架构图+流程图+代码参考)
本文探讨了如何高效整合资源、优化生产流程,并通过ERP系统提升企业竞争力。重点分析了生产管理模块的开发,涵盖生产工单、物料操作、生产流程、统计分析及辅助功能等方面,帮助企业实现生产效率提升与成本控制。
|
2月前
|
监控 安全 调度
如何开发ERP系统中的计划管理板块(附架构图+流程图+代码参考)
本文介绍了ERP系统中计划管理模块的重要性及开发方法,涵盖生产计划、物料需求、调度优化等功能,并提供代码示例与落地建议,帮助企业提升生产效率、优化资源配置。
|
2月前
|
SQL 数据挖掘 API
如何开发ERP系统中的质量管理板块(附架构图+流程图+代码参考)
质量管理在ERP系统中的作用不仅仅是记录质量检验数据,它还涉及到从物料采购、生产过程、到最终产品的全流程管理。如何搭建一个高效、可靠的质量管理板块,成为了许多企业在进行ERP系统开发时需要重点考虑的问题。本文将详细介绍如何开发ERP系统中的质量管理板块,涵盖功能模块、业务流程、开发技巧和实现效果等方面,并提供具体的代码参考。
|
2月前
|
SQL 监控 供应链
如何开发ERP系统中的委外管理板块(附架构图+流程图+代码参考)
在ERP系统中,委外管理模块能有效提升企业生产效率、降低成本。通过工单下发、物料发放、退料、入库及数据分析等功能,实现对外部合作的全流程管理,确保信息透明与流程顺畅。本文详解模块开发技巧与实现方案,助力企业快速搭建高效委外管理体系。
|
2月前
|
存储 消息中间件 开发框架
如何开发一套ERP系统(附架构图+流程图+代码参考)
ERP系统是企业资源计划的核心工具,有效解决信息孤岛、数据重复等问题,提升管理效率与运营成本控制能力。本文详解ERP系统的核心模块及订单管理模块的开发流程,涵盖功能设计、技术选型与代码示例,助力企业高效搭建信息系统。
|
2月前
|
存储 JavaScript 前端开发
如何开发ERP系统中的技术管理板块(附架构图+流程图+代码参考)
ERP系统中的技术管理板块对企业资源规划至关重要,尤其在制造业中,涵盖产品信息管理、BOM维护、工艺路线设计等功能,确保生产流程高效协同。本文详解其方案设计、核心模块与开发技巧,助力企业构建高效管理系统。