whyclxw
2025-03-13 aca4324415aba0e5462ae6462ca8d99ca282b71c
src/main/java/com/whyc/service/SoftwareService.java
@@ -6,9 +6,13 @@
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.constant.UserOperation;
import com.whyc.dto.CodeFilesDto;
import com.whyc.dto.FileDirPath;
import com.whyc.dto.Response;
import com.whyc.dto.SoftDto;
import com.whyc.mapper.SoftcodeMapper;
import com.whyc.mapper.SoftwareMapper;
import com.whyc.pojo.Softcode;
import com.whyc.pojo.Software;
import com.whyc.util.ActionUtil;
import com.whyc.util.CommonUtil;
@@ -29,6 +33,11 @@
import java.io.*;
import java.net.URLEncoder;
import java.text.ParseException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
@@ -38,6 +47,9 @@
public class SoftwareService {
    @Autowired(required = false)
    private SoftwareMapper mapper;
    @Autowired(required = false)
    private SoftcodeMapper codeMapper;
    @Autowired
    private DocLogService logService;
@@ -134,9 +146,24 @@
    }
    //查询软件列表的信息
    public Response getAllSoftware(Integer lockFlag, String fileName, String applyMaterialCode, String applyModel, String owner, String boardNumber, int pageCurr, int pageSize) {
    public Response getAllSoftware(Integer lockFlag, String fileName, String applyMaterialCode, String applyModel, String owner, String boardNumber
            ,String version, int pageCurr, int pageSize) {
        PageHelper.startPage(pageCurr,pageSize);
        List list=mapper.getFileUrl(lockFlag,fileName,applyMaterialCode,applyModel,owner,boardNumber);
        List<SoftDto> list=mapper.getFileUrl(lockFlag,fileName,applyMaterialCode,applyModel,owner,boardNumber,version);
        //根据软件名称查询是否存在源码(0:否,1:存在)
        for (SoftDto dto:list) {
            QueryWrapper wrapper=new QueryWrapper();
            wrapper.eq("file_name",dto.getFileName());
            wrapper.last("limit 1");
            Softcode code=codeMapper.selectOne(wrapper);
            if(code!=null){
                dto.setCodeFlag(1);
                dto.setCodeName(code.getCodeName());
            }else{
                dto.setCodeFlag(0);
                dto.setCodeName("");
            }
        }
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,list.size()>0,pageInfo,"软件信息返回");
    }
@@ -329,4 +356,54 @@
        int flag=mapper.delete(wrapper);
        return new Response().set(1,flag>0,"件id实现软件删除");
    }
    //查询日期三天内的所有上传软件
    public Response getFileNameByCreateTime(String createTime) {
        //获取endtime的三天前的时间
        LocalDate createDay= LocalDate.parse(createTime);
        LocalDateTime end = createDay.atTime(LocalTime.MAX);
        Date endtime=Date.from(end.atZone(ZoneId.systemDefault()).toInstant());
        //获取createTime的三天前的时间
        LocalDate threeDaysAgo = createDay.minusDays(3);
        LocalDateTime startOfDay = threeDaysAgo.atStartOfDay();
        Date starttime=Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.select("distinct file_name","type","version","based_version","owner","filing_date","create_time");
        wrapper.ge("create_time",starttime);
        wrapper.le("create_time",endtime);
        wrapper.eq("owner",ActionUtil.getUser().getName());
        List<Software> list=mapper.selectList(wrapper);
        //获取list中fileName的集合
        //List<String> nameList = list.stream().map(Software::getFileName).collect(Collectors.toList());
        return new Response().setII(1,list!=null,list,"查询日期三天内的所有上传软件");
    }
    //查询当前owner的未上传源码记录
    public Response getFileNameByOwnerWithCode(String owner) {
        List<Software> list=mapper.getFileNameByOwnerWithCode(owner);
        return new Response().setII(1,list!=null,list,"查询当前owner的未上传源码记录");
    }
    //批量添加源码包
    public Response setCodeByFileNmaes(CodeFilesDto dto) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("num",dto.getNum());
        wrapper.last("limit 1");
        Softcode softcode=codeMapper.selectOne(wrapper);
        if(softcode==null){
            return new Response().set(1,false,"源码包不存在");
        }else{
            //获取list中fileName的集合
            List<String> nameList = dto.getFileNames();
            List<Softcode> softcodeList=new ArrayList<>();
            for (String fileName : nameList) {
                Softcode s=new Softcode();
                s.setFileName(fileName);
                s.setCodeUrl(softcode.getCodeUrl());
                s.setCodeName(softcode.getCodeName());
                s.setCreateTime(new Date());
            }
            codeMapper.insertBatchSomeColumn(softcodeList);
            return new Response().set(1,true,"批量添加源码包");
        }
    }
}