| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.whyc.config.EnumWorksheetType; |
| | | import com.whyc.dto.Response; |
| | | import com.whyc.mapper.ProductBomApprovingMapper; |
| | | import com.whyc.mapper.WorksheetLinkMapper; |
| | | import com.whyc.pojo.*; |
| | | import com.whyc.util.CommonUtil; |
| | | import com.whyc.util.FileUtil; |
| | | import com.whyc.util.WordUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.File; |
| | | import java.io.FilenameFilter; |
| | | import java.io.IOException; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | |
| | | |
| | | @Autowired |
| | | private ProductHistoryService phService; |
| | | |
| | | @Autowired |
| | | private ProcedureDocApprovingService procedureDocApprovingService; |
| | | |
| | | @Autowired |
| | | private ProcedureDocService procedureDocService; |
| | | |
| | | @Transactional |
| | | public void audit(WorksheetLink link) { |
| | |
| | | approvingList.forEach(approving->{ |
| | | if(!existCodeList.contains(approving.getSubCode())){ //这个审批bom中的物料不在物料管理内 |
| | | Material temp = new Material(); |
| | | temp.setCategory(approving.getCategory()); |
| | | //temp.setCategory(approving.getCategory()); |
| | | temp.setCreateDate(new Date()); |
| | | temp.setDwgUrl(approving.getDwgUrl()); |
| | | temp.setFileUrl(approving.getFileUrl()); |
| | | temp.setMaterial(approving.getMaterial()); |
| | | //temp.setMaterial(approving.getMaterial()); |
| | | temp.setNotes(approving.getNotes()); |
| | | temp.setPictureUrl(approving.getPictureUrl()); |
| | | temp.setProducer(approving.getProducer()); |
| | | temp.setQuantity(approving.getQuantity()); |
| | | //temp.setProducer(approving.getProducer()); |
| | | //TODO quantity |
| | | //temp.setQuantity(approving.getQuantity()); |
| | | temp.setStatus(1); |
| | | temp.setSubCode(approving.getSubCode()); |
| | | temp.setSubModel(approving.getSubModel()); |
| | | temp.setSubName(approving.getSubName()); |
| | | temp.setSurfaceDetail(approving.getSurfaceDetail()); |
| | | temp.setThickness(approving.getThickness()); |
| | | //temp.setSurfaceDetail(approving.getSurfaceDetail()); |
| | | //temp.setThickness(approving.getThickness()); |
| | | temp.setType(approving.getType()); |
| | | temp.setUnit(approving.getUnit()); |
| | | materialList.add(temp); |
| | |
| | | //将物料从审批表中转移到正式表 |
| | | approvingList.forEach(approve -> { |
| | | Material material = new Material(); |
| | | material.setCategory(approve.getCategory()); |
| | | //material.setCategory(approve.getCategory()); |
| | | material.setSubCode(approve.getSubCode()); |
| | | material.setSubName(approve.getSubName()); |
| | | material.setSubModel(approve.getSubModel()); |
| | | material.setUnit(approve.getUnit()); |
| | | material.setQuantity(approve.getQuantity()); |
| | | material.setProducer(approve.getProducer()); |
| | | //TODO quantity |
| | | //material.setQuantity(approve.getQuantity()); |
| | | //material.setProducer(approve.getProducer()); |
| | | material.setNotes(approve.getNotes()); |
| | | material.setCreateDate(new Date()); |
| | | material.setStatus(1); |
| | |
| | | his.setCustomCode(approving.getCustomCode()); |
| | | his.setSVersion(approving.getVersion()); |
| | | his.setEVersion(approving.getVersion()); |
| | | his.setSubCode(approving.getSubCode()); |
| | | his.setSubMaterialId(approving.getSubMaterialId()); |
| | | his.setQuantity(approving.getQuantity()); |
| | | his.setMaterialId(approving.getMaterialId()); |
| | | his.setCreateTime(new Date()); |
| | |
| | | public DocUser getApprovingUser(Integer mainId) { |
| | | return linkMapper.getApprovingUser(mainId); |
| | | } |
| | | |
| | | @Transactional |
| | | public Response confirmProductProcedureAndSOP(WorksheetLink link) throws IOException { |
| | | Integer mainId = linkMapper.selectById(link.getId()).getMainId(); |
| | | //更新子表 |
| | | linkMapper.updateById(link); |
| | | if(link.getLinkStatus() ==1){ |
| | | //查询当前单据子表是否已经全部同意 |
| | | QueryWrapper<WorksheetLink> query = Wrappers.query(); |
| | | query.eq("main_id",mainId); |
| | | List<WorksheetLink> linkList = linkMapper.selectList(query); |
| | | List<WorksheetLink> rejectList = linkList.stream().filter(linkFilter -> linkFilter.getLinkStatus() != 1).collect(Collectors.toList()); |
| | | if(rejectList == null){ |
| | | //都为1,已确认 |
| | | mainService.updateEndStatusById(mainId,"已确认",5); |
| | | //文件转移到审批完成后的正式路径 文件保存在/doc_file/procedure/xxx.doc |
| | | ProcedureDocApproving approving = procedureDocApprovingService.getByMainId(mainId); |
| | | String fileRelativePath = approving.getFile(); |
| | | String projectDir = CommonUtil.getProjectDir(); |
| | | String inFilePath = projectDir + File.separator + fileRelativePath; |
| | | String outFilePath = (projectDir + File.separator + fileRelativePath).replace("_approving",""); |
| | | WordUtil.fillValue(inFilePath,outFilePath,Arrays.asList(approving.getFzr(),approving.getBz(),approving.getZz(),approving.getPb())); |
| | | //删除之前预览产生的中间文件 |
| | | String filename = fileRelativePath.substring(fileRelativePath.lastIndexOf(File.separator)+1,fileRelativePath.lastIndexOf(".")); |
| | | File approvingDir = new File(projectDir + File.separator + "procedure_approving"); |
| | | FilenameFilter filenameFilter = new FilenameFilter() { |
| | | @Override |
| | | public boolean accept(File dir, String name) { |
| | | name = name.substring(0,name.lastIndexOf(".")); |
| | | if(name.contains(filename) && !name.equals(filename)){ |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | }; |
| | | File[] files = approvingDir.listFiles(filenameFilter); |
| | | for (File file : files) { |
| | | file.delete(); |
| | | } |
| | | |
| | | //流程文件数据转移 |
| | | ProcedureDoc procedureDoc = new ProcedureDoc(); |
| | | procedureDoc.setName(approving.getName()); |
| | | procedureDoc.setDescription(approving.getDescription()); |
| | | procedureDoc.setVersion(approving.getVersion()); |
| | | procedureDoc.setFzr(approving.getFzr()); |
| | | procedureDoc.setBz(approving.getBz()); |
| | | procedureDoc.setType(approving.getType()); |
| | | procedureDoc.setCreateTime(new Date()); |
| | | procedureDoc.setFile(fileRelativePath.replace("_approving","")); |
| | | procedureDocService.insert(procedureDoc); |
| | | } |
| | | }else{ |
| | | mainService.updateEndStatusById(mainId,"已驳回",0); |
| | | } |
| | | return new Response().set(1); |
| | | } |
| | | } |