当前位置: 首页 > news >正文

基于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-popupv-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-popupv-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> {@Autowiredprivate 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">SELECTa.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_priceFROM erp_goods AS aLEFT JOIN erp_goods_price AS price ON price.id = a.idLEFT JOIN erp_goods_category AS c ON c.id = a.category_idLEFT 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 {@Autowiredprivate ErpGoodsDtoMapper erpGoodsDtoMapper;@Overridepublic IPage<ErpGoodsDto> queryGoodsList(Page<ErpGoodsDto> page, QueryGoodsVo queryGoodsVo) {List<ErpGoodsDto> erpGoodsDtoLists = this.baseMapper.queryGoodsList(page, queryGoodsVo);return page.setRecords(erpGoodsDtoLists);}@Overridepublic List<ErpGoodsDto> queryByIds(String ids) {// TODO Auto-generated method stubString [] idArray=ids.split(",");return erpGoodsDtoMapper.getByIds(idArray);}}

四、效果图

 

 

相关文章:

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

商品信息原先生成的不符合要求&#xff0c;重新生成&#xff0c;包括一个附表商品价格信息表 一、采用TAB主题一对多的模式 因为主键&#xff0c;在online表单配置是灰的&#xff0c;所以不能进行外键管理&#xff0c;只能通过下面数据库进行关联录入&#xff0c;否则online界面…...

什么?同步代码块失效了?-- 自定义类加载器引起的问题

一、背景 最近编码过程中遇到了一个非常奇怪的问题&#xff0c;基于单例对象的同步代码块似乎失效了&#xff0c;百思不得其姐。 下面给出模拟过程和最终的结论。 二、场景描述和模拟 2.1 现象描述 Database实现单例&#xff0c;在 init 方法中使用同步代码块来保证 data不…...

CHAPTER 4 文件共享 - Samba

文件共享 - Samba1 Samba1.1 Samba的软件架构1.2 搭建Samba服务器1.3 samba用户管理1. 添加用户2. 修改用户密码3. 删除用户和密码4. 查看samba用户列表5. 查看samba服务器状态1.4 samba共享设置&#xff08;配置文件详解&#xff09;1.5 访问共享目录1. windows访问2. linux客…...

深入分析@Configuration源码

文章目录一、源码时序图1. 注册ConfigurationClassPostProcessor流程源码时序图2. 注册ConfigurationAnnotationConfig流程源码时序图3. 实例化流程源码时序图二、源码解析1. 注册ConfigurationClassPostProcessor流程源码解析&#xff08;1&#xff09;运行案例程序启动类Conf…...

Unity 代码优化 内存管理优化

项目遇到了卡顿的情况 仔细检查了代码没检查出有误的地方 仔细的总结了一下可以优化的东西 解决了卡顿 记录一下 1 协程 项目之前写的关于倒计时之类的东西 都是开了个协程 虽然协程是消耗很小的线程 , 可是还是有额外消耗 而且 有很多用携程来检测销毁预制体的操作 也都放到U…...

设计模式~门面(外观)模式(Facade)-08

目录 &#xff08;1&#xff09;优点 &#xff08;2&#xff09;缺点 &#xff08;3&#xff09;使用场景 &#xff08;4&#xff09;注意事项&#xff1a; &#xff08;5&#xff09;应用实例&#xff1a; &#xff08;6&#xff09;源码中的经典应用 代码 外观模式&am…...

C++面向对象编程之一:封装

C面向对象编程三大特性为&#xff1a;封装&#xff0c;继承&#xff0c;多态。C认为万事万物皆为对象&#xff0c;对象有属性和行为。比如&#xff1a;游戏里的地图场景可以看作是长方形对象&#xff0c;属性场景id&#xff0c;有长&#xff0c;有宽&#xff0c;可能有NPC&…...

IDEA插件系列(3):Maven Helper插件

一、引言在写Java代码的时候&#xff0c;我们可能会出现Jar包的冲突的问题&#xff0c;这时候就需要我们去解决依赖冲突了&#xff0c;而解决依赖冲突就需要先找到是那些依赖发生了冲突&#xff0c;当项目比较小的时候&#xff0c;还比较依靠IEDA的【Diagrams】查看依赖关系&am…...

SAP 更改物料基本计量单位

前言部分 在SAP中物料创建后&#xff0c;一旦发生业务&#xff0c;其基本计量单位便很难修改。由于单位无法满足业务要求&#xff0c;往往会要求新建一个物料替代旧物料。这时候除了要将旧物料上所有的未清业务删除外&#xff0c;还需要替换工艺与BOM中的旧物料。特别是当出现旧…...

蓝桥web基础知识学习

HTMLCSS 知识点重要指数HTML 基础标签&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;HTML5 新特性&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;HTML5 本地存储&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;CSS 基础语法…...

Python+ChatGPT制作一个AI实用百宝箱

目录一、注册OpenAI二、搭建网站及其框架三、AI聊天机器人四、AI绘画机器人ChatGPT 最近在互联网掀起了一阵热潮&#xff0c;其高度智能化的功能能够给我们现实生活带来诸多的便利&#xff0c;可以帮助你写文章、写报告、写周报、做表格、做策划甚至还会写代码。只要与文字相关…...

Python中格式化字符串输出的4种方式

Python格式化字符串的4中方式 一、%号 二、str.format(args) 三、f-Strings 四、标准库模板 五、总结四种方式的应用场景’ 一、%号占位符 这是一种引入最早的一种&#xff0c;也是比较容易理解的一种方式.使用方式为&#xff1a; 1、格式化字符串中变化的部分使用占位符 2、…...

C#基础教程15 枚举与类

文章目录 C# 枚举(Enum)声明 enum 变量C# 类(Class)类的定义成员函数和封装C# 中的构造函数关键字 staticC# 枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 声明 enum 变…...

三步 让你的 vscode 自动编译ts文件

三步让你的 vscode 自动编译ts文件 TypeScript环境安装与如何在vscode实现自动编译ts文件? 文章目录三步让你的 vscode 自动编译ts文件前提条件环境安装自动编译运行监视任务时报错&#xff1f;前提条件 安装 node 环境 环境安装 tsc 作用&#xff1a;负责将ts 代码 转为 浏…...

STM32程序下载和启动方式

目录1 BOOT引脚配置和下载说明2 关于串口下载方式3 关于一按复位就跑代码4 关于下载调试速度5 关于三种启动方式5.1 FLASH启动5.2 系统存储器器启动5.3 SRAM启动6 关于程序的三种下载方式1 BOOT引脚配置和下载说明 BOOT0BOOT1程序运行ST-Link下载串口下载启动说明xx无0x√√用…...

基础01-ajax fetch axios 的区别

ajax fetch axios 的区别 题目 ajax fetch axios 的区别 分析 三者根本没有可比性&#xff0c;不要被题目搞混了。要说出他们的本质 传统 ajax AJAX &#xff08;几个单词首字母&#xff0c;按规范应该大写&#xff09; - Asynchronous JavaScript and XML&#xff08;异…...

Android Execution failed for task ‘:app:mergeDebugJavaResource

错误提示 FAILURE: Build failed with an exception.* What went wrong: Execution failed for task :app:mergeDebugJavaResource. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction> 2 files found with path k…...

spring事物源码分析

今天的任务是剖析源码&#xff0c;看看Spring 是怎么运行事务的&#xff0c;并且是基于当前最流行的SpringBoot。还有&#xff0c;我们之前剖析Mybatis 的时候&#xff0c;也知道&#xff0c;Mybatis 也有事务&#xff0c;那么&#xff0c;他俩融合之后&#xff0c;事务是交给谁…...

炫龙游戏本Win10系统总是蓝屏崩溃怎么办?

炫龙游戏本Win10系统总是蓝屏崩溃怎么办&#xff1f;有用户使用的炫龙游戏本最近总是在运行的过程中出现自动蓝屏的情况&#xff0c;有的时候自己还在操作电脑&#xff0c;而屏幕却蓝屏了&#xff0c;导致自己的工作被中断了。那么这个情况要怎么去进行修复呢&#xff1f;来看看…...

华为OD机试题,用 Java 解【数字加减游戏】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...

LogExpert深度解析:企业级日志分析平台的架构设计与实战应用

LogExpert深度解析&#xff1a;企业级日志分析平台的架构设计与实战应用 【免费下载链接】LogExpert Windows tail program and log file analyzer. 项目地址: https://gitcode.com/gh_mirrors/lo/LogExpert LogExpert是一款面向Windows平台的专业级日志分析工具&#x…...

RDP Wrapper:免费解锁Windows家庭版多用户远程桌面功能

RDP Wrapper&#xff1a;免费解锁Windows家庭版多用户远程桌面功能 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap RDP Wrapper Library是一个创新的开源项目&#xff0c;专为Windows家庭版和基础版用户提供完整的…...

ModTheSpire终极指南:安全加载杀戮尖塔模组的5大步骤

ModTheSpire终极指南&#xff1a;安全加载杀戮尖塔模组的5大步骤 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire ModTheSpire是一款专为《杀戮尖塔》设计的Java游戏模组加载器&#xf…...

SVM调参实战:如何用Python的sklearn找到鸢尾花分类的最佳C值和核函数?

SVM超参数优化实战&#xff1a;从网格搜索到贝叶斯优化的鸢尾花分类调参指南当你在sklearn中第一次使用SVC分类器时&#xff0c;是否曾被默认参数C1.0和kernellinear的表现所困惑&#xff1f;为什么同样的算法在不同数据集上表现差异巨大&#xff1f;本文将带你深入SVM调参的核…...

熬夜赶论文效率低到哭?学长安利这几个AI论文写作软件

熬夜赶论文效率低到哭&#xff1f;选题没思路、大纲难搭建、初稿写不顺、文献找不全、润色没方向、降重费时间、格式不规范——这些论文写作的痛点&#xff0c;其实都可以通过用对AI工具、走对流程来解决。资深教授普遍推荐&#xff1a;千笔AI&#xff08;中文全流程首选&#…...

Android APP通信协议逆向:AES+Base64+Protobuf加密还原实战

1. 这不是“破解”&#xff0c;而是对通信协议的工程化还原2021年4月那会儿&#xff0c;我接到一个需求&#xff1a;某智网APP在登录、设备控制、状态上报等关键链路中&#xff0c;所有HTTP/HTTPS请求体和响应体都是密文&#xff0c;看不到明文字段&#xff0c;连基础的接口字段…...

Windows离线语音转文字终极指南:TMSpeech让会议记录变得简单高效!

Windows离线语音转文字终极指南&#xff1a;TMSpeech让会议记录变得简单高效&#xff01; 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱吗&#xff1f;担心语音识别软件泄露隐私&#xff1…...

5步掌握Poppler-Windows部署:解决Windows环境PDF处理难题

5步掌握Poppler-Windows部署&#xff1a;解决Windows环境PDF处理难题 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 对于需要在Windows平台进行PD…...

5分钟搭建私有抖音无水印解析服务:DouYinBot高效视频下载指南

5分钟搭建私有抖音无水印解析服务&#xff1a;DouYinBot高效视频下载指南 【免费下载链接】DouYinBot 该项目仅自用&#xff0c;不提供抖音视频下载 项目地址: https://gitcode.com/gh_mirrors/do/DouYinBot 在短视频创作成为日常的今天&#xff0c;获取纯净无水印的抖音…...

如何解决网易云音乐NCM格式限制:ncmdump完整实战指南

如何解决网易云音乐NCM格式限制&#xff1a;ncmdump完整实战指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾因网易云音乐的NCM加密格式而无法在喜欢的播放器上聆听音乐&#xff1f;ncmdump正是你需要的解决方案。这款开…...