From d72849ad50ffa11d14019a8e31d2ba9d337eb0be Mon Sep 17 00:00:00 2001 From: gxwebsoft Date: Mon, 5 Feb 2024 21:48:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=87=87=E8=B4=AD=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/DictDataController.java | 55 ++++--- .../controller/TowerEquipmentController.java | 15 +- .../controller/TowerPurchaseController.java | 139 ++++++++++++++++++ .../gxwebsoft/tower/entity/TowerPurchase.java | 76 ++++++++++ .../tower/mapper/TowerPurchaseMapper.java | 37 +++++ .../tower/mapper/xml/TowerPurchaseMapper.xml | 59 ++++++++ .../tower/param/TowerPurchaseParam.java | 60 ++++++++ .../tower/service/TowerPurchaseService.java | 42 ++++++ .../impl/TowerPurchaseServiceImpl.java | 47 ++++++ .../gxwebsoft/generator/TowerGenerator.java | 3 +- 10 files changed, 509 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/gxwebsoft/tower/controller/TowerPurchaseController.java create mode 100644 src/main/java/com/gxwebsoft/tower/entity/TowerPurchase.java create mode 100644 src/main/java/com/gxwebsoft/tower/mapper/TowerPurchaseMapper.java create mode 100644 src/main/java/com/gxwebsoft/tower/mapper/xml/TowerPurchaseMapper.xml create mode 100644 src/main/java/com/gxwebsoft/tower/param/TowerPurchaseParam.java create mode 100644 src/main/java/com/gxwebsoft/tower/service/TowerPurchaseService.java create mode 100644 src/main/java/com/gxwebsoft/tower/service/impl/TowerPurchaseServiceImpl.java diff --git a/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java b/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java index b4f07e5..c36eaa2 100644 --- a/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java +++ b/src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java @@ -5,9 +5,11 @@ import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.system.entity.Dict; import com.gxwebsoft.common.system.entity.DictData; import com.gxwebsoft.common.system.param.DictDataParam; import com.gxwebsoft.common.system.service.DictDataService; +import com.gxwebsoft.common.system.service.DictService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; @@ -28,6 +30,8 @@ import java.util.List; public class DictDataController extends BaseController { @Resource private DictDataService dictDataService; + @Resource + private DictService dictService; @PreAuthorize("hasAuthority('sys:dict:list')") @OperationLog @@ -53,26 +57,39 @@ public class DictDataController extends BaseController { return success(dictDataService.getByIdRel(id)); } - @PreAuthorize("hasAuthority('sys:dict:save')") - @OperationLog - @ApiOperation("添加字典数据") - @PostMapping() - public ApiResult add(@RequestBody DictData dictData) { - if (dictDataService.count(new LambdaQueryWrapper() - .eq(DictData::getDictId, dictData.getDictId()) - .eq(DictData::getDictDataName, dictData.getDictDataName())) > 0) { - return fail("字典数据名称已存在"); - } - if (dictDataService.count(new LambdaQueryWrapper() - .eq(DictData::getDictId, dictData.getDictId()) - .eq(DictData::getDictDataCode, dictData.getDictDataCode())) > 0) { - return fail("字典数据标识已存在"); - } - if (dictDataService.save(dictData)) { - return success("添加成功"); - } - return fail("添加失败"); + @PreAuthorize("hasAuthority('sys:dict:save')") + @OperationLog + @ApiOperation("添加字典数据") + @PostMapping() + public ApiResult add(@RequestBody DictData dictData) { + if (dictDataService.count(new LambdaQueryWrapper() + .eq(DictData::getDictId, dictData.getDictId()) + .eq(DictData::getDictDataName, dictData.getDictDataName())) > 0) { + return fail("字典数据名称已存在"); + } + if (dictDataService.count(new LambdaQueryWrapper() + .eq(DictData::getDictId, dictData.getDictId()) + .eq(DictData::getDictDataCode, dictData.getDictDataCode())) > 0) { + return fail("字典数据标识已存在"); + } + // 自动添加字典 + final int count = dictService.count(new LambdaQueryWrapper().eq(Dict::getDictCode, dictData.getDictCode())); + if (dictData.getDictCode() != null && count == 0) { + final Dict dict = new Dict(); + dict.setDictCode(dictData.getDictCode()); + dict.setDictName(dictData.getDictCode()); + if (dictData.getDictName() != null) { + dict.setDictName(dictData.getDictName()); + } + if(dictService.save(dict)){ + dictData.setDictId(dict.getDictId()); + } + } + if (dictDataService.save(dictData)) { + return success("添加成功"); } + return fail("添加失败"); + } @PreAuthorize("hasAuthority('sys:dict:update')") @OperationLog diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java index c6c8c42..0f80c13 100644 --- a/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java +++ b/src/main/java/com/gxwebsoft/tower/controller/TowerEquipmentController.java @@ -33,6 +33,7 @@ import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -71,9 +72,9 @@ public class TowerEquipmentController extends BaseController { .eq(TowerEquipment::getStatus, 0) ); Integer scrapNum = towerEquipmentService.count( - new LambdaQueryWrapper() - .lt(TowerEquipment::getScrapDate, new Date()) - ); + new LambdaQueryWrapper() + .lt(TowerEquipment::getScrapDate, new Date()) + ); Integer totalNum2 = towerEquipmentService.count( new LambdaQueryWrapper() .eq(TowerEquipment::getStatus, 2) @@ -125,7 +126,13 @@ public class TowerEquipmentController extends BaseController { } if (param.getYearFilter() != null) wrapper.apply("CEIL( DATEDIFF(`scrap_date`, '" + DateUtil.today() + "') / 365) = {0}", param.getYearFilter()); - if (param.getStatus() != null) wrapper.eq(TowerEquipment::getStatus, param.getStatus()); + if (param.getStatus() != null) { + if(param.getStatus().equals(1)){ + wrapper.lt(TowerEquipment::getScrapDate,DateUtil.today()); + }else { + wrapper.eq(TowerEquipment::getStatus, param.getStatus()); + } + }; IPage page = new PageParam<>(param); IPage list = towerEquipmentService.page(page, wrapper); for (TowerEquipment equipment : list.getRecords()) { diff --git a/src/main/java/com/gxwebsoft/tower/controller/TowerPurchaseController.java b/src/main/java/com/gxwebsoft/tower/controller/TowerPurchaseController.java new file mode 100644 index 0000000..998d39e --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/controller/TowerPurchaseController.java @@ -0,0 +1,139 @@ +package com.gxwebsoft.tower.controller; + +import com.gxwebsoft.common.core.web.BaseController; +import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.tower.service.TowerPurchaseService; +import com.gxwebsoft.tower.entity.TowerPurchase; +import com.gxwebsoft.tower.param.TowerPurchaseParam; +import com.gxwebsoft.common.core.web.ApiResult; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.BatchParam; +import com.gxwebsoft.common.core.annotation.OperationLog; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 采购入库表控制器 + * + * @author 科技小王子 + * @since 2024-02-05 20:53:32 + */ +@Api(tags = "采购入库表管理") +@RestController +@RequestMapping("/api/tower/tower-purchase") +public class TowerPurchaseController extends BaseController { + @Resource + private TowerPurchaseService towerPurchaseService; + + @PreAuthorize("hasAuthority('tower:towerPurchase:list')") + @OperationLog + @ApiOperation("分页查询采购入库表") + @GetMapping("/page") + public ApiResult> page(TowerPurchaseParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(towerPurchaseService.page(page, page.getWrapper())); + // 使用关联查询 + //return success(towerPurchaseService.pageRel(param)); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:list')") + @OperationLog + @ApiOperation("查询全部采购入库表") + @GetMapping() + public ApiResult> list(TowerPurchaseParam param) { + PageParam page = new PageParam<>(param); + page.setDefaultOrder("create_time desc"); + return success(towerPurchaseService.list(page.getOrderWrapper())); + // 使用关联查询 + //return success(towerPurchaseService.listRel(param)); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:list')") + @OperationLog + @ApiOperation("根据id查询采购入库表") + @GetMapping("/{id}") + public ApiResult get(@PathVariable("id") Integer id) { + return success(towerPurchaseService.getById(id)); + // 使用关联查询 + //return success(towerPurchaseService.getByIdRel(id)); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:save')") + @OperationLog + @ApiOperation("添加采购入库表") + @PostMapping() + public ApiResult save(@RequestBody TowerPurchase towerPurchase) { + // 记录当前登录用户id + User loginUser = getLoginUser(); + if (loginUser != null) { + towerPurchase.setUserId(loginUser.getUserId()); + } + if (towerPurchaseService.save(towerPurchase)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:update')") + @OperationLog + @ApiOperation("修改采购入库表") + @PutMapping() + public ApiResult update(@RequestBody TowerPurchase towerPurchase) { + if (towerPurchaseService.updateById(towerPurchase)) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:remove')") + @OperationLog + @ApiOperation("删除采购入库表") + @DeleteMapping("/{id}") + public ApiResult remove(@PathVariable("id") Integer id) { + if (towerPurchaseService.removeById(id)) { + return success("删除成功"); + } + return fail("删除失败"); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:save')") + @OperationLog + @ApiOperation("批量添加采购入库表") + @PostMapping("/batch") + public ApiResult saveBatch(@RequestBody List list) { + if (towerPurchaseService.saveBatch(list)) { + return success("添加成功"); + } + return fail("添加失败"); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:update')") + @OperationLog + @ApiOperation("批量修改采购入库表") + @PutMapping("/batch") + public ApiResult removeBatch(@RequestBody BatchParam batchParam) { + if (batchParam.update(towerPurchaseService, "purchase_id")) { + return success("修改成功"); + } + return fail("修改失败"); + } + + @PreAuthorize("hasAuthority('tower:towerPurchase:remove')") + @OperationLog + @ApiOperation("批量删除采购入库表") + @DeleteMapping("/batch") + public ApiResult removeBatch(@RequestBody List ids) { + if (towerPurchaseService.removeByIds(ids)) { + return success("删除成功"); + } + return fail("删除失败"); + } + +} diff --git a/src/main/java/com/gxwebsoft/tower/entity/TowerPurchase.java b/src/main/java/com/gxwebsoft/tower/entity/TowerPurchase.java new file mode 100644 index 0000000..88ceefe --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/entity/TowerPurchase.java @@ -0,0 +1,76 @@ +package com.gxwebsoft.tower.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableLogic; +import java.io.Serializable; +import java.util.Date; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 采购入库表 + * + * @author 科技小王子 + * @since 2024-02-05 20:53:31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "TowerPurchase对象", description = "采购入库表") +public class TowerPurchase implements Serializable { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @TableId(value = "purchase_id", type = IdType.AUTO) + private Integer purchaseId; + + @ApiModelProperty(value = "部位名称") + private String name; + + @ApiModelProperty(value = "部件编码") + private String purchaseCode; + + @ApiModelProperty(value = "部件类型") + private String purchaseType; + + @ApiModelProperty(value = "价格") + private BigDecimal price; + + @ApiModelProperty(value = "用户ID") + private Integer userId; + + @ApiModelProperty(value = "企业ID") + private Integer companyId; + + @ApiModelProperty(value = "企业名称") + private String companyName; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @TableLogic + private Integer deleted; + + @ApiModelProperty(value = "租户id") + private Integer tenantId; + + @ApiModelProperty(value = "注册时间") + private Date createTime; + + @ApiModelProperty(value = "修改时间") + private Date updateTime; + +} diff --git a/src/main/java/com/gxwebsoft/tower/mapper/TowerPurchaseMapper.java b/src/main/java/com/gxwebsoft/tower/mapper/TowerPurchaseMapper.java new file mode 100644 index 0000000..9b7a114 --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/mapper/TowerPurchaseMapper.java @@ -0,0 +1,37 @@ +package com.gxwebsoft.tower.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gxwebsoft.tower.entity.TowerPurchase; +import com.gxwebsoft.tower.param.TowerPurchaseParam; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 采购入库表Mapper + * + * @author 科技小王子 + * @since 2024-02-05 20:53:31 + */ +public interface TowerPurchaseMapper extends BaseMapper { + + /** + * 分页查询 + * + * @param page 分页对象 + * @param param 查询参数 + * @return List + */ + List selectPageRel(@Param("page") IPage page, + @Param("param") TowerPurchaseParam param); + + /** + * 查询全部 + * + * @param param 查询参数 + * @return List + */ + List selectListRel(@Param("param") TowerPurchaseParam param); + +} diff --git a/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerPurchaseMapper.xml b/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerPurchaseMapper.xml new file mode 100644 index 0000000..82008d5 --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/mapper/xml/TowerPurchaseMapper.xml @@ -0,0 +1,59 @@ + + + + + + + SELECT a.* + FROM tower_purchase a + + + AND a.purchase_id = #{param.purchaseId} + + + AND a.name LIKE CONCAT('%', #{param.name}, '%') + + + AND a.purchase_code LIKE CONCAT('%', #{param.purchaseCode}, '%') + + + AND a.purchase_type LIKE CONCAT('%', #{param.purchaseType}, '%') + + + AND a.user_id = #{param.userId} + + + AND a.sort_number = #{param.sortNumber} + + + AND a.comments LIKE CONCAT('%', #{param.comments}, '%') + + + AND a.status = #{param.status} + + + AND a.deleted = #{param.deleted} + + + AND a.deleted = 0 + + + AND a.create_time >= #{param.createTimeStart} + + + AND a.create_time <= #{param.createTimeEnd} + + + + + + + + + + + diff --git a/src/main/java/com/gxwebsoft/tower/param/TowerPurchaseParam.java b/src/main/java/com/gxwebsoft/tower/param/TowerPurchaseParam.java new file mode 100644 index 0000000..fa2c82b --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/param/TowerPurchaseParam.java @@ -0,0 +1,60 @@ +package com.gxwebsoft.tower.param; + +import com.gxwebsoft.common.core.annotation.QueryField; +import com.gxwebsoft.common.core.annotation.QueryType; +import com.gxwebsoft.common.core.web.BaseParam; +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 采购入库表查询参数 + * + * @author 科技小王子 + * @since 2024-02-05 20:53:31 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@JsonInclude(JsonInclude.Include.NON_NULL) +@ApiModel(value = "TowerPurchaseParam对象", description = "采购入库表查询参数") +public class TowerPurchaseParam extends BaseParam { + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "ID") + @QueryField(type = QueryType.EQ) + private Integer purchaseId; + + @ApiModelProperty(value = "部位名称") + private String name; + + @ApiModelProperty(value = "部件编码") + private String purchaseCode; + + @ApiModelProperty(value = "部件类型") + private String purchaseType; + + @ApiModelProperty(value = "用户ID") + @QueryField(type = QueryType.EQ) + private Integer userId; + + @ApiModelProperty(value = "企业名称") + private String companyName; + + @ApiModelProperty(value = "排序(数字越小越靠前)") + @QueryField(type = QueryType.EQ) + private Integer sortNumber; + + @ApiModelProperty(value = "备注") + private String comments; + + @ApiModelProperty(value = "状态, 0正常, 1冻结") + @QueryField(type = QueryType.EQ) + private Integer status; + + @ApiModelProperty(value = "是否删除, 0否, 1是") + @QueryField(type = QueryType.EQ) + private Integer deleted; + +} diff --git a/src/main/java/com/gxwebsoft/tower/service/TowerPurchaseService.java b/src/main/java/com/gxwebsoft/tower/service/TowerPurchaseService.java new file mode 100644 index 0000000..64c1f12 --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/service/TowerPurchaseService.java @@ -0,0 +1,42 @@ +package com.gxwebsoft.tower.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.gxwebsoft.common.core.web.PageResult; +import com.gxwebsoft.tower.entity.TowerPurchase; +import com.gxwebsoft.tower.param.TowerPurchaseParam; + +import java.util.List; + +/** + * 采购入库表Service + * + * @author 科技小王子 + * @since 2024-02-05 20:53:31 + */ +public interface TowerPurchaseService extends IService { + + /** + * 分页关联查询 + * + * @param param 查询参数 + * @return PageResult + */ + PageResult pageRel(TowerPurchaseParam param); + + /** + * 关联查询全部 + * + * @param param 查询参数 + * @return List + */ + List listRel(TowerPurchaseParam param); + + /** + * 根据id查询 + * + * @param purchaseId ID + * @return TowerPurchase + */ + TowerPurchase getByIdRel(Integer purchaseId); + +} diff --git a/src/main/java/com/gxwebsoft/tower/service/impl/TowerPurchaseServiceImpl.java b/src/main/java/com/gxwebsoft/tower/service/impl/TowerPurchaseServiceImpl.java new file mode 100644 index 0000000..c8acb44 --- /dev/null +++ b/src/main/java/com/gxwebsoft/tower/service/impl/TowerPurchaseServiceImpl.java @@ -0,0 +1,47 @@ +package com.gxwebsoft.tower.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.gxwebsoft.tower.mapper.TowerPurchaseMapper; +import com.gxwebsoft.tower.service.TowerPurchaseService; +import com.gxwebsoft.tower.entity.TowerPurchase; +import com.gxwebsoft.tower.param.TowerPurchaseParam; +import com.gxwebsoft.common.core.web.PageParam; +import com.gxwebsoft.common.core.web.PageResult; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 采购入库表Service实现 + * + * @author 科技小王子 + * @since 2024-02-05 20:53:32 + */ +@Service +public class TowerPurchaseServiceImpl extends ServiceImpl implements TowerPurchaseService { + + @Override + public PageResult pageRel(TowerPurchaseParam param) { + PageParam page = new PageParam<>(param); + //page.setDefaultOrder("create_time desc"); + List list = baseMapper.selectPageRel(page, param); + return new PageResult<>(list, page.getTotal()); + } + + @Override + public List listRel(TowerPurchaseParam param) { + List list = baseMapper.selectListRel(param); + // 排序 + PageParam page = new PageParam<>(); + //page.setDefaultOrder("create_time desc"); + return page.sortRecords(list); + } + + @Override + public TowerPurchase getByIdRel(Integer purchaseId) { + TowerPurchaseParam param = new TowerPurchaseParam(); + param.setPurchaseId(purchaseId); + return param.getOne(baseMapper.selectListRel(param)); + } + +} diff --git a/src/test/java/com/gxwebsoft/generator/TowerGenerator.java b/src/test/java/com/gxwebsoft/generator/TowerGenerator.java index 78e12df..8832575 100644 --- a/src/test/java/com/gxwebsoft/generator/TowerGenerator.java +++ b/src/test/java/com/gxwebsoft/generator/TowerGenerator.java @@ -67,7 +67,8 @@ public class TowerGenerator { // "tower_worksheet_audit", // "tower_worksheet_car_dispatch", // "tower_project_building", - "tower_rent" +// "tower_rent", + "tower_purchase" }; // 需要去除的表前缀 private static final String[] TABLE_PREFIX = new String[]{