|
|
|
@ -31,6 +31,7 @@ import org.springblade.core.tool.utils.*;
|
|
|
|
|
import org.springblade.system.user.cache.UserCache; |
|
|
|
|
import org.springblade.system.user.entity.User; |
|
|
|
|
import org.springblade.system.user.feign.IUserClient; |
|
|
|
|
import org.springframework.beans.BeanUtils; |
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
@ -518,6 +519,8 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
if (ObjectUtil.isNotEmpty(imsDutyMainEntity1)) { |
|
|
|
|
proDutyMainId = imsDutyMainEntity1.getId().toString(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (StringUtil.isNotBlank(proDutyMainId)) { |
|
|
|
|
imsDutyMainEntity.setPreDutyId(Long.valueOf(proDutyMainId)); |
|
|
|
|
} |
|
|
|
|
if (StringUtil.isNotBlank(personIds)) { |
|
|
|
@ -531,6 +534,7 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
imsDutyMainEntity.setTenantId(AuthUtil.getTenantId()); |
|
|
|
|
imsDutyMainEntityList.add(imsDutyMainEntity); |
|
|
|
|
proDutyMainId = id == null ? "" : imsDutyMainEntity.getId().toString(); |
|
|
|
|
imsDutyMainEntity1=imsDutyMainEntity; |
|
|
|
|
//同步保存到排班计划-人员表
|
|
|
|
|
copyPersonByDutyMain(imsSchedulingVo, managerId, groupName, personEntityList, imsDutyMainEntity, collectPerson); |
|
|
|
|
} |
|
|
|
@ -1245,12 +1249,13 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
if (CollectionUtil.isEmpty(imsDutyMainEntities)) { |
|
|
|
|
return R.fail("暂无对应排班计划"); |
|
|
|
|
} |
|
|
|
|
List<Long> ids = imsDutyMainEntities.stream().map(ImsDutyMainEntity::getId).collect(Collectors.toList()); |
|
|
|
|
List<Long> mainIds = imsDutyMainEntities.stream().map(ImsDutyMainEntity::getId).collect(Collectors.toList()); |
|
|
|
|
List<ImsDutyMainPersonEntity> personEntityList = imsDutyMainPersonMapper.selectList(new LambdaQueryWrapper<ImsDutyMainPersonEntity>() {{ |
|
|
|
|
in(ImsDutyMainPersonEntity::getDutyMainId, ids); |
|
|
|
|
in(ImsDutyMainPersonEntity::getDutyMainId, mainIds); |
|
|
|
|
}}); |
|
|
|
|
if (CollectionUtil.isEmpty(personEntityList)) { |
|
|
|
|
//如果人员计划表中,无值,需要填充对应信息(只有排班-班组,人员计划表才有可能无值)
|
|
|
|
|
//对上一个版本做兼容
|
|
|
|
|
for (ImsDutyMainEntity imsDutyMainEntity : imsDutyMainEntities) { |
|
|
|
|
String[] dutyPersonIds = imsDutyMainEntity.getDutyPersonIds().split("\\^"); |
|
|
|
|
List<String> personIdlist = Arrays.asList(dutyPersonIds); |
|
|
|
@ -1262,23 +1267,20 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
copyPersonByDutyMain(imsSchedulingVo, imsDutyGroupEntity.getManagerId(), imsDutyGroupEntity.getGroupName(), personEntityList, imsDutyMainEntity, collect); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//前期移除,做是否是班组组长的判断
|
|
|
|
|
//调出时,做是否是班组组长的判断
|
|
|
|
|
List<String> personId = changeDutyMainVo.getPersonId(); |
|
|
|
|
HashSet<String> manageIds=new HashSet<>(); |
|
|
|
|
HashSet<String> personHashSet=new HashSet<>(); |
|
|
|
|
imsDutyMainEntities.stream().map(s->{ |
|
|
|
|
if (s.getDutyGroupId()!=null){ |
|
|
|
|
ImsDutyGroupEntity imsDutyGroupEntity = dutyGroupMapper.selectById(s.getDutyGroupId()); |
|
|
|
|
for (ImsDutyMainEntity imsDutyMainEntity : imsDutyMainEntities) { |
|
|
|
|
if (imsDutyMainEntity.getDutyGroupId()!=null){ |
|
|
|
|
ImsDutyGroupEntity imsDutyGroupEntity = dutyGroupMapper.selectById(imsDutyMainEntity.getDutyGroupId()); |
|
|
|
|
manageIds.add(imsDutyGroupEntity.getManagerId().toString()); |
|
|
|
|
} |
|
|
|
|
return s; |
|
|
|
|
}); |
|
|
|
|
for (ImsDutyMainEntity imsDutyMainEntity : imsDutyMainEntities) { |
|
|
|
|
String[] dutyMainPersonIds = imsDutyMainEntity.getDutyPersonIds().split("\\^"); |
|
|
|
|
List<String> personIdlist = new ArrayList<>(Arrays.asList(dutyMainPersonIds)); |
|
|
|
|
personHashSet.addAll(personIdlist); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
//调入调出,对人员做重复判断
|
|
|
|
|
for (String s : personId) { |
|
|
|
|
if (1==changeDutyMainVo.getType()) { |
|
|
|
|
if (personHashSet.contains(s)) { |
|
|
|
@ -1290,7 +1292,7 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//值班组长无法调走
|
|
|
|
|
List<String> dutyChargePersonIds = personEntityList.stream().filter(s -> s.getDutyChargePerson()!=null) |
|
|
|
|
.map(s -> s.getDutyChargePerson().toString()).collect(Collectors.toList()); |
|
|
|
|
manageIds.addAll(dutyChargePersonIds); |
|
|
|
@ -1303,17 +1305,6 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
return s; |
|
|
|
|
}); |
|
|
|
|
List<ImsDutyMainPersonEntity> addPersonEntityList = new ArrayList<>(); |
|
|
|
|
List<ImsDutyMainPersonEntity> updatePersonEntityList= personEntityList.stream().map(sig -> { |
|
|
|
|
if (sig.getDutyGroupId() != null) { |
|
|
|
|
ImsDutyGroupEntity imsDutyGroupEntity = dutyGroupMapper.selectById(sig.getDutyGroupId()); |
|
|
|
|
sig.setDutyGroupName(imsDutyGroupEntity.getGroupName()); |
|
|
|
|
sig.setDutyGroupId(null); |
|
|
|
|
} |
|
|
|
|
long id = IdWorker.getId(sig); |
|
|
|
|
sig.setId(id); |
|
|
|
|
return sig; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
List<Long> longList=new ArrayList<>(); |
|
|
|
|
List<ImsDutyMainEntity> updateDutyMainEntities = imsDutyMainEntities.stream().map(s -> { |
|
|
|
|
String[] dutyMainPersonIds = s.getDutyPersonIds().split("\\^"); |
|
|
|
|
List<String> personIdlist = new ArrayList<>(Arrays.asList(dutyMainPersonIds)); |
|
|
|
@ -1324,54 +1315,51 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
} |
|
|
|
|
String resIds = StringUtils.join(personIdlist, "^"); |
|
|
|
|
s.setDutyPersonIds(resIds); |
|
|
|
|
//如果是班组排班,调班之后,则需要转换为灵活排班,加上排班名字
|
|
|
|
|
if (s.getDutyGroupId() != null) { |
|
|
|
|
s.setDutyGroupId(null); |
|
|
|
|
} |
|
|
|
|
long id = IdWorker.getId(s); |
|
|
|
|
for (ImsDutyMainPersonEntity imsDutyMainPersonEntity : personEntityList) { |
|
|
|
|
if (imsDutyMainPersonEntity.getDutyMainId().equals(s.getId())) { |
|
|
|
|
//更换mainID
|
|
|
|
|
imsDutyMainPersonEntity.setDutyMainId(id); |
|
|
|
|
return s; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
//之前原有的排版-人员表,需要修改的部分
|
|
|
|
|
List<ImsDutyMainPersonEntity> updatePersonEntityList= personEntityList.stream().map(sig -> { |
|
|
|
|
if (sig.getDutyGroupId() != null) { |
|
|
|
|
ImsDutyGroupEntity imsDutyGroupEntity = dutyGroupMapper.selectById(sig.getDutyGroupId()); |
|
|
|
|
sig.setDutyGroupName(imsDutyGroupEntity.getGroupName()); |
|
|
|
|
sig.setDutyGroupId(null); |
|
|
|
|
} |
|
|
|
|
long id = IdWorker.getId(sig); |
|
|
|
|
sig.setId(id); |
|
|
|
|
return sig; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
//如果是添加,填充对应人员的排版人员表
|
|
|
|
|
if(1 == changeDutyMainVo.getType()) { |
|
|
|
|
//根据mainID添加新的排版人员表
|
|
|
|
|
for (String s1 : personId) { |
|
|
|
|
ImsDutyMainPersonEntity entity = new ImsDutyMainPersonEntity(); |
|
|
|
|
BeanUtil.copy(imsDutyMainPersonEntity, entity); |
|
|
|
|
entity.setDutyPerson(Long.valueOf(s1)); |
|
|
|
|
for (String addId : personId) { |
|
|
|
|
for (Long mainId : mainIds) { |
|
|
|
|
//copy修改后的数据,
|
|
|
|
|
List<ImsDutyMainPersonEntity> collect = updatePersonEntityList.stream().filter(s -> mainId.equals(s.getDutyMainId())).collect(Collectors.toList()); |
|
|
|
|
ImsDutyMainPersonEntity imsDutyMainPersonEntity=collect.get(0); |
|
|
|
|
ImsDutyMainPersonEntity addEntity = new ImsDutyMainPersonEntity(); |
|
|
|
|
BeanUtil.copy(imsDutyMainPersonEntity, addEntity); |
|
|
|
|
addEntity.setDutyPerson(Long.valueOf(addId)); |
|
|
|
|
long id1 = IdWorker.getId(imsDutyMainPersonEntity); |
|
|
|
|
entity.setId(id1); |
|
|
|
|
if (!longList.contains(imsDutyMainPersonEntity.getDutyMainId())) { |
|
|
|
|
addPersonEntityList.add(entity); |
|
|
|
|
longList.add(imsDutyMainPersonEntity.getDutyMainId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
addEntity.setId(id1); |
|
|
|
|
addPersonEntityList.add(addEntity); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (imsDutyMainPersonEntity.getDutyGroupId() != null) { |
|
|
|
|
ImsDutyGroupEntity imsDutyGroupEntity = dutyGroupMapper.selectById(imsDutyMainPersonEntity.getDutyGroupId()); |
|
|
|
|
imsDutyMainPersonEntity.setDutyGroupName(imsDutyGroupEntity.getGroupName()); |
|
|
|
|
imsDutyMainPersonEntity.setDutyGroupId(null); |
|
|
|
|
} |
|
|
|
|
long key = IdWorker.getId(imsDutyMainPersonEntity); |
|
|
|
|
imsDutyMainPersonEntity.setId(key); |
|
|
|
|
updatePersonEntityList.addAll(addPersonEntityList); |
|
|
|
|
} |
|
|
|
|
s.setId(id); |
|
|
|
|
return s; |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
if (2 == changeDutyMainVo.getType()) { |
|
|
|
|
for (String s : personId) { |
|
|
|
|
updatePersonEntityList=updatePersonEntityList.stream().filter( |
|
|
|
|
sig -> !sig.getDutyPerson().equals(s)) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
updatePersonEntityList.addAll(addPersonEntityList); |
|
|
|
|
} |
|
|
|
|
this.deleteLogic(ids); |
|
|
|
|
//更新排班-班组表,删除排班人员表,再添加排班班组人员表
|
|
|
|
|
this.updateBatchById(updateDutyMainEntities); |
|
|
|
|
List<Long> list = personEntityList.stream().map(s -> Long.valueOf(s.getId())).collect(Collectors.toList()); |
|
|
|
|
iImsDutyMainPersonService.deleteLogic(list); |
|
|
|
|
this.saveBatch(updateDutyMainEntities); |
|
|
|
|
iImsDutyMainPersonService.saveBatch(updatePersonEntityList); |
|
|
|
|
return R.success("修改成功"); |
|
|
|
|
} |
|
|
|
@ -1594,6 +1582,7 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
|
|
|
|
|
imsDutyMainEntity.setTenantId(AuthUtil.getTenantId()); |
|
|
|
|
imsDutyMainEntityList.add(imsDutyMainEntity); |
|
|
|
|
proDutyMainId = id == null ? "" : imsDutyMainEntity.getId().toString(); |
|
|
|
|
BeanUtils.copyProperties(imsDutyMainEntity,imsDutyMainEntity1); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|