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

[配发]加taskId

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