| | |
| | | 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.MaterialMapper; |
| | | import com.whyc.pojo.Material; |
| | | import com.whyc.pojo.ProductBom; |
| | | import com.whyc.util.CommonUtil; |
| | | import com.whyc.util.FileUtil; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.FileCopyUtils; |
| | | |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service |
| | | public class MaterialService { |
| | |
| | | public List<String> getListByCodeList(List<String> codeList) { |
| | | return mapper.getListByCodeList(codeList); |
| | | } |
| | | |
| | | public void updateDwgUrl(List<Material> materialDwgUrlNameList) { |
| | | mapper.updateDwgUrl(materialDwgUrlNameList); |
| | | } |
| | | |
| | | @Transactional |
| | | public Response add(List<Material> materialList) { |
| | | String fileUrl = materialList.get(0).getFileUrl(); |
| | | //校验物料合理性,非空校验:物料名称/物料编号/物料型号 |
| | | for (int i = 0; i < materialList.size(); i++) { |
| | | Material material = materialList.get(i); |
| | | if(material.getSubCode()==null ||material.getSubCode().equals("") |
| | | || material.getSubName()==null ||material.getSubName().equals("") |
| | | || material.getSubModel()==null ||material.getSubModel().equals("")){ |
| | | return new Response().set(1,false,"拒绝新增,物料名称/物料编号/物料型号存在空值"); |
| | | } |
| | | } |
| | | //检验物料重复性,已存在的物料,拒绝重复提交,判断依据:物料编码+物料型号 |
| | | List<Material> existList = getListByCodeAndModelList(materialList); |
| | | if(existList!=null && existList.size()!=0){ |
| | | return new Response().setII(1,false,existList,"拒绝新增,物料重复提交"); |
| | | } |
| | | |
| | | //获取路径下的所有文件 |
| | | List<String> fileUrlList = new LinkedList<>(); |
| | | List<String> dwgUrlList = null; |
| | | List<String> materialUrlList = new LinkedList<>(); |
| | | |
| | | fileUrlList = FileUtil.getStaticFilePath(new File(fileUrl),fileUrlList); |
| | | dwgUrlList = fileUrlList.stream().filter(url->url.contains(".dwg")).collect(Collectors.toList()); |
| | | //图纸的url预设 |
| | | dwgUrlList.forEach(dwgUrl-> { |
| | | materialList.forEach(material -> { |
| | | String filename = dwgUrl.substring(dwgUrl.lastIndexOf(File.separator) + 1, dwgUrl.length() - 4); |
| | | String fileFullName = dwgUrl.substring(dwgUrl.lastIndexOf(File.separator) + 1); |
| | | if (material.getSubModel().toUpperCase().equals(filename.toUpperCase())) { |
| | | materialUrlList.add(dwgUrl); |
| | | |
| | | material.setDwgUrl("doc_file" + File.separator + "material" |
| | | + File.separator + fileFullName); |
| | | } |
| | | }); |
| | | }); |
| | | //图纸文件转移到正式文件夹 |
| | | String projectDir = CommonUtil.getProjectDir(); |
| | | String materialDir = projectDir + File.separator + "doc_file" + File.separator + "material"; |
| | | File materialFile = new File(materialDir); |
| | | if(!materialFile.exists()){ |
| | | materialFile.mkdirs(); |
| | | } |
| | | materialUrlList.forEach(materialUrl->{ |
| | | String dwgFullName = materialUrl.substring(materialUrl.lastIndexOf(File.separator) + 1); |
| | | try { |
| | | FileCopyUtils.copy(new File(materialUrl),new File(materialDir + File.separator + dwgFullName)); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | }); |
| | | |
| | | //新增,同时对于物料编码相同,物料型号不同的,禁用旧物料状态 |
| | | mapper.disableStatus(materialList); |
| | | materialList.forEach(material -> { |
| | | material.setStatus(1); |
| | | material.setFileUrl(null); |
| | | }); |
| | | mapper.insertBatchSomeColumn(materialList); |
| | | return new Response().set(1,true,"新增完成"); |
| | | } |
| | | |
| | | private List<Material> getListByCodeAndModelList(List<Material> materialList) { |
| | | return mapper.getListByCodeAndModelList(materialList); |
| | | } |
| | | |
| | | public List<Material> getListByCodeAndModelList2(List<ProductBom> bomList) { |
| | | return mapper.getListByCodeAndModelList2(bomList); |
| | | } |
| | | |
| | | public Material getByCodeAndModel(String subCode, String subModel) { |
| | | QueryWrapper<Material> query = Wrappers.query(); |
| | | query.eq("sub_code",subCode).eq("sub_model",subModel).last(" limit 1"); |
| | | return mapper.selectOne(query); |
| | | } |
| | | } |