diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java index 99761109..a4daeb14 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.java @@ -40,7 +40,7 @@ public interface MaterialTypeMapper { * @param name * @return */ - MaterialType findMaterialTypeByName(String name); + List findMaterialTypeByName(String name); /** * 根据id查询物料类型 diff --git a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml index 19d19346..c3f2c93d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml +++ b/src/main/java/com/dreamchaser/depository_manage/mapper/MaterialTypeMapper.xml @@ -125,7 +125,7 @@ diff --git a/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java b/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java index aa86b23e..66efc63f 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/MaterialTypeService.java @@ -75,7 +75,7 @@ public interface MaterialTypeService { * @param name * @return */ - MaterialType findMaterialTypeByName(String name); + List findMaterialTypeByName(String name); /** * 根据OldId查询对应物料类型 * @param OldId diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java index c9d8de55..a189e015 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/ExcelServiceImpl.java @@ -20,6 +20,7 @@ import com.dreamchaser.depository_manage.security.pool.ExcelFileInfoPool; import com.dreamchaser.depository_manage.service.*; import com.dreamchaser.depository_manage.utils.*; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @@ -117,7 +118,7 @@ public class ExcelServiceImpl implements ExcelService { int maxThreadSize = Runtime.getRuntime().availableProcessors(); if (threadSize > maxThreadSize) { double temp = threadSize - maxThreadSize; - maxThreadSize =(int)(Math.ceil(temp / maxThreadSize) * maxThreadSize); + maxThreadSize = (int) (Math.ceil(temp / maxThreadSize) * maxThreadSize); } // 定义开启线程数目 @@ -788,8 +789,23 @@ public class ExcelServiceImpl implements ExcelService { param.put("typeId", typeId); } else { String typeName = excelVo.getTypeName(); - MaterialType materialTypeByName = materialTypeService.findMaterialTypeByName(typeName); - param.put("typeId", materialTypeByName.getOldId()); + List materialTypeByNames = materialTypeService.findMaterialTypeByName(typeName); + + Long oldId = null; + if (materialTypeByNames.size() > 1) { + List parentOldIdList = new ArrayList<>(); + List OldIdList = new ArrayList<>(); + for (MaterialType materialType : materialTypeByNames) { + parentOldIdList.add(materialType.getParentId()); + OldIdList.add(materialType.getOldId()); + } + OldIdList = (List) CollectionUtils.subtract(OldIdList, parentOldIdList); + oldId = OldIdList.get(0); + }else{ + oldId = materialTypeByNames.get(0).getOldId(); + } + + param.put("typeId", oldId); } param.put("id", excelVo.getId()); param.put("brand", excelVo.getBrand()); @@ -1058,8 +1074,8 @@ public class ExcelServiceImpl implements ExcelService { errMsg.add(msg); continue; } else { - MaterialType materialTypeByName = materialTypeService.findMaterialTypeByName(excelInfoForMaterial.getTypeName()); - if (materialTypeByName == null) { + List materialTypeByName = materialTypeService.findMaterialTypeByName(excelInfoForMaterial.getTypeName()); + if (materialTypeByName == null || materialTypeByName.size() == 0) { String s = dataIndex.get(i); String msg = s + "出现异常" + excelInfoForMaterial.getTypeName() + "的物料类型不存在"; errMsg.add(msg); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java index 98cd79ae..68a48c7d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialTypeServiceImpl.java @@ -166,7 +166,7 @@ public class MaterialTypeServiceImpl implements MaterialTypeService { * @return */ @Override - public MaterialType findMaterialTypeByName(String name) { + public List findMaterialTypeByName(String name) { return materialTypeMapper.findMaterialTypeByName(name); } diff --git a/src/test/java/com/dreamchaser/depository_manage/OtherTest.java b/src/test/java/com/dreamchaser/depository_manage/OtherTest.java index c6a56bc5..6a059dc0 100644 --- a/src/test/java/com/dreamchaser/depository_manage/OtherTest.java +++ b/src/test/java/com/dreamchaser/depository_manage/OtherTest.java @@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage; import com.alibaba.fastjson.JSONObject; import com.dreamchaser.depository_manage.config.PublicConfig; import com.dreamchaser.depository_manage.config.QyWxConfig; +import com.dreamchaser.depository_manage.entity.MaterialType; import com.dreamchaser.depository_manage.entity.UserByPort; import com.dreamchaser.depository_manage.pojo.callBackXml.approvalCallBackXml.ApprovalInfo_Details; import com.dreamchaser.depository_manage.pojo.callBackXml.approvalCallBackXml.ApprovalInfo_Details_Approver; @@ -12,11 +13,9 @@ import com.dreamchaser.depository_manage.security.pool.RedisPool; import com.dreamchaser.depository_manage.mapper.DepositoryMapper; import com.dreamchaser.depository_manage.service.*; import com.dreamchaser.depository_manage.service.impl.QyWxOperationService; -import com.dreamchaser.depository_manage.utils.DateUtil; -import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; -import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; -import com.dreamchaser.depository_manage.utils.WordUtil; +import com.dreamchaser.depository_manage.utils.*; import javafx.scene.control.TableRow; +import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.formula.functions.T; import org.junit.Test; import org.junit.runner.RunWith; @@ -53,6 +52,9 @@ public class OtherTest { @Autowired QyWxOperationService qyWxOperationService; + @Autowired + MaterialTypeService materialTypeService; + @Autowired RedisPool redisPool; @@ -99,8 +101,19 @@ public class OtherTest { @Test public void someTest(){ - List departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(277, null, null); - System.out.println(departmentHeadByUser); + List materialTypeByNames = materialTypeService.findMaterialTypeByName("安全阀"); + + Long oldId = null; + List parentOldIdList = new ArrayList<>(); + List OldIdList = new ArrayList<>(); + for (MaterialType materialType : materialTypeByNames) { + parentOldIdList.add(materialType.getParentId()); + OldIdList.add(materialType.getOldId()); + } + System.out.println(parentOldIdList); + System.out.println(OldIdList); + System.out.println(CollectionUtils.subtract(OldIdList,parentOldIdList)); + } @Test