提交 77090dca authored 作者: zhoushaopan's avatar zhoushaopan

feat(列装模块、装备模块): 列装的绑定和解绑

列装的绑定和解绑
上级 65d679e5
...@@ -213,5 +213,11 @@ public interface DeviceLibraryDao extends JpaRepository<DeviceLibrary, Integer>, ...@@ -213,5 +213,11 @@ public interface DeviceLibraryDao extends JpaRepository<DeviceLibrary, Integer>,
int updatePackingId( int updatePackingId(
@Param("packingId") Integer packingId, @Param("packingId") Integer packingId,
@Param("deviceIds") List<Integer> deviceIds); @Param("deviceIds") List<Integer> deviceIds);
// @Transactional
// @Modifying
// @Query("update DeviceLibrary o set o.partParentId = null where o.id in :deviceIds")
// int updatePartParentId(
// @Param("deviceIds") List<Integer> deviceIds);
} }
...@@ -434,4 +434,11 @@ public interface DeviceLibraryService { ...@@ -434,4 +434,11 @@ public interface DeviceLibraryService {
* 查询所有装备 * 查询所有装备
*/ */
List<DeviceLibrary> findAllDevices(); List<DeviceLibrary> findAllDevices();
// /**
// * 根据装备id的集合更新列装id
// * @param deviceIds 装备id的集合
// * @return 影响行数
// */
// int updatePartParentId(List<Integer> deviceIds);
} }
...@@ -770,6 +770,7 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService { ...@@ -770,6 +770,7 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
return deviceLibraryDao.findAll().stream().map(DeviceLibrary::setConfigName).collect(Collectors.toList()); return deviceLibraryDao.findAll().stream().map(DeviceLibrary::setConfigName).collect(Collectors.toList());
} }
@Override
@UpdateCache @UpdateCache
public void updateLocalAndOwn(String localUnit,List<Integer> deviceIds) { public void updateLocalAndOwn(String localUnit,List<Integer> deviceIds) {
deviceLibraryDao.updateDevicesOwnUnit(localUnit,deviceIds); deviceLibraryDao.updateDevicesOwnUnit(localUnit,deviceIds);
...@@ -876,81 +877,97 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService { ...@@ -876,81 +877,97 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
} }
@Override @Override
@UpdateCache
public int upDateLeftStatus(Integer lifeStatus, List<Integer> idList) { public int upDateLeftStatus(Integer lifeStatus, List<Integer> idList) {
return deviceLibraryDao.upDateLeftStatus(lifeStatus,idList); return deviceLibraryDao.upDateLeftStatus(lifeStatus,idList);
} }
@Override @Override
@UpdateCache
public int upDateSeqNumbersLeftStatus(Integer lifeStatus, List<String> seqNumbers) { public int upDateSeqNumbersLeftStatus(Integer lifeStatus, List<String> seqNumbers) {
return deviceLibraryDao.upDateSeqNumbersLeftStatus(lifeStatus,seqNumbers); return deviceLibraryDao.upDateSeqNumbersLeftStatus(lifeStatus,seqNumbers);
} }
@Override @Override
@UpdateCache
public int upDateLeftStatusAndLockStatus(Integer lifeStatus, Integer lock, List<Integer> idList) { public int upDateLeftStatusAndLockStatus(Integer lifeStatus, Integer lock, List<Integer> idList) {
return deviceLibraryDao.upDateLeftStatusAndLockStatus(lifeStatus,lock,idList); return deviceLibraryDao.upDateLeftStatusAndLockStatus(lifeStatus,lock,idList);
} }
@Override @Override
@UpdateCache
public int upDateLockStatus(Integer lock, List<Integer> idList) { public int upDateLockStatus(Integer lock, List<Integer> idList) {
return deviceLibraryDao.upDateLockStatus(lock,idList); return deviceLibraryDao.upDateLockStatus(lock,idList);
} }
@Override @Override
@UpdateCache
public int upDateLeftStatusAndUnitNameAndLockStatus(Integer lifeStatus, String unitName, Integer lock, List<Integer> idList) { public int upDateLeftStatusAndUnitNameAndLockStatus(Integer lifeStatus, String unitName, Integer lock, List<Integer> idList) {
return deviceLibraryDao.upDateLeftStatusAndUnitNameAndLockStatus(lifeStatus,unitName,lock,idList); return deviceLibraryDao.upDateLeftStatusAndUnitNameAndLockStatus(lifeStatus,unitName,lock,idList);
} }
@Override @Override
@UpdateCache
public int upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(Integer lifeStatus, String unitName, Integer lock, List<String> seqNumbers) { public int upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(Integer lifeStatus, String unitName, Integer lock, List<String> seqNumbers) {
return deviceLibraryDao.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(lifeStatus,unitName,lock,seqNumbers); return deviceLibraryDao.upDateSeqNumbersLeftStatusAndUnitNameAndLockStatus(lifeStatus,unitName,lock,seqNumbers);
} }
@Override @Override
@UpdateCache
public int upDateLeftStatusAndOwnUnitName(Integer lifeStatus, String unitName, List<Integer> idList) { public int upDateLeftStatusAndOwnUnitName(Integer lifeStatus, String unitName, List<Integer> idList) {
return deviceLibraryDao.upDateLeftStatusAndOwnUnitName(lifeStatus,unitName,idList); return deviceLibraryDao.upDateLeftStatusAndOwnUnitName(lifeStatus,unitName,idList);
} }
@Override @Override
@UpdateCache
public int upDateRfidSurfaceIdAsSeqNumber(List<Integer> idList) { public int upDateRfidSurfaceIdAsSeqNumber(List<Integer> idList) {
return deviceLibraryDao.upDateRfidSurfaceIdAsSeqNumber(idList); return deviceLibraryDao.upDateRfidSurfaceIdAsSeqNumber(idList);
} }
@Override @Override
@UpdateCache
public int upDateName(String name, Integer packingId) { public int upDateName(String name, Integer packingId) {
return deviceLibraryDao.upDateName(name,packingId); return deviceLibraryDao.upDateName(name,packingId);
} }
@Override @Override
@UpdateCache
public int upDateMatchingRange(Integer matchingRange, Integer packingId) { public int upDateMatchingRange(Integer matchingRange, Integer packingId) {
return deviceLibraryDao.upDateMatchingRange(matchingRange,packingId); return deviceLibraryDao.upDateMatchingRange(matchingRange,packingId);
} }
@Override @Override
@UpdateCache
public int batchUpdate(Integer lifeStatus, Integer id) { public int batchUpdate(Integer lifeStatus, Integer id) {
return deviceLibraryDao.batchUpdate(lifeStatus,id); return deviceLibraryDao.batchUpdate(lifeStatus,id);
} }
@Override @Override
@UpdateCache
public int batchUpdate2(Integer lifeStatus, List<Integer> ids) { public int batchUpdate2(Integer lifeStatus, List<Integer> ids) {
return deviceLibraryDao.batchUpdate2(lifeStatus,ids); return deviceLibraryDao.batchUpdate2(lifeStatus,ids);
} }
@Override @Override
@UpdateCache
public int updateMatchingRange(Integer matchingRange, Integer packingId) { public int updateMatchingRange(Integer matchingRange, Integer packingId) {
return deviceLibraryDao.updateMatchingRange(matchingRange,packingId); return deviceLibraryDao.updateMatchingRange(matchingRange,packingId);
} }
@Override @Override
@UpdateCache
public int updateMatchingRange2(Integer matchingRange, List<Integer> deviceIds) { public int updateMatchingRange2(Integer matchingRange, List<Integer> deviceIds) {
return deviceLibraryDao.updateMatchingRange2(matchingRange,deviceIds); return deviceLibraryDao.updateMatchingRange2(matchingRange,deviceIds);
} }
@Override @Override
@UpdateCache
public int updateModelAndPackingId(String newModel, Integer packingId, List<Integer> deviceIds) { public int updateModelAndPackingId(String newModel, Integer packingId, List<Integer> deviceIds) {
return deviceLibraryDao.updateModelAndPackingId(newModel,packingId,deviceIds); return deviceLibraryDao.updateModelAndPackingId(newModel,packingId,deviceIds);
} }
@Override @Override
@UpdateCache
public int updatePackingId(Integer packingId, List<Integer> deviceIds) { public int updatePackingId(Integer packingId, List<Integer> deviceIds) {
return deviceLibraryDao.updatePackingId(packingId,deviceIds); return deviceLibraryDao.updatePackingId(packingId,deviceIds);
} }
...@@ -960,6 +977,12 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService { ...@@ -960,6 +977,12 @@ public class DeviceLibraryServiceImpl implements DeviceLibraryService {
return cacheLibraryService.getAllDeviceLibraryList(); return cacheLibraryService.getAllDeviceLibraryList();
} }
// @Override
// @UpdateCache
// public int updatePartParentId(List<Integer> deviceIds) {
// return deviceLibraryDao.updatePartParentId(deviceIds);
// }
@Override @Override
@UpdateCache @UpdateCache
......
...@@ -4,6 +4,7 @@ import com.tykj.dev.config.cache.ConfigCache; ...@@ -4,6 +4,7 @@ import com.tykj.dev.config.cache.ConfigCache;
import com.tykj.dev.config.swagger.AutoDocument; import com.tykj.dev.config.swagger.AutoDocument;
import com.tykj.dev.device.file.service.FilesUtil; import com.tykj.dev.device.file.service.FilesUtil;
import com.tykj.dev.device.library.repository.DeviceLibraryDao; import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.service.DeviceLibraryCacheService;
import com.tykj.dev.device.library.service.DeviceLibraryService; import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.service.DeviceLogService; import com.tykj.dev.device.library.service.DeviceLogService;
import com.tykj.dev.device.library.subject.Dto.DeviceLogDto; import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
...@@ -94,14 +95,17 @@ public class PackingController { ...@@ -94,14 +95,17 @@ public class PackingController {
@Autowired @Autowired
ConfigCache configCache; ConfigCache configCache;
@Autowired // @Autowired
DeviceLibraryDao deviceLibraryDao; // DeviceLibraryDao deviceLibraryDao;
@Autowired @Autowired
private RepairDetailDao repairDetailDao; private RepairDetailDao repairDetailDao;
@Autowired @Autowired
private DeviceLogService deviceLogService; private DeviceLogService deviceLogService;
@Autowired
private DeviceLibraryCacheService deviceLibraryCacheService;
@Autowired @Autowired
@Qualifier("taskExecutor") @Qualifier("taskExecutor")
Executor executor; Executor executor;
...@@ -503,7 +507,8 @@ public class PackingController { ...@@ -503,7 +507,8 @@ public class PackingController {
@ApiOperation(value = "判断序列号区间不存在") @ApiOperation(value = "判断序列号区间不存在")
@PostMapping("/seqsNotExist/{id}/{num}/{seq}") @PostMapping("/seqsNotExist/{id}/{num}/{seq}")
public ResponseEntity seqsNotExist(@PathVariable("id") int id,@PathVariable("num") int num,@PathVariable("seq") String seq){ public ResponseEntity seqsNotExist(@PathVariable("id") int id,@PathVariable("num") int num,@PathVariable("seq") String seq){
List<DeviceLibrary> deviceLibraries = deviceLibraryDao.findAll(); // List<DeviceLibrary> deviceLibraries = deviceLibraryDao.findAll();
List<DeviceLibrary> deviceLibraries = deviceLibraryCacheService.getAllDeviceLibraryList();
List<String> existSeqs = deviceLibraries.stream().map(DeviceLibrary::getSeqNumber).collect(Collectors.toList()); List<String> existSeqs = deviceLibraries.stream().map(DeviceLibrary::getSeqNumber).collect(Collectors.toList());
List<String> inputSeqs = DeviceSeqUtil.selectDeviceSeqs(seq); List<String> inputSeqs = DeviceSeqUtil.selectDeviceSeqs(seq);
if (inputSeqs.size()>0&&inputSeqs.size()!=num){ if (inputSeqs.size()>0&&inputSeqs.size()!=num){
...@@ -738,7 +743,8 @@ public class PackingController { ...@@ -738,7 +743,8 @@ public class PackingController {
packingLog.setPackingId(packingLibrary.getId()); packingLog.setPackingId(packingLibrary.getId());
packingLogService.add(packingLog); packingLogService.add(packingLog);
packingLibrary.setName(packingLibraryUpdateVo.getName()); packingLibrary.setName(packingLibraryUpdateVo.getName());
deviceLibraryDao.upDateName(packingLibrary.getName(),packingLibrary.getId()); // deviceLibraryDao.upDateName(packingLibrary.getName(),packingLibrary.getId());
deviceLibraryService.upDateName(packingLibrary.getName(),packingLibrary.getId());
} }
if (packingLibraryUpdateVo.getApplyType()!=null&&!packingLibraryUpdateVo.getApplyType().equals(packingLibrary.getApplyType())){ if (packingLibraryUpdateVo.getApplyType()!=null&&!packingLibraryUpdateVo.getApplyType().equals(packingLibrary.getApplyType())){
//添加列装应用类型日志 //添加列装应用类型日志
...@@ -795,7 +801,8 @@ public class PackingController { ...@@ -795,7 +801,8 @@ public class PackingController {
List<Integer> ids = deviceLibraryList.stream().map(DeviceLibrary::getId).collect(Collectors.toList()); List<Integer> ids = deviceLibraryList.stream().map(DeviceLibrary::getId).collect(Collectors.toList());
Integer userId = userUtils.getCurrentUserId(); Integer userId = userUtils.getCurrentUserId();
if(ids.size()>0){ if(ids.size()>0){
deviceLibraryDao.updateMatchingRange2(packingLibraryUpdateVo.getMatchingRange(),ids); // deviceLibraryDao.updateMatchingRange2(packingLibraryUpdateVo.getMatchingRange(),ids);
deviceLibraryService.updateMatchingRange2(packingLibraryUpdateVo.getMatchingRange(),ids);
List<DeviceLog> logDtos=new ArrayList<>(); List<DeviceLog> logDtos=new ArrayList<>();
// String remark = "将原配用范围"+packingLibrary.getMatchingRangeName()+"修改为"+packingLibraryUpdateVo.getMatchingRangeName(); // String remark = "将原配用范围"+packingLibrary.getMatchingRangeName()+"修改为"+packingLibraryUpdateVo.getMatchingRangeName();
String remark = "将原配用范围"+packingLibrary1.getMatchingRangeName()+"修改为"+packingLibraryUpdateVo.getMatchingRangeName(); String remark = "将原配用范围"+packingLibrary1.getMatchingRangeName()+"修改为"+packingLibraryUpdateVo.getMatchingRangeName();
...@@ -810,7 +817,8 @@ public class PackingController { ...@@ -810,7 +817,8 @@ public class PackingController {
} }
}); });
deviceLibraryDao.upDateMatchingRange(packingLibrary.getMatchingRange(),packingLibrary.getId()); // deviceLibraryDao.upDateMatchingRange(packingLibrary.getMatchingRange(),packingLibrary.getId());
deviceLibraryService.updateMatchingRange(packingLibrary.getMatchingRange(),packingLibrary.getId());
} }
if (packingLibraryUpdateVo.getInvisibleRange()!=null&&!packingLibraryUpdateVo.getInvisibleRange().equals(packingLibrary.getInvisibleRange())){ if (packingLibraryUpdateVo.getInvisibleRange()!=null&&!packingLibraryUpdateVo.getInvisibleRange().equals(packingLibrary.getInvisibleRange())){
//添加列装可见范围日志 //添加列装可见范围日志
...@@ -935,6 +943,46 @@ public class PackingController { ...@@ -935,6 +943,46 @@ public class PackingController {
} }
@ApiOperation(value = "解除列装绑定")
@PostMapping("/relievePacking")
public ResponseEntity relievePacking(@RequestBody PackingLibrary packingLibrary){
packingLibraryService.relievePacking(packingLibrary);
return ResponseEntity.ok("解除成功");
}
@ApiOperation(value = "列装绑定")
@PostMapping("/bindingPacking")
public ResponseEntity bindingPacking(@RequestBody BindingPackingVo bindingPackingVo){
packingLibraryService.bindingPacking(bindingPackingVo);
return ResponseEntity.ok("列装绑定成功");
}
@ApiOperation(value = "查询可选择的列装")
@PostMapping("/selectPacking")
public ResponseEntity selectPacking(@RequestBody SelectPackingVo selectPackingVo){
List<PackingLibrary> resultList = packingLibraryService.getAllSelectPacking(selectPackingVo.getPackingIds());
//进行过滤 退装的目录下面 回收站
List<Integer> statuses = new ArrayList<>(Arrays.asList(3, 4));
//先过滤出child为空的
List<PackingLibrary> childs = resultList.stream().filter(packingLibrary -> packingLibrary.getChilds() == null || packingLibrary.getChilds().size() == 0).collect(Collectors.toList());
//取出不为空的
resultList.removeAll(childs);
childs.forEach(packingLibrary -> {
List<PackingLibrary> in = packingLibraryDao.findAllByPartParentIdAndPackingStatusIn(
packingLibrary.getId(), statuses);
if (in == null || in.size() == 0) {
resultList.add(packingLibrary);
}
});
List<PackingLibrary> packingLibraries = resultList.stream().filter(packingLibrary -> packingLibrary.getIsRoot() == 0).collect(Collectors.toList());
Page<PackingLibrary> perPage = PageUtil.getPerPage(selectPackingVo.getPage(),
selectPackingVo.getSize(), packingLibraries, selectPackingVo.getPageable());
Map<String, Object> map = new HashMap<>();
map.put("page",perPage);
return ResponseEntity.ok(map);
}
/** /**
* 设置排序 * 设置排序
* @param sortNum 数字 * @param sortNum 数字
......
...@@ -146,7 +146,6 @@ public class PackingLibraryController { ...@@ -146,7 +146,6 @@ public class PackingLibraryController {
List<PackingLibrary> defectList = new ArrayList<>(); List<PackingLibrary> defectList = new ArrayList<>();
//做一个去重 //做一个去重
List<String> strings = models.stream().distinct().collect(Collectors.toList()); List<String> strings = models.stream().distinct().collect(Collectors.toList());
// for (String model : models) {
//model在models出现的次数 //model在models出现的次数
for (String string : strings) { for (String string : strings) {
// int count = Collections.frequency(models, model); // int count = Collections.frequency(models, model);
...@@ -165,8 +164,6 @@ public class PackingLibraryController { ...@@ -165,8 +164,6 @@ public class PackingLibraryController {
List<PackingLibrary> context1 = getContext1(map1); List<PackingLibrary> context1 = getContext1(map1);
resultList2.addAll(context1); resultList2.addAll(context1);
} }
// }
} }
//过滤出空目录 //过滤出空目录
//判断它本身是不是就是空目录 //判断它本身是不是就是空目录
...@@ -435,79 +432,20 @@ public class PackingLibraryController { ...@@ -435,79 +432,20 @@ public class PackingLibraryController {
//取出目录 找出目录 //取出目录 找出目录
PackingLibrary packingLibrary = packingLibraries.get(0); PackingLibrary packingLibrary = packingLibraries.get(0);
packingLibraries.remove(packingLibrary); packingLibraries.remove(packingLibrary);
// List<PackingLibrary> finalPackingList = new ArrayList<>(); List<PackingLibrary> finalPackingList = new ArrayList<>();
for (int i = 0; i < packingLibraries.size(); i++) { for (int i = 0; i < packingLibraries.size(); i++) {
List<PackingLibrary> finalPackingList = new ArrayList<>(); if (packingLibraries.get(i).getPartParentId() !=null){
//会造成覆盖 if ( !packingLibraries.get(i).getPartParentId().equals(packingLibrary.getId())){
if (packingLibrary.getChilds() != null){ finalPackingList.add(packingLibraries.get(i));
List<PackingLibrary> childs = packingLibrary.getChilds(); List<PackingLibrary> childs = packingLibrary.getChilds();
finalPackingList.addAll(childs); childs.add(packingLibraries.get(i));
finalPackingList.addAll(packingLibraries); }
// finalPackingList.stream().distinct().collect(Collectors.toList());
packingLibrary.setChilds(finalPackingList);
}else {
//直接赋值
packingLibrary.setChilds(packingLibraries);
} }
} }
//判断是否是child
// List<PackingLibrary> child = new ArrayList<>(packingLibraries);
// packingLibrary.setChilds(child);
return packingLibrary; return packingLibrary;
} }
// public PackingLibrary getContext4(List<PackingLibrary> packingLibraries){ //12 6
// //判断集合的长度 801 802 803 804 只操作804 或者803
// //取出目录
// PackingLibrary root = packingLibraries.get(0);
// packingLibraries.removeIf(e -> Objects.equals(e,root));
// List<PackingLibrary> finalPackingList = new ArrayList<>();
// for (int i = 0; i < packingLibraries.size(); i++) {
// //会造成覆盖
// if (root.getChilds() != null){
// List<PackingLibrary> childs = root.getChilds();
// finalPackingList.addAll(childs);
// finalPackingList.addAll(packingLibraries);
// root.setChilds(finalPackingList);
// }else {
// //直接赋值
// root.setChilds(packingLibraries);
// }
//
// }
// return root;
// }
// /**
// *
// * @param packingLibraries 有父子结构集合
// * @return
// */
// public List<PackingLibrary> getAllChilds(List<PackingLibrary> packingLibraries){
// List<PackingLibrary> packingLibraryList = new ArrayList<>();
// for (PackingLibrary packingLibrary : packingLibraries) {
// List<PackingLibrary> allChilds2 = getAllChilds2(packingLibrary);
// packingLibraryList.addAll(allChilds2);
// }
// return packingLibraryList;
// }
//
// //取出所有的子
// public List<PackingLibrary> getAllChilds2(PackingLibrary packingLibrary){
// List<PackingLibrary> list = new ArrayList<>();
// if (packingLibrary.getChilds().size()>0){
// List<PackingLibrary> childs = packingLibrary.getChilds();
// for (PackingLibrary child : childs) {
// list.add(packingLibrary);
// list.add(child);
// return getAllChilds2(child);
// }
// }else {
// list.add(packingLibrary);
// }
// return list;
// }
/** /**
* 通过列装id查询装备是否存在 过滤出装备为0的 * 通过列装id查询装备是否存在 过滤出装备为0的
......
...@@ -74,5 +74,14 @@ public interface PackingLibraryDao extends JpaRepository<PackingLibrary, Integer ...@@ -74,5 +74,14 @@ public interface PackingLibraryDao extends JpaRepository<PackingLibrary, Integer
@Query("select p.showOrder from PackingLibrary p") @Query("select p.showOrder from PackingLibrary p")
List<Integer> selectAllShowOrders(); List<Integer> selectAllShowOrders();
/**
* 解绑需要用到
*/
@Transactional
@Modifying
@Query("update PackingLibrary p set p.partParentId = :partParentId where p.id in :packingIds")
List<PackingLibrary> updatePartParentId(@Param("partParentId") Integer partParentId,
@Param("packingIds") List<Integer> packingIds);
} }
...@@ -3,9 +3,7 @@ package com.tykj.dev.device.packing.service; ...@@ -3,9 +3,7 @@ package com.tykj.dev.device.packing.service;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary; import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.vo.Script; import com.tykj.dev.device.library.subject.vo.Script;
import com.tykj.dev.device.packing.subject.domin.PackingLibrary; import com.tykj.dev.device.packing.subject.domin.PackingLibrary;
import com.tykj.dev.device.packing.subject.vo.AllotSeqs; import com.tykj.dev.device.packing.subject.vo.*;
import com.tykj.dev.device.packing.subject.vo.PackingLibrarySelectVo;
import com.tykj.dev.device.packing.subject.vo.SelectPack;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
...@@ -220,4 +218,22 @@ public interface PackingLibraryService{ ...@@ -220,4 +218,22 @@ public interface PackingLibraryService{
* 根据父id查询 * 根据父id查询
*/ */
List<PackingLibrary> findByParentId(Integer parentId); List<PackingLibrary> findByParentId(Integer parentId);
/**
* 列装的绑定 原来列装 要绑定的列装
* @param bindingPackingVo 绑定列装的vo
*/
void bindingPacking(BindingPackingVo bindingPackingVo);
/**
* 列装的解除绑定
* @param packingLibrary 解绑的vo
*/
void relievePacking(PackingLibrary packingLibrary);
/**
* 查询可以被绑定的列装
*/
List<PackingLibrary> getAllSelectPacking(List<Integer> packingIds);
} }
...@@ -9,16 +9,17 @@ import com.tykj.dev.config.base.DeviceLifeStatus; ...@@ -9,16 +9,17 @@ import com.tykj.dev.config.base.DeviceLifeStatus;
import com.tykj.dev.config.cache.ConfigCache; import com.tykj.dev.config.cache.ConfigCache;
import com.tykj.dev.device.library.repository.DeviceLibraryDao; import com.tykj.dev.device.library.repository.DeviceLibraryDao;
import com.tykj.dev.device.library.service.DeviceLibraryService; import com.tykj.dev.device.library.service.DeviceLibraryService;
import com.tykj.dev.device.library.service.DeviceLogService;
import com.tykj.dev.device.library.subject.Dto.DeviceLogDto;
import com.tykj.dev.device.library.subject.domin.DeviceLibrary; import com.tykj.dev.device.library.subject.domin.DeviceLibrary;
import com.tykj.dev.device.library.subject.domin.DeviceLog;
import com.tykj.dev.device.library.subject.vo.Script; import com.tykj.dev.device.library.subject.vo.Script;
import com.tykj.dev.device.packing.repository.PackingLibraryDao; import com.tykj.dev.device.packing.repository.PackingLibraryDao;
import com.tykj.dev.device.packing.service.PackingLibraryService; import com.tykj.dev.device.packing.service.PackingLibraryService;
import com.tykj.dev.device.packing.service.PackingLogService; import com.tykj.dev.device.packing.service.PackingLogService;
import com.tykj.dev.device.packing.subject.domin.PackingLibrary; import com.tykj.dev.device.packing.subject.domin.PackingLibrary;
import com.tykj.dev.device.packing.subject.domin.PackingLog; import com.tykj.dev.device.packing.subject.domin.PackingLog;
import com.tykj.dev.device.packing.subject.vo.AllotSeqs; import com.tykj.dev.device.packing.subject.vo.*;
import com.tykj.dev.device.packing.subject.vo.PackingLibrarySelectVo;
import com.tykj.dev.device.packing.subject.vo.SelectPack;
import com.tykj.dev.device.user.read.service.MessageService; import com.tykj.dev.device.user.read.service.MessageService;
import com.tykj.dev.device.user.read.subject.bto.MessageBto; import com.tykj.dev.device.user.read.subject.bto.MessageBto;
import com.tykj.dev.device.user.subject.entity.Units; import com.tykj.dev.device.user.subject.entity.Units;
...@@ -27,7 +28,10 @@ import com.tykj.dev.device.user.subject.service.UserPublicService; ...@@ -27,7 +28,10 @@ import com.tykj.dev.device.user.subject.service.UserPublicService;
import com.tykj.dev.device.user.util.UserUtils; import com.tykj.dev.device.user.util.UserUtils;
import com.tykj.dev.misc.exception.ApiException; import com.tykj.dev.misc.exception.ApiException;
import com.tykj.dev.misc.utils.*; import com.tykj.dev.misc.utils.*;
import lombok.extern.slf4j.Slf4j;
import net.bytebuddy.implementation.bytecode.Throw;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
...@@ -39,6 +43,7 @@ import javax.persistence.Transient; ...@@ -39,6 +43,7 @@ import javax.persistence.Transient;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.groupingBy;
...@@ -48,6 +53,7 @@ import static java.util.stream.Collectors.toMap; ...@@ -48,6 +53,7 @@ import static java.util.stream.Collectors.toMap;
* @author dengdiyi * @author dengdiyi
*/ */
@Service @Service
@Slf4j
public class PackingLibraryServiceImpl implements PackingLibraryService { public class PackingLibraryServiceImpl implements PackingLibraryService {
@Autowired @Autowired
...@@ -80,6 +86,12 @@ public class PackingLibraryServiceImpl implements PackingLibraryService { ...@@ -80,6 +86,12 @@ public class PackingLibraryServiceImpl implements PackingLibraryService {
@Autowired @Autowired
private UnitsService unitsService; private UnitsService unitsService;
@Autowired
@Qualifier("taskExecutor")
Executor executor;
@Autowired
private DeviceLogService deviceLogService;
@Override @Override
public PackingLibrary addEntity(PackingLibrary packingLibraryEntity) { public PackingLibrary addEntity(PackingLibrary packingLibraryEntity) {
PackingLibrary packingLibrary = packingLibraryDao.save(packingLibraryEntity); PackingLibrary packingLibrary = packingLibraryDao.save(packingLibraryEntity);
...@@ -858,6 +870,131 @@ public class PackingLibraryServiceImpl implements PackingLibraryService { ...@@ -858,6 +870,131 @@ public class PackingLibraryServiceImpl implements PackingLibraryService {
return packingLibraryDao.findAllByPartParentId(parentId); return packingLibraryDao.findAllByPartParentId(parentId);
} }
// @Override
// public void bindingPacking(BindingPackingVo bindingPackingVo) {
// Integer userId = userUtils.getCurrentUserId();
// // 原始的列装 A1
// PackingLibrary originPacking = bindingPackingVo.getOriginPacking();
// // 要绑定的列装 B
// PackingLibrary toPacking = bindingPackingVo.getToPacking();
// // 如果原始的列装和要绑定的列装的型号不一致 则需要先修改其型号
// if (!originPacking.getModel().equals(toPacking.getModel())) {
// //查询原始列装下所有子节点也需要改变 包括自己
// List<PackingLibrary> packingLibraries = packingLibraryDao.findAllByPartParentId(originPacking.getId());
// //添加自己
// packingLibraries.add(originPacking);
// //先修改装备后修改列装
// List<DeviceLibrary> deviceLibraryList = deviceLibraryService.findAllByModel(originPacking.getModel());
// List<Integer> deviceIds = deviceLibraryList.stream().map(DeviceLibrary::getId).collect(Collectors.toList());
// if (deviceLibraryList.size() > 0) {
// //更新装备的型号和添加日志
// deviceLibraryService.batchUpdateDevices(originPacking.getModel(), toPacking.getModel());
// //存储日志
// List<DeviceLog> logDtos;
// String remarkDevice = "将原型号" + originPacking.getModel() + "修改型号为" + toPacking.getModel();
// logDtos = deviceIds.stream().map(integer -> new DeviceLogDto(integer, remarkDevice, null, userId, null).toDo()).collect(Collectors.toList());
// executor.execute(() -> {
// long start = System.currentTimeMillis();
// deviceLogService.saveAllLog(logDtos);
// log.info("saveAllLog时间:{}", System.currentTimeMillis() - start);
// });
// //更新列装
// packingLibraries.forEach(packingLibrary -> {
// String remarkPacking = "由于绑定列装,需要绑定的列装型号和原列装型号不一致,将其修改为" + toPacking.getModel();
// PackingLog packingLog = new PackingLog();
// packingLog.setPackingId(packingLibrary.getId());
// packingLog.setRemark(remarkPacking);
// packingLogService.add(packingLog);
// packingLibrary.setModel(toPacking.getModel());
// addEntity(packingLibrary);
// });
// }
// }
// //修改父id
// originPacking.setPartParentId(toPacking.getId());
// addEntity(originPacking);
// }
// @Override
// public void bindingPacking(BindingPackingVo bindingPackingVo) {
// PackingLibrary originPacking = bindingPackingVo.getOriginPacking();
// List<PackingLibrary> selectPacking = bindingPackingVo.getSelectPacking();
//
// if (originPacking.getIsPart() == 0){
// List<PackingLibrary> packingLibraries = new ArrayList<>();
// //说明是附件
// for (PackingLibrary packingLibrary : selectPacking) {
// getChilds(packingLibraries, packingLibrary);
// }
// packingLibraries.stream().map(PackingLibrary::getIsPart)
// .filter(isPart -> isPart.equals(1))
// .findAny()
// .ifPresent(integer -> {
// throw new ApiException("附件不能绑定装备");
// });
// }else {
// //
// selectPacking.forEach(packingLibrary -> {
// packingLibrary.setPartParentId(originPacking.getId());
// update(packingLibrary);
// });
// }
//
//
// }
@Override
public void bindingPacking(BindingPackingVo bindingPackingVo) {
//解绑的列装
PackingLibrary originPacking = bindingPackingVo.getOriginPacking();
//选择要绑定的列装
PackingLibrary selectPacking = bindingPackingVo.getSelectPacking();
if (originPacking.getIsPart() == 0){
//列装是装备
// 要考虑要绑定的列装的是不是装备
//如果是附件 不允许绑定
if(selectPacking.getIsPart() == 1){
throw new ApiException("附件下不可以绑定列装");
}
}
originPacking.setPartParentId(selectPacking.getId());
update(originPacking);
}
@Override
public void relievePacking(PackingLibrary packingLibrary) {
//获取列装对象的装备
List<DeviceLibrary> deviceLibraries = deviceLibraryService.findAllByPackingId(packingLibrary.getId());
List<Integer> deviceIds = deviceLibraries.stream().map(deviceLibrary -> deviceLibrary.getId()).collect(Collectors.toList());
//将装备的父id全部置空
deviceLibraries.forEach(deviceLibrary -> {
deviceLibrary.setPartParentId(null);
deviceLibraryService.update(deviceLibrary);
});
//修改列装
packingLibrary.setPartParentId(null);
update(packingLibrary);
}
@Override
public List<PackingLibrary> getAllSelectPacking(List<Integer> packingIds) {
List<PackingLibrary> packingLibraryEntities =
packingLibraryDao.findAll(getSelectSpecification22(new PackingLibrarySelectVo()));
packingLibraryEntities.forEach(PackingLibrary::setConfigName);
//查询列装
List<PackingLibrary> libraries = packingLibraryDao.findAllByIdIn(packingIds);
packingLibraryEntities.removeAll(libraries);
Map<Integer, PackingLibrary> nodeCollect =
packingLibraryEntities.stream().collect(Collectors.toMap(PackingLibrary::getId, packingLibraryEntity -> packingLibraryEntity));
return GetTreeUtils.parseTreeFromDown(
packingLibraryEntities,
PackingLibrary::getId,
packingLibraryEntity -> Optional.ofNullable(nodeCollect.get(packingLibraryEntity.getPartParentId())),
PackingLibrary::addChildNode
).stream().sorted(Comparator.comparing(PackingLibrary::getModel)).collect(Collectors.toList());
}
private Specification<PackingLibrary> getSelectSpecification(PackingLibrarySelectVo packingLibrarySelectVo) { private Specification<PackingLibrary> getSelectSpecification(PackingLibrarySelectVo packingLibrarySelectVo) {
PredicateBuilder<PackingLibrary> predicateBuilder = Specifications.and(); PredicateBuilder<PackingLibrary> predicateBuilder = Specifications.and();
Integer level = userUtils.getCurrentUnitLevel(); Integer level = userUtils.getCurrentUnitLevel();
...@@ -1092,13 +1229,22 @@ public class PackingLibraryServiceImpl implements PackingLibraryService { ...@@ -1092,13 +1229,22 @@ public class PackingLibraryServiceImpl implements PackingLibraryService {
} }
/** /**
* 得到所有的子并进行父子结构的组装 * 得到所有的子
* @param packingLibrary * @param
* @return * @return
*/ */
// public List<PackingLibrary> getChilds(PackingLibrary packingLibrary){ public List<PackingLibrary> getChilds(List<PackingLibrary> packingLibraries,PackingLibrary packingLibrary){
// //通过目录查询所有的退装或者回收站的装备并进行拼装
// packingLibraryDao.findAllByNameAndPackingStatus(packingLibrary.getName(),) packingLibraries.add(packingLibrary);
// } List<PackingLibrary> childs = packingLibrary.getChilds();
if (childs != null){
childs.forEach(packingLibrary1 -> {
List<PackingLibrary> childs1 = getChilds(packingLibraries,packingLibrary1);
packingLibraries.addAll(childs1);
});
}
return packingLibraries;
}
} }
package com.tykj.dev.device.packing.subject.vo;
import com.tykj.dev.device.packing.subject.domin.PackingLibrary;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.stereotype.Repository;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author zsp
*/
@Repository
@Data
@ApiModel("列装绑定vo")
public class BindingPackingVo {
@ApiModelProperty(value = "当前列装")
private PackingLibrary originPacking;
// @ApiModelProperty(value = "勾选的列装")
// private List<PackingLibrary> selectPacking;
@ApiModelProperty(value = "勾选的列装")
private PackingLibrary selectPacking;
}
package com.tykj.dev.device.packing.subject.vo;
import com.tykj.dev.device.packing.subject.domin.PackingLibrary;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.stereotype.Repository;
/**
* @author zsp
*/
@Data
@ApiModel("列装解绑的vo")
public class RelievePackingVo {
// @ApiModelProperty(value = "父对象")
// private PackingLibrary parentPackingLibrary;
// @ApiModelProperty(value = "列装对象")
// private PackingLibrary childPackingLibrary;
@ApiModelProperty(value = "列装对象")
private PackingLibrary packingLibrary;
}
package com.tykj.dev.device.packing.subject.vo;
import com.tykj.dev.misc.base.CustomPage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("查询可进行绑定的列装")
public class SelectPackingVo extends CustomPage {
@ApiModelProperty(value = "列装id")
private List<Integer> packingIds;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论