yangys
2025-09-02 2689c8fec95018952784bd8d032afb5a194a6616
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/service/MachineImportService.java
@@ -1,29 +1,19 @@
package org.springblade.mdm.basesetting.machine.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.jsonwebtoken.lang.Collections;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.mdm.basesetting.machine.MachineService;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.mdm.basesetting.machine.entity.Machine;
import org.springblade.mdm.basesetting.machine.mapper.MachineMapper;
import org.springblade.mdm.basesetting.machine.vo.MachineExcel;
import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO;
import org.springblade.mdm.basesetting.machine.vo.MachineSaveVO;
import org.springblade.mdm.basesetting.machine.vo.MachineVO;
import org.springblade.mdm.basesetting.producedivision.entity.MdmDept;
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
import org.springblade.mdm.basesetting.producedivision.service.MdmDeptService;
import org.springblade.mdm.basesetting.producedivision.vo.ImportResult;
import org.springblade.system.feign.IDictBizClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.pojo.entity.Dept;
import org.springblade.system.pojo.entity.DictBiz;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -31,11 +21,6 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@@ -51,13 +36,23 @@
   @Autowired
   private MachineService machineService;
   @Transactional
   public String importMachines(MultipartFile file) {
   public ImportResult importMachines(MultipartFile file) {
      ImportResult res1 = new ImportResult();
      if(file == null || file.isEmpty()){
         res1.setMessage("文件为空");
         return res1;
      }
      List<MachineExcel> list = ExcelUtil.read(file, MachineExcel.class);
      return "";//导入成功,给空串,部分不成功给提示
      return transAndSave(list);
   }
   @Transactional
   ImportResult transAndSave(List<MachineExcel> list){
      ImportResult result1= checkImport( list);
      if(result1.getFailure()>0){
         return result1;
      }
      //machine_spec
         //machine_control_system
      //machine_control_system
@@ -93,8 +88,9 @@
         machine.setControlSystem(sysOpt.orElse(emptyDit).getDictKey());
         //机床组
         //key = FANUK,
         Optional<DictBiz> groupOpt = machineGroupList.stream().filter(s -> StringUtils.equals(s.getDictValue(),excelVO.getMachineGroupName())).findFirst();
         machine.setControlSystem(groupOpt.orElse(emptyDit).getDictKey());
         machine.setMachineGroupCode(groupOpt.orElse(emptyDit).getDictKey());
         //entityList.add(machine);
         Machine oriMachine = machineService.getByCode(machine.getCode());
@@ -102,10 +98,22 @@
         if(oriMachine != null){
            msg.append(machine.getCode()).append("机床编码重复:").append(machine.getCode());
            failCount ++;
         }else if(machine.getMachineGroupCode() == null){
            msg.append(excelVO.getCode()+"机床组不匹配"+excelVO.getMachineGroupName()).append("<br/>");
            failCount ++;
         }else if(machine.getMachineSpec() == null){
            msg.append(excelVO.getCode()+"机床类型不匹配"+excelVO.getMachineSpecName()).append("<br/>");
            failCount ++;
         }else {
            try {
               machineService.save(machine);
               successCount++;
            }catch(Exception e){
               log.error("入库失败",e);
               failCount ++;
               msg.append(excelVO.getCode()+"入库失败");
            }
         }
         machineService.save(machine);
         successCount ++;
      }
      ir.setFailure(failCount);
@@ -118,4 +126,42 @@
      }
      return ir;
   }
   private ImportResult checkImport(List<MachineExcel> list) {
      StringBuffer msg = new StringBuffer();;
      int failCount = 0;
      MachineExcel excelVO;
      String temp;
      for(int i=0;i<list.size();i++){
         excelVO = list.get(0);
         temp ="";
         if(StringUtil.isBlank(excelVO.getCode())){
            //msg.append("第"+(i+1)+"行机床编码为空,");
            temp = "机床编码为空,";
         }
         if(StringUtil.isBlank(excelVO.getName())){
            //msg.append("第"+(i+1)+"行机床编码为空,");
            temp += "机床型号为空,";
         }
         if(StringUtil.isBlank(excelVO.getMachineGroupName())){
            temp += "机床组为空,";
         }
         if(StringUtil.isBlank(excelVO.getMachineSpecName())){
            temp += "机床类型为空,";
         }
         if(StringUtil.isNotBlank(temp)){
            msg.append("行"+(i+1)+" "+StringUtils.removeEnd(temp,",")).append(";");
            failCount ++;
         }
      }
      ImportResult res= new ImportResult();
      res.setFailure(failCount);
      res.setMessage(msg.toString());
      return res;
   }
}