ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/OssController.java
New file @@ -0,0 +1,80 @@ package com.ruoyi.management.controller; import com.ruoyi.management.util.ObsUploadUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @RestController @RequestMapping("/base/oss") @Api(value = "文件上传", tags = "文件上传", description = "文件上传") public class OssController { private static final String endpoint = "obs.cn-north-4.myhuaweicloud.com"; private static final String accessKeyId = "DRJFJRVQ9KVLQUSJUROI"; private static final String accessKeySecret = "3zpPkULh0a8CTTYjKL4f7szQZECkvVol4SwNab0f"; private static final String bucketName = "jkjianshen"; @PostMapping("/upload") @ApiOperation(value = "文件上传") public String upload(@RequestParam("file") MultipartFile file) throws IOException { String s = ObsUploadUtil.obsUpload(file); return s; } // @PostMapping("/uploadVideo") // @ApiOperation(value = "视频上传",tags = "文件上传") // public String uploadVideo(@RequestParam("file") MultipartFile file) throws Exception { // // 获取文件名 // String fileName = file.getOriginalFilename(); // // 构建目标文件路径 // String filePath = "/usr/local/temp" + fileName; //// String filePath = "C:/temp/" + fileName; // // 创建目标文件对象 // File targetFile = new File(filePath); // // 将 MultipartFile 内容写入目标文件 // try (FileOutputStream fos = new FileOutputStream(targetFile)) { // fos.write(file.getBytes()); // } // String s = UploadVideoUtil.endUpload(targetFile.toString(), UUIDUtil.getRandomCode(5)+fileName); // // 创建要删除的文件对象 // File fileToDelete = new File(targetFile.toString()); // // 检查文件是否存在,并删除文件 // if (fileToDelete.exists()) { // fileToDelete.delete(); // } // return s; // } // @PostMapping("/upload") // @ApiOperation(value = "文件上传",tags = "文件上传") // public ResponseEntity<String> upload(@RequestParam("file") MultipartFile file) throws IOException { // // 创建 OSSClient 实例 // OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); // // // // 创建 PutObjectRequest 对象 // PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, file.getOriginalFilename(), file.getInputStream()); // // ObjectMetadata metadata = new ObjectMetadata(); // // 取消文件缓存,文件每次都会从OSS服务器获取 // metadata.setHeader("Cache-Control", "no-cache"); // metadata.setHeader("Expires", "0"); // // // // 上传文件 // PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest); // // // 关闭 OSSClient 实例 // ossClient.shutdown(); // // String fileUrl = "https://" + bucketName + "." + endpoint + "/" + file.getOriginalFilename(); // return ResponseEntity.ok(fileUrl); // } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlGoodsShelfController.java
@@ -40,12 +40,6 @@ return R.ok(slGoodsShelfService.getGoodsShelfList(slGoodsShelfQuery)); } @PostMapping("/getBGoodsShelfList") @ApiOperation(value = "分页不获货架表管理") public R<List<SlGoodsShelf>> getBGoodsShelfList(@RequestBody SlGoodsShelfQuery slGoodsShelfQuery) { return R.ok(slGoodsShelfService.getBGoodsShelfList(slGoodsShelfQuery)); } @PostMapping("/addSlGoodsShelf") @ApiOperation(value = "添加/修改货架管理") public R addSlGoodsShelf(@RequestBody SlGoodsShelfDTO slGoodsShelfDTO) { ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlStoreManagementImgController.java
@@ -40,7 +40,7 @@ } @PostMapping("/getStoreManagementimgOne") @ApiOperation(value = "獲取仓库管理平面圖") @ApiOperation(value = "获取仓库管理平面圖") public R<SlStoreManagementImg> getStoreManagementimgOne(@RequestBody StoreManagementimgQuery storeManagementimgQuery) { return R.ok(slStoreManagementImgService.getStoreManagementimgOne(storeManagementimgQuery)); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/controller/SlVolumeProductionRkController.java
@@ -50,8 +50,8 @@ @PostMapping("/uplSlVolumeProductionRk") @ApiOperation(value = "修改入库批次管理") public R uplSlVolumeProductionRk(@RequestBody List<SlVolumeProductionRkDTO> SlVolumeProductionRkDTO) { slVolumeProductionRkService.uplSlVolumeProductionRk(SlVolumeProductionRkDTO); public R uplSlVolumeProductionRk(@RequestBody UpdateRKDTO slVolumeProductionRkDTOS) { slVolumeProductionRkService.uplSlVolumeProductionRk(slVolumeProductionRkDTOS.getSlVolumeProductionRkDTOS()); return R.ok(); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/SlAudit.java
@@ -7,6 +7,7 @@ import java.util.Date; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.Getter; import lombok.Setter; @@ -18,8 +19,7 @@ * @author hjl * @since 2024-06-25 */ @Getter @Setter @Data @TableName("sl_audit") @ApiModel(value = "SlAudit对象", description = "审核记录") public class SlAudit { ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/dto/UpdateRKDTO.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 UpdateRKDTO { private List<SlVolumeProductionRkDTO> slVolumeProductionRkDTOS; } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/domain/vo/SlAuditVO.java
@@ -1,5 +1,6 @@ package com.ruoyi.management.domain.vo; import cn.hutool.core.date.DateTime; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -15,6 +16,9 @@ @ApiModelProperty("发起人电话") private String sysPhone; @ApiModelProperty("发起时间") private DateTime createTime; @ApiModelProperty("入库管理id") private Long rkId; @@ -33,6 +37,8 @@ @ApiModelProperty("1 待管理员审核,2 待主管审核,3 待主任审核, 4已完成, 5,已拒绝") private Integer auditStatus; @ApiModelProperty("1 待管理员审核,2 待主管审核,3 待主任审核, 4已完成, 5,已拒绝") private Integer state; @ApiModelProperty("申请人id") ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/SlGoodsShelfService.java
@@ -25,8 +25,6 @@ public interface SlGoodsShelfService extends IService<SlGoodsShelf> { PageDTO<SlGoodsShelfVO> getGoodsShelfList(@RequestBody SlGoodsShelfQuery slGoodsShelfQuery); List<SlGoodsShelf> getBGoodsShelfList(@RequestBody SlGoodsShelfQuery slGoodsShelfQuery); void addSlGoodsShelf(@RequestBody SlGoodsShelfDTO slGoodsShelfDTO); SlGoodsShelfVO getSlGoodsShelfOne( Long id); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/HomeStatisticsServiceImpl.java
@@ -180,6 +180,9 @@ // 处理键和值 Long a=0L; for (homeVO vo : value) { if (vo.getGoodsMaterialsNum()== null){ vo.setGoodsMaterialsNum(0L); } a=a+vo.getGoodsMaterialsNum(); } goodsMaterialsNmVO1.setGoodsMaterialsNum(a); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlAuditServiceImpl.java
@@ -20,10 +20,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.*; import java.util.stream.Collectors; /** @@ -76,34 +73,26 @@ goodsSkuIdList1.add(0L); wrapper.in(SlAudit::getSysId,goodsSkuIdList1); } if (!data.getUserType().equals(00)){ if (!data.getUserType().equals("00")){ wrapper.in(SlAudit::getShenhId,userid); } List state=new ArrayList<>(); state.add(1); state.add(2); state.add(3); state.add(4); state.add(5); wrapper.eq(SlAudit::getState,state); wrapper.eq(SlAudit::getType,auditRecordListQuery.getType()); wrapper.eq( SlAudit::getDelFlag,0); wrapper.eq(SlAudit::getDelFlag,0); wrapper.orderByDesc(SlAudit::getCreateTime); Page<SlAudit> page1 = this.page(page, wrapper); PageDTO<SlAuditVO> slEquipmentVOPageDTO = PageDTO.of(page1, SlAuditVO.class); List<SlAuditVO> list = slEquipmentVOPageDTO.getList(); for (SlAuditVO sl:list){ SlAuditVO slAuditVO=new SlAuditVO(); SysUser data2 = sysUserClient.getSysUser(sl.getSysId()).getData(); slAuditVO.setSysPhone(data2.getPhonenumber()); slAuditVO.setSysName(data2.getNickName()); sl.setSysPhone(data2.getPhonenumber()); sl.setSysName(data2.getNickName()); SlStoreManagement byId = slStoreManagementService.getById(sl.getManagementId()); slAuditVO.setStoreManagementName(byId.getStoreManagementName()); slAuditVO.setStoreManagementNo(byId.getStoreManagementNo()); sl.setStoreManagementName(byId.getStoreManagementName()); sl.setStoreManagementNo(byId.getStoreManagementNo()); if (sl.getZymanagementId()!=null){ SlStoreManagement byId1 = slStoreManagementService.getById(sl.getZymanagementId()); slAuditVO.setBstoreManagementName(byId1.getStoreManagementName()); slAuditVO.setBstoreManagementNo(byId1.getStoreManagementNo()); sl.setBstoreManagementName(byId1.getStoreManagementName()); sl.setBstoreManagementNo(byId1.getStoreManagementNo()); } } return slEquipmentVOPageDTO; @@ -127,11 +116,10 @@ } this.removeById(page1); } SlAudit slAudit=new SlAudit(); slAudit.setType(slAuditDTO.getType()); slAudit.setState(1); slAudit.setCreateTime(new Date()); slAudit.setRkId(slAuditDTO.getRkId()); if (slAudit.getType()==1){ SlVolumeProductionRkgl slVolumeProductionRkgl = slVolumeProductionRkglMapper.selectById(slAuditDTO.getRkId()); @@ -152,14 +140,14 @@ slAuditRecord1.setShenhId(byId.getCompetentId()); slAuditRecord1.setType(2); slAuditRecord1.setState(1); slAuditRecordMapper.insert(slAuditRecord); slAuditRecordMapper.insert(slAuditRecord1); SlAuditRecord slAuditRecord2=new SlAuditRecord(); slAuditRecord2.setAuditId(slAudit.getId()); slAuditRecord2.setShenhId(byId.getDirectorId()); slAuditRecord2.setType(3); slAuditRecord2.setState(1); slAuditRecordMapper.insert(slAuditRecord); slAuditRecordMapper.insert(slAuditRecord2); } if (slAudit.getType()==2){ @@ -181,14 +169,14 @@ slAuditRecord1.setShenhId(byId.getCompetentId()); slAuditRecord1.setType(2); slAuditRecord1.setState(1); slAuditRecordMapper.insert(slAuditRecord); slAuditRecordMapper.insert(slAuditRecord1); SlAuditRecord slAuditRecord2=new SlAuditRecord(); slAuditRecord2.setAuditId(slAudit.getId()); slAuditRecord2.setShenhId(byId.getDirectorId()); slAuditRecord2.setType(3); slAuditRecord2.setState(1); slAuditRecordMapper.insert(slAuditRecord); slAuditRecordMapper.insert(slAuditRecord2); } if (slAudit.getType()==3){ SlVolumeProductionZygl slVolumeProductionZygl = slVolumeProductionZyglMapper.selectById(slAuditDTO.getRkId()); @@ -210,14 +198,14 @@ slAuditRecord1.setShenhId(byId.getCompetentId()); slAuditRecord1.setType(2); slAuditRecord1.setState(1); slAuditRecordMapper.insert(slAuditRecord); slAuditRecordMapper.insert(slAuditRecord1); SlAuditRecord slAuditRecord2=new SlAuditRecord(); slAuditRecord2.setAuditId(slAudit.getId()); slAuditRecord2.setShenhId(byId.getDirectorId()); slAuditRecord2.setType(3); slAuditRecord2.setState(1); slAuditRecordMapper.insert(slAuditRecord); slAuditRecordMapper.insert(slAuditRecord2); } } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsMaterialsServiceImpl.java
@@ -85,8 +85,8 @@ public PageDTO<SlGoodsMaterialsVO> getGoodSmaterialsList(SlGoodsMaterialsQuery slGoodsMaterialsQuery) { Page<SlGoodsMaterials> page = new Page<>(slGoodsMaterialsQuery.getPageCurr(), slGoodsMaterialsQuery.getPageSize()); LambdaQueryWrapper< SlGoodsMaterials> wrapper= Wrappers.lambdaQuery(); if (slGoodsMaterialsQuery.getGoodsMaterialsName()!=null&&slGoodsMaterialsQuery.getGoodsMaterialsName()!=""){ wrapper.eq(SlGoodsMaterials::getGoodsMaterialsName,slGoodsMaterialsQuery.getGoodsMaterialsName()); if (slGoodsMaterialsQuery.getGoodsMaterialsName()!=null&& !slGoodsMaterialsQuery.getGoodsMaterialsName().isEmpty()){ wrapper.like(SlGoodsMaterials::getGoodsMaterialsName,slGoodsMaterialsQuery.getGoodsMaterialsName()); } if (slGoodsMaterialsQuery.getIsConsume()!=0){ wrapper.eq(SlGoodsMaterials::getIsConsume,slGoodsMaterialsQuery.getIsConsume()); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlGoodsShelfServiceImpl.java
@@ -103,44 +103,6 @@ } @Override public List<SlGoodsShelf> getBGoodsShelfList(SlGoodsShelfQuery slGoodsShelfQuery) { Long userid = SecurityUtils.getUserId(); SysUser data = sysUserClient.getSysUser(userid).getData(); LambdaQueryWrapper<SlStoreManagement> wrapper= Wrappers.lambdaQuery(); if(slGoodsShelfQuery.getStoreManagementName()!=null&&slGoodsShelfQuery.getStoreManagementName()!=""){ wrapper.eq(SlStoreManagement::getStoreManagementName,slGoodsShelfQuery.getStoreManagementName()); } if (slGoodsShelfQuery.getStoreManagementNumber()!=0 && slGoodsShelfQuery.getStoreManagementNumber()!=null){ wrapper.eq(SlStoreManagement::getStoreManagementGrade,slGoodsShelfQuery.getStoreManagementNumber()); } wrapper.eq(SlStoreManagement::getStoreManagementGrade,data.getRoleType()); wrapper.eq(SlStoreManagement::getDelFlag,0); List<SlStoreManagement> page1 = SlStoreManagementService.list(wrapper); Set<Long> slStoreManagementIdList = null; slStoreManagementIdList = page1.stream().map(SlStoreManagement::getId) .collect(Collectors.toSet()); LambdaQueryWrapper< SlGoodsShelf> wrapper1= Wrappers.lambdaQuery(); wrapper1.like(SlGoodsShelf::getGoodsShelfName,slGoodsShelfQuery.getGoodsShelfName()); if(slGoodsShelfQuery.getStoreManagementName()!=null&&slGoodsShelfQuery.getStoreManagementName()!="") { if (slStoreManagementIdList.size() > 0) { wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList); } else { slStoreManagementIdList=new HashSet<>(); slStoreManagementIdList.add(0L); wrapper1.in(SlGoodsShelf::getStoreManagementId, slStoreManagementIdList); } } wrapper1.eq( SlGoodsShelf::getDelFlag,0); wrapper1.orderByDesc(SlGoodsShelf::getCreateTime); List<SlGoodsShelf> page2 = this.list(wrapper1); return page2; } @Override public void addSlGoodsShelf(SlGoodsShelfDTO slGoodsShelfDTO) { if (slGoodsShelfDTO.getId()==null){ SlGoodsShelf slGoodsShelf=new SlGoodsShelf(); ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/service/impl/SlVolumeProductionRkglServiceImpl.java
@@ -108,10 +108,10 @@ .collect(Collectors.toSet()); LambdaQueryWrapper< SlVolumeProductionRkgl> wrapper1= Wrappers.lambdaQuery(); if (getVolumeProductionRkQuery.getPresentState()!=0&&getVolumeProductionRkQuery.getPresentState()!=null){ if (getVolumeProductionRkQuery.getPresentState()!=null && getVolumeProductionRkQuery.getPresentState()!=0){ wrapper1.eq(SlVolumeProductionRkgl::getPresentState,getVolumeProductionRkQuery.getPresentState()); } if (getVolumeProductionRkQuery.getAuditStatus()!=0&&getVolumeProductionRkQuery.getAuditStatus()!=null) { if (getVolumeProductionRkQuery.getAuditStatus()!=null && getVolumeProductionRkQuery.getAuditStatus()!=0) { wrapper1.eq(SlVolumeProductionRkgl::getAuditStatus, getVolumeProductionRkQuery.getAuditStatus()); } if (goodsSkuIdList.size()>0){ @@ -158,6 +158,8 @@ this.save(slVolumeProductionRkgl); }else{ slVolumeProductionRkgl = this.getById(volumeProductionRkglDTO.getId()); slVolumeProductionRkgl.setPresentState(1); slVolumeProductionRkgl.setAuditStatus(1); if (volumeProductionRkglDTO.getSource()!=null){ slVolumeProductionRkgl.setSource(volumeProductionRkglDTO.getSource()); } ruoyi-modules/ruoyi-management/src/main/java/com/ruoyi/management/util/ObsUploadUtil.java
New file @@ -0,0 +1,78 @@ package com.ruoyi.management.util; import com.obs.services.ObsClient; import com.obs.services.model.ObjectMetadata; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.util.UUID; public class ObsUploadUtil { public static String endPoint = "obs.cn-southwest-2.myhuaweicloud.com"; public static String accessKeyId = "LP9N1TLAYN8ERS1PVIYK"; public static String accessKeySecret = "bV55lFHi1cG0SYBvnab8yIgDX6etKRSLh5j1gkPR"; public static String bucketName = "haitunyingyu"; public static String oss_domain = "https://haitunyingyu.obs.cn-southwest-2.myhuaweicloud.com/"; // 创建ObsClient实例 public static ObsClient obsClient = new ObsClient(accessKeyId, accessKeySecret, endPoint); public static String obsUpload(MultipartFile file) throws IOException{ //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile; String fileName = ""; if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){ InputStream content = file.getInputStream();//获得指定文件的输入流 ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata meta.setContentLength(file.getSize()); // 必须设置ContentLength String originalFilename = file.getOriginalFilename(); if (originalFilename.contains("apk")){ fileName = "bf2fe5c5499341e5bc0d56c0c7d5fb2e.apk"; System.err.println("apk"); }else{ fileName = UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length()); } obsClient.putObject(bucketName,"admin/"+fileName,content,meta);// 上传Object. if(fileName != null && !"".equals(fileName)){ System.out.println(fileName); fileName = oss_domain+"admin/"+fileName; } } return fileName; } /** * 删除某个Object * * @param bucketUrl * @return */ public static boolean deleteObject(String bucketUrl) { try { bucketUrl=bucketUrl.replace(oss_domain+"web",""); // 删除Object. obsClient.deleteObject(bucketName, bucketUrl); } catch (Exception e) { e.printStackTrace(); return false; } finally { //ossClient.shutdown(); } return true; } // public static void createBucket(String bucketName) // { // //初始化 OSSClient //// ossClient = new OssClient(endPoint, accessKeyId, accessKeySecret); // // // 新建一个Bucket // Bucket bucket = ossClient.createBucket(bucketName); // System.out.println(bucket.getName()); // System.out.println(bucket.getCreationDate()); // } // // public static void main(String[] args) { // OssUploadUtil.createBucket("ssfdfsd"); // } } ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -24,9 +24,16 @@ <result property="updateTime" column="update_time" /> <result property="contacts" column="contacts" /> <result property="remark" column="remark" /> <result property="roleType" column="roleType" /> <result property="objectId" column="objectId" /> <result property="provinceName" column="province_name" /> <result property="provinceCode" column="province_code" /> <result property="cityName" column="city_name" /> <result property="cityCode" column="city_code" /> <result property="countyName" column="county_name" /> <result property="countyCode" column="county_code" /> <result property="townName" column="town_name" /> <result property="townCode" column="town_code" /> <result property="userType" column="user_type"/> <result property="roleType" column="roleType"/> <association property="dept" column="dept_id" javaType="com.ruoyi.system.api.domain.SysDept" resultMap="deptResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> </resultMap> @@ -52,14 +59,22 @@ <sql id="selectUserVo"> select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_id, d.dept_name,u.contacts,u.province_name,u.province_code,u.city_name,u.city_code,u.county_name,u.county_code,u.town_name,u.town_code, d.dept_id, d.dept_name,u.contacts, u.province_name , u.province_code , u.city_name , u.city_code , u.county_name , u.county_code , u.town_name , u.town_code , r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status, u.roleType as roleType, u.roleType, u.objectId AS objectId, u.user_type from sys_user u