| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | @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 |
| | |
| | | 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()); |
| | |
| | | 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); |
| | |
| | | } |
| | | 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; |
| | | } |
| | | } |