From 41480ba1c96385387c2735961fc54eaabf329bd6 Mon Sep 17 00:00:00 2001 From: wangqiong <1322446236@qq.com> Date: Thu, 6 Jun 2024 11:36:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E6=97=B6=E8=B4=B9=E7=8E=87=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=81mybatisplus=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E4=BB=A3=E7=A0=81=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- qomo-kn-cost-manage/pom.xml | 15 ++ .../manage/controller/HourRateController.java | 162 ++++++++++++++++++ .../qomo/kn/cost/manage/entity/HourRate.java | 99 +++++++++++ .../kn/cost/manage/mapper/HourRateMapper.java | 14 ++ .../cost/manage/mapper/xml/HourRateMapper.xml | 5 + .../cost/manage/service/IHourRateService.java | 15 ++ .../service/impl/HourRateServiceImpl.java | 19 ++ .../qomo/kn/cost/manage/ApplicationTests.java | 72 ++++++++ 8 files changed, 401 insertions(+) create mode 100644 qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/controller/HourRateController.java create mode 100644 qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/HourRate.java create mode 100644 qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/HourRateMapper.java create mode 100644 qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/xml/HourRateMapper.xml create mode 100644 qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IHourRateService.java create mode 100644 qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/HourRateServiceImpl.java create mode 100644 qomo-kn-cost-manage/src/test/java/com/zzsmart/qomo/kn/cost/manage/ApplicationTests.java diff --git a/qomo-kn-cost-manage/pom.xml b/qomo-kn-cost-manage/pom.xml index 3700169..63c79a0 100644 --- a/qomo-kn-cost-manage/pom.xml +++ b/qomo-kn-cost-manage/pom.xml @@ -23,6 +23,21 @@ qomo-system-biz 2.0.1-SNAPSHOT + + org.springframework.boot + spring-boot-test + test + + + junit + junit + test + + + com.baomidou + mybatis-plus-generator + 3.5.1 + \ No newline at end of file diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/controller/HourRateController.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/controller/HourRateController.java new file mode 100644 index 0000000..cec3269 --- /dev/null +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/controller/HourRateController.java @@ -0,0 +1,162 @@ +package com.zzsmart.qomo.kn.cost.manage.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zzsmart.qomo.kn.cost.manage.entity.HourRate; +import com.zzsmart.qomo.kn.cost.manage.service.IHourRateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.Arrays; + + /** + * @Description: hour_rate + * @Author: jeecg-boot + * @Date: 2024-06-06 + * @Version: V1.0 + */ +@Api(tags="hour_rate") +@RestController +@RequestMapping("//hourRate") +@Slf4j +public class HourRateController extends JeecgController { + @Autowired + private IHourRateService hourRateService; + + /** + * 分页列表查询 + * + * @param hourRate + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "hour_rate-分页列表查询") + @ApiOperation(value="hour_rate-分页列表查询", notes="hour_rate-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(HourRate hourRate, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(hourRate, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = hourRateService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param hourRate + * @return + */ + @AutoLog(value = "hour_rate-添加") + @ApiOperation(value="hour_rate-添加", notes="hour_rate-添加") + @RequiresPermissions(":hour_rate:add") + @PostMapping(value = "/add") + public Result add(@RequestBody HourRate hourRate) { + hourRateService.save(hourRate); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param hourRate + * @return + */ + @AutoLog(value = "hour_rate-编辑") + @ApiOperation(value="hour_rate-编辑", notes="hour_rate-编辑") + @RequiresPermissions(":hour_rate:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody HourRate hourRate) { + hourRateService.updateById(hourRate); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "hour_rate-通过id删除") + @ApiOperation(value="hour_rate-通过id删除", notes="hour_rate-通过id删除") + @RequiresPermissions(":hour_rate:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + hourRateService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "hour_rate-批量删除") + @ApiOperation(value="hour_rate-批量删除", notes="hour_rate-批量删除") + @RequiresPermissions(":hour_rate:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.hourRateService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "hour_rate-通过id查询") + @ApiOperation(value="hour_rate-通过id查询", notes="hour_rate-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + HourRate hourRate = hourRateService.getById(id); + if(hourRate==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(hourRate); + } + + /** + * 导出excel + * + * @param request + * @param hourRate + */ + @RequiresPermissions(":hour_rate:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, HourRate hourRate) { + return super.exportXls(request, hourRate, HourRate.class, "hour_rate"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions(":hour_rate:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, HourRate.class); + } + +} diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/HourRate.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/HourRate.java new file mode 100644 index 0000000..9ff5fb2 --- /dev/null +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/entity/HourRate.java @@ -0,0 +1,99 @@ +package com.zzsmart.qomo.kn.cost.manage.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: hour_rate + * @Author: jeecg-boot + * @Date: 2024-06-06 + * @Version: V1.0 + */ +@Data +@TableName("hour_rate") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="hour_rate对象", description="hour_rate") +public class HourRate implements Serializable { + private static final long serialVersionUID = 1L; + + /**年度*/ + @Excel(name = "年度", width = 15) + @ApiModelProperty(value = "年度") + private java.lang.String year; + /**成本中心代码*/ + @Excel(name = "成本中心代码", width = 15) + @ApiModelProperty(value = "成本中心代码") + private java.lang.String costCenterCode; + /**工厂代码*/ + @Excel(name = "工厂代码", width = 15) + @ApiModelProperty(value = "工厂代码") + private java.lang.String factory; + /**人工小时费率*/ + @Excel(name = "人工小时费率", width = 15) + @ApiModelProperty(value = "人工小时费率") + private java.math.BigDecimal laborHourRate; + /**设备小时费率*/ + @Excel(name = "设备小时费率", width = 15) + @ApiModelProperty(value = "设备小时费率") + private java.math.BigDecimal equipHourRate; + /**燃动小时费率*/ + @Excel(name = "燃动小时费率", width = 15) + @ApiModelProperty(value = "燃动小时费率") + private java.math.BigDecimal fuelHourRate; + /**辅料小时费率*/ + @Excel(name = "辅料小时费率", width = 15) + @ApiModelProperty(value = "辅料小时费率") + private java.math.BigDecimal auxiliaryHourRate; + /**其他小时费率*/ + @Excel(name = "其他小时费率", width = 15) + @ApiModelProperty(value = "其他小时费率") + private java.math.BigDecimal otherHourRate; + /**生效日期*/ + @Excel(name = "生效日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "生效日期") + private java.util.Date effectiveDate; + /**失效日期*/ + @Excel(name = "失效日期", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "失效日期") + private java.util.Date expirationDate; + /**维护人员*/ + @Excel(name = "维护人员", width = 15) + @ApiModelProperty(value = "维护人员") + private java.lang.String guardian; + /**维护时间*/ + @Excel(name = "维护时间", width = 15) + @ApiModelProperty(value = "维护时间") + private java.lang.String maintenanceTime; + /**预留字段1*/ + @Excel(name = "预留字段1", width = 15) + @ApiModelProperty(value = "预留字段1") + private java.lang.String reserve1; + /**预留字段2*/ + @Excel(name = "预留字段2", width = 15) + @ApiModelProperty(value = "预留字段2") + private java.math.BigDecimal reserve2; + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; +} diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/HourRateMapper.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/HourRateMapper.java new file mode 100644 index 0000000..737a754 --- /dev/null +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/HourRateMapper.java @@ -0,0 +1,14 @@ +package com.zzsmart.qomo.kn.cost.manage.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zzsmart.qomo.kn.cost.manage.entity.HourRate; + +/** + * @Description: hour_rate + * @Author: jeecg-boot + * @Date: 2024-06-06 + * @Version: V1.0 + */ +public interface HourRateMapper extends BaseMapper { + +} diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/xml/HourRateMapper.xml b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/xml/HourRateMapper.xml new file mode 100644 index 0000000..f4630ea --- /dev/null +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/mapper/xml/HourRateMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IHourRateService.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IHourRateService.java new file mode 100644 index 0000000..3568013 --- /dev/null +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/IHourRateService.java @@ -0,0 +1,15 @@ +package com.zzsmart.qomo.kn.cost.manage.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zzsmart.qomo.kn.cost.manage.entity.HourRate; + +/** + * @Description: hour_rate + * @Author: jeecg-boot + * @Date: 2024-06-06 + * @Version: V1.0 + */ +public interface IHourRateService extends IService { + +} diff --git a/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/HourRateServiceImpl.java b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/HourRateServiceImpl.java new file mode 100644 index 0000000..b604ed5 --- /dev/null +++ b/qomo-kn-cost-manage/src/main/java/com/zzsmart/qomo/kn/cost/manage/service/impl/HourRateServiceImpl.java @@ -0,0 +1,19 @@ +package com.zzsmart.qomo.kn.cost.manage.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zzsmart.qomo.kn.cost.manage.entity.HourRate; +import com.zzsmart.qomo.kn.cost.manage.mapper.HourRateMapper; +import com.zzsmart.qomo.kn.cost.manage.service.IHourRateService; +import org.springframework.stereotype.Service; + +/** + * @Description: hour_rate + * @Author: jeecg-boot + * @Date: 2024-06-06 + * @Version: V1.0 + */ +@Service +public class HourRateServiceImpl extends ServiceImpl implements IHourRateService { + +} diff --git a/qomo-kn-cost-manage/src/test/java/com/zzsmart/qomo/kn/cost/manage/ApplicationTests.java b/qomo-kn-cost-manage/src/test/java/com/zzsmart/qomo/kn/cost/manage/ApplicationTests.java new file mode 100644 index 0000000..c8bee52 --- /dev/null +++ b/qomo-kn-cost-manage/src/test/java/com/zzsmart/qomo/kn/cost/manage/ApplicationTests.java @@ -0,0 +1,72 @@ +package com.zzsmart.qomo.kn.cost.manage; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.generator.config.OutputFile; +import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; +import org.junit.Test; +import org.springframework.boot.test.context.SpringBootTest; +import com.baomidou.mybatisplus.generator.FastAutoGenerator; +import java.sql.Types; +import java.util.Collections; + +@SpringBootTest +public class ApplicationTests { + + /** + * 根据表名生成相应结构代码 + * @param databaseName 数据库名 + * @param tableName 表名 + */ + @Test + public static void Generation(String databaseName,String... tableName){ + FastAutoGenerator.create("jdbc:mysql://localhost:3306/"+databaseName+"?&useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai","root","wsndqd857857") + .globalConfig(builder -> { + builder.author("罗添煦") + //启用swagger + //.enableSwagger() + //指定输出目录 + .outputDir(System.getProperty("user.dir")+"/src/main/java"); + }) + .packageConfig(builder -> { + builder.entity("entity")//实体类包名 + .parent("com.ltx.mpcode")//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名 + .controller("controller")//控制层包名 + .mapper("dao")//mapper层包名 + //.other("dto")//生成dto目录 可不用 + .service("service")//service层包名 + .serviceImpl("service.impl")//service实现类包名 + //自定义mapper.xml文件输出目录 + .pathInfo(Collections.singletonMap(OutputFile.mapperXml,System.getProperty("user.dir")+"/src/main/resources/mapper")); + }) + .strategyConfig(builder -> { + //设置要生成的表名 + builder.addInclude(tableName) + .addInclude("cp_order_history")// 设置需要生成的表名 + //.addTablePrefix("sys_")//设置表前缀过滤 + .entityBuilder() + .enableLombok() + .enableChainModel() + .naming(NamingStrategy.underline_to_camel)//数据表映射实体命名策略:默认下划线转驼峰underline_to_camel + .columnNaming(NamingStrategy.underline_to_camel)//表字段映射实体属性命名规则:默认null,不指定按照naming执行 + .idType(IdType.AUTO)//添加全局主键类型 + .formatFileName("%s")//格式化实体名称,%s取消首字母I, + .mapperBuilder() + .enableMapperAnnotation()//开启mapper注解 + .enableBaseResultMap()//启用xml文件中的BaseResultMap 生成 + .enableBaseColumnList()//启用xml文件中的BaseColumnList + .formatMapperFileName("%sMapper")//格式化Dao类名称 + .formatXmlFileName("%sMapper")//格式化xml文件名称 + .serviceBuilder() + .formatServiceFileName("%sService")//格式化 service 接口文件名称 + .formatServiceImplFileName("%sServiceImpl")//格式化 service 接口文件名称 + .controllerBuilder() + .enableRestStyle(); + }) + // 使用Freemarker引擎模板,默认的是Velocity引擎模板 + .templateEngine(new FreemarkerTemplateEngine()) + .execute(); + + } +}