| | |
| | | package com.whyc.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | 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.dto.SopDto; |
| | |
| | | import com.whyc.pojo.SOP; |
| | | import com.whyc.pojo.SOPFileType; |
| | | import com.whyc.pojo.SOPProduct; |
| | | import com.whyc.pojo.Software; |
| | | import com.whyc.util.ActionUtil; |
| | | import com.whyc.util.CommonUtil; |
| | | import com.whyc.util.DateUtil; |
| | | import com.whyc.util.FileUtil; |
| | | import com.whyc.util.*; |
| | | import org.apache.poi.openxml4j.exceptions.InvalidFormatException; |
| | | import org.apache.poi.ss.usermodel.Cell; |
| | | import org.apache.poi.ss.usermodel.Sheet; |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.FileCopyUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.text.ParseException; |
| | |
| | | Sheet sheet = workbook.getSheetAt(0); |
| | | int lastRowNum = sheet.getLastRowNum(); |
| | | //文件名 |
| | | sop.setFileName(sheet.getRow(2).getCell(2).getStringCellValue()); |
| | | String fileName = sheet.getRow(2).getCell(2).getStringCellValue().trim(); |
| | | sop.setFileName(fileName); |
| | | //下面的row是动态的,因为文件类型的行数是动态拓展的 |
| | | //锚点:文件版本 |
| | | int fileVersionIndex = 0; |
| | |
| | | sop.setFileTypeList(fileTypeList); |
| | | |
| | | sop.setFileType(fileTypeSb.toString()); |
| | | |
| | | sop.setFileVersion(sheet.getRow(fileVersionIndex).getCell(2).getStringCellValue()); |
| | | //校验文件版本是否已经存在 |
| | | String fileVersion = sheet.getRow(fileVersionIndex).getCell(2).getStringCellValue().trim(); |
| | | QueryWrapper<SOP> query = Wrappers.query(); |
| | | query.select("file_version").eq("file_name",fileName); |
| | | List<SOP> sopListExists = mapper.selectList(query); |
| | | for (int i = 0; i < sopListExists.size(); i++) { |
| | | SOP sopExists = sopListExists.get(i); |
| | | if(sopExists.getFileVersion().equals(fileVersion)){ |
| | | return new Response().set(1,false,"文件版本已存在,请确认SOP版本是否正确!"); |
| | | } |
| | | } |
| | | sop.setFileVersion(fileVersion); |
| | | sop.setFileRelatedVersion(sheet.getRow(fileVersionIndex).getCell(7).getStringCellValue()); |
| | | |
| | | sop.setEditor(sheet.getRow(fileVersionIndex+1).getCell(2).getStringCellValue()); |
| | |
| | | sop.setReleaseNotes(releaseNotes); |
| | | |
| | | //第10行开始,倒数第2行截止 |
| | | int currentFlag=0; //通用表示(0:非通用,1:通用) |
| | | for (int i = fileSuitableProductIndex+1; i < lastRowNum; i++) { |
| | | SOPProduct product = new SOPProduct(); |
| | | //取第3列,第5列 |
| | |
| | | }else{ |
| | | product.setModel(model); |
| | | } |
| | | if((code.equals("") && model.equals(""))){ |
| | | sop.setCurrentFlag(1);//通用 |
| | | if((!code.equals("") && !model.equals(""))){ |
| | | currentFlag+=1; |
| | | } |
| | | sopProductList.add(product); |
| | | } |
| | | |
| | | sop.setCurrentFlag(currentFlag>0?0:1);//通用 |
| | | //存储excel文件,/sop_submit/xxx_202306250506.xlsx(改,不存粗excel了) |
| | | /*String originalFilename = multipartFile.getOriginalFilename(); |
| | | String[] fileNameSplit = originalFilename.split("\\."); |
| | |
| | | |
| | | @Transactional |
| | | public Response add(SOP sop,MultipartFile multipartFile) throws IOException { |
| | | //是否存在旧版本,存在则把所有旧版本状态更新为0 |
| | | QueryWrapper<SOP> query = Wrappers.query(); |
| | | query.eq("file_name",sop.getFileName()).eq("status",1); |
| | | List<SOP> sopListExists = mapper.selectList(query); |
| | | if(sopListExists.size()>0){ |
| | | for (SOP sopExists : sopListExists) { |
| | | sopExists.setStatus(0); |
| | | mapper.updateById(sopExists); |
| | | } |
| | | } |
| | | |
| | | List<SOPProduct> sopProductList = sop.getSopProductList(); |
| | | String originalFilename = multipartFile.getOriginalFilename(); |
| | | String[] fileNameSplit = originalFilename.split("\\."); |
| | |
| | | //String fileUrlTemp = sop.getFileUrl(); |
| | | //fileUrlTemp = fileUrlTemp.replace("sop_submit", "sop"); |
| | | sop.setFileUrl(fileUrlTemp); |
| | | sop.setStatus(1); |
| | | mapper.insert(sop); |
| | | if(sopProductList.size()>0) { |
| | | sopProductList.forEach(product -> product.setSopId(sop.getId())); |
| | |
| | | |
| | | //查询sop信息 |
| | | public Response getSopInfo(List<SopDto> sqlList, String code, String model,int pageCurr,int pageSize) { |
| | | PageHelper.startPage(pageCurr,pageSize); |
| | | String sqlStr=" "; |
| | | if(sqlList!=null&&sqlList.size()>0){ |
| | | for (SopDto dto:sqlList) { |
| | |
| | | } |
| | | } |
| | | List<SOP> list=mapper.getSopInfo(sqlStr,code,model); |
| | | PageInfo pageInfo=new PageInfo(list); |
| | | PageInfo pageInfo= PageInfoUtils.list2PageInfo(list,pageCurr,pageSize); |
| | | |
| | | return new Response().setII(1,list.size()>0,pageInfo,"查询sop信息"); |
| | | } |
| | | |
| | | //更新sop说明(不含锁信息) |
| | | @Transactional |
| | | public Response updateSop(SOP sop) { |
| | |
| | | return new Response().setII(1,"更新sop说明完成"); |
| | | } |
| | | |
| | | public Response updateStatusById(int id, int status) { |
| | | UpdateWrapper<SOP> update = Wrappers.update(); |
| | | update.set("status",status).eq("id",id); |
| | | mapper.update(null,update); |
| | | return new Response().setII(1,"设置完成"); |
| | | } |
| | | } |