提交 f3078bdf authored 作者: zhoushaopan's avatar zhoushaopan

[配发]加taskId

上级 4cee7bba
......@@ -126,6 +126,9 @@ public class AllotBillController {
@Autowired
private PackingLibraryService packingLibraryService;
@Autowired
private PackingController packingController;
@ApiOperation(value = "导入二维码获取配发装备", notes = "可以通过这个接口导入二维码获取配发装备")
@PostMapping(value = "/load")
public ResponseEntity loadDevice(@RequestBody RfidVo rfidVo) {
......@@ -150,7 +153,7 @@ public class AllotBillController {
@ApiOperation(value = "发起配发业务", notes = "可以通过这个接口发起配发任务")
@PostMapping(value = "/addAllotBill")
// @Transactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public ResponseEntity addAllotBill(@RequestBody @Validated AllotBillSaveVo allotBillSaveVo) {
//判断发起配发的装备的生命状态
if (allotBillSaveVo.getAllotCheckDetail() != null && allotBillSaveVo.getAllotCheckDetail().length() > 0) {
......@@ -258,10 +261,9 @@ public class AllotBillController {
Map<Integer, Integer> changeMap = new HashMap<>();
Map<String, PackingLibrary> packingLibraryHashMap = new HashMap<>();
long s1=System.currentTimeMillis();
get(strings, allotBillSaveVo, packingLibraryHashMap);
log.info("------{}",System.currentTimeMillis()-s1);
long s2=System.currentTimeMillis();
if (unitsService.findbyName(allotBillSaveVo.getSendUnit()).getLevel() == 1) {
createPacking(strings, allotBillSaveVo, packingLibraryHashMap);
}
for (String s : strings) {
//最后一位原来为装备扫码结果,已弃用
......@@ -275,8 +277,8 @@ public class AllotBillController {
Integer matchingRange = allotBillSaveVo.getMatchingRange();
Integer matchingRange1 = deviceLibraryEntity.getMatchingRange();
if (matchingRange == 1 || matchingRange == 2 || matchingRange == 3){
allotmentEquipment(id,changeMap,deviceLibraryEntity,packingLibraryHashMap,matchingRange1,fileVoList,saveEntity);
if (matchingRange == 1 || matchingRange == 2 || matchingRange == 3) {
allotmentEquipment(id, changeMap, deviceLibraryEntity, packingLibraryHashMap, matchingRange, fileVoList, saveEntity);
}
//横向配发
// else if (matchingRange == 3) {
......@@ -312,8 +314,6 @@ public class AllotBillController {
}
}
log.info("------{}",System.currentTimeMillis()-s2);
//添加出库白名单
inputOutputDeviceService.addWhiteDevices(ids, userUtils.getCurrentUnitId(), 1);
//发送阅知信息
......@@ -325,12 +325,12 @@ public class AllotBillController {
.collect(Collectors.toList()));
}
//给被选签发人推阅知
if (allotBillSaveVo.getSendUserbId() != null) {
List<Integer> idList1 = new ArrayList<>();
idList1.add(allotBillSaveVo.getSendUserbId());
MessageBto messageBto = new MessageBto(saveEntity.getId(), saveEntity.getBusinessType(), "被选为签发人", idList1, 1);
messageService.add(messageBto);
}
// if (allotBillSaveVo.getSendUserbId() != null) {
// List<Integer> idList1 = new ArrayList<>();
// idList1.add(allotBillSaveVo.getSendUserbId());
// MessageBto messageBto = new MessageBto(saveEntity.getId(), saveEntity.getBusinessType(), "被选为签发人", idList1, 1);
// messageService.add(messageBto);
// }
//给同单位专管员和收件单位专管员推阅知
MessageBto messageBto = new MessageBto(saveEntity.getId(), saveEntity.getBusinessType(), "对" + userPublicService.getAreaNameByUnitName(allotBillEntity.getReceiveUnit()) + "发起配发", idList, 1);
messageService.add(messageBto);
......@@ -348,6 +348,8 @@ public class AllotBillController {
//set单据集合
allotBill.setSendFileList(FilesUtil.stringFileToList(allotBill.getSendFiles()));
allotBill.setReplyFileList(FilesUtil.stringFileToList(allotBill.getReplyFiles()));
//
allotBill.setTaskId(saveEntity.getId());
//输出配发单给前端
return ResponseEntity.ok(new ResultObj(allotBill, "发起成功"));
}
......@@ -690,6 +692,7 @@ public class AllotBillController {
List<StatusEnum> statusEnums = new ArrayList<>();
statusEnums.add(StatusEnum.WAIT_UPLOAD_CROSS_FILE);//待上传横向配发单
statusEnums.add(StatusEnum.WAIT_UPLOAD_ALLOT_FILE);//待上传纵向配发单
statusEnums.add(StatusEnum.ALLOTING);
TaskDisposeUtil.isNotSubmit(taskBto.getBillStatus(), statusEnums);
//获取账单
AllotBill allotBill = allotBillService.getOne(taskBto.getBillId());
......@@ -776,6 +779,7 @@ public class AllotBillController {
@ApiOperation(value = "配发撤回", notes = "根据任务id撤回配发")
@GetMapping("/revokeTask/taskId")
@Transactional(rollbackFor = Exception.class)
public ResponseEntity revokeTask(Integer taskId) {
//根据任务id查询子任务 发件方是子任务 收件方是主任务
......@@ -788,29 +792,56 @@ public class AllotBillController {
String title = taskBto.getTitle();
AllotBill allotBill = allotBillService.getOne(billId);
Integer currentUserId = userUtils.getCurrentUserId();
List<Integer> idList = userPublicService.findOtherUser(currentUserId);
//找到收件方的阅知
MessageBto messageBto1 = messageService.findByTaskId(parentTaskId).parse2Bto();
//纵向配发阅知要发给收件单位的人
if (allotBill.getAllotType() == 1) {
idList.addAll(userDao.findAllByUnitsId(userPublicService.findUnitIdByName(allotBill.getReceiveUnit())).stream()
.map(User::getUserId)
.collect(Collectors.toList()));
}
//给同单位专管员和收件单位专管员推阅知
messageBto1.setContent(title.substring(0,4)+"撤回"+title.substring(4));
MessageBto messageBto = new MessageBto(-1, parentTask.getBusinessType(), messageBto1.getContent(), idList, 1);
BeanUtils.copyProperties(messageBto1,messageBto);
messageBto.setTaskId(-1);
messageService.add(messageBto);
myWebSocket.sendMessage1();
//将任务都完结
taskService.moveToRevoke(taskBto);
taskService.moveToRevoke(parentTask);
if (allotBill.getAllotCheckDetail() != null) {
List<Integer> ids = StringSplitUtil.split(allotBill.getAllotCheckDetail());
List<DeviceLibrary> deviceLibraryList = new ArrayList<>();
for (Integer id : ids) {
//通过id装备
//所有的装备
List<DeviceLibrary> deviceLibraryList;
//所有的装备日志
List<DeviceLogDto> deviceLogDtos = new ArrayList<>();
ids.forEach(id -> {
DeviceLibrary deviceLibrary = deviceLibraryService.getOne(id);
deviceLibrary.setLifeStatus(2);
deviceLibraryService.update(deviceLibrary);
deviceLibraryList.add(deviceLibrary);
}
//添加装备日志
DeviceLogDto deviceLogDto = new DeviceLogDto(id, "对" + deviceLibrary.getName() + "配发撤回", null, null, null);
deviceLogDtos.add(deviceLogDto);
});
//设置装备为在库
deviceLibraryService.updateLifeStatus2(2,ids);
deviceLibraryList = deviceLibraryService.findByIds(ids);
//添加日志
deviceLogService.addAllLog(deviceLogDtos);
allotBill.setDeviceLibraries(deviceLibraryList);
allotBillService.delete(allotBill.getId());
}
//将任务都完结
taskService.moveToArchive(taskBto);
taskService.moveToArchive(parentTask);
return ResponseEntity.ok(title + "的任务撤回成功");
}
return ResponseEntity.ok(messageBto);
}
//递归取出最大目录
public PackingLibrary getPackingLibrary(PackingLibrary packingLibrary) {
Integer partParentId = packingLibrary.getPartParentId();
PackingLibrary one = packingLibraryService.getOne(partParentId);
......@@ -829,6 +860,7 @@ public class AllotBillController {
newPackingLibrary.setId(null);
newPackingLibrary.setPartParentId(newId);
newPackingLibrary.setMatchingRange(matchingRange);
packingLibrary.setPackingStatus(2);
packingLibraryService.addAllotPacking(newPackingLibrary);
packingLibraryMap.put(newPackingLibrary.getModel() + newPackingLibrary.getName() + newPackingLibrary.getMatchingRange(), newPackingLibrary);
List<PackingLibrary> packingLibraryList = packingLibraryService.getAllByPartPackingId(packingLibrary.getId());
......@@ -841,7 +873,7 @@ public class AllotBillController {
}
public void get(String[] strings, AllotBillSaveVo allotBillSaveVo, Map<String, PackingLibrary> packingLibraryHashMap) {
public void createPacking(String[] strings, AllotBillSaveVo allotBillSaveVo, Map<String, PackingLibrary> packingLibraryHashMap) {
for (String s : strings) {
//最后一位原来为装备扫码结果,已弃用
if (s.length() >= 2) {
......@@ -852,19 +884,16 @@ public class AllotBillController {
DeviceLibrary deviceLibraryEntity = deviceLibraryService.getOne(id);
Integer matchingRange = allotBillSaveVo.getMatchingRange();
//装备的配用范围
Integer matchingRange1 = deviceLibraryEntity.getMatchingRange();
// if (matchingRange == 1 || matchingRange == 2 || matchingRange == 3){
// isMatching(1, matchingRange1, deviceLibraryEntity, packingLibraryHashMap);
// }
if(matchingRange == 1){
if (matchingRange == 1) {
isMatching(1, matchingRange1, deviceLibraryEntity, packingLibraryHashMap);
}
if(matchingRange == 2){
if (matchingRange == 2) {
isMatching(2, matchingRange1, deviceLibraryEntity, packingLibraryHashMap);
}
if(matchingRange == 3){
if (matchingRange == 3) {
isMatching(3, matchingRange1, deviceLibraryEntity, packingLibraryHashMap);
}
}
......@@ -880,18 +909,26 @@ public class AllotBillController {
PackingLibrary devLibrary = getPackingLibrary(packingLibrary);
List<PackingLibrary> packingLibraries = packingLibraryService.findSamePacking1(devLibrary.getPartParentId(), matchingRange, devLibrary.getType(), packingLibrary.getStyle(), devLibrary.getName(), packingLibrary.getSecretLevel(), devLibrary.getInvisibleRange());
if(packingLibraries != null){
if (packingLibraries != null) {
List<PackingLibrary> collect = packingLibraries.stream().sorted(Comparator.comparing(PackingLibrary::getCreateTime).reversed()).collect(Collectors.toList());
packingLibrary1 = collect.get(0);
}
} else {
packingLibrary1 = packingLibraryService.findSamePacking(packingLibrary.getPartParentId(), matchingRange, packingLibrary.getType(), packingLibrary.getStyle(), packingLibrary.getName(), packingLibrary.getSecretLevel(), packingLibrary.getInvisibleRange());
packingLibrary1 = packingLibraryService.findSamePackingInPackingStatus(packingLibrary.getPartParentId(), matchingRange, packingLibrary.getType(), packingLibrary.getStyle(), packingLibrary.getName(), packingLibrary.getSecretLevel(), packingLibrary.getInvisibleRange());
}
//不存在直接抛出异常
if (packingLibrary1 == null) {
PackingLibrary library = getPackingLibrary(packingLibrary);
getPackingLibrary2(library, library.getPartParentId(), matchingRange, packingLibraryHashMap);
PackingLibrary library = getPackingLibrary(packingLibrary);
getPackingLibrary2(library, library.getPartParentId(), matchingRange, packingLibraryHashMap);
} else {
if (packingLibrary1.getPackingStatus() == 4 || packingLibrary1.getPackingStatus() == 3){
//撤回列装
List<Integer> ids = new ArrayList<>();
ids.add(packingLibrary1.getId());
packingController.remove(ids);
}
packingLibraryHashMap.put(packingLibrary1.getModel() + packingLibrary1.getName() + matchingRange, packingLibrary1);
}
}
......@@ -903,22 +940,22 @@ public class AllotBillController {
}
}
public void allotmentEquipment(Integer id, Map<Integer,Integer> changeMap,DeviceLibrary deviceLibraryEntity,Map<String, PackingLibrary> packingLibraryHashMap, Integer matchingRange,List<FileVo> fileVoList,TaskBto saveEntity) {
public void allotmentEquipment(Integer id, Map<Integer, Integer> changeMap, DeviceLibrary deviceLibraryEntity, Map<String, PackingLibrary> packingLibraryHashMap, Integer matchingRange, List<FileVo> fileVoList, TaskBto saveEntity) {
//如果当前装备的配用范围不是省以下纵向
if (deviceLibraryEntity.getMatchingRange() != matchingRange) {
//判断changeMap是否存在该列装的转换信息
//判断是否存在省以下纵向的相同列装装备
PackingLibrary packingLibrary1 = packingLibraryHashMap.get(deviceLibraryEntity.getModel() + deviceLibraryEntity.getName() + 1);
PackingLibrary packingLibrary1 = packingLibraryHashMap.get(deviceLibraryEntity.getModel() + deviceLibraryEntity.getName() + matchingRange);
//不存在直接抛出异常
if (packingLibrary1 != null) {
changeMap.put(deviceLibraryEntity.getPackingId(), packingLibrary1.getId());
deviceLibraryEntity.setPackingId(packingLibrary1.getId());
deviceLibraryEntity.setMatchingRange(matchingRange);
} else {
log.info("[配发] 没有在packingLibraryHashMap找到key:{}的列装", deviceLibraryEntity.getModel() + deviceLibraryEntity.getName() + 1);
log.info("[配发] 没有在packingLibraryHashMap找到key:{}的列装", deviceLibraryEntity.getModel() + deviceLibraryEntity.getName() + matchingRange);
}
//存装备日志
DeviceLogDto deviceLogDto = new DeviceLogDto(id, "纵向配发将所属列装由" + deviceLibraryEntity.getMatchingRangeName() + "的列装改为" + configCache.getMatchingRangeMap().get(1) + "的列装", fileVoList, saveEntity.getId(), null);
DeviceLogDto deviceLogDto = new DeviceLogDto(id, "配发将所属列装由" + deviceLibraryEntity.getMatchingRangeName() + "的列装改为" + configCache.getMatchingRangeMap().get(1) + "的列装", fileVoList, saveEntity.getId(), null);
deviceLogService.addLog(deviceLogDto);
......@@ -926,5 +963,4 @@ public class AllotBillController {
}
}
......@@ -284,4 +284,9 @@ public class AllotBill {
@ApiModelProperty(value = "收件方签收单集合")
@Transient
private List<FileRet> receiveFileList = new ArrayList<>();
@ApiModelProperty(value = "任务id")
@Transient
private Integer taskId;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论