提交 70295f20 authored 作者: 邓砥奕's avatar 邓砥奕

[业务模块]修改数组越界问题

上级 b3978a05
package com.tykj.dev.config;
import com.tykj.dev.misc.base.RepairStatusEnum;
import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.base.*;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
......@@ -21,6 +20,12 @@ public class GlobalMap {
private static final Map<Integer, LogType> logTypeMap;
private static final Map<Integer, DeviceLifeStatus> deviceLifeStatusMap;
private static final Map<Integer, MatchingRange> matchingRangeMap;
private static final Map<Integer, StorageType> storageTypeMap;
static {
statusEnumMap = Arrays.stream(StatusEnum.values())
.collect(Collectors.toMap(statusEnum -> statusEnum.id, Function.identity()));
......@@ -28,6 +33,12 @@ public class GlobalMap {
.collect(Collectors.toMap(repairStatusEnum -> repairStatusEnum.id,Function.identity()));
logTypeMap = Arrays.stream(LogType.values())
.collect(Collectors.toMap(logType -> logType.id,Function.identity()));
deviceLifeStatusMap = Arrays.stream(DeviceLifeStatus.values())
.collect(Collectors.toMap(deviceLifeStatus -> deviceLifeStatus.id,Function.identity()));
matchingRangeMap = Arrays.stream(MatchingRange.values())
.collect(Collectors.toMap(matchingRange -> matchingRange.id,Function.identity()));
storageTypeMap = Arrays.stream(StorageType.values())
.collect(Collectors.toMap(storageType -> storageType.id,Function.identity()));
}
public static Map<Integer, StatusEnum> getStatusEnumMap() {
......@@ -41,4 +52,16 @@ public class GlobalMap {
public static Map<Integer, LogType> getLogTypeMap() {
return logTypeMap;
}
public static Map<Integer, DeviceLifeStatus> getDeviceLifeStatusMap() {
return deviceLifeStatusMap;
}
public static Map<Integer, StorageType> getStorageTypeMap() {
return storageTypeMap;
}
public static Map<Integer, MatchingRange> getMatchingRangeMap() {
return matchingRangeMap;
}
}
package com.tykj.dev.device.library.controller;
import com.tykj.dev.config.GlobalMap;
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.repository.DeviceLogDao;
......@@ -163,42 +164,73 @@ public class DeviceLibraryController {
DeviceLibraryUpdateVo libraryUpdateVo = deviceEditVo.getUpdateVoList();
if (libraryUpdateVo.getInvisibleRange() != null) {
deviceLibraryEntity.setInvisibleRange(libraryUpdateVo.getInvisibleRange());
//添加装备日志 TODO
// String remark = "将装备的"+
// DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
// deviceLogService.addLog(deviceLogDto);
}
if (libraryUpdateVo.getLifeStatus() != null) {
if (libraryUpdateVo.getLifeStatus() != null&&!libraryUpdateVo.getLifeStatus().equals(deviceLibraryEntity.getLifeStatus())) {
//添加装备日志
String remark = "将装备的生命状态由"+ GlobalMap.getDeviceLifeStatusMap().get(deviceLibraryEntity.getLifeStatus()).name+"改为"+GlobalMap.getDeviceLifeStatusMap().get(libraryUpdateVo.getLifeStatus()).name;
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setLifeStatus(libraryUpdateVo.getLifeStatus());
}
if (libraryUpdateVo.getLocationUnit()!=null){
if (libraryUpdateVo.getLocationUnit()!=null&&!libraryUpdateVo.getLocationUnit().equals(deviceLibraryEntity.getLocationUnit())){
//添加装备日志
String remark = "将装备的所在单位由"+ deviceLibraryEntity.getLocationUnit()+"改为"+libraryUpdateVo.getLocationUnit();
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setLocationUnit(libraryUpdateVo.getLocationUnit());
}
if (libraryUpdateVo.getManageStatus()!=null){
deviceLibraryEntity.setManageStatus(libraryUpdateVo.getManageStatus());
}
if (libraryUpdateVo.getMatchingRange()!=null){
if (libraryUpdateVo.getMatchingRange()!=null&&!libraryUpdateVo.getMatchingRange().equals(deviceLibraryEntity.getMatchingRange())){
//添加装备日志
String remark = "将装备的配用范围由"+ GlobalMap.getMatchingRangeMap().get(deviceLibraryEntity.getMatchingRange()).name+"改为"+GlobalMap.getMatchingRangeMap().get(libraryUpdateVo.getMatchingRange()).name;
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setMatchingRange(libraryUpdateVo.getMatchingRange());
}
if (libraryUpdateVo.getModel()!=null){
if (libraryUpdateVo.getModel()!=null&&!libraryUpdateVo.getModel().equals(deviceLibraryEntity.getModel())){
//添加装备日志
String remark = "将装备的型号由"+ deviceLibraryEntity.getModel()+"改为"+libraryUpdateVo.getModel();
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setModel(libraryUpdateVo.getModel());
}
if (libraryUpdateVo.getName()!=null){
if (libraryUpdateVo.getName()!=null&&!libraryUpdateVo.getName().equals(deviceLibraryEntity.getName())){
//添加装备日志
String remark = "将装备的名称由"+ deviceLibraryEntity.getName()+"改为"+libraryUpdateVo.getName();
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setName(libraryUpdateVo.getName());
}
if (libraryUpdateVo.getOwnUnit()!=null){
if (libraryUpdateVo.getOwnUnit()!=null&&!libraryUpdateVo.getOwnUnit().equals(deviceLibraryEntity.getOwnUnit())){
//添加装备日志
String remark = "将装备的所属单位由"+ deviceLibraryEntity.getOwnUnit()+"改为"+libraryUpdateVo.getOwnUnit();
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setOwnUnit(libraryUpdateVo.getOwnUnit());
}
if (libraryUpdateVo.getProdNumber()!=null){
if (libraryUpdateVo.getProdNumber()!=null&&!libraryUpdateVo.getProdNumber().equals(deviceLibraryEntity.getProdNumber())){
//添加装备日志
String remark = "将装备生产序列号由"+ deviceLibraryEntity.getProdNumber()+"改为"+libraryUpdateVo.getProdNumber();
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setProdNumber(libraryUpdateVo.getProdNumber());
}
if (libraryUpdateVo.getSecretLevel()!=null){
deviceLibraryEntity.setSecretLevel(libraryUpdateVo.getSecretLevel());
}
if (libraryUpdateVo.getSeqNumber()!=null){
if (libraryUpdateVo.getSeqNumber()!=null&&!libraryUpdateVo.getSeqNumber().equals(deviceLibraryEntity.getSeqNumber())){
String remark = "将装备序列号由"+ deviceLibraryEntity.getSeqNumber()+"改为"+libraryUpdateVo.getSeqNumber();
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setSeqNumber(libraryUpdateVo.getSeqNumber());
}
if (libraryUpdateVo.getStorageType()!=null){
if (libraryUpdateVo.getStorageType()!=null&&!libraryUpdateVo.getStorageType().equals(deviceLibraryEntity.getStorageType())){
//添加装备日志
String remark = "将装备的入库类型由"+ GlobalMap.getStorageTypeMap().get(deviceLibraryEntity.getStorageType()).name+"改为"+GlobalMap.getStorageTypeMap().get(libraryUpdateVo.getStorageType()).name;
DeviceLogDto deviceLogDto = new DeviceLogDto(deviceEditVo.getDeviceId(),remark,null);
deviceLogService.addLog(deviceLogDto);
deviceLibraryEntity.setStorageType(libraryUpdateVo.getStorageType());
}
if (libraryUpdateVo.getType()!=null){
......
......@@ -12,15 +12,15 @@ public enum DeviceInvisibleRange {
/**
* 省一级
*/
PACKING(1,"省一级"),
SHEN(1,"省一级"),
/**
* 县一级
*/
STORAGE(2,"县一级"),
XIAN(3,"县一级"),
/**
* 市一级
*/
ALLOT(3,"市一级");
SHI(2,"市一级");
public Integer id;
......
......@@ -36,7 +36,39 @@ public enum DeviceLifeStatus {
/**
* 清退
*/
SEND_BACK(6,"清退")
SEND_BACK(6,"清退"),
/**
* 待退装
*/
WAIT_RETIRED(7,"待退装"),
/**
* 退装
*/
RETIRED(8,"退装"),
/**
* 待销毁
*/
WAIT_DESTROY(9,"待销毁"),
/**
* 已销毁
*/
DESTROYED(10,"已销毁"),
/**
* 丢失
*/
LOSE(11,"丢失"),
/**
* 退役
*/
RETIRE(12,"退役"),
/**
* 报废不在省库
*/
SCRAP_II(13,"报废不在省库"),
/**
* 使用
*/
USE(14,"使用")
;
public Integer id;
......
package com.tykj.dev.misc.base;
public enum DeviceType {
}
package com.tykj.dev.misc.base;
import lombok.AllArgsConstructor;
/**
* @author dengdiyi
* 配用范围枚举
*/
@AllArgsConstructor
public enum MatchingRange {
/**
* 省对下纵向
*/
PROVINCIAL_VERTICAL(1,"省对下纵向");
public Integer id;
public String name;
}
package com.tykj.dev.misc.base;
import lombok.AllArgsConstructor;
/**
* @author dengdiyi
* 入库类型枚举
*/
@AllArgsConstructor
public enum StorageType {
/**
* 横向
*/
HORIZONTAL(1,"横向"),
/**
* 纵向
*/
VERTICAL(2,"纵向"),
/**
* 委托
*/
ENTRUST(3,"委托"),
/**
* 代管
*/
ESCROW(4,"代管"),
/**
* 其他
*/
OTHER(5,"其他");
public Integer id;
public String name;
}
......@@ -454,8 +454,9 @@ public class TaskServiceImpl implements TaskService {
List<TaskBto> taskBtoList = taskBtos.stream()
.filter(taskBto -> {
boolean involveExists = taskBto.getInvolveUserIdList().size() > 0;
boolean pointExists = taskBto.getCurrentPoint()<taskBto.getInvolveUserIdList().size();
boolean userConfirm = oldUserId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()));
return involveExists && userConfirm;
return involveExists && pointExists && userConfirm;
})
.collect(Collectors.toList());
//替换用户id
......@@ -468,7 +469,12 @@ public class TaskServiceImpl implements TaskService {
//查询跟踪
//涉及人员包括旧用户且指针对应UserId不是旧用户
List<TaskBto> taskBtos1 = taskBtos.stream()
.filter(taskBto -> taskBto.getInvolveUserIdList().contains(oldUserId) && !oldUserId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint())))
.filter(taskBto -> {
boolean involveExists = taskBto.getInvolveUserIdList().contains(oldUserId);
boolean pointExists = taskBto.getCurrentPoint()<taskBto.getInvolveUserIdList().size();
boolean userConfirm = oldUserId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()));
return involveExists && pointExists && !userConfirm;
})
.collect(Collectors.toList());
//替换用户id
taskBtos1.forEach(taskBto -> {
......@@ -503,10 +509,11 @@ public class TaskServiceImpl implements TaskService {
List<TaskBto> taskBtoList = taskBtos.stream()
.filter(taskBto -> {
boolean involveExists = taskBto.getInvolveUserIdList().size() > 0;
boolean pointExists = taskBto.getCurrentPoint()<taskBto.getInvolveUserIdList().size();
boolean userConfirm = userId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()));
boolean noUserHandle = taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()) == 0;
boolean belongUnit = taskBto.getOwnUnit().equals(userUtils.getCurrentUnitId());
return involveExists && (userConfirm || (noUserHandle && belongUnit));
return involveExists && pointExists && (userConfirm || (noUserHandle && belongUnit));
})
.collect(Collectors.toList());
//查询所有的业务
......@@ -536,11 +543,21 @@ public class TaskServiceImpl implements TaskService {
if (taskSelectVo.getSelectNum() == 3) {
//涉及人员包括当前用户且指针对应UserId不是当前用户
List<TaskBto> taskBtoList = taskBtos.stream()
.filter(taskBto -> taskBto.getInvolveUserIdList().contains(userId) && !userId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint())))
.filter(taskBto -> {
boolean involveExists = taskBto.getInvolveUserIdList().contains(userId);
boolean pointExists = taskBto.getCurrentPoint()<taskBto.getInvolveUserIdList().size();
boolean userConfirm = userId.equals(taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()));
return involveExists&&pointExists&&!userConfirm;})
.collect(Collectors.toList());
//涉及人员当前指针为-1,且所属单位为当前单位
List<TaskBto> taskBtos1 = taskBtos.stream()
.filter(taskBto -> !taskBto.getInvolveUserIdList().contains(userId) && taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()) == -1 && taskBto.getOwnUnit().equals(unitId))
.filter(taskBto -> {
boolean involveExists = taskBto.getInvolveUserIdList().contains(userId);
boolean pointExists = taskBto.getCurrentPoint()<taskBto.getInvolveUserIdList().size();
boolean userConfirm = taskBto.getInvolveUserIdList().get(taskBto.getCurrentPoint()) == -1;
boolean unitConfirm = taskBto.getOwnUnit().equals(unitId);
return !involveExists&&pointExists&&userConfirm&&unitConfirm;
})
.collect(Collectors.toList());
taskBtoList.addAll(taskBtos1);
//查询所有业务
......@@ -634,7 +651,12 @@ public class TaskServiceImpl implements TaskService {
if (taskLogs.size()==0){
return null;
}
return taskLogs.get(0).getCreateTime();
if (taskLogs.size()>0) {
return taskLogs.get(0).getCreateTime();
}
else {
return null;
}
} else {
return null;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论