From 7b6d5a8ae0927c5abab2c3ff7d43aa0d3a796487 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期三, 26 三月 2025 15:46:41 +0800 Subject: [PATCH] fix: 修改测试最大号表接口 --- platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java | 6 + platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java | 3 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/JcMaxSizeService.java | 15 ++ platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/JcMaxSizeMapper.java | 2 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java | 77 ++++++++++++ platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/MaxSize.java | 5 platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml | 1 platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java | 10 + platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/JcMaxSizeController.java | 167 +++++++++++++++++++++++++++ platformx-device-biz/src/main/resources/mapper/JcMaxSizeMapper.xml | 26 ++++ 10 files changed, 309 insertions(+), 3 deletions(-) diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java index 3936224..08f9085 100644 --- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandSub.java @@ -36,6 +36,9 @@ @Schema(description = "寤鸿鍘傚") @Column(columnDefinition="VARCHAR(64) comment '寤鸿鍘傚'") private String manu; + @Schema(description = "骞村害") + @Column(columnDefinition="int comment '骞村害'") + private Integer year; @Schema(description = "鎶曡祫蹇呰鎬�") @Column(columnDefinition="VARCHAR(64) comment '鎶曡祫蹇呰鎬�'") private String necessity; diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java index 9c066b8..381e122 100644 --- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/DeviceDemandTotal.java @@ -28,9 +28,15 @@ @Schema(description = "鎷熶娇鐢ㄥ湴鐐�") @Column(columnDefinition="VARCHAR(64) comment '鎷熶娇鐢ㄥ湴鐐�'") private String place; + @Schema(description = "椤圭洰鍚嶇О") + @Column(columnDefinition="VARCHAR(64) comment '椤圭洰鍚嶇О'") + private String name; @Schema(description = "鐢宠閮ㄩ棬") @Column(columnDefinition="long comment '鐢宠閮ㄩ棬'") private Long deptId; + @Schema(description = "鐢宠閮ㄩ棬") + @Column(columnDefinition="VARCHAR(64) comment '鐢宠閮ㄩ棬'") + private String deptName; @Schema(description = "寤鸿鍘傚") @Column(columnDefinition="VARCHAR(64) comment '寤鸿鍘傚'") private String manu; diff --git a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/MaxSize.java b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/MaxSize.java index 9a0b8d7..c468bec 100644 --- a/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/MaxSize.java +++ b/platformx-device-api/src/main/java/com/by4cloud/platformx/device/entity/MaxSize.java @@ -50,8 +50,13 @@ @Column(columnDefinition="VARCHAR(32) comment'缁勭粐鍐呯紪鐮�'") private String innerCode; + @Column(columnDefinition="VARCHAR(32) comment'鏃ユ湡'") + private String day; + @Column(columnDefinition="int comment'缂栧彿闀垮害'") private Integer length; + @Column(columnDefinition="int comment'绫诲瀷'") + private Integer type; } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java index 914cdb9..a5d572c 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/DeviceDemandTotalController.java @@ -86,7 +86,15 @@ QueryWrapper<DeviceDemandTotal> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(DeviceDemandTotal::getPlanId,id); - return R.ok(deviceDemandTotalService.list(wrapper)); + List<DeviceDemandTotal> list = deviceDemandTotalService.list(wrapper); + for (DeviceDemandTotal deviceDemandTotal : list) { + QueryWrapper<DeviceDemandSub> wrapper1 = new QueryWrapper<>(); + wrapper1.lambda() + .eq(DeviceDemandSub::getTotalId,deviceDemandTotal.getId()); + List<DeviceDemandSub> list1 = deviceDemandSubService.list(wrapper1); + deviceDemandTotal.setSubList(list1); + } + return R.ok(list); } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/JcMaxSizeController.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/JcMaxSizeController.java new file mode 100644 index 0000000..9be4da2 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/controller/JcMaxSizeController.java @@ -0,0 +1,167 @@ +package com.by4cloud.platformx.device.controller; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.by4cloud.platformx.common.core.util.R; +import com.by4cloud.platformx.common.log.annotation.SysLog; +import com.by4cloud.platformx.common.security.annotation.Inner; +import com.by4cloud.platformx.device.constant.MaxSizeContant; +import com.by4cloud.platformx.device.entity.MaxSize; +import com.by4cloud.platformx.device.service.JcMaxSizeService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.api.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.validation.constraints.Max; +import java.util.List; +import java.util.Objects; + +/** + * 鏈�澶у彿琛� + * + * @author kdq + * @date 2025-03-25 16:24:34 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/jcMaxSize" ) +@Tag(description = "jcMaxSize" , name = "鏈�澶у彿琛ㄧ鐞�" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class JcMaxSizeController { + + private final JcMaxSizeService jcMaxSizeService; + + /** + * 鍒嗛〉鏌ヨ + * @param page 鍒嗛〉瀵硅薄 + * @param jcMaxSize 鏈�澶у彿琛� + * @return + */ + @Operation(summary = "鍒嗛〉鏌ヨ" , description = "鍒嗛〉鏌ヨ" ) + @GetMapping("/page" ) + @PreAuthorize("@pms.hasPermission('device_jcMaxSize_view')" ) + public R getJcMaxSizePage(@ParameterObject Page page, @ParameterObject MaxSize jcMaxSize) { + LambdaQueryWrapper<MaxSize> wrapper = Wrappers.lambdaQuery(); + wrapper.like(StringUtils.isNotBlank(jcMaxSize.getBusinessName()),MaxSize::getBusinessName,jcMaxSize.getBusinessName()); + wrapper.eq(MaxSize::getType,0); + return R.ok(jcMaxSizeService.page(page, wrapper)); + } + + @GetMapping("/getNum" ) + public R getNum() { + String s = jcMaxSizeService.nextNo(MaxSizeContant.DEVICE_NUM); + String s1 = jcMaxSizeService.nextNo(MaxSizeContant.DEVICE_CLASS_NUM); + String s2 = jcMaxSizeService.nextNo(MaxSizeContant.CONTRACT_NUM); + System.out.println(s); + System.out.println(s1); + System.out.println(s2); + return null; + } + + + /** + * 閫氳繃id鏌ヨ鏈�澶у彿琛� + * @param id id + * @return R + */ + @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('device_jcMaxSize_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(jcMaxSizeService.getById(id)); + } + + /** + * 閫氳繃id鏌ヨ鏈�澶у彿琛� + * @param id id + * @return R + */ + @Operation(summary = "閫氳繃id鏌ヨ" , description = "閫氳繃id鏌ヨ" ) + @GetMapping("/getByMasterId/{id}" ) + public R getByMasterId(@PathVariable("id" ) Long id) { + MaxSize byId = jcMaxSizeService.getById(id); + LambdaQueryWrapper<MaxSize> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MaxSize::getSign,byId.getSign()); + wrapper.ne(MaxSize::getType,0); + wrapper.orderByDesc(MaxSize::getDay); + return R.ok(jcMaxSizeService.list(wrapper)); + } + + + /** + * 鏂板鏈�澶у彿琛� + * @param jcMaxSize 鏈�澶у彿琛� + * @return R + */ + @Operation(summary = "鏂板鏈�澶у彿琛�" , description = "鏂板鏈�澶у彿琛�" ) + @SysLog("鏂板鏈�澶у彿琛�" ) + @PostMapping + @PreAuthorize("@pms.hasPermission('device_jcMaxSize_add')" ) + public R save(@RequestBody MaxSize jcMaxSize) { + LambdaQueryWrapper<MaxSize> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MaxSize::getSign,jcMaxSize.getSign()); + wrapper.eq(MaxSize::getType,0); + List<MaxSize> list = jcMaxSizeService.list(wrapper); + if(list !=null && list.size()>0){ + return R.failed("涓婚敭鏍囪瘑宸插瓨鍦�"); + } + return R.ok(jcMaxSizeService.save(jcMaxSize)); + } + + /** + * 淇敼鏈�澶у彿琛� + * @param jcMaxSize 鏈�澶у彿琛� + * @return R + */ + @Operation(summary = "淇敼鏈�澶у彿琛�" , description = "淇敼鏈�澶у彿琛�" ) + @SysLog("淇敼鏈�澶у彿琛�" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('device_jcMaxSize_edit')" ) + public R updateById(@RequestBody MaxSize jcMaxSize) { + LambdaQueryWrapper<MaxSize> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MaxSize::getSign,jcMaxSize.getSign()); + wrapper.ne(MaxSize::getId,jcMaxSize.getId()); + List<MaxSize> list = jcMaxSizeService.list(wrapper); + if(list !=null && list.size()>0){ + return R.failed("涓婚敭鏍囪瘑閲嶅"); + } + return R.ok(jcMaxSizeService.updateById(jcMaxSize)); + } + + /** + * 閫氳繃id鍒犻櫎鏈�澶у彿琛� + * @param ids id鍒楄〃 + * @return R + */ + @Operation(summary = "閫氳繃id鍒犻櫎鏈�澶у彿琛�" , description = "閫氳繃id鍒犻櫎鏈�澶у彿琛�" ) + @SysLog("閫氳繃id鍒犻櫎鏈�澶у彿琛�" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('device_jcMaxSize_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(jcMaxSizeService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 瀵煎嚭excel 琛ㄦ牸 + * @param jcMaxSize 鏌ヨ鏉′欢 + * @param ids 瀵煎嚭鎸囧畾ID + * @return excel 鏂囦欢娴� + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('device_jcMaxSize_export')" ) + public List<MaxSize> export(MaxSize jcMaxSize,Long[] ids) { + return jcMaxSizeService.list(Wrappers.lambdaQuery(jcMaxSize).in(ArrayUtil.isNotEmpty(ids), MaxSize::getId, ids)); + } +} diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/MaxSizeMapper.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/JcMaxSizeMapper.java similarity index 76% rename from platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/MaxSizeMapper.java rename to platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/JcMaxSizeMapper.java index 8a34170..0e060a2 100644 --- a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/MaxSizeMapper.java +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/mapper/JcMaxSizeMapper.java @@ -5,7 +5,7 @@ import org.apache.ibatis.annotations.Mapper; @Mapper -public interface MaxSizeMapper extends PlatformxBaseMapper<MaxSize> { +public interface JcMaxSizeMapper extends PlatformxBaseMapper<MaxSize> { } diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/JcMaxSizeService.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/JcMaxSizeService.java new file mode 100644 index 0000000..854ffb7 --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/JcMaxSizeService.java @@ -0,0 +1,15 @@ +package com.by4cloud.platformx.device.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.by4cloud.platformx.device.entity.MaxSize; + +public interface JcMaxSizeService extends IService<MaxSize> { + + /** + * + * @param type + * @return + */ + String nextNo(String type); + +} diff --git a/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java new file mode 100644 index 0000000..26d748b --- /dev/null +++ b/platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/JcMaxSizeServiceImpl.java @@ -0,0 +1,77 @@ +package com.by4cloud.platformx.device.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.by4cloud.platformx.common.data.mybatis.BaseModel; +import com.by4cloud.platformx.common.security.service.PlatformxUser; +import com.by4cloud.platformx.common.security.util.SecurityUtils; +import com.by4cloud.platformx.device.entity.MaxSize; +import com.by4cloud.platformx.device.mapper.JcMaxSizeMapper; +import com.by4cloud.platformx.device.service.JcMaxSizeService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.validation.constraints.Max; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Random; + +/** + * 鏈�澶у彿琛� + * + * @author kdq + * @date 2025-03-25 16:24:34 + */ +@Service +@AllArgsConstructor +@Transactional +public class JcMaxSizeServiceImpl extends ServiceImpl<JcMaxSizeMapper, MaxSize> implements JcMaxSizeService { + private final JcMaxSizeMapper maxSizeMapper; + @Override + public String nextNo(String type) { + synchronized (this) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String format = sdf.format(new Date()); + MaxSize maxSize = maxSizeMapper.selectOne(new QueryWrapper<MaxSize>().lambda().eq(MaxSize::getSign, type).eq(MaxSize::getType,0)); + if (maxSize == null) { + return null; + }else { + MaxSize dayMax = maxSizeMapper.selectOne(new QueryWrapper<MaxSize>().lambda() + .eq(MaxSize::getSign, type) + .eq(MaxSize::getDay,format)); + Random random = new Random(); + int randomNumber = random.nextInt(99); + if(dayMax == null){ + MaxSize maxSize1 = new MaxSize(); + maxSize1.setSign(type); + maxSize1.setDay(format); + maxSize1.setType(1); + int current = 1; + String n = padStart(current, maxSize.getLength()); + String pre = (maxSize.getUsePrefix() == 0 ? "" : maxSize.getPrefixName()); + String suf = (maxSize.getUseSuffix() == 0 ? "" : maxSize.getSuffixName()); + maxSize1.setCurrentNumber(current); + save(maxSize1); + String s = pre+format+suf+randomNumber+n; + return s; + }else { + Integer currentNumber = dayMax.getCurrentNumber(); + int current = currentNumber+1; + String n = padStart(current, maxSize.getLength()); + String pre = (maxSize.getUsePrefix() == 0 ? "" : maxSize.getPrefixName()); + String suf = (maxSize.getUseSuffix() == 0 ? "" : maxSize.getSuffixName()); + dayMax.setCurrentNumber(current); + updateById(dayMax); + String s = pre+format+suf+randomNumber+n; + return s; + } + } + } + } + + private String padStart(int num, int len) { + String v = "000000000000000" + num; + return v.substring(v.length() - len); + } +} diff --git a/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml b/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml index 26353cc..ec1d5c8 100644 --- a/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml +++ b/platformx-device-biz/src/main/resources/mapper/DeviceMapper.xml @@ -15,7 +15,6 @@ <result property="beforeDate" column="before_date"/> <result property="remindDate" column="remind_date"/> <result property="num" column="num"/> - <result property="amount" column="amount"/> <result property="month" column="month"/> <result property="releaseDate" column="release_date"/> <result property="releasePerson" column="release_person"/> diff --git a/platformx-device-biz/src/main/resources/mapper/JcMaxSizeMapper.xml b/platformx-device-biz/src/main/resources/mapper/JcMaxSizeMapper.xml new file mode 100644 index 0000000..3b76458 --- /dev/null +++ b/platformx-device-biz/src/main/resources/mapper/JcMaxSizeMapper.xml @@ -0,0 +1,26 @@ +<?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.by4cloud.platformx.device.mapper.JcMaxSizeMapper"> + + <resultMap id="jcMaxSizeMap" type="com.by4cloud.platformx.device.entity.MaxSize"> + <id property="id" column="id"/> + <result property="compId" column="comp_id"/> + <result property="businessName" column="business_name"/> + <result property="sign" column="sign"/> + <result property="currentNumber" column="current_number"/> + <result property="cacheSize" column="cache_size"/> + <result property="usePrefix" column="use_prefix"/> + <result property="useSuffix" column="use_suffix"/> + <result property="prefixName" column="prefix_name"/> + <result property="suffixName" column="suffix_name"/> + <result property="length" column="length"/> + <result property="innerCode" column="inner_code"/> + <result property="isAll" column="is_all"/> + <result property="createBy" column="create_by"/> + <result property="createTime" column="create_time"/> + <result property="updateBy" column="update_by"/> + <result property="updateTime" column="update_time"/> + <result property="delFlag" column="del_flag"/> + </resultMap> +</mapper> -- Gitblit v1.9.1