提交 5df9d118 authored 作者: 邓砥奕's avatar 邓砥奕

更新

上级 d72ed641
......@@ -224,6 +224,8 @@ public class DeviceApplyController {
int year = calendar.get(Calendar.YEAR);
String num = "NO:第" + year + "PF" + allotBill.getId() + "号";
allotBill.setNum(num);
deviceApplyBillEntity.setAllotId(allotBill.getId());
deviceApplyBillService.update(deviceApplyBillEntity);
//生成电子签章id
Long signId = snowflake.creatNextId();
Long signId2 = snowflake.creatNextId();
......
......@@ -32,6 +32,7 @@ import com.tykj.dev.device.user.util.AuthenticationUtils;
import com.tykj.dev.misc.base.ResultObj;
import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.socket.MyWebSocket;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
......@@ -90,6 +91,8 @@ public class DeviceCheckController {
private AuService auService;
@Autowired
private ConfirmCheckService ccService;
@Autowired
private MyWebSocket myWebSocket;
@GetMapping("/area/{fatherId}")
@ApiOperation(value = "查询指定区域下的所有区域信息")
......@@ -171,6 +174,7 @@ public class DeviceCheckController {
@PostMapping("/auto")
public ResultObj<Map<String, List<Integer>>> startAutoCheck() {
Map<String, List<Integer>> resultIds = ccService.autoCheck();
myWebSocket.sendMessage1();
return new ResultObj<>(resultIds, "自动核查任务发起成功");
}
......@@ -215,7 +219,7 @@ public class DeviceCheckController {
cityStatTask.setCustomInfo("exam");
taskService.start(cityStatTask);
}
myWebSocket.sendMessage1();
return ResponseEntity.ok(ImmutableMap.of("msg", "发起核查成功"));
}
......@@ -326,7 +330,7 @@ public class DeviceCheckController {
// 4. 重新设置并保存统计账单
provinceCheckStat.setStatInfo(JacksonUtil.toJSon(deviceStatVos));
statRepo.save(provinceCheckStat);
myWebSocket.sendMessage1();
log.info("[核查模块] {}单位成功发起对 {} 单位的检查任务分发", startUnit.getName(), checkedUnitNames);
return ResponseEntity.ok(new ResultObj<>(
ImmutableMap.of("statIds", statId, "detailIds", detailIds),
......@@ -413,6 +417,7 @@ public class DeviceCheckController {
statRepo.save(provVo.toDo());
log.info("[核查模块 检测到是自动核查任务,将省级统计 id = {} 认为开启]", provStat.getId());
}
myWebSocket.sendMessage1();
return ResponseEntity.ok(new ResultObj<>("专管员A操作成功"));
}
......@@ -464,7 +469,7 @@ public class DeviceCheckController {
StatusEnum firstStatus = getFirstStatus(currentTask.getBillStatus());
taskService.moveToSpecial(currentTask, firstStatus, currentTask.getFirstUserId());
}
myWebSocket.sendMessage1();
log.info("[核查模块] 专管员B操作成功");
return ResponseEntity.ok(new ResultObj<>("专管B操作成功"));
}
......@@ -504,7 +509,7 @@ public class DeviceCheckController {
StatusEnum firstStatus = getFirstStatus(currentTask.getBillStatus());
taskService.moveToSpecial(currentTask, firstStatus, currentTask.getFirstUserId());
}
myWebSocket.sendMessage1();
return ResponseEntity.ok(new ResultObj<>("操作成功"));
}
......@@ -543,6 +548,7 @@ public class DeviceCheckController {
}
log.info("[核查模块] 统计数据确认操作成功");
myWebSocket.sendMessage1();
return ResponseEntity.ok(new ResultObj<>("统计数据确认完毕"));
}
......
......@@ -50,6 +50,7 @@ public class DeviceCheckBill extends BaseEntity {
/**
* 核查单位主键id(x作为分隔符),例如1x2,意为单位id为1和2的装备核查
*/
@Column(name = "check_detail",columnDefinition = "TEXT")
private String checkDetail;
/**
......
......@@ -105,7 +105,7 @@ public class DeviceCheckDetail extends BaseEntity {
/**
* 核查详情(装备主键id+核对结果(0缺失1无误2新增3不在库9未检查,字符-作为状态分隔符字符,作为分隔符))
*/
@Column(name = "check_detail",columnDefinition = "TEXT")
@ApiModelProperty(value = "核查详情(装备主键id+核对结果(0缺失1无误2新增3不在库9未检查,字符x作为分隔符)),例如1-2,2-2,意为主键id为1的装备缺失,为2的无误,为3的新增")
private String checkDetail;
/**
......
......@@ -29,6 +29,8 @@ import java.lang.reflect.Field;
import java.util.*;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.groupingBy;
/**
* @author dengdiyi
*/
......@@ -146,31 +148,35 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
//获取所有的核心装备
List<DeviceLibrary> libraryEntities = getCoreDevicePage(d, d.getPageable()).getContent();
if (libraryEntities.size() > 0) {
Map<String, List<DeviceLibrary>> map = libraryEntities.stream().collect(groupingBy(deviceLibrary -> deviceLibrary.getModel()+"Ǵ"+deviceLibrary.getName()));
//按型号遍历统计各种状态的装备数量
for (String model : list) {
DeviceStatisticsVo deviceStatisticsVo = new DeviceStatisticsVo();
List<Integer> deviceIds = new ArrayList<>();
deviceStatisticsVo.setModel(model);
int num = 0;
int inLibraryNum = 0;
int repairNum = 0;
int destoryNum = 0;
int scrappedNum = 0;
int allotNum = 0;
int retiredNum = 0;
int useNum = 0;
List<Integer> inLibraryIds = new ArrayList<>();
List<Integer> repairIds = new ArrayList<>();
List<Integer> destoryIds = new ArrayList<>();
List<Integer> retiredIds = new ArrayList<>();
List<Integer> scrappedIds = new ArrayList<>();
List<Integer> allotIds = new ArrayList<>();
List<Integer> useIds = new ArrayList<>();
//遍历核心装备,按照相同型号的装备生命状态统计
for (DeviceLibrary d2 : libraryEntities) {
if (d2.getModel().equals(model)) {
for (String s : map.keySet()) {
String[] strings = s.split("Ǵ");
if (strings.length == 2) {
DeviceStatisticsVo deviceStatisticsVo = new DeviceStatisticsVo();
List<Integer> deviceIds = new ArrayList<>();
deviceStatisticsVo.setModel(strings[0]);
deviceStatisticsVo.setName(strings[1]);
// deviceStatisticsVo.setDeviceNumber(map.get(s).size());
// deviceStatisticsVo.setDeviceIds(map.get(s).stream().map(DeviceLibrary::getId).collect(Collectors.toList()));
int num = 0;
int inLibraryNum = 0;
int repairNum = 0;
int destoryNum = 0;
int scrappedNum = 0;
int allotNum = 0;
int retiredNum = 0;
int useNum = 0;
List<Integer> inLibraryIds = new ArrayList<>();
List<Integer> repairIds = new ArrayList<>();
List<Integer> destoryIds = new ArrayList<>();
List<Integer> retiredIds = new ArrayList<>();
List<Integer> scrappedIds = new ArrayList<>();
List<Integer> allotIds = new ArrayList<>();
List<Integer> useIds = new ArrayList<>();
//遍历核心装备,按照相同型号的装备生命状态统计
for (DeviceLibrary d2 : map.get(s)) {
deviceIds.add(d2.getId());
deviceStatisticsVo.setName(d2.getName());
num++;
switch (d2.getLifeStatus()) {
case 2:
......@@ -216,27 +222,29 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
default:
break;
}
}
//添加统计vo
if (num > 0) {
deviceStatisticsVo.setDeviceIds(deviceIds);
deviceStatisticsVo.setAllotIds(allotIds);
deviceStatisticsVo.setDestoryIds(destoryIds);
deviceStatisticsVo.setInLibraryIds(inLibraryIds);
deviceStatisticsVo.setRepairIds(repairIds);
deviceStatisticsVo.setRetiredIds(retiredIds);
deviceStatisticsVo.setScrappedIds(scrappedIds);
deviceStatisticsVo.setUseIds(useIds);
deviceStatisticsVo.setDeviceNumber(num);
deviceStatisticsVo.setAllotNum(allotNum);
deviceStatisticsVo.setInLibraryNum(inLibraryNum);
deviceStatisticsVo.setRepairNum(repairNum);
deviceStatisticsVo.setDestoryNum(destoryNum);
deviceStatisticsVo.setScrappedNum(scrappedNum);
deviceStatisticsVo.setRetiredNum(retiredNum);
deviceStatisticsVo.setUseNum(useNum);
deviceStatisticsVos.add(deviceStatisticsVo);
}
}
//添加统计vo
if (num > 0) {
deviceStatisticsVo.setDeviceIds(deviceIds);
deviceStatisticsVo.setAllotIds(allotIds);
deviceStatisticsVo.setDestoryIds(destoryIds);
deviceStatisticsVo.setInLibraryIds(inLibraryIds);
deviceStatisticsVo.setRepairIds(repairIds);
deviceStatisticsVo.setRetiredIds(retiredIds);
deviceStatisticsVo.setScrappedIds(scrappedIds);
deviceStatisticsVo.setUseIds(useIds);
deviceStatisticsVo.setDeviceNumber(num);
deviceStatisticsVo.setAllotNum(allotNum);
deviceStatisticsVo.setInLibraryNum(inLibraryNum);
deviceStatisticsVo.setRepairNum(repairNum);
deviceStatisticsVo.setDestoryNum(destoryNum);
deviceStatisticsVo.setScrappedNum(scrappedNum);
deviceStatisticsVo.setRetiredNum(retiredNum);
deviceStatisticsVo.setUseNum(useNum);
deviceStatisticsVos.add(deviceStatisticsVo);
}
}
if (deviceLibrarySelectVo.getName() != null) {
......@@ -525,4 +533,5 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
private List<DeviceStatisticsVo> selectByName(String name, List<DeviceStatisticsVo> deviceStatisticsVos) {
return deviceStatisticsVos.stream().filter(deviceStatisticsVo -> deviceStatisticsVo.getName().equals(name)).collect(Collectors.toList());
}
}
......@@ -9,32 +9,27 @@ package com.tykj.dev.statistical.controller;
*/
import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.user.subject.dao.AreaDao;
import com.tykj.dev.device.user.subject.dao.UnitsDao;
import com.tykj.dev.device.user.subject.entity.Area;
import com.tykj.dev.device.user.subject.entity.Units;
import com.tykj.dev.device.library.subject.vo.DeviceLibrarySelectVo;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.statistical.cache.StatisticalCache;
import com.tykj.dev.statistical.service.StatisticalService;
import com.tykj.dev.statistical.vo.*;
import com.tykj.dev.statistical.vo.DeviceStatistics;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.groupingBy;
@RestController
@Api(tags = "统计业务模块", description = "统计相关接口")
@AutoDocument
......@@ -47,6 +42,9 @@ public class StatisticalController {
@Autowired
private StatisticalCache statisticalCache;
@Autowired
private DeviceLibraryService deviceLibraryService;
/**
* 查询各市的装备数量
* @return 各市装备对象集合
......@@ -170,4 +168,32 @@ public class StatisticalController {
public ResponseEntity selectCheckNum(){
return ResponseEntity.ok(statisticalCache.getChecks());
}
@ApiOperation(value = "查询所有装备统计列表", notes = "可以通过这个接口查询所有装备统计列表")
@PostMapping("/device")
public ResponseEntity selectAllDeviceStatList(@RequestBody DeviceLibrarySelectVo deviceLibrarySelectVo) {
List<DeviceLibrary> deviceLibraryEntities = deviceLibraryService.getAllList(deviceLibrarySelectVo);
return ResponseEntity.ok(getDeviceStatistics(deviceLibraryEntities));
}
/**
* 按型号,名称,类型组合
*/
private List<DeviceStatistics> getDeviceStatistics(List<DeviceLibrary> deviceLibraries) {
List<DeviceStatistics> deviceStatisticsList = new ArrayList<>();
Map<String, List<DeviceLibrary>> map = deviceLibraries.stream().collect(groupingBy(deviceLibrary -> deviceLibrary.getModel()+"Ǵ"+deviceLibrary.getType()));
for (String s:map.keySet()) {
String[] strings = s.split("Ǵ");
if (strings.length == 2) {
DeviceStatistics deviceStatistics = new DeviceStatistics();
deviceStatistics.setModel(strings[0]);
// deviceStatistics.setName(strings[1]);
deviceStatistics.setType(Integer.valueOf(strings[1]));
deviceStatistics.setNum(map.get(s).size());
deviceStatistics.setDeviceIds(map.get(s).stream().map(DeviceLibrary::getId).collect(Collectors.toList()));
deviceStatisticsList.add(deviceStatistics);
}
}
return deviceStatisticsList;
}
}
package com.tykj.dev.statistical.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author dengdiyi
*/
@Data
@ApiModel("装备统计类")
public class DeviceStatistics {
@ApiModelProperty(value = "型号", example = "bmxx")
public String model;
@ApiModelProperty(value = "名称", example = "BM-1")
public String name;
@ApiModelProperty(value = "装备类型", example = "100")
private Integer type;
@ApiModelProperty(value = "数量", example = "10")
private Integer num;
@ApiModelProperty(value = "装备Id列表")
private List<Integer> deviceIds;
}
......@@ -2,7 +2,6 @@ package com.tykj.dev.device.task.service.impl;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.tykj.dev.blockcha.subject.entity.BcHash;
import com.tykj.dev.blockcha.subject.service.BlockChainUtil;
import com.tykj.dev.config.GlobalMap;
import com.tykj.dev.config.Log;
......@@ -21,8 +20,8 @@ import com.tykj.dev.device.user.subject.service.UserPublicService;
import com.tykj.dev.device.user.util.UserUtils;
import com.tykj.dev.misc.base.StatusEnum;
import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.JacksonUtil;
import com.tykj.dev.misc.utils.ResultUtil;
import com.tykj.dev.socket.MyWebSocket;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
......@@ -61,6 +60,9 @@ public class TaskServiceImpl implements TaskService {
@Autowired
private BlockChainUtil blockChainUtil;
@Autowired
private MyWebSocket myWebSocket;
/**
* <p>业务进行到下一个状态</p>
* <li>不指定待办用户</li>
......@@ -76,6 +78,7 @@ public class TaskServiceImpl implements TaskService {
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -99,6 +102,7 @@ public class TaskServiceImpl implements TaskService {
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -119,6 +123,7 @@ public class TaskServiceImpl implements TaskService {
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -143,6 +148,7 @@ public class TaskServiceImpl implements TaskService {
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -163,6 +169,7 @@ public class TaskServiceImpl implements TaskService {
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -187,6 +194,7 @@ public class TaskServiceImpl implements TaskService {
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -208,6 +216,7 @@ public class TaskServiceImpl implements TaskService {
//set readList empty
taskBto.setUserReadDetailList(new ArrayList<>());
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -233,6 +242,7 @@ public class TaskServiceImpl implements TaskService {
//set customInfo
taskBto.setCustomInfo(customInfo);
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -245,6 +255,7 @@ public class TaskServiceImpl implements TaskService {
//set status end
taskBto.setBillStatus(StatusEnum.END.id);
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -257,6 +268,7 @@ public class TaskServiceImpl implements TaskService {
//set status archive
taskBto.setBillStatus(StatusEnum.ARCHIVE.id);
update(taskBto);
myWebSocket.sendMessage1();
return taskBto;
}
......@@ -272,6 +284,7 @@ public class TaskServiceImpl implements TaskService {
// String recordId = bcText.getData().getRecordID();
// task.setRecordId(recordId);
update(task.parse2Bto());
myWebSocket.sendMessage1();
return task.parse2Bto();
}
......@@ -521,6 +534,7 @@ public class TaskServiceImpl implements TaskService {
taskBto.setInvolveUserIdList(ids);
update(taskBto);
});
myWebSocket.sendMessage1();
}
/**
......
......@@ -6,10 +6,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.*;
import java.util.Date;
/**
......@@ -31,6 +28,7 @@ public class Mgrcert {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ApiModelProperty(value = "数据ID", name = "permissionsId", example = "12321L")
@Column(columnDefinition = "integer NOT NULL AUTO_INCREMENT")
private Integer id;
/**
* 持件人名称
......
......@@ -380,17 +380,27 @@ public class DeviceUseReportServiceImpl implements DeviceUseReportService {
private List<DeviceStatistics> getDeviceStatistics(List<DeviceLibrary> deviceLibraries) {
List<DeviceStatistics> deviceStatisticsList = new ArrayList<>();
Map<String, List<DeviceLibrary>> map = deviceLibraries.stream().collect(groupingBy(DeviceLibrary::getModel));
map.forEach((s, deviceLibraries1) -> {
String[] strings = s.split("Ǵ");
if (strings.length == 3) {
DeviceStatistics deviceStatistics = new DeviceStatistics();
deviceStatistics.setModel(strings[0]);
deviceStatistics.setName(strings[1]);
deviceStatistics.setType(Integer.valueOf(strings[2]));
deviceStatistics.setNum(deviceLibraries1.size());
deviceStatisticsList.add(deviceStatistics);
}
});
// map.forEach((s, deviceLibraries1) -> {
// String[] strings = s.split("Ǵ");
// if (strings.length == 2) {
// DeviceStatistics deviceStatistics = new DeviceStatistics();
// deviceStatistics.setModel(strings[0]);
//// deviceStatistics.setName(strings[1]);
// deviceStatistics.setType(Integer.valueOf(strings[1]));
// deviceStatistics.setNum(deviceLibraries1.size());
// deviceStatisticsList.add(deviceStatistics);
// }
// DeviceStatistics deviceStatistics = new DeviceStatistics();
// deviceStatistics.setModel(s);
// deviceStatistics.setNum(deviceLibraries1.size());
// deviceStatisticsList.add(deviceStatistics);
// });
for (String s:map.keySet()) {
DeviceStatistics deviceStatistics = new DeviceStatistics();
deviceStatistics.setModel(s);
deviceStatistics.setNum(map.get(s).size());
deviceStatisticsList.add(deviceStatistics);
}
return deviceStatisticsList;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论