From cf9a5039e6db9d1d5963e3fe1a37d00169ec2ef7 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期三, 25 六月 2025 11:18:22 +0800 Subject: [PATCH] 验收报告修改 --- src/main/java/com/whyc/service/WorksheetMainService.java | 671 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 652 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/whyc/service/WorksheetMainService.java b/src/main/java/com/whyc/service/WorksheetMainService.java index f19e370..246689d 100644 --- a/src/main/java/com/whyc/service/WorksheetMainService.java +++ b/src/main/java/com/whyc/service/WorksheetMainService.java @@ -4,21 +4,33 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.whyc.config.EnumWorksheetType; +import com.whyc.dto.MailDTO; import com.whyc.dto.Response; +import com.whyc.dto.WorksheetMainDTO; +import com.whyc.dto.WorksheetMainDTO2; import com.whyc.mapper.DocUserMapper; import com.whyc.mapper.WorksheetLinkMapper; import com.whyc.mapper.WorksheetMainMapper; -import com.whyc.pojo.DocUser; -import com.whyc.pojo.ProductBomApproving; -import com.whyc.pojo.WorksheetLink; -import com.whyc.pojo.WorksheetMain; -import io.swagger.models.auth.In; +import com.whyc.pojo.*; +import com.whyc.util.CommonUtil; +import com.whyc.util.Word2PdfAsposeUtil; +import com.whyc.util.WordUtil; +import com.whyc.util.Zip4jUtil; +import org.aspectj.util.FileUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.mail.MessagingException; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -39,18 +51,59 @@ private DocUserMapper userMapper; @Autowired + @Lazy private ProductBomApprovingService approvingService; + @Autowired + private ProductApprovingService paService; + + @Autowired + private MaterialProductApprovingService cpApprovingService; + + @Autowired + private MaterialApprovingService mApprovingService; + + @Autowired + private MaterialService mService; + + @Autowired + private ProductBomService pbService; + + @Autowired + private MaterialProductHistoryService cphService; + + @Autowired + private ProductSoftwareApprovingService psaService; + + @Autowired + private ProductSoftwareService productSoftwareService; + + @Autowired + private ProductService productService; + + @Autowired + private ProductHistoryService productHistoryService; + + @Autowired + private MailService mailService; + + @Autowired + private ProcedureDocApprovingService procedureDocApprovingService; + @Transactional - public boolean submit(WorksheetMain main, DocUser user) { - List<ProductBomApproving> bomList = main.getApprovingBomList(); + public boolean submit(WorksheetMain main, DocUser user) throws IOException { + main.setType(1); + ProductApproving productApproving = main.getProductApproving(); + List<ProductBomApproving> bomList = productApproving.getBomApprovingList(); //鎻愪氦涓昏〃 main.setCreateUserId(user.getId()); //鎻愪氦浜鸿鑹叉潵鍒ゆ柇宸ヤ綔娴佸眰绾� if(user.getRoleId().equals("1001")){ - main.setLevel(2); - main.setStatus(1); - mainMapper.insert(main); + if(main.getId()==null) { + main.setLevel(2); + main.setStatus(1); + mainMapper.insert(main); + } //鎻愪氦瀛愯〃 WorksheetLink link =new WorksheetLink(); link.setMainId(main.getId()); @@ -63,9 +116,11 @@ linkMapper.insert(link); } else if(user.getRoleId().equals("1002")){ - main.setLevel(1); - main.setStatus(2); - mainMapper.insert(main); + if(main.getId()==null) { + main.setLevel(1); + main.setStatus(2); + mainMapper.insert(main); + } //鎻愪氦瀛愯〃 WorksheetLink link =new WorksheetLink(); link.setMainId(main.getId()); @@ -85,11 +140,374 @@ return false; } //浜у搧bom/鍥剧焊鍥剧墖鎻愪氦 + if(productApproving.getCustomCode()!=null && bomList.get(0).getId()!=null) { //涓庡墠绔害瀹� 瀹氬埗琛ㄥ崟鍙峰叧鑱斾骇鍝�,鍒欏叧鑱旂殑浜у搧id鍐欏叆id + Product product = productService.getById(bomList.get(0).getId()); + List<ProductBom> productBomList = pbService.getBomByProductId(bomList.get(0).getId()); + //product涓嬬殑鍥剧焊澶嶅埗鍒版柊鐨勫鎵硅矾寰� + String rootFile = CommonUtil.getRootFile(); + String dateFormat = new SimpleDateFormat("YYYY-MM").format(new Date()); + long timeStamp = System.currentTimeMillis(); + String filePath = rootFile + "product_approving" + File.separator + user.getName() + File.separator + dateFormat+ File.separator + timeStamp; + String inFilePath = rootFile + "product" + File.separator + product.getParentModel() + File.separator + "standard"+ File.separator + product.getVersion(); + File parentFile = new File(filePath); + //FileCopyUtils.copy(new File(inFilePath),parentFile); + FileUtil.copyDir(new File(inFilePath),parentFile); + productApproving.setFileUrl(filePath); + bomList.clear(); + productBomList.forEach(bom->{ + ProductBomApproving approving = new ProductBomApproving(); + approving.setCategory(bom.getCategory()); + approving.setSubCode(bom.getSubCode()); + approving.setSubName(bom.getSubName()); + approving.setSubModel(bom.getSubModel()); + approving.setUnit(bom.getUnit()); + approving.setQuantity(bom.getQuantity()); + approving.setProducer(bom.getProducer()); + approving.setMaterial(bom.getMaterial()); + approving.setThickness(bom.getThickness()); + approving.setSurfaceDetail(bom.getSurfaceDetail()); + approving.setNotes(bom.getNotes()); + + bomList.add(approving); + }); + } + //鍐荤粨(涓嶅惎鐢�)宸插瓨鍦ㄧ殑浜у搧缂栫爜+瀹氬埗淇濆崟鍙� + productService.deleteByParentCodeAndCustomCode(productApproving.getParentCode(),productApproving.getCustomCode()); + productHistoryService.updateEnabledStatus(productApproving.getParentCode(),productApproving.getCustomCode(),0); + + productApproving.setMainId(main.getId()); + productApproving.setCreateTime(new Date()); + paService.insert(productApproving); + bomList.forEach(bom->{ - bom.setMainId(main.getId()); + //bom.setMainId(main.getId()); + bom.setProductApprovingId(productApproving.getId()); + bom.setUpUserId(user.getId()); + bom.setCreateDate(new Date()); + if(bom.getDwgUrl()==null){ + bom.setDwgUrl(""); + }else { + bom.setDwgUrl(bom.getDwgUrl()); + } + if(bom.getFileUrl()==null){ + bom.setFileUrl(""); + }else { + bom.setFileUrl(bom.getFileUrl()); + } + if(bom.getPictureUrl()==null){ + bom.setPictureUrl(""); + }else{ + bom.setPictureUrl(bom.getPictureUrl()); + } }); approvingService.insert(bomList); return true; + } + + public boolean MaterialProductSubmit(WorksheetMainDTO mainDTO, DocUser user) { + List<MaterialProductApproving> approvingList = new LinkedList<>(); + WorksheetMain main = mainDTO.getMain(); + List<MaterialProductApproving> addedList = mainDTO.getAddedList(); + //List<MaterialProductApproving> replacedList = mainDTO.getReplacedList(); + List<MaterialProductApproving> removedList = mainDTO.getRemovedList(); + + main.setType(EnumWorksheetType.MaterialProduct.getType()); + //鎻愪氦涓昏〃 + main.setCreateUserId(user.getId()); + //鎻愪氦浜鸿鑹叉潵鍒ゆ柇宸ヤ綔娴佸眰绾� + if(user.getRoleId().equals("1001")){ + if(main.getId()==null) { + main.setLevel(2); + main.setStatus(1); + mainMapper.insert(main); + } + //鎻愪氦瀛愯〃 + WorksheetLink link =new WorksheetLink(); + link.setMainId(main.getId()); + link.setParentId(0); + link.setDealUserId(main.getNextUser()); + link.setDealType(1); + link.setDealDesc(main.getDealDesc()); + link.setLinkStatus(0); + link.setEnableArchive(0); + linkMapper.insert(link); + } + else if(user.getRoleId().equals("1002")){ + if(main.getId()==null) { + main.setLevel(1); + main.setStatus(2); + mainMapper.insert(main); + } + //鎻愪氦瀛愯〃 + WorksheetLink link =new WorksheetLink(); + link.setMainId(main.getId()); + link.setParentId(0); + link.setDealUserId(main.getNextUser()); + link.setDealType(2); + link.setDealDesc(main.getDealDesc()); + link.setLinkStatus(0); + link.setEnableArchive(1); + linkMapper.insert(link); + } + else if(user.getRoleId().equals("1003")){ + main.setLevel(0); + main.setStatus(5); + mainMapper.insert(main); + }else{ + return false; + } + //鐗╂枡-浜у搧瀹℃壒鎻愪氦 + if(addedList!=null && addedList.size()!=0){ + addedList.forEach(item->{ + item.setMainId(main.getId()); + item.setLinkType(1); + }); + approvingList.addAll(addedList); + } + /*if(replacedList!=null && replacedList.size()!=0){ + replacedList.forEach(item->{ + item.setMainId(main.getId()); + item.setLinkType(2); + }); + approvingList.addAll(replacedList); + }*/ + if(removedList!=null && removedList.size()!=0){ + removedList.forEach(item->{ + item.setMainId(main.getId()); + item.setLinkType(-1); + }); + approvingList.addAll(removedList); + } + cpApprovingService.insert(approvingList); + return true; + } + + public Response materialSubmit(WorksheetMain main, DocUser user) { + Response<Object> response = new Response<>(); + List<MaterialApproving> mApprovingList = main.getMApprovingList(); + //鍒ゆ柇鏄柊澧炶繕鏄垹闄� + boolean isAdded = mApprovingList.get(0).getSubName()!=null; + if(isAdded) { //鏂板 + //鏌ヨ鏄惁鏈� 宸茬敓鏁堟垨鑰呭凡鎻愪氦瀹℃壒鐨� 鐩稿悓鐨勭墿鏂� + List<Material> existMaterialList = new LinkedList<>(); + List<MaterialApproving> existCAList = new LinkedList<>(); + + List<Material> materialList = mService.getList(); + List<MaterialApproving> cAList = mApprovingService.getListByStatus(1); + for (int i = 0; i < mApprovingList.size(); i++) { + MaterialApproving materialApproving = mApprovingList.get(i); + for (int j = 0; j < materialList.size(); j++) { + if (materialApproving.getSubCode().equals(materialList.get(j).getSubCode()) + && materialApproving.getSubName().equals(materialList.get(j).getSubName()) + && materialApproving.getSubModel().equals(materialList.get(j).getSubModel()) + ) { + existMaterialList.add(materialList.get(j)); + } + } + + for (int j = 0; j < cAList.size(); j++) { + if (materialApproving.getSubCode().equals(cAList.get(j).getSubCode()) + && materialApproving.getSubName().equals(cAList.get(j).getSubName()) + && materialApproving.getSubModel().equals(cAList.get(j).getSubModel()) + ) { + existCAList.add(cAList.get(j)); + } + } + } + + int existCASize = existCAList.size(); + int existMaterialSize = existMaterialList.size(); + if (existCASize != 0) { + if (existMaterialSize != 0) { + response.setII(21, existCAList, existMaterialList, "閲嶅鎻愪氦:鐜版湁鐗╂枡鍙婃鍦ㄨ繘琛屽鎵圭殑鐗╂枡涓�,瀛樺湪褰撳墠鎻愪氦涓婁紶鐨勭墿鏂�"); + } else { + response.set(22, existCAList, "閲嶅鎻愪氦:姝e湪杩涜瀹℃壒鐨勭墿鏂欎腑,瀛樺湪褰撳墠鎻愪氦涓婁紶鐨勭墿鏂�"); + } + return response; + } else { + if (existMaterialSize != 0) { + return response.setII(23, null, existMaterialList, "閲嶅鎻愪氦:鐜版湁鐗╂枡涓�,瀛樺湪褰撳墠鎻愪氦涓婁紶鐨勭墿鏂�"); + } + } + }else{ //鍒犻櫎 + //鍒ゆ柇鏄惁鍦ㄧ墿鏂欏鎵瑰垹闄や腑,鏄惁瀛樺湪浜у搧鍏宠仈鍙婂叧鑱斿鎵� + MaterialApproving deleteApproving = new MaterialApproving(); + List<MaterialProductHistory> existMaterialProducts = new LinkedList<>(); + List<MaterialProductApproving> existMaterialProductApprovingList = new LinkedList<>(); + deleteApproving = mApprovingService.getListByMaterialId(mApprovingList.get(0).getMaterialId()); + + //鏌ョ湅浜у搧鍏宠仈 + List<MaterialProductHistory> cphLatestExistList = cphService.getLatestExistListByMaterialId(mApprovingList.get(0).getMaterialId()); + //鏌ョ湅浜у搧鍏宠仈瀹℃壒 + List<MaterialProductApproving> cpaLatestExistList = cpApprovingService.getLatestExistListByMaterialId(mApprovingList.get(0).getMaterialId()); + if(deleteApproving!=null){ + return response.set(31,deleteApproving,"鎷掔粷鏈鍒犻櫎鐢宠,褰撳墠鐗╂枡姝e湪杩涜鍒犻櫎瀹℃壒"); + } + if(cphLatestExistList!=null && cphLatestExistList.size()!=0){ + if(cpaLatestExistList!=null && cpaLatestExistList.size()!=0){ + return response.setII(32,cpaLatestExistList,cphLatestExistList,"鎷掔粷鏈鍒犻櫎鐢宠,褰撳墠鏁h宸茬粡鍏宠仈浜у搧鍙婂湪浜у搧鍏宠仈瀹℃壒"); + }else{ + return response.setII(33,null,cphLatestExistList,"鎷掔粷鏈鍒犻櫎鐢宠,褰撳墠鐗╂枡鍦ㄤ骇鍝佸叧鑱斿鎵�"); + } + }else{ + if(cpaLatestExistList!=null && cpaLatestExistList.size()!=0){ + return response.set(34,cpaLatestExistList,"鎷掔粷鏈鍒犻櫎鐢宠,褰撳墠鐗╂枡宸茬粡鍏宠仈浜у搧"); + } + } + + } + main.setType(EnumWorksheetType.Material.getType()); + //鎻愪氦涓昏〃 + main.setCreateUserId(user.getId()); + //鎻愪氦浜鸿鑹叉潵鍒ゆ柇宸ヤ綔娴佸眰绾� + if(user.getRoleId().equals("1001")){ + if(main.getId()==null) { + main.setLevel(2); + main.setStatus(1); + mainMapper.insert(main); + } + //鎻愪氦瀛愯〃 + WorksheetLink link =new WorksheetLink(); + link.setMainId(main.getId()); + link.setParentId(0); + link.setDealUserId(main.getNextUser()); + link.setDealType(1); + link.setDealDesc(main.getDealDesc()); + link.setLinkStatus(0); + link.setEnableArchive(0); + linkMapper.insert(link); + } + else if(user.getRoleId().equals("1002")){ + if(main.getId()==null) { + main.setLevel(1); + main.setStatus(2); + mainMapper.insert(main); + } + //鎻愪氦瀛愯〃 + WorksheetLink link =new WorksheetLink(); + link.setMainId(main.getId()); + link.setParentId(0); + link.setDealUserId(main.getNextUser()); + link.setDealType(2); + link.setDealDesc(main.getDealDesc()); + link.setLinkStatus(0); + link.setEnableArchive(1); + linkMapper.insert(link); + } + else if(user.getRoleId().equals("1003")){ + main.setLevel(0); + main.setStatus(5); + mainMapper.insert(main); + }else{ + return response.set(3); + } + //鐗╂枡-瀹℃壒鎻愪氦 + mApprovingList.forEach(cApproving->{ + cApproving.setCreateDate(new Date()); + cApproving.setMainId(main.getId()); + cApproving.setStatus(1); + }); + + mApprovingService.insert(mApprovingList); + return response.set(1); + } + + public Response productSoftwareSubmit(MultipartFile file, WorksheetMainDTO2 mainDTO, DocUser user) throws IOException { + Response response = new Response(); + WorksheetMain main = mainDTO.getMain(); + ProductSoftwareApproving approving = mainDTO.getApproving(); + //棣栧厛鏍¢獙鏂囦欢鍚嶆槸鍚﹀凡瀛樺湪 + String filename = file.getOriginalFilename(); + List<ProductSoftwareApproving> softwareApprovingList = psaService.getAll(); + List<ProductSoftware> softwareList = productSoftwareService.getAll(); + List<String> existApprovingList = softwareApprovingList.stream().map(ProductSoftwareApproving::getSoftwareName).collect(Collectors.toList()); + List<String> existList = softwareList.stream().map(ProductSoftware::getSoftwareName).collect(Collectors.toList()); + + for (String existFilename:existList){ + if(filename.equals(existFilename)){ + return response.set(1,false,"杞欢鏂囦欢鍚嶅凡瀛樺湪"); + } + } + for (String existFilename:existApprovingList){ + if(filename.equals(existFilename)){ + return response.set(1,false,"杞欢鏂囦欢鍚嶅湪瀹℃壒鍒楄〃涓凡瀛樺湪"); + } + } + + main.setType(1); + //鎻愪氦涓昏〃 + main.setCreateUserId(user.getId()); + //鎻愪氦浜鸿鑹叉潵鍒ゆ柇宸ヤ綔娴佸眰绾� + if(user.getRoleId().equals("1001")){ + if(main.getId()==null) { + main.setLevel(2); + main.setStatus(1); + mainMapper.insert(main); + } + //鎻愪氦瀛愯〃 + WorksheetLink link =new WorksheetLink(); + link.setMainId(main.getId()); + link.setParentId(0); + link.setDealUserId(main.getNextUser()); + link.setDealType(1); + link.setDealDesc(main.getDealDesc()); + link.setLinkStatus(0); + link.setEnableArchive(0); + linkMapper.insert(link); + } + else if(user.getRoleId().equals("1002")){ + if(main.getId()==null) { + main.setLevel(1); + main.setStatus(2); + mainMapper.insert(main); + } + //鎻愪氦瀛愯〃 + WorksheetLink link =new WorksheetLink(); + link.setMainId(main.getId()); + link.setParentId(0); + link.setDealUserId(main.getNextUser()); + link.setDealType(2); + link.setDealDesc(main.getDealDesc()); + link.setLinkStatus(0); + link.setEnableArchive(1); + linkMapper.insert(link); + } + else if(user.getRoleId().equals("1003")){ + main.setLevel(0); + main.setStatus(5); + mainMapper.insert(main); + }else{ + return response.set(1,false,"瑙掕壊鏃犳硶鎻愪氦瀹℃壒"); + } + //杞寲涓哄鎵硅矾寰� + //妫�鏌ユ槸鍚︿负zip + boolean isZip = Zip4jUtil.checkZipFileParam(file); + if(!isZip){ + return response.set(1,false,"涓婁紶鐨勬枃浠舵牸寮忎笉鏄痾ip"); + } + //zip瀛樺偍璺緞:doc_file/product_approving/${username}/{dateFormat}/${timeStamp} + String rootFile = CommonUtil.getRootFile(); + String dateFormat = new SimpleDateFormat("YYYY-MM").format(new Date()); + long timeStamp = System.currentTimeMillis(); + String productSoftwarePath = File.separator + "product_software" + File.separator + user.getName() + File.separator + dateFormat+ File.separator + timeStamp; + String filePath = rootFile + productSoftwarePath; + String originalFilename = file.getOriginalFilename(); + File zipFile = new File(filePath+File.separator+ originalFilename); + /*if(!zipFile.exists()){ + zipFile.mkdirs(); + }*/ + File parentFile = new File(filePath); + if (!parentFile.exists()) { + parentFile.mkdirs(); + } + file.transferTo(zipFile); + approving.setSoftwareUrl("doc_file"+productSoftwarePath+File.separator+ originalFilename); + approving.setSoftwareName(originalFilename); + approving.setCreateTime(new Date()); + approving.setMainId(main.getId()); + //浜у搧杞欢鎻愪氦 + psaService.insert(approving); + return response.set(1,true, "鎻愪氦瀹屾垚"); } public WorksheetMain getInfoById(Integer id) { @@ -108,6 +526,7 @@ main.setId(id); main.setStatus(status); main.setEndReason(endReason); + main.setEndTime(new Date()); mainMapper.updateById(main); } @@ -230,18 +649,34 @@ } break; } + //鏌ヨ鎴戠殑宸ュ崟鏁伴噺 + QueryWrapper<WorksheetMain> query = Wrappers.query(); + query.eq("create_user_id",user.getId()); + Integer count = mainMapper.selectCount(query); + map.put("my",count); return map; } public WorksheetMain getLinkList(int id) { - return mainMapper.getLinkList(id); + //鍒ゆ柇鏄摢绉嶇被鍨嬬殑瀹℃壒,杩斿洖涓嶅悓鐨勭被鍨� 鍏蜂綋鏁版嵁 + Integer type = getInfoById(id).getType(); + if(type.intValue() == EnumWorksheetType.ProductBom.getType()) { + WorksheetMain main = mainMapper.getLinkList(id); + List<ProductBomApproving> pbaList = approvingService.getList(main.getProductApproving().getId()); + main.getProductApproving().setBomApprovingList(pbaList); + return main; + }else if(type.intValue() == EnumWorksheetType.Material.getType()){ + return mainMapper.getLinkListWithMaterials(id); + }else{ //鐗╂枡-浜у搧 + return mainMapper.getLinkListWithMaterialProducts(id); + } } public Response<PageInfo<WorksheetMain>> getApprovingListPage(DocUser user, int pageNum, int pageSize) { PageHelper.startPage(pageNum,pageSize); QueryWrapper<WorksheetMain> query = Wrappers.query(); - query.eq("create_user_id",user.getId()).in("status",1,2); + query.eq("create_user_id",user.getId()).in("status",1,2).orderByDesc("id"); List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); //鏌ヨ涓昏〃鐘舵�佸搴旂殑瀛愯〃 worksheetMainList.forEach(main -> { @@ -254,7 +689,7 @@ public Response<PageInfo<WorksheetMain>> getRejectedListPage(DocUser user, int pageNum, int pageSize) { PageHelper.startPage(pageNum,pageSize); QueryWrapper<WorksheetMain> query = Wrappers.query(); - query.eq("create_user_id",user.getId()).in("status",0); + query.eq("create_user_id",user.getId()).in("status",0).orderByDesc("id"); List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); @@ -267,7 +702,7 @@ //鑷繁鐨勫伐鍗� if(!user.getRoleId().equals("1003")){ QueryWrapper<WorksheetMain> query = Wrappers.query(); - query.eq("create_user_id",user.getId()).in("status",5); + query.eq("create_user_id",user.getId()).in("status",5).orderByDesc("id"); worksheetMainList = mainMapper.selectList(query); }else{ @@ -280,7 +715,7 @@ public Response<PageInfo<WorksheetMain>> getHandlingListPage(DocUser user, int pageNum, int pageSize) { PageHelper.startPage(pageNum,pageSize); - List<WorksheetMain> worksheetMainList = linkService.getInfoList2(user.getId(),0); + List<WorksheetMain> worksheetMainList = linkService.getInfoList3(user.getId(),0); PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); } @@ -291,4 +726,202 @@ PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); } + + public WorksheetMain getInfo(int id) { + return mainMapper.selectById(id); + } + + public Response<PageInfo<WorksheetMain>> getMyList(int pageNum, int pageSize, DocUser user) { + PageHelper.startPage(pageNum,pageSize); + QueryWrapper<WorksheetMain> query = Wrappers.query(); + query.eq("create_user_id",user.getId()).orderByDesc("id"); + List<WorksheetMain> worksheetMainList = mainMapper.selectList(query); + PageInfo<WorksheetMain> pageInfo = new PageInfo<>(worksheetMainList); + return new Response<PageInfo<WorksheetMain>>().set(1,pageInfo); + + } + + public Response addProductProcedureAndSOP(ProcedureDocApproving approving, DocUser user) throws IOException, MessagingException { + WorksheetMain main = new WorksheetMain(); + //瀛樺偍涓婁紶淇℃伅鍒颁富琛�,鑺傜偣琛� + //鏂囦欢淇濆瓨鍦�/doc_file/procedure_approving/xxx_鏃堕棿鎴�.doc + MultipartFile multipartFile = approving.getMultipartFile(); + String originalFilename = multipartFile.getOriginalFilename(); + String rootFile = CommonUtil.getRootFile(); + Date date = new Date(); + String filename = originalFilename.replace(".doc","_"+date.getTime()+".doc"); + String suffixFilePath = "procedure_approving" + File.separator + filename; + String outFilePath = rootFile + suffixFilePath; + File outFile = new File(outFilePath); + multipartFile.transferTo(outFile); + + main.setTitle(approving.getName()); + main.setDescription(approving.getDescription()); + main.setCreateUserId(user.getId()); + main.setBeginTime(date); + main.setStatus(1); + if(approving.getType()==1){ + main.setType(EnumWorksheetType.ProductProcedure.getType()); + }else{ + main.setType(EnumWorksheetType.SOP.getType()); + } + mainMapper.insert(main); + + List<WorksheetLink> links = new LinkedList<>(); + WorksheetLink baseLink = new WorksheetLink(); + WorksheetLink linkFzr = new WorksheetLink(); + WorksheetLink linkBz = new WorksheetLink(); + WorksheetLink linkZz = new WorksheetLink(); + WorksheetLink linkPb = new WorksheetLink(); + + baseLink.setMainId(main.getId()); + baseLink.setLinkStatus(0); + baseLink.setCreateTime(date); + + BeanUtils.copyProperties(baseLink,linkFzr); + BeanUtils.copyProperties(baseLink,linkBz); + BeanUtils.copyProperties(baseLink,linkZz); + BeanUtils.copyProperties(baseLink,linkPb); + + linkFzr.setDealUserId(approving.getFzr()); + linkBz.setDealUserId(approving.getBz()); + linkZz.setDealUserId(approving.getZz()); + linkPb.setDealUserId(approving.getPb()); + links.add(linkFzr); + links.add(linkBz); + links.add(linkZz); + links.add(linkPb); + linkMapper.insertBatchSomeColumn(links); + + //娴佺▼鏂囨。瀹℃壒瀛愯〃瀛樺叆 + approving.setFile("doc_file"+ File.separator + suffixFilePath); + approving.setMainId(main.getId()); + procedureDocApprovingService.insert(approving); + //鍙戦�侀偖浠剁粰鍥涗釜纭浜� + QueryWrapper<DocUser> query = Wrappers.query(); + query.select("mail").in("id",approving.getFzr(),approving.getBz(),approving.getZz(),approving.getPb()); + List<DocUser> docUsers = userMapper.selectList(query); + List<String> userMailList = docUsers.stream().map(DocUser::getMail).collect(Collectors.toList()); + + MailDTO mailDTO = new MailDTO(); + mailDTO.setMailList(userMailList); + if(approving.getType()==1){ + mailDTO.setTitle("銆愭祦绋嬪崱纭銆�"+main.getTitle()); + mailDTO.setContent(user.getName()+"鍦ㄦ枃妗g鐞嗗钩鍙颁笂浼犱簡浜у搧娴佺▼鍗�,璇峰強鏃剁‘璁�"); + }else{ + mailDTO.setTitle("銆怱OP纭銆�"+main.getTitle()); + mailDTO.setContent(user.getName()+"鍦ㄦ枃妗g鐞嗗钩鍙颁笂浼犱簡SOP,璇峰強鏃剁‘璁�"); + } + mailService.sendMail(mailDTO); + + return new Response().setII(1,"涓婁紶瀹屾垚"); + } + + /** + * 缁熻鏁伴噺: + * 鎴戠殑鎻愪氦 + * 寰呭鐞� + * 宸插鐞� + * @param user + * @return + */ + public Map<String, Integer> getProcedureDocApprovingStatusStatistic(DocUser user) { + Map<String,Integer> map = new HashMap<>(); + + //鎴戠殑鎻愪氦 + QueryWrapper<WorksheetMain> query = Wrappers.query(); + query.eq("create_user_id",user.getId()).in("type",EnumWorksheetType.ProductProcedure.getType(),EnumWorksheetType.SOP.getType()); + List<WorksheetMain> worksheetMains = mainMapper.selectList(query); + map.put("mySubmit",worksheetMains.size()); + //寰呭鐞唡宸插鐞� + int handlingCount = 0; + int handledCount = 0; + List<WorksheetLink> links = linkMapper.getProcedureDocApprovingByUserId(user.getId()); + for (WorksheetLink link : links) { + //dealType鐨勫�间负涓昏〃鐨勭姸鎬� + if(link.getDealType() == 1 && link.getLinkStatus() == 0){ //鏈鐞嗕笖瀹℃壒鏈粨鏉� + handlingCount++; + }else if(link.getLinkStatus() == 1 || link.getLinkStatus() ==2){ //宸茬‘璁ゆ垨宸叉嫆缁� + handledCount++; + } + } + map.put("handling",handlingCount); + map.put("handled",handledCount); + return map; + } + + public Response procedurePreview(HttpServletResponse response, int mainId) throws IOException { + //鏌ヨ褰撳墠鍗曟嵁瀹℃壒浜虹殑纭鐘舵�� + ProcedureDocApproving approving = procedureDocApprovingService.getByMainId(mainId); + List<WorksheetLink> linkList = linkMapper.getList(mainId); + String fzr = linkList.get(0).getLinkStatus() == 1 ? linkList.get(0).getDealUsername():""; + String bz = linkList.get(1).getLinkStatus() == 1 ? linkList.get(1).getDealUsername():""; + String zz = linkList.get(2).getLinkStatus() == 1 ? linkList.get(2).getDealUsername():""; + String pb = linkList.get(3).getLinkStatus() == 1 ? linkList.get(3).getDealUsername():""; + List<String> list = new LinkedList(); + list.add(fzr); + list.add(bz); + list.add(zz); + list.add(pb); + //鑾峰彇word妯℃澘鍏蜂綋鏂囦欢 + + long currentTimeMillis = System.currentTimeMillis(); + String projectDir = CommonUtil.getProjectDir(); + String fileRelativePath = approving.getFile(); + String inFilePath = projectDir + File.separator + fileRelativePath; + String outFilePath = inFilePath.replace(".doc","_"+currentTimeMillis+".doc"); + WordUtil.fillValue(inFilePath,outFilePath,list); + //pdf甯︽按鍗扮殑鍦板潃 /doc_file/procedure_approving/xxx.doc + String suffixOutPdfFilePath = "doc_file" + File.separator + "procedure_approving" + File.separator + outFilePath.substring(outFilePath.lastIndexOf(File.separator)+1,outFilePath.lastIndexOf(".")) + ".pdf"; + String outPdfFilePath = projectDir + File.separator + suffixOutPdfFilePath; + Word2PdfAsposeUtil.doc2pdfWithWaterMark(outFilePath,outPdfFilePath,true); + return new Response().setII(1,suffixOutPdfFilePath); + /*try { + // 杞爜闃叉涔辩爜 + //resp.addHeader("Content-Disposition", "attachment;filename=" + new String(softwareName.getBytes("UTF-8"), "ISO8859-1")); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode ( fileRelativePath.substring(fileRelativePath.lastIndexOf(File.separator+1)), "utf-8")); + OutputStream out = response.getOutputStream(); + FileInputStream in = new FileInputStream(outFilePath); + int len=0; + byte[] buffer =new byte[1024]; + //7. 灏嗙紦鍐插尯涓殑鏁版嵁杈撳嚭 + while ((len=in.read(buffer))>0){ + out.write(buffer,0,len); + } + in.close(); + out.close(); + } catch (FileNotFoundException | UnsupportedEncodingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + }*/ + } + + /** + * 鏌ヨ鎵�鏈夌殑宸ュ崟,鎵�鏈変汉鍙 + * @param param + * @return + */ + public Response getAllPage(WorksheetMain param) { + Integer pageNum = param.getPageNum(); + Integer pageSize = param.getPageSize(); + PageHelper.startPage(pageNum,pageSize); + + int createUserId = param.getCreateUserId().intValue(); + Date beginTime = param.getBeginTime(); + Date endTime = param.getEndTime(); + Integer type = param.getType(); + QueryWrapper<WorksheetMain> query = Wrappers.query(); + if(createUserId>0){ + query.eq("create_user_id",createUserId); + } + query.ge("begin_time",beginTime); + query.le("begin_time",endTime); + if(type!=null && type>=0){ + query.eq("type",type); + } + List<WorksheetMain> worksheetMains = mainMapper.selectList(query); + PageInfo pageInfo = new PageInfo(worksheetMains); + return new Response().set(1,pageInfo); + } } -- Gitblit v1.9.1