|
@@ -1797,132 +1797,136 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
|
|
|
|
|
|
|
|
int addNum = 0;
|
|
int addNum = 0;
|
|
|
List<String> modelError = new ArrayList<String>();
|
|
List<String> modelError = new ArrayList<String>();
|
|
|
- List<SbInfo> updateList = new ArrayList<SbInfo>();
|
|
|
|
|
try {
|
|
try {
|
|
|
List<SbInfoVO> items = CustomExcelImportUtil.importListByUpdateALl(file.getInputStream());
|
|
List<SbInfoVO> items = CustomExcelImportUtil.importListByUpdateALl(file.getInputStream());
|
|
|
- // List<ExportSbInfoVO> items =
|
|
|
|
|
- // ExcelImportUtil.importExcel(file.getInputStream(), ExportSbInfoVO.class,new
|
|
|
|
|
- // ImportParams());
|
|
|
|
|
if (!CollectionUtils.isEmpty(items)) {
|
|
if (!CollectionUtils.isEmpty(items)) {
|
|
|
- if (!CollectionUtils.isEmpty(items)) {
|
|
|
|
|
- List<SbInfoVO> addItems = new ArrayList<SbInfoVO>();
|
|
|
|
|
- List<SysUser> users = sysUserMapper.selectAll();
|
|
|
|
|
- List<FirmProducer> producerList = new ArrayList<>(firmProducerMapper.selectAll());
|
|
|
|
|
- // 用于缓存本次导入新增的生产商,避免同名重复新增
|
|
|
|
|
- Map<String, FirmProducer> newProducerMap = new HashMap<>();
|
|
|
|
|
- List<SbPosition> positionList = sbPositionMapper.selectAll();
|
|
|
|
|
- LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
- for (SbInfoVO item : items) {
|
|
|
|
|
-
|
|
|
|
|
- // 处理所属车间:将车间名称转换为车间ID(匹配不到则留空,不报错)
|
|
|
|
|
- if (StringUtils.isNotBlank(item.getPositionName())) {
|
|
|
|
|
- boolean findPosition = false;
|
|
|
|
|
- for (SbPosition position : positionList) {
|
|
|
|
|
- if (position.getName().equalsIgnoreCase(item.getPositionName().trim())) {
|
|
|
|
|
- item.setPositionId(position.getId());
|
|
|
|
|
- findPosition = true;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (!findPosition) {
|
|
|
|
|
- log.warn("更新导入第{}行,系统找不到车间名称【{}】,车间ID留空", item.getNo(), item.getPositionName());
|
|
|
|
|
- item.setPositionId(null);
|
|
|
|
|
|
|
+ List<SysUser> users = sysUserMapper.selectAll();
|
|
|
|
|
+ List<FirmProducer> producerList = new ArrayList<>(firmProducerMapper.selectAll());
|
|
|
|
|
+ // 用于缓存本次导入新增的生产商,避免同名重复新增
|
|
|
|
|
+ Map<String, FirmProducer> newProducerMap = new HashMap<>();
|
|
|
|
|
+ List<SbPosition> positionList = sbPositionMapper.selectAll();
|
|
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
|
|
+ for (SbInfoVO item : items) {
|
|
|
|
|
+ // 通过设备编号no查找已有记录,获取ID用于更新(与新增导入保持一致,不依赖Excel中的ID列)
|
|
|
|
|
+ SbInfoVO existingInfo = mapper.getByNo(item.getNo());
|
|
|
|
|
+ if (existingInfo == null) {
|
|
|
|
|
+ log.warn("更新导入第{}行,设备编号【{}】在系统中不存在,跳过", item.getNo(), item.getNo());
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ item.setId(existingInfo.getId());
|
|
|
|
|
+
|
|
|
|
|
+ // 处理所属车间:将车间名称转换为车间ID(匹配不到则留空,不报错)
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getPositionName())) {
|
|
|
|
|
+ log.info("更新导入第{}行,读取到车间名称:{}", item.getNo(), item.getPositionName());
|
|
|
|
|
+ boolean findPosition = false;
|
|
|
|
|
+ for (SbPosition position : positionList) {
|
|
|
|
|
+ if (position.getName().equalsIgnoreCase(item.getPositionName().trim())) {
|
|
|
|
|
+ item.setPositionId(position.getId());
|
|
|
|
|
+ log.info("更新导入第{}行,匹配车间成功,车间ID:{}", item.getNo(), position.getId());
|
|
|
|
|
+ findPosition = true;
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- // 是否固定资产:默认为否
|
|
|
|
|
- if (item.getIsFinancing() == null) {
|
|
|
|
|
- item.setIsFinancing(SbInfoFinancingEnum.NOT.getValue());
|
|
|
|
|
|
|
+ if (!findPosition) {
|
|
|
|
|
+ log.warn("更新导入第{}行,系统找不到车间名称【{}】,车间ID留空", item.getNo(), item.getPositionName());
|
|
|
|
|
+ item.setPositionId(null);
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.warn("更新导入第{}行,车间名称为空,跳过车间匹配", item.getNo());
|
|
|
|
|
+ }
|
|
|
|
|
+ // 是否固定资产:默认为否
|
|
|
|
|
+ if (item.getIsFinancing() == null) {
|
|
|
|
|
+ item.setIsFinancing(SbInfoFinancingEnum.NOT.getValue());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- boolean findSaveUser = false;
|
|
|
|
|
- if (StringUtils.isNotBlank(item.getSaveUserName())
|
|
|
|
|
- && !"null".equalsIgnoreCase(item.getSaveUserName())) {
|
|
|
|
|
- for (SysUser user : users) {
|
|
|
|
|
- if (user.getRealName().equalsIgnoreCase(item.getSaveUserName())) {
|
|
|
|
|
- item.setSaveUser(user.getUserId());
|
|
|
|
|
- item.setUseUser(user.getUserId());
|
|
|
|
|
- findSaveUser = true;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (!findSaveUser) {
|
|
|
|
|
- throw new BusinessException("找不到使用人员,请先添加, 名称" + item.getSaveUserName());
|
|
|
|
|
|
|
+ boolean findSaveUser = false;
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getSaveUserName())
|
|
|
|
|
+ && !"null".equalsIgnoreCase(item.getSaveUserName())) {
|
|
|
|
|
+ for (SysUser user : users) {
|
|
|
|
|
+ if (user.getRealName().equalsIgnoreCase(item.getSaveUserName())) {
|
|
|
|
|
+ item.setSaveUser(user.getUserId());
|
|
|
|
|
+ item.setUseUser(user.getUserId());
|
|
|
|
|
+ findSaveUser = true;
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (StringUtils.isNotBlank(item.getRepairUserName())
|
|
|
|
|
- && !"null".equalsIgnoreCase(item.getRepairUserName())) {
|
|
|
|
|
- boolean findRepairUser = false;
|
|
|
|
|
- for (SysUser user : users) {
|
|
|
|
|
- if (user.getRealName().equalsIgnoreCase(item.getRepairUserName())) {
|
|
|
|
|
- item.setRepairUser(user.getUserId());
|
|
|
|
|
- findRepairUser = true;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (!findRepairUser) {
|
|
|
|
|
- throw new BusinessException("找不到维修人员,请先添加, 名称" + item.getRepairUserName());
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (!findSaveUser) {
|
|
|
|
|
+ throw new BusinessException("找不到使用人员,请先添加, 名称" + item.getSaveUserName());
|
|
|
}
|
|
}
|
|
|
- if (StringUtils.isNotBlank(item.getRepairUserNameSecond())
|
|
|
|
|
- && !"null".equalsIgnoreCase(item.getRepairUserNameSecond())) {
|
|
|
|
|
- boolean findRepairUser = false;
|
|
|
|
|
- for (SysUser user : users) {
|
|
|
|
|
- if (user.getRealName().equalsIgnoreCase(item.getRepairUserNameSecond())) {
|
|
|
|
|
- item.setRepairUserSecond(user.getUserId());
|
|
|
|
|
- findRepairUser = true;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if (!findRepairUser) {
|
|
|
|
|
- throw new BusinessException("找不到第二维修人员,请先添加, 名称" + item.getRepairUserNameSecond());
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getRepairUserName())
|
|
|
|
|
+ && !"null".equalsIgnoreCase(item.getRepairUserName())) {
|
|
|
|
|
+ boolean findRepairUser = false;
|
|
|
|
|
+ for (SysUser user : users) {
|
|
|
|
|
+ if (user.getRealName().equalsIgnoreCase(item.getRepairUserName())) {
|
|
|
|
|
+ item.setRepairUser(user.getUserId());
|
|
|
|
|
+ findRepairUser = true;
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- List<SbType> typeList = sbTypeMapper.selectAll();
|
|
|
|
|
- boolean find = false;
|
|
|
|
|
- for (SbType type : typeList) {
|
|
|
|
|
- if (type.getName().equalsIgnoreCase(item.getTypeName())) {
|
|
|
|
|
- item.setTypeId(type.getId());
|
|
|
|
|
- find = true;
|
|
|
|
|
|
|
+ if (!findRepairUser) {
|
|
|
|
|
+ throw new BusinessException("找不到维修人员,请先添加, 名称" + item.getRepairUserName());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isNotBlank(item.getRepairUserNameSecond())
|
|
|
|
|
+ && !"null".equalsIgnoreCase(item.getRepairUserNameSecond())) {
|
|
|
|
|
+ boolean findRepairUser = false;
|
|
|
|
|
+ for (SysUser user : users) {
|
|
|
|
|
+ if (user.getRealName().equalsIgnoreCase(item.getRepairUserNameSecond())) {
|
|
|
|
|
+ item.setRepairUserSecond(user.getUserId());
|
|
|
|
|
+ findRepairUser = true;
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- if (!find) {
|
|
|
|
|
- throw new BusinessException("找不到设备类型,请先添加:" + item.getTypeName());
|
|
|
|
|
|
|
+ if (!findRepairUser) {
|
|
|
|
|
+ throw new BusinessException("找不到第二维修人员,请先添加, 名称" + item.getRepairUserNameSecond());
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- boolean findProdcuer = false;
|
|
|
|
|
- for (FirmProducer producer : producerList) {
|
|
|
|
|
- if (producer.getName().equalsIgnoreCase(item.getProducerId())) {
|
|
|
|
|
- item.setProducerId(producer.getId());
|
|
|
|
|
- findProdcuer = true;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ List<SbType> typeList = sbTypeMapper.selectAll();
|
|
|
|
|
+ boolean find = false;
|
|
|
|
|
+ for (SbType type : typeList) {
|
|
|
|
|
+ if (type.getName().equalsIgnoreCase(item.getTypeName())) {
|
|
|
|
|
+ item.setTypeId(type.getId());
|
|
|
|
|
+ find = true;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!find) {
|
|
|
|
|
+ throw new BusinessException("找不到设备类型,请先添加:" + item.getTypeName());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ boolean findProdcuer = false;
|
|
|
|
|
+ for (FirmProducer producer : producerList) {
|
|
|
|
|
+ if (producer.getName().equalsIgnoreCase(item.getProducerId())) {
|
|
|
|
|
+ item.setProducerId(producer.getId());
|
|
|
|
|
+ findProdcuer = true;
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
- if (!findProdcuer) {
|
|
|
|
|
- String producerName = item.getProducerId();
|
|
|
|
|
- if (StringUtils.isBlank(producerName) || "null".equalsIgnoreCase(producerName)) {
|
|
|
|
|
- item.setProducerId(null);
|
|
|
|
|
- } else {
|
|
|
|
|
- // 库里没有则自动新增生产商
|
|
|
|
|
- FirmProducer newProducer = newProducerMap.get(producerName);
|
|
|
|
|
- if (newProducer == null) {
|
|
|
|
|
- newProducer = new FirmProducer();
|
|
|
|
|
- newProducer.setId(IdGeneratorUtils.getObjectId());
|
|
|
|
|
- newProducer.setName(producerName);
|
|
|
|
|
- newProducer.setLevel(1);
|
|
|
|
|
- newProducer.setType(1);
|
|
|
|
|
- newProducer.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
|
|
|
|
- newProducer.setCreatedTime(now);
|
|
|
|
|
- firmProducerMapper.insertSelective(newProducer);
|
|
|
|
|
- producerList.add(newProducer);
|
|
|
|
|
- newProducerMap.put(producerName, newProducer);
|
|
|
|
|
- }
|
|
|
|
|
- item.setProducerId(newProducer.getId());
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!findProdcuer) {
|
|
|
|
|
+ String producerName = item.getProducerId();
|
|
|
|
|
+ if (StringUtils.isBlank(producerName) || "null".equalsIgnoreCase(producerName)) {
|
|
|
|
|
+ item.setProducerId(null);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 库里没有则自动新增生产商
|
|
|
|
|
+ FirmProducer newProducer = newProducerMap.get(producerName);
|
|
|
|
|
+ if (newProducer == null) {
|
|
|
|
|
+ newProducer = new FirmProducer();
|
|
|
|
|
+ newProducer.setId(IdGeneratorUtils.getObjectId());
|
|
|
|
|
+ newProducer.setName(producerName);
|
|
|
|
|
+ newProducer.setLevel(1);
|
|
|
|
|
+ newProducer.setType(1);
|
|
|
|
|
+ newProducer.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
|
|
|
|
+ newProducer.setCreatedTime(now);
|
|
|
|
|
+ firmProducerMapper.insertSelective(newProducer);
|
|
|
|
|
+ producerList.add(newProducer);
|
|
|
|
|
+ newProducerMap.put(producerName, newProducer);
|
|
|
}
|
|
}
|
|
|
|
|
+ item.setProducerId(newProducer.getId());
|
|
|
}
|
|
}
|
|
|
- mapper.updateByPrimaryKeySelective(BeanConverterUtil.copyObjectProperties(item, SbInfo.class));
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ mapper.updateByPrimaryKeySelective(BeanConverterUtil.copyObjectProperties(item, SbInfo.class));
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return "总计更新:" + (items.size());
|
|
return "总计更新:" + (items.size());
|