whycxzp
2025-04-24 0930471152e0f96d26666006a13ef712ef006a63
软件包管理
5个文件已添加
273 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/SoftwareController.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/SoftwareMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Software.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/SoftwareService.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/CommonUtil.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/SoftwareController.java
New file
@@ -0,0 +1,55 @@
package com.whyc.controller;
import com.google.gson.reflect.TypeToken;
import com.whyc.dto.Response;
import com.whyc.pojo.Software;
import com.whyc.service.SoftwareService;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping("software")
@Api(tags = "软件包")
public class SoftwareController {
    @Autowired
    private SoftwareService service;
    @ApiOperation("上传")
    @PostMapping("upload")
    public Response upload(@RequestParam MultipartFile file,@RequestParam String softwareStr) throws IOException {
        Software software = ActionUtil.getGson().fromJson(softwareStr,Software.class);
        return service.upload(file,software);
    }
    @GetMapping("getPage")
    public Response getPage(@RequestParam int pageNum,@RequestParam int pageSize,
                            @RequestParam(required = false) String snCode,
                            @RequestParam(required = false) String serialNumber,
                            @RequestParam(required = false) String materialCode){
        return service.getPage(pageNum,pageSize,snCode,serialNumber,materialCode);
    }
    @GetMapping("getSnCodeList")
    public Response getSnCodeList(){
        return service.getSnCodeList();
    }
    @GetMapping("getSerialNumberList")
    public Response getSerialNumberList(){
        return service.getSerialNumberList();
    }
    @GetMapping("getMaterialCodeList")
    public Response getMaterialCodeList(){
        return service.getMaterialCodeList();
    }
}
src/main/java/com/whyc/mapper/SoftwareMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.Software;
public interface SoftwareMapper extends CustomMapper<Software>{
}
src/main/java/com/whyc/pojo/Software.java
New file
@@ -0,0 +1,37 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.ToString;
import org.apache.ibatis.type.Alias;
import java.util.Date;
@Data
@ToString
@Alias("Software")
@TableName(schema = "db_battery_gwm",value = "tb_software")
public class Software {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    private String snCode;
    private String serialNumber;
    private String materialCode;
    private String fileName;
    private String fileUrl;
    private Integer uploadUserId;
    private String uploadUserName;
    private Date createTime;
}
src/main/java/com/whyc/service/SoftwareService.java
New file
@@ -0,0 +1,94 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.SoftwareMapper;
import com.whyc.pojo.Software;
import com.whyc.pojo.User;
import com.whyc.util.CommonUtil;
import com.whyc.util.UserUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SoftwareService {
    @Resource
    private SoftwareMapper mapper;
    public Response upload(MultipartFile file, Software software) throws IOException {
        User user = UserUtil.getUser();
        String fileName = file.getOriginalFilename();
        //上传路径定义和http路径定义
        String rootFile = CommonUtil.getRootFile();
        String softwareDir = rootFile + "software";
        String softwareHttpUrl = softwareDir.substring(softwareDir.lastIndexOf("battery_gwm_file"+ File.separator + "software"));
        File softwareDirFile = new File(softwareDir);
        if(!softwareDirFile.exists()){
            softwareDirFile.mkdirs();
        }
        //上传
        file.transferTo(new File(softwareDir+File.separator+fileName));
        //保存
        Date now = new Date();
        software.setCreateTime(now);
        software.setUploadUserId(user.getId());
        software.setUploadUserName(user.getName());
        software.setFileUrl(softwareHttpUrl+File.separator+fileName);
        software.setFileName(fileName);
        mapper.insert(software);
        return new Response().setII(1,"上传完成");
    }
    public Response getPage(int pageNum, int pageSize, String snCode, String serialNumber, String materialCode) {
        PageHelper.startPage(pageNum, pageSize);
        QueryWrapper<Software> query = Wrappers.query();
        if (snCode != null && !snCode.equals("")) {
            query.eq("sn_code", snCode);
        }
        if (serialNumber != null && !serialNumber.equals("")) {
            query.eq("serial_number", serialNumber);
        }
        if (materialCode != null && !materialCode.equals("")) {
            query.eq("material_code", materialCode);
        }
        List<Software> list = mapper.selectList(query);
        PageInfo<Software> pageInfo = new PageInfo<>(list);
        return new Response().set(1, pageInfo);
    }
    public Response getSnCodeList() {
        QueryWrapper<Software> query = Wrappers.query();
        query.select("sn_code");
        List<String> snCodeList = mapper.selectList(query).stream().map(Software::getSnCode).collect(Collectors.toList());
        return new Response().set(1, snCodeList);
    }
    public Response getSerialNumberList() {
        QueryWrapper<Software> query = Wrappers.query();
        query.select("serial_number");
        List<String> serialNumberList = mapper.selectList(query).stream().map(Software::getSerialNumber).collect(Collectors.toList());
        return new Response().set(1, serialNumberList);
    }
    public Response getMaterialCodeList() {
        QueryWrapper<Software> query = Wrappers.query();
        query.select("material_code");
        List<String> materialCodeList = mapper.selectList(query).stream().map(Software::getMaterialCode).collect(Collectors.toList());
        return new Response().set(1, materialCodeList);
    }
}
src/main/java/com/whyc/util/CommonUtil.java
New file
@@ -0,0 +1,81 @@
package com.whyc.util;
import com.whyc.constant.YamlProperties;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.stereotype.Component;
import java.io.File;
/**
 * 通用工具列
 */
@Component
public class CommonUtil {
    public static String classesPath(){
        ApplicationHome applicationHome = new ApplicationHome(CommonUtil.class);
        File jarFile = applicationHome.getDir();
        return jarFile.toString();
    }
    /**
     * 获取存放文件的根路径
     * @return 返回存放文件的根路径
     */
    public static String getRootFile(){
        ApplicationHome applicationHome = new ApplicationHome(CommonUtil.class);
        File jarFile = applicationHome.getDir();
        String baseDirPath;
        if(YamlProperties.runModel == 1) {
            //开发路径
            baseDirPath = jarFile.getParentFile().toString()+File.separator+"battery_gwm_file"+File.separator;
        }else {
            //打包路径
            baseDirPath = jarFile.toString()+File.separator+"battery_gwm_file"+File.separator;
        }
        return baseDirPath;
    }
    /**
     * 获取项目所在文件夹路径
     * @return 获取项目所在文件夹路径
     */
    public static String getProjectDir(){
        ApplicationHome applicationHome = new ApplicationHome(CommonUtil.class);
        File jarFile = applicationHome.getDir();
        String baseDirPath;
        if(YamlProperties.runModel == 1) {
            //开发路径
            baseDirPath = jarFile.getParentFile().toString();
        }else {
            //打包路径
            baseDirPath = jarFile.toString();
        }
        return baseDirPath;
    }
    /**
     * 物料编码自动填充补齐
     * @param code
     * @return
     */
    public static String codeAutoFill(String code){
        int length = code.length();
        if (length == 9) {
            code = "0" + code;
        } else if (length < 9) {
            int centerZeroNum = 10 - length - 1;
            StringBuilder centerZeroStr = new StringBuilder();
            for (int j = 0; j < centerZeroNum; j++) {
                centerZeroStr.append("0");
            }
            String strFront = code.substring(0, 3);
            String strBehind = code.substring(3);
            code = "0" + strFront + centerZeroStr + strBehind;
        }
        return code;
    }
}