Commit 67ca4b65 authored by KeYong's avatar KeYong

优化装备导入

parent 0da3d898
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.equipmanage.common.entity.*; import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.vo.*; import com.yeejoin.equipmanage.common.entity.vo.*;
...@@ -17,6 +18,7 @@ import org.apache.commons.lang3.RandomStringUtils; ...@@ -17,6 +18,7 @@ import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -57,6 +59,9 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment ...@@ -57,6 +59,9 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
@Autowired @Autowired
private IEquipmentDetailService iEquipmentDetailService; private IEquipmentDetailService iEquipmentDetailService;
@Autowired
private RedisUtils redisUtils;
// 装备分类code长度 // 装备分类code长度
private static final int CATECODELEN = 8; private static final int CATECODELEN = 8;
private String proviceCode = "44"; private String proviceCode = "44";
...@@ -111,10 +116,10 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment ...@@ -111,10 +116,10 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
} }
equipmentMapper.deleteById(equipment.getId()); equipmentMapper.deleteById(equipment.getId());
}); });
refreshData();
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException("删除失败!"); throw new RuntimeException("删除失败!");
} }
} }
@Override @Override
...@@ -140,10 +145,22 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment ...@@ -140,10 +145,22 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.error("新增装备定义操作中,检测到巡检服务未启动或启动出错!"); log.error("新增装备定义操作中,检测到巡检服务未启动或启动出错!");
} }
if (num > 0) { if (num > 0) {
refreshData();
return true; return true;
} }
return false; return false;
} }
@Async
public void refreshData() {
if (redisUtils.hasKey("equip_equipDefinitions")) {
redisUtils.del("equip_equipDefinitions");
}
QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
equipmentQueryWrapper.isNotNull("id");
List<Equipment> equipments = equipmentMapper.selectList(equipmentQueryWrapper);
redisUtils.set("equip_equipDefinitions", JSONObject.toJSONString(equipments));
}
// public void saveEquipmentQRCodes(Equipment equipment) { // public void saveEquipmentQRCodes(Equipment equipment) {
// try { // try {
...@@ -233,6 +250,7 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment ...@@ -233,6 +250,7 @@ public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment
log.error("编辑装备定义操作中,检测到巡检服务未启动或启动出错!"); log.error("编辑装备定义操作中,检测到巡检服务未启动或启动出错!");
} }
if (savedEquipment > 0) { if (savedEquipment > 0) {
refreshData();
return true; return true;
} }
return false; return false;
......
...@@ -8,6 +8,7 @@ import java.util.stream.Collectors; ...@@ -8,6 +8,7 @@ import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.utils.*; import com.yeejoin.equipmanage.common.utils.*;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -32,21 +33,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -32,21 +33,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.equipmanage.common.entity.Equipment;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.entity.EquipmentIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentManageEntity;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentSystemSourceStatistics;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.Journal;
import com.yeejoin.equipmanage.common.entity.ManufacturerInfo;
import com.yeejoin.equipmanage.common.entity.Stock;
import com.yeejoin.equipmanage.common.entity.StockBill;
import com.yeejoin.equipmanage.common.entity.StockBillDetail;
import com.yeejoin.equipmanage.common.entity.StockDetail;
import com.yeejoin.equipmanage.common.entity.WarehouseStructure;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO; import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo; import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo;
import com.yeejoin.equipmanage.common.enums.BillContentEnum; import com.yeejoin.equipmanage.common.enums.BillContentEnum;
...@@ -507,10 +493,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -507,10 +493,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
relationRedisUtil.delSysRedisKey(fireFightSysIdsBuffer.toString()); relationRedisUtil.delSysRedisKey(fireFightSysIdsBuffer.toString());
} }
if (redisUtils.hasKey("equipAndCarIotCodes")) {
redisUtils.del("equipAndCarIotCodes");
}
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() { // TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
// @Override // @Override
// public void afterCommit() { // public void afterCommit() {
...@@ -546,6 +528,10 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -546,6 +528,10 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
redisUtils.del("equipAndCarIotCodes"); redisUtils.del("equipAndCarIotCodes");
} }
redisUtils.set("equipAndCarIotCodes", JSONObject.toJSONString(data)); redisUtils.set("equipAndCarIotCodes", JSONObject.toJSONString(data));
if (redisUtils.hasKey("equip_warehouseStructures")) {
redisUtils.getAndDeletePatternKeys("equip_warehouseStructures" + "*");
}
return date; return date;
} }
...@@ -579,11 +565,22 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -579,11 +565,22 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition); TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
try { try {
//查询装备定义信息 //查询装备定义信息
QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>(); // equipmentQueryWrapper.lambda().eq(Equipment::getCode, equipmentDetailDownloadVOS.getCode());
equipmentQueryWrapper.lambda().eq(Equipment::getCode, equipmentDetailDownloadVOS.getCode()); // Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
// 此处由于每次导入都需查装备定义导致导入缓慢,所以优化为加入缓存
Equipment equipment;
if (redisUtils.hasKey("equip_equipDefinitions")) {
List<Equipment> equipmentList = JSONObject.parseArray(redisUtils.get("equip_equipDefinitions").toString(), Equipment.class);;
equipment = equipmentList.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getCode())).collect(Collectors.toList()).get(0);
} else {
QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
equipmentQueryWrapper.isNotNull("id");
List<Equipment> equipments = equipmentMapper.selectList(equipmentQueryWrapper);
equipment = equipments.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getCode())).collect(Collectors.toList()).get(0);
redisUtils.set("equip_equipDefinitions", JSONObject.toJSONString(equipments));
}
if (equipment == null) { if (equipment == null) {
erryy.append(String.format("装备(器材)编码[%S]填写错误,请输入正确的装备(器材)编码!",equipmentDetailDownloadVOS.getCode()) + ","); erryy.append(String.format("装备(器材)编码[%S]填写错误,请输入正确的装备(器材)编码!",equipmentDetailDownloadVOS.getCode()) + ",");
throw new RuntimeException(String.format("装备(器材)编码[%S]填写错误,请输入正确的装备(器材)编码!",equipmentDetailDownloadVOS.getCode())); throw new RuntimeException(String.format("装备(器材)编码[%S]填写错误,请输入正确的装备(器材)编码!",equipmentDetailDownloadVOS.getCode()));
...@@ -604,8 +601,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -604,8 +601,8 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
throw new RuntimeException(String.format("物联编码[%S]填写重复,请重新输入!",iotCode)); throw new RuntimeException(String.format("物联编码[%S]填写重复,请重新输入!",iotCode));
} }
if(StringUtils.isNotEmpty(haveUsedIotPrefix) && Arrays.stream(haveUsedIotPrefix.split(",")).anyMatch(iotCode::startsWith)){ if(StringUtils.isNotEmpty(haveUsedIotPrefix) && Arrays.stream(haveUsedIotPrefix.split(",")).anyMatch(iotCode::startsWith)){
erryy.append(String.format("物联编码[%S]航班已占用,请重新输入!",iotCode)+ ","); erryy.append(String.format("物联编码[%S]已占用,请重新输入!",iotCode)+ ",");
throw new BadRequest("物联编码航班已占用"); throw new BadRequest("物联编码已占用");
} }
} }
AtomicReference<String> fightSysIds = new AtomicReference<>(""); AtomicReference<String> fightSysIds = new AtomicReference<>("");
...@@ -680,7 +677,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -680,7 +677,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
equipmentSpecific.setTeamId(fireTeam[1]); equipmentSpecific.setTeamId(fireTeam[1]);
} }
// 导入新增所属单位 // 导入新增所属单位
if (StringUtils.isNotBlank(equipmentDetailDownloadVOS.getCompanyName())) { if (StringUtils.isNotBlank(equipmentDetailDownloadVOS.getCompanyName())) {
String[] company = equipmentDetailDownloadVOS.getCompanyName().split("@"); String[] company = equipmentDetailDownloadVOS.getCompanyName().split("@");
equipmentSpecific.setAgencyId(company[1]); equipmentSpecific.setAgencyId(company[1]);
...@@ -700,9 +696,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -700,9 +696,19 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
controllerProxy.refreshCount(equipmentSpecific.getBizOrgCode()); controllerProxy.refreshCount(equipmentSpecific.getBizOrgCode());
//位置编码不为空入库 //位置编码不为空入库
if (equipmentDetailDownloadVOS != null && equipmentDetailDownloadVOS.getWarehouseStructCode() != null) { if (equipmentDetailDownloadVOS != null && equipmentDetailDownloadVOS.getWarehouseStructCode() != null) {
QueryWrapper<WarehouseStructure> warehouseStructureQueryWrapper = new QueryWrapper<>(); // QueryWrapper<WarehouseStructure> warehouseStructureQueryWrapper = new QueryWrapper<>();
warehouseStructureQueryWrapper.lambda().eq(WarehouseStructure::getCode, equipmentDetailDownloadVOS.getWarehouseStructCode()); // warehouseStructureQueryWrapper.lambda().eq(WarehouseStructure::getCode, equipmentDetailDownloadVOS.getWarehouseStructCode());
WarehouseStructure warehouseStructure = warehouseStructureService.getOne(warehouseStructureQueryWrapper); // WarehouseStructure warehouseStructure = warehouseStructureService.getOne(warehouseStructureQueryWrapper);
// 入库位置进行优化
WarehouseStructure warehouseStructure;
if (redisUtils.hasKey("equip_warehouseStructures")) {
List<WarehouseStructure> warehouseStructures = JSONObject.parseArray(redisUtils.get("equip_warehouseStructures").toString(), WarehouseStructure.class);
warehouseStructure = warehouseStructures.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getWarehouseStructCode())).collect(Collectors.toList()).get(0);
} else {
List<WarehouseStructure> warehouseStructures = warehouseStructureService.list();
warehouseStructure = warehouseStructures.stream().filter(x -> x.getCode().equals(equipmentDetailDownloadVOS.getWarehouseStructCode())).collect(Collectors.toList()).get(0);
redisUtils.set("equip_warehouseStructures", JSONObject.toJSONString(warehouseStructures));
}
if (warehouseStructure == null) { if (warehouseStructure == null) {
erryy.append(String.format("货位编码[%S]填写错误,请输入正确的货位编码!",equipmentDetailDownloadVOS.getWarehouseStructCode())+ ","); erryy.append(String.format("货位编码[%S]填写错误,请输入正确的货位编码!",equipmentDetailDownloadVOS.getWarehouseStructCode())+ ",");
throw new RuntimeException(String.format("货位编码[%S]填写错误,请输入正确的货位编码!",equipmentDetailDownloadVOS.getWarehouseStructCode())); throw new RuntimeException(String.format("货位编码[%S]填写错误,请输入正确的货位编码!",equipmentDetailDownloadVOS.getWarehouseStructCode()));
...@@ -770,7 +776,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -770,7 +776,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
} }
list.add(equipmentSpecific); list.add(equipmentSpecific);
this.equipmentSpecificIndexSave(equipmentDetail, equipmentSpecific); this.equipmentSpecificIndexSave(equipmentDetail, equipmentSpecific);
platformTransactionManager.commit(transactionStatus); platformTransactionManager.commit(transactionStatus);
} catch (Exception e) { } catch (Exception e) {
platformTransactionManager.rollback(transactionStatus); platformTransactionManager.rollback(transactionStatus);
errBufferName.append(equipmentDetailDownloadVOS.getCode() + ","); errBufferName.append(equipmentDetailDownloadVOS.getCode() + ",");
...@@ -781,10 +787,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements ...@@ -781,10 +787,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
} }
// @Async // @Async
public void refreshCount(String bizOrgCode) { public void refreshCount(String bizOrgCode) {
equipmentSpecificSerivce.refreshStaData(); equipmentSpecificSerivce.refreshStaData();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment