ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
@@ -109,7 +109,8 @@ if (user.getUserType().equals("02")){ throw new ServiceException("登录失败,登录账号权限不足"); } if (user.getUserType().equals("03")){ if (org.springframework.util.StringUtils.hasLength(seBei) && user.getUserType().equals("03")){ SeBei se=new SeBei(); se.setUserId(user.getUserId()); se.setSebei(seBei); ruoyi-modules/ruoyi-management/pom.xml
@@ -21,7 +21,21 @@ </description> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.3.9</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-system</artifactId> ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/ScanCodesController.java
@@ -19,9 +19,9 @@ @Resource private InventoriesSuppliesService inventoriesSuppliesService; @GetMapping("/scanCodes/{rkNumber}") @GetMapping("/scanCodes") @ApiOperation(value = "安卓扫描传输数据") public R scanCodes( @ApiParam(name = "rkNumber", value = "入库编号", required = true) @PathVariable("rkNumber") String rkNumber) { public R scanCodes(String rkNumber) { inventoriesSuppliesService.scanCodes(rkNumber); return R.ok(); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkController.java
@@ -48,15 +48,15 @@ @PostMapping("/addSlVolumeProductionCk") @ApiOperation(value = "添加出库") public R addSlVolumeProductionCk(@RequestBody List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO) { slVolumeProductionCkService.addSlVolumeProductionCk(addSlVolumeProductionCkDTO); public R addSlVolumeProductionCk(@RequestBody ADDCKGLDTO addckgldto ) { slVolumeProductionCkService.addSlVolumeProductionCk(addckgldto.getAddSlVolumeProductionCkDTO()); return R.ok(); } @PostMapping("/updSlVolumeProductionCk") @ApiOperation(value = "修改出库") public R updSlVolumeProductionCk(@RequestBody List<SlVolumeProductionCkDTO> slVolumeProductionCkDTO) { slVolumeProductionCkService.updSlVolumeProductionCk(slVolumeProductionCkDTO); public R updSlVolumeProductionCk(@RequestBody ADDCKGLDTO addckgldto ) { slVolumeProductionCkService.updSlVolumeProductionCk(addckgldto.getAddSlVolumeProductionCkDTO()); return R.ok(); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionCkglController.java
@@ -51,8 +51,8 @@ @PostMapping("/addslVolumeProductionCkgl") @ApiOperation(value = "添加/修改出库管理") public R addslVolumeProductionCkgl(@RequestBody VolumeProductionCkglDTO volumeProductionCkglDTO) { slVolumeProductionCkglService.addslVolumeProductionCkgl(volumeProductionCkglDTO); return R.ok(); return R.ok(slVolumeProductionCkglService.addslVolumeProductionCkgl(volumeProductionCkglDTO)); } @GetMapping("/getVolumeProductionCkglnfo/{id}") ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java
@@ -80,9 +80,9 @@ @PostMapping("/codeInfo/{id}") @ApiOperation(value = "获取二维码样式") public R<List<QRCodeVO>> codeInfo(@ApiParam(name = "id", value = "入库管理id", required = true) @PathVariable("id") Long id){ slVolumeProductionRkService.codeInfo(id); return R.ok(); public R<List<QRCodeVO>> codeInfo(@ApiParam(name = "id", value = "入库管理id", required = true) @PathVariable("id") Long id) throws Exception { return R.ok(slVolumeProductionRkService.codeInfo(id)); } @PostMapping("/getSlvolumeVolumeProductionRkList") ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyController.java
@@ -45,8 +45,8 @@ @PostMapping("/addSlVolumeProductionZy") @ApiOperation(value = "添加转移") public R addSlVolumeProductionZy(@RequestBody AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO) { slVolumeProductionZyService.addSlVolumeProductionZy(addaddSlVolumeProductionZyDTO); public R addSlVolumeProductionZy(@RequestBody ADDZYDTO addzydto) { slVolumeProductionZyService.addSlVolumeProductionZy(addzydto); return R.ok(); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionZyglController.java
@@ -9,10 +9,7 @@ import com.ruoyi.management.domain.SlVolumeProductionCk; import com.ruoyi.management.domain.SlVolumeProductionRkgl; import com.ruoyi.management.domain.SlVolumeProductionZygl; import com.ruoyi.management.domain.dto.SlVolumeProductionZyDTO; import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery; import com.ruoyi.management.domain.dto.VolumeProductionCkglDTO; import com.ruoyi.management.domain.dto.getslVolumeProductionCkglQuery; import com.ruoyi.management.domain.dto.*; import com.ruoyi.management.domain.vo.*; import com.ruoyi.management.mapper.SlAuditMapper; import com.ruoyi.management.service.SlVolumeProductionZyService; @@ -53,14 +50,14 @@ @PostMapping("/addsVolumeProductionzZygl") @ApiOperation(value = "添加/修改转移管理") public R addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO) { slVolumeProductionZyglService.addsVolumeProductionzZygl(slVolumeProductionZyDTO); return R.ok(); return R.ok(slVolumeProductionZyglService.addsVolumeProductionzZygl(slVolumeProductionZyDTO)); } @GetMapping("/getVolumeProductionzZyglnfo/{id}") @GetMapping("/getVolumeProductionzZyglnfo") @ApiOperation(value = "获取转移管理详情") public R<VolumeProductionZyglInfoVO> getVolumeProductionzZyglnfo(@ApiParam(name = "id", value = "转移管理id", required = true) @PathVariable("id") Long id) { return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglnfo(id)); public R<VolumeProductionZyglInfoVO> getVolumeProductionzZyglnfo(@RequestBody ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) { return R.ok(slVolumeProductionZyglService.getVolumeProductionzZyglnfo(managementimgVolumeProductionZyQuery)); } @GetMapping("/getVolumeProductionZyglnventory/{id}") ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlVolumeProductionZy.java
@@ -88,6 +88,12 @@ @ApiModelProperty("转移管理新生成入库编号") private Long scrkId; @ApiModelProperty("转移到的楼层1、2、3") @TableField("store_management_number") private Integer storeManagementNumber; @TableField("shelf_id") @ApiModelProperty("转移到的货架id") private Long shelfId; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKDTO.java
New file @@ -0,0 +1,12 @@ package com.ruoyi.management.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; import java.util.List; @Data @ApiModel("添加出库批次DTO") public class ADDCKDTO { private List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDCKGLDTO.java
New file @@ -0,0 +1,12 @@ package com.ruoyi.management.domain.dto; import io.swagger.annotations.ApiModel; import lombok.Data; import java.util.List; @Data @ApiModel("添加出库DTO") public class ADDCKGLDTO { private List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/ADDZYDTO.java
New file @@ -0,0 +1,37 @@ package com.ruoyi.management.domain.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel("添加转移DTO") public class ADDZYDTO { @ApiModelProperty("选择的物资列表") private List<AddZYIdsDTO> addZYIdsDTOS; @TableId(value = "id", type = IdType.ASSIGN_ID) @ApiModelProperty("转移管理Id 修改传") private Long id; @ApiModelProperty("转移出仓库ID") private Long managementId; @ApiModelProperty("被转移入仓库ID") private Long bmanagementId; @ApiModelProperty("转移原因") private String source; @ApiModelProperty("附件") private String attachmentUrl; @ApiModelProperty("审批单") private String authorization; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/AddZYIdsDTO.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.management.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data @ApiModel("添加转移库批次数据传输对象") public class AddZYIdsDTO { @ApiModelProperty("入库id") private Long rkId; @ApiModelProperty("转移数量") private Integer zyNum; @ApiModelProperty("转移楼层") private Integer storeManagementNumber; @ApiModelProperty("转移货架id") private Long shelfId; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionCkglVO.java
@@ -20,7 +20,7 @@ @JsonInclude(JsonInclude.Include.ALWAYS) private String phonenumber; private Integer id; private String id; @ApiModelProperty("仓库名称") @JsonInclude(JsonInclude.Include.ALWAYS) ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/VolumeProductionZyglInfoVO.java
@@ -2,11 +2,16 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.SlGoodsShelf; import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; @Data @ApiModel(value = "转移管理详情", description = "转移管理详情") public class VolumeProductionZyglInfoVO { @@ -50,4 +55,12 @@ @ApiModelProperty("1 待管理员审核,2 待主管审核,3 待主任审核,4 待入库,5 待从重新提交, 6已完成, 7,已取消") private Integer auditStatus; @ApiModelProperty("物资列表") private PageDTO<ManagementimgVolumeProductionZyVO> list; @ApiModelProperty("楼层 1=一层 2=二层。。。") private List<String> number; @ApiModelProperty("货架列表") private List<SlGoodsShelf> goodsShelfList; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkService.java
@@ -23,7 +23,7 @@ PageDTO<ManagementimgSlVolumeProductionCkVO> getManagementimgSlVolumeProductionCkList(SlGoodsMaterialsSlVolumeProductionRkQuery slGoodsMaterialsSlVolumeProductionRkQuery); void updSlVolumeProductionCk(List<SlVolumeProductionCkDTO>slVolumeProductionCkDTO); void updSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO>slVolumeProductionCkDTO); void addSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO> addSlVolumeProductionCkDTO); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionCkglService.java
@@ -23,7 +23,7 @@ public interface SlVolumeProductionCkglService extends IService<SlVolumeProductionCkgl> { PageDTO<VolumeProductionCkglVO> getslVolumeProductionCkglList(getslVolumeProductionCkglQuery VolumeProductionCkglQuery); void addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO); String addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO); VolumeProductionCkglInfoVO getVolumeProductionCkglnfo (Long id); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionRkService.java
@@ -33,7 +33,7 @@ void uplSlVolumeProductionRk(@RequestBody List<SlVolumeProductionRkDTO> SlVolumeProductionRkDTO); PageDTO<getVolumeProductionRkgCodeVO> getVolumeProductionRkgCode(VolumeProductionRkgCodeQuery volumeProductionRkgCodeQuery); List<QRCodeVO> codeInfo(Long id); List<QRCodeVO> codeInfo(Long id) throws Exception; PageDTO<ManagementimgVolumeProductionRkVO> getroductionRkList(umeProductionRkQuery meProductionRkQuery); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyService.java
@@ -21,7 +21,7 @@ public interface SlVolumeProductionZyService extends IService<SlVolumeProductionZy> { PageDTO<getVolumeProductionzyCodeVO> getVolumeProductionzyCode(VolumeProductionZygCodeQuery volumeProductionZygCodeQuery); void addSlVolumeProductionZy(AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO); void addSlVolumeProductionZy(ADDZYDTO addzydto); void updSlVolumeProductionZy(List<UpdaddSlVolumeProductionZyDTO> updaddSlVolumeProductionZyDTO); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlVolumeProductionZyglService.java
@@ -3,6 +3,7 @@ import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.management.domain.SlVolumeProductionZygl; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyQuery; import com.ruoyi.management.domain.dto.SlVolumeProductionZyDTO; import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery; import com.ruoyi.management.domain.vo.VolumeProductionZyglInfoVO; @@ -23,9 +24,9 @@ public interface SlVolumeProductionZyglService extends IService<SlVolumeProductionZygl> { PageDTO<VolumeProductionzZyglVO> getVolumeProductionzZyglList(@RequestBody SlVolumeProductionZyQuery slVolumeProductionZyQuery); void addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO); String addsVolumeProductionzZygl(@RequestBody SlVolumeProductionZyDTO slVolumeProductionZyDTO); VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(Long id); VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery); VolumeProductionZyglInventoryVO getVolumeProductionZyglnventory( Integer id); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/InventoriesSuppliesServiceImpl.java
@@ -124,7 +124,7 @@ @Override public void scanCodes(String rkNumber) { LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); wrapper1.like(SlVolumeProductionRk::getRkNumber,rkNumber); wrapper1.eq(SlVolumeProductionRk::getRkNumber,rkNumber); wrapper1.eq( SlVolumeProductionRk::getDelFlag,0); wrapper1.orderByDesc(SlVolumeProductionRk::getCreateTime); SlVolumeProductionRk page2 = slVolumeProductionRkMapper.selectOne(wrapper1); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
@@ -73,6 +73,7 @@ if (slGoodsShelfQuery.getStoreManagementNumber()!=null && slGoodsShelfQuery.getStoreManagementNumber()!=0){ wrapper1.eq(SlGoodsShelf::getStoreManagementNumber,slGoodsShelfQuery.getStoreManagementNumber()); } if(slGoodsShelfQuery.getStoreManagementName()!=null&&slGoodsShelfQuery.getStoreManagementName()!="") { if (slStoreManagementIdList.size() > 0) { wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList); @@ -82,6 +83,9 @@ wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList); } } if (slGoodsShelfQuery.getStoreManagementId()!=null){ wrapper1.eq(SlGoodsShelf::getStoreManagementId, slGoodsShelfQuery.getStoreManagementId()); } wrapper1.eq( SlGoodsShelf::getDelFlag,0); wrapper1.orderByDesc(SlGoodsShelf::getCreateTime); Page<SlGoodsShelf> page2 = this.page(page, wrapper1); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkServiceImpl.java
@@ -71,9 +71,9 @@ } @Override public void updSlVolumeProductionCk(List<SlVolumeProductionCkDTO> slVolumeProductionCkDTO) { for (SlVolumeProductionCkDTO c:slVolumeProductionCkDTO){ SlVolumeProductionCk byId = this.getById(c.getId()); public void updSlVolumeProductionCk(List<AddSlVolumeProductionCkDTO> slVolumeProductionCkDTO) { for (AddSlVolumeProductionCkDTO c:slVolumeProductionCkDTO){ SlVolumeProductionCk byId = this.getById(c.getCkgl_id()); byId.setCkNum(c.getCkNum()); byId.setGuihNum(c.getGuihNum()); this.updateById(byId); @@ -94,6 +94,7 @@ slVolumeProductionCk.setCkNum(m.getCkNum()); slVolumeProductionCk.setGuihNum(m.getGuihNum()); slVolumeProductionCk.setMaterialsId(slVolumeProductionRk.getMaterialsId()); slVolumeProductionCk.setCreateTime(new Date()); this.save(slVolumeProductionCk); } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionCkglServiceImpl.java
@@ -71,8 +71,13 @@ .collect(Collectors.toSet()); LambdaQueryWrapper< SlVolumeProductionCkgl> wrapper1= Wrappers.lambdaQuery(); if (VolumeProductionCkglQuery.getPresentState()!=null &&VolumeProductionCkglQuery.getPresentState()!=0){ wrapper1.eq(SlVolumeProductionCkgl::getPresentState,VolumeProductionCkglQuery.getPresentState()); } if (VolumeProductionCkglQuery.getAuditStatus()!=null &&VolumeProductionCkglQuery.getAuditStatus()!=0){ wrapper1.eq(SlVolumeProductionCkgl::getAuditStatus,VolumeProductionCkglQuery.getAuditStatus()); } if (goodsSkuIdList.size()>0){ wrapper1.in(SlVolumeProductionCkgl::getSysId,goodsSkuIdList); } @@ -93,9 +98,9 @@ } @Override public void addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO) { public String addslVolumeProductionCkgl(VolumeProductionCkglDTO volumeProductionCkglDTO) { Long userid = SecurityUtils.getUserId(); if (volumeProductionCkglDTO.getId()!=null){ if (volumeProductionCkglDTO.getId()==null){ SlVolumeProductionCkgl slVolumeProductionRkgl=new SlVolumeProductionCkgl(); slVolumeProductionRkgl.setAttachmentUrl(volumeProductionCkglDTO.getAttachmentUrl()); slVolumeProductionRkgl.setAuthorizationUrl(volumeProductionCkglDTO.getAuthorization()); @@ -106,7 +111,9 @@ slVolumeProductionRkgl.setSource(volumeProductionCkglDTO.getSource()); slVolumeProductionRkgl.setStartiTime(new Date()); slVolumeProductionRkgl.setSysId(userid); slVolumeProductionRkgl.setCreateTime(new Date()); this.save(slVolumeProductionRkgl); return slVolumeProductionRkgl.getId().toString(); }else{ SlVolumeProductionCkgl byId = this.getById(volumeProductionCkglDTO.getId()); if (volumeProductionCkglDTO.getSource()!=null){ @@ -119,6 +126,7 @@ byId.setAuthorizationUrl(volumeProductionCkglDTO.getAuthorization()); } this.updateById(byId); return volumeProductionCkglDTO.getId().toString(); } } @@ -132,7 +140,7 @@ SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData(); v.setSysName(data1.getNickName()); v.setSysPhone(data1.getPhonenumber()); return null; return v; } @Override ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkServiceImpl.java
@@ -1,5 +1,7 @@ package com.ruoyi.management.service.impl; import com.alibaba.fastjson2.util.UUIDUtils; import com.alibaba.nacos.common.utils.UuidUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,11 +14,22 @@ import com.ruoyi.management.service.SlVolumeProductionRkService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.management.service.SlVolumeProductionRkglService; import com.ruoyi.management.util.ObsUploadUtil; import com.ruoyi.management.util.QRCodeUtil; import com.ruoyi.management.util.UUIDUtil; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import org.apache.logging.log4j.core.util.UuidUtil; import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream; import org.springframework.core.io.ByteArrayResource; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException; import java.math.BigDecimal; import java.sql.Array; import java.text.SimpleDateFormat; @@ -200,7 +213,7 @@ } @Override public List<QRCodeVO> codeInfo(Long id) { public List<QRCodeVO> codeInfo(Long id) throws Exception { SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); List<QRCodeVO> res = new ArrayList<>(); LambdaQueryWrapper< SlVolumeProductionRk> wrapper1= Wrappers.lambdaQuery(); @@ -211,6 +224,11 @@ for (SlVolumeProductionRk byId : list) { // 根据生成二维码数量 复制 for (int i = 0; i < byId.getErwmNum(); i++) { String blueS = "{\"rkNumber\": "+byId.getRkNumber()+"}"; BufferedImage blueImage = QRCodeUtil.createImage(blueS); MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); // 生成的二维码连接 String s = ObsUploadUtil.obsUpload(blueFile); QRCodeVO vo=new QRCodeVO(); String letter = getLetter(i); vo.setCategory(letter); @@ -225,6 +243,7 @@ vo.setMaterials(byId.getRkNumber()); SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); vo.setStoreManagementName(slStoreManagement.getStoreManagementName()); vo.setQrCode(s); res.add(vo); } @@ -234,6 +253,33 @@ return res; } public static void main(String[] args) throws Exception { String blueS = "{\"rkNumber\": CD-1721989472748"+"}"; BufferedImage blueImage = QRCodeUtil.createImage(blueS); MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG"); // 生成的二维码连接 String s = ObsUploadUtil.obsUpload(blueFile); System.err.println(s); } public static MultipartFile convert(BufferedImage bufferedImage, String fileName) throws IOException { // 将 BufferedImage 转换为字节数组 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, "png", baos); byte[] bytes = baos.toByteArray(); // 创建 ByteArrayResource ByteArrayResource resource = new ByteArrayResource(bytes); // 创建 MockMultipartFile MockMultipartFile multipartFile = new MockMultipartFile( "file", fileName, "image/png", resource.getInputStream() ); return multipartFile; } // 根据传入数字是几 返回对应的字母 public static String getLetter(int num) { String[] str = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyServiceImpl.java
@@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.management.domain.*; import com.ruoyi.management.domain.dto.*; import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO; import com.ruoyi.management.domain.vo.*; import com.ruoyi.management.mapper.*; import com.ruoyi.management.service.SlAuditRecordService; import com.ruoyi.management.service.SlAuditService; import com.ruoyi.management.service.SlStoreManagementService; import com.ruoyi.management.service.SlVolumeProductionZyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -21,6 +24,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -38,6 +42,8 @@ @Resource private SlVolumeProductionRkMapper slVolumeProductionRkMapper; @Resource private SlVolumeProductionRkglMapper slVolumeProductionRkglMapper; @Resource private SlGoodsMaterialsMapper slGoodsMaterialsMapper; @@ -86,21 +92,131 @@ } @Resource private SlAuditService slAuditService; @Resource private SlAuditRecordService slAuditRecordService; @Override public void addSlVolumeProductionZy(AddaddSlVolumeProductionZyDTO addaddSlVolumeProductionZyDTO) { List<Long> rkId = addaddSlVolumeProductionZyDTO.getRkId(); for (Long m:rkId){ SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m); public void addSlVolumeProductionZy(ADDZYDTO addaddSlVolumeProductionZyDTO) { if (addaddSlVolumeProductionZyDTO.getId()==null){ // 新增转移管理 Long userid = SecurityUtils.getUserId(); SlVolumeProductionZygl slVolumeProductionZygl=new SlVolumeProductionZygl(); slVolumeProductionZygl.setAttachmentUrl(addaddSlVolumeProductionZyDTO.getAttachmentUrl()); slVolumeProductionZygl.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization()); slVolumeProductionZygl.setSource(addaddSlVolumeProductionZyDTO.getSource()); slVolumeProductionZygl.setManagementId(addaddSlVolumeProductionZyDTO.getManagementId()); slVolumeProductionZygl.setBmanagementId(addaddSlVolumeProductionZyDTO.getBmanagementId()); slVolumeProductionZygl.setSysId(userid); slVolumeProductionZygl.setStartiTime(new Date()); slVolumeProductionZygl.setAuditStatus(1); slVolumeProductionZygl.setPresentState(1); slVolumeProductionZyglMapper.insert(slVolumeProductionZygl); addaddSlVolumeProductionZyDTO.setId(slVolumeProductionZygl.getId()); // 新增 List<AddZYIdsDTO> rkId = addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS(); for (AddZYIdsDTO m:rkId){ SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(m.getRkId()); // todo 目前还不知道转移管理存不存供应商id // Long volumeProductionRkglId = slVolumeProductionRk.getVolumeProductionRkglId(); // SlVolumeProductionRkgl slVolumeProductionRkgl = slVolumeProductionRkglMapper.selectById(volumeProductionRkglId); SlVolumeProductionZy slVolumeProductionZy=new SlVolumeProductionZy(); slVolumeProductionZy.setRkId(m); slVolumeProductionZy.setZyglId(addaddSlVolumeProductionZyDTO.getZygl_id()); slVolumeProductionZy.setRkId(m.getRkId()); slVolumeProductionZy.setZyglId(slVolumeProductionZygl.getId()); slVolumeProductionZy.setState(1); slVolumeProductionZy.setMaterialsId(slVolumeProductionRk.getMaterialsId()); slVolumeProductionZy.setZyglId(addaddSlVolumeProductionZyDTO.getZygl_id()); slVolumeProductionZy.setZyNum(m.getZyNum()); slVolumeProductionZy.setCreateTime(new Date()); slVolumeProductionZy.setStoreManagementNumber(m.getStoreManagementNumber()); slVolumeProductionZy.setShelfId(m.getShelfId()); slVolumeProductionZy.setRkId(m.getRkId()); // slVolumeProductionZy.setSupplierId(slVolumeProductionRkgl.getSupplierId()); this.save(slVolumeProductionZy); } }else{ // 修改 SlVolumeProductionZygl byId = slVolumeProductionZyglMapper.selectById(addaddSlVolumeProductionZyDTO.getId()); if (addaddSlVolumeProductionZyDTO.getSource()!=null){ byId.setSource(addaddSlVolumeProductionZyDTO.getSource()); } if (addaddSlVolumeProductionZyDTO.getAttachmentUrl()!=null){ byId.setAttachmentUrl(addaddSlVolumeProductionZyDTO.getAttachmentUrl()); } if (addaddSlVolumeProductionZyDTO.getAuthorization()!=null){ byId.setAuthorizationUrl(addaddSlVolumeProductionZyDTO.getAuthorization()); } slVolumeProductionZyglMapper.updateById(byId); for (AddZYIdsDTO z:addaddSlVolumeProductionZyDTO.getAddZYIdsDTOS()){ QueryWrapper<SlVolumeProductionZy> slVolumeProductionZyQueryWrapper = new QueryWrapper<>(); slVolumeProductionZyQueryWrapper.eq("zygl_id",addaddSlVolumeProductionZyDTO.getId()); slVolumeProductionZyQueryWrapper.eq("rk_id",z.getRkId()); SlVolumeProductionZy one = this.getOne(slVolumeProductionZyQueryWrapper); if (one!=null){ one.setZyNum(z.getZyNum()); } this.updateById(one); } } // 添加/修改审核记录 LambdaQueryWrapper< SlAudit> wrapper= Wrappers.lambdaQuery(); if (addaddSlVolumeProductionZyDTO.getId()!=null){ wrapper.eq(SlAudit::getRkId,addaddSlVolumeProductionZyDTO.getId()); } wrapper.eq(SlAudit::getType,3); wrapper.eq( SlAudit::getDelFlag,0); wrapper.orderByDesc(SlAudit::getCreateTime); SlAudit page1 = slAuditService.getOne(wrapper); if (page1!=null){ LambdaQueryWrapper<SlAuditRecord> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(SlAuditRecord::getAuditId,page1.getId()); List<SlAuditRecord> slAuditRecords = slAuditRecordService.list(wrapper1); for (SlAuditRecord lAuditRecord:slAuditRecords){ slAuditRecordService.removeById(lAuditRecord.getId()); } slAuditService.removeById(page1); } SlAudit slAudit=new SlAudit(); slAudit.setType(3); slAudit.setState(1); slAudit.setCreateTime(new Date()); slAudit.setRkId(addaddSlVolumeProductionZyDTO.getId()); if (slAudit.getType()==3){ SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(addaddSlVolumeProductionZyDTO.getId()); slAudit.setSysId(slVolumeProductionZygl.getSysId()); slAudit.setManagementId(slVolumeProductionZygl.getManagementId()); slAudit.setZymanagementId(slVolumeProductionZygl.getBmanagementId()); SlStoreManagement byId = slStoreManagementService.getById(slVolumeProductionZygl.getManagementId()); slAudit.setShenhId(byId.getAdministratorId()); slAuditService.save(slAudit); SlAuditRecord slAuditRecord=new SlAuditRecord(); slAuditRecord.setAuditId(slAudit.getId()); slAuditRecord.setShenhId(byId.getAdministratorId()); slAuditRecord.setType(1); slAuditRecord.setState(1); slAuditRecord.setCreateTime(new Date()); slAuditRecordService.save(slAuditRecord); SlAuditRecord slAuditRecord1=new SlAuditRecord(); slAuditRecord1.setAuditId(slAudit.getId()); slAuditRecord1.setShenhId(byId.getCompetentId()); slAuditRecord1.setType(2); slAuditRecord1.setState(1); slAuditRecord1.setCreateTime(new Date()); slAuditRecordService.save(slAuditRecord1); SlAuditRecord slAuditRecord2=new SlAuditRecord(); slAuditRecord2.setAuditId(slAudit.getId()); slAuditRecord2.setShenhId(byId.getDirectorId()); slAuditRecord2.setType(3); slAuditRecord2.setState(1); slAuditRecord2.setCreateTime(new Date()); slAuditRecordService.save(slAuditRecord2); } } @Resource private SlStoreManagementService slStoreManagementService; @Override public void updSlVolumeProductionZy(List<UpdaddSlVolumeProductionZyDTO> updaddSlVolumeProductionZyDTO) { for (UpdaddSlVolumeProductionZyDTO z:updaddSlVolumeProductionZyDTO){ ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionZyglServiceImpl.java
@@ -1,12 +1,14 @@ package com.ruoyi.management.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.management.domain.*; import com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyQuery; import com.ruoyi.management.domain.dto.SlVolumeProductionZyDTO; import com.ruoyi.management.domain.dto.SlVolumeProductionZyQuery; import com.ruoyi.management.domain.vo.*; @@ -68,8 +70,13 @@ .collect(Collectors.toSet()); LambdaQueryWrapper< SlVolumeProductionZygl> wrapper1= Wrappers.lambdaQuery(); if (slVolumeProductionZyQuery.getPresentState()!=null){ wrapper1.eq(SlVolumeProductionZygl::getPresentState,slVolumeProductionZyQuery.getPresentState()); } if (slVolumeProductionZyQuery.getAuditStatus()!=null){ wrapper1.eq(SlVolumeProductionZygl::getAuditStatus,slVolumeProductionZyQuery.getAuditStatus()); } if (goodsSkuIdList.size()>0){ wrapper1.in(SlVolumeProductionZygl::getSysId,goodsSkuIdList); } @@ -87,15 +94,15 @@ list.setStoreManagementName(slStoreManagement.getStoreManagementName()); SlStoreManagement bslStoreManagement = slStoreManagementMapper.selectById(list.getBmanagementId()); list.setStoreManagementName(bslStoreManagement.getStoreManagementName()); list.setBstoreManagementName(bslStoreManagement.getStoreManagementName()); } return SlGoodsShelfDTO; } @Override public void addsVolumeProductionzZygl(SlVolumeProductionZyDTO slVolumeProductionZyDTO) { public String addsVolumeProductionzZygl(SlVolumeProductionZyDTO slVolumeProductionZyDTO) { Long userid = SecurityUtils.getUserId(); if (slVolumeProductionZyDTO.getId()!=null){ if (slVolumeProductionZyDTO.getId()==null){ SlVolumeProductionZygl slVolumeProductionZygl=new SlVolumeProductionZygl(); slVolumeProductionZygl.setAttachmentUrl(slVolumeProductionZyDTO.getAttachmentUrl()); slVolumeProductionZygl.setAuthorizationUrl(slVolumeProductionZyDTO.getAuthorization()); @@ -106,6 +113,8 @@ slVolumeProductionZygl.setStartiTime(new Date()); slVolumeProductionZygl.setAuditStatus(1); slVolumeProductionZygl.setPresentState(1); this.save(slVolumeProductionZygl); return slVolumeProductionZygl.getId().toString(); }else { SlVolumeProductionZygl byId = this.getById(slVolumeProductionZyDTO.getId()); if (slVolumeProductionZyDTO.getSource()!=null){ @@ -118,12 +127,14 @@ byId.setAuthorizationUrl(slVolumeProductionZyDTO.getAuthorization()); } this.updateById(byId); return slVolumeProductionZyDTO.getId().toString(); } } @Override public VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(Long id) { SlVolumeProductionZygl byId = this.getById(id); public VolumeProductionZyglInfoVO getVolumeProductionzZyglnfo(ManagementimgVolumeProductionZyQuery managementimgVolumeProductionZyQuery) { SlVolumeProductionZygl byId = this.getById(managementimgVolumeProductionZyQuery.getVolumeProductionzyglId()); VolumeProductionZyglInfoVO v= BeanUtils.copyBean(byId, VolumeProductionZyglInfoVO.class); SlStoreManagement slStoreManagement = slStoreManagementMapper.selectById(byId.getManagementId()); v.setStoreManagementName(slStoreManagement.getStoreManagementName()); @@ -132,6 +143,75 @@ SysUser data1 = sysUserClient.getSysUser(Long.valueOf(byId.getSysId())).getData(); v.setSysName(data1.getNickName()); v.setSysPhone(data1.getPhonenumber()); // 查询楼层数据 SlStoreManagement slStoreManagement1 = slStoreManagementMapper.selectById(byId.getManagementId()); List<String> number = new ArrayList<>(); for (Integer i = 1; i <= slStoreManagement1.getStoreManagementNumber(); i++) { switch (i){ case 1: number.add("一层"); break; case 2: number.add("二层"); break; case 3: number.add("三层"); break; } } v.setNumber(number); QueryWrapper<SlGoodsShelf> eq = new QueryWrapper<SlGoodsShelf>() .eq("del_flag", "0") .eq("store_management_id", byId.getManagementId()) .eq("store_management_number",managementimgVolumeProductionZyQuery.getStoreManagementNumber()); List<SlGoodsShelf> slGoodsShelves = slGoodsShelfMapper.selectList(eq); v.setGoodsShelfList(slGoodsShelves); // 查询物资列表 LambdaQueryWrapper<SlVolumeProductionRk> wrapper2= Wrappers.lambdaQuery(); wrapper2.eq(SlVolumeProductionRk::getManagementId,byId.getBmanagementId()); if (managementimgVolumeProductionZyQuery.getShelfId() == null){ managementimgVolumeProductionZyQuery.setShelfId(slGoodsShelves.get(0).getId()); } if (managementimgVolumeProductionZyQuery.getStoreManagementNumber()==null){ wrapper2.eq(SlVolumeProductionRk::getStoreManagementNumber,1); } wrapper2.eq(SlVolumeProductionRk::getShelfId,managementimgVolumeProductionZyQuery.getShelfId()); wrapper2.eq( SlVolumeProductionRk::getDelFlag,0); wrapper2.orderByDesc(SlVolumeProductionRk::getCreateTime); List<SlVolumeProductionRk> page1 = slVolumeProductionRkMapper.selectList(wrapper2); Set<Long> goodsSkuIdList = null; goodsSkuIdList = page1.stream().map(SlVolumeProductionRk::getId) .collect(Collectors.toSet()); Page<SlVolumeProductionZy> page = new Page<>(managementimgVolumeProductionZyQuery.getPageCurr(), managementimgVolumeProductionZyQuery.getPageSize()); LambdaQueryWrapper< SlVolumeProductionZy> wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(SlVolumeProductionZy::getZyglId,managementimgVolumeProductionZyQuery.getVolumeProductionzyglId()); if (goodsSkuIdList.size()>0&&goodsSkuIdList!=null){ wrapper1.in(SlVolumeProductionZy::getScrkId,goodsSkuIdList); } wrapper1.eq( SlVolumeProductionZy::getDelFlag,0); wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime); Page<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectPage(page, wrapper1); PageDTO<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> SlGoodsShelfDTO = PageDTO.of(page2, com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO.class); List<com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO> list2 = SlGoodsShelfDTO.getList(); for(com.ruoyi.management.domain.dto.ManagementimgVolumeProductionZyVO list:list2) { SlVolumeProductionRk slVolumeProductionRk = slVolumeProductionRkMapper.selectById(list.getRkId()); list.setStoreManagementNumber(slVolumeProductionRk.getStoreManagementNumber()); list.setRkNumber(slVolumeProductionRk.getRkNumber()); list.setRepertoryZhai(slVolumeProductionRk.getRepertoryZhai()); SlGoodsMaterials slGoodsMaterials = slGoodsMaterialsMapper.selectById(slVolumeProductionRk.getMaterialsId()); list.setGoodsMaterialsName(slGoodsMaterials.getGoodsMaterialsName()); list.setIsConsume(slGoodsMaterials.getIsConsume()); SlGoodsShelf slGoodsShelf = slGoodsShelfMapper.selectById(slVolumeProductionRk.getShelfId()); list.setGoodsShelfName(slGoodsShelf.getGoodsShelfName()); if(list.getScrkId()!=null){ SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(list.getScrkId()); list.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber()); list.setRkNumber(slVolumeProductionRk1.getRkNumber()); } } v.setList(SlGoodsShelfDTO); return v; } @@ -217,21 +297,20 @@ wrapper1.orderByDesc(SlVolumeProductionZy::getCreateTime); List<SlVolumeProductionZy> page2 = slVolumeProductionZyMapper.selectList(wrapper1); for (SlVolumeProductionZy zy:page2){ SlVolumeProductionRk slVolumeProductionRk1 = slVolumeProductionRkMapper.selectById(zy.getRkId()); SlVolumeProductionRk slVolumeProductionRk=new SlVolumeProductionRk(); slVolumeProductionRk.setMaterialsId(slVolumeProductionRk1.getMaterialsId()); slVolumeProductionRk.setStoreManagementNumber(slVolumeProductionRk1.getStoreManagementNumber()); slVolumeProductionRk.setMaterialsId(zy.getMaterialsId()); slVolumeProductionRk.setStoreManagementNumber(zy.getStoreManagementNumber()); slVolumeProductionRk.setManagementId(byId.getBmanagementId()); slVolumeProductionRk.setRkNumber("CD-"+new Date().getTime()); slVolumeProductionRk.setRkNum(Long.valueOf(zy.getZyNum())); slVolumeProductionRk.setShelfId(slVolumeProductionRk1.getShelfId()); slVolumeProductionRk.setShelfId(zy.getShelfId()); slVolumeProductionRk.setRepertoryZhai(Long.valueOf(zy.getZyNum())); slVolumeProductionRk.setCreateTime(new Date()); slVolumeProductionRkMapper.insert(slVolumeProductionRk); zy.setScrkId(slVolumeProductionRk.getId()); slVolumeProductionZyMapper.updateById(zy); LambdaQueryWrapper<ManagementGoodsMaterials> wrapper2 = Wrappers.lambdaQuery(); wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,slVolumeProductionRk1.getMaterialsId()); wrapper2.eq(ManagementGoodsMaterials::getGoodsMaterialsId,zy.getMaterialsId()); wrapper2.eq(ManagementGoodsMaterials::getManagementId,byId.getBmanagementId()); wrapper2.eq(ManagementGoodsMaterials::getDelFlag, 0); ManagementGoodsMaterials managementGoodsMaterials = managementGoodsMaterialsMapper.selectOne(wrapper2); @@ -246,14 +325,12 @@ }else{ ManagementGoodsMaterials managementGoodsMaterials1=new ManagementGoodsMaterials(); managementGoodsMaterials1.setManagementId(byId.getBmanagementId()); managementGoodsMaterials1.setGoodsMaterialsId(slVolumeProductionRk1.getMaterialsId()); managementGoodsMaterials1.setGoodsMaterialsId(zy.getMaterialsId()); managementGoodsMaterials1.setRepertoryZhai(Long.valueOf(zy.getZyNum())); managementGoodsMaterials1.setRepertorySum(Long.valueOf(zy.getZyNum())); managementGoodsMaterials1.setCreateTime(new Date()); managementGoodsMaterialsMapper.insert(managementGoodsMaterials1); } } } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/QRCodeUtil.java
New file @@ -0,0 +1,50 @@ package com.ruoyi.management.util; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.MultiFormatWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import java.awt.image.BufferedImage; import java.util.Hashtable; /** * @author chengst * @date 2019/11/4 **/ public class QRCodeUtil { private final static String CHARSET = "utf-8"; private final static int QRSIZEE = 300; // 二维码颜色 private static final int BLACK = 0xFF000000; // 二维码颜色 private static final int WHITE = 0xFFFFFFFF; public static BufferedImage createImage(String content){ Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); hints.put(EncodeHintType.CHARACTER_SET, CHARSET); hints.put(EncodeHintType.MARGIN, 1); BitMatrix bitMatrix = null; try { bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRSIZEE, QRSIZEE,hints); }catch (Exception e){ e.printStackTrace(); } int width = bitMatrix.getWidth(); int height = bitMatrix.getHeight(); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { image.setRGB(x, y, bitMatrix.get(x, y) ? BLACK : WHITE); } } return image; } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/UUIDUtil.java
New file @@ -0,0 +1,101 @@ package com.ruoyi.management.util; import java.text.SimpleDateFormat; import java.util.Date; import java.util.UUID; /** * 定义生成随机码的工具类 */ public class UUIDUtil { private int i = 1; /** * 定义生成原生的UUID随机码 * @return */ public static String getNativeUUID(){ return UUID.randomUUID().toString(); } /** * 生成32位随机码 * @return */ public static String getRandomCode(){ return UUIDUtil.getNativeUUID().replaceAll("-", ""); } /** * 获取给定长度的随机码 * @param num * @return * @throws Exception */ public static String getRandomCode(Integer num) throws Exception{ String str = null; if(0 < num){ if(num % 32 > 0){ Integer s = num / 32; Integer l = num % 32; StringBuffer sb = new StringBuffer(); for(int i = 0; i < s; i++){ sb.append(UUIDUtil.getRandomCode()); } sb.append(UUIDUtil.getRandomCode().substring(0, l)); str = sb.toString(); }else if(num % 32 == 0){ Integer s = num / 32; StringBuffer sb = new StringBuffer(); for(int i = 0; i < s; i++){ sb.append(UUIDUtil.getRandomCode()); } str = sb.toString(); }else{ str = UUIDUtil.getRandomCode().substring(0, num); } }else{ throw new Exception("参数只能大于0"); } return str; } /** * 获取根据当前时间的字符串数据 * @return */ public synchronized static String getTimeStr(){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS"); return simpleDateFormat.format(new Date()); } /** * @Description: 获取数字随机码 * @Author pzb * @Date 2021/8/11 16:52 * @Param * @Return * @Exception */ public static String getNumberRandom(Integer num){ if(null == num){ num = 32; } StringBuffer sb = new StringBuffer(); for(int i = 0; i < num; i++){ sb.append(Double.valueOf(Math.random() * 10).intValue()); } return sb.toString(); } }