|
|
@@ -2,6 +2,8 @@ package cn.com.taiji.userw.manager.system; |
|
|
|
|
|
|
|
import cn.com.taiji.common.manager.ManagerException; |
|
|
|
import cn.com.taiji.common.model.dao.Pagination; |
|
|
|
import cn.com.taiji.common.pub.CollectionTools; |
|
|
|
import cn.com.taiji.core.entity.dict.basic.IdType; |
|
|
|
import cn.com.taiji.core.entity.dict.user.StaffChangeType; |
|
|
|
import cn.com.taiji.core.entity.user.AccountInfo; |
|
|
|
import cn.com.taiji.core.entity.user.AssBlackStaff; |
|
|
@@ -16,6 +18,7 @@ import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class BlackStaffManagerImpl extends AbstractUserwManager implements BlackStaffManager { |
|
|
@@ -35,6 +38,7 @@ public class BlackStaffManagerImpl extends AbstractUserwManager implements Black |
|
|
|
return blackStaffRepo.page(pageRequest).convertResult(item -> { |
|
|
|
AssBlackStaff blackStaff = (AssBlackStaff) item; |
|
|
|
BlackStaffModel model = copyProperties(blackStaff, new BlackStaffModel()); |
|
|
|
model.setIdType(blackStaff.getIdType().getCode()); |
|
|
|
AccountInfo byOpenId1 = accountInfoRepo.findByOpenId(blackStaff.getCreateOpenId()); |
|
|
|
if (byOpenId1 != null){ |
|
|
|
model.setCreateUserName(byOpenId1.getUserName()); |
|
|
@@ -58,7 +62,7 @@ public class BlackStaffManagerImpl extends AbstractUserwManager implements Black |
|
|
|
blackStaff.setStatus(2); |
|
|
|
blackStaff.setStaffOutTime(now); |
|
|
|
blackStaff.setUpdateOpenId(findOpenIdByToken(dto.getAccessToken())); |
|
|
|
blackStaff.setReasonOut(dto.getReasonOut()); |
|
|
|
blackStaff.setReasonOut(dto.getReason()); |
|
|
|
blackStaffRepo.merge(blackStaff); |
|
|
|
//更新员工状态 |
|
|
|
AccountInfo accountInfo = accountInfoRepo.findByIdNumAndIdType(blackStaff.getIdNum(), blackStaff.getIdType()); |
|
|
@@ -70,7 +74,7 @@ public class BlackStaffManagerImpl extends AbstractUserwManager implements Black |
|
|
|
staff.setUpdateTime(now); |
|
|
|
staffRepo.merge(staff); |
|
|
|
//记录修改状态日志 |
|
|
|
staffManager.saveStaffChangeLog(staff.getStaffId(), "员工反白:"+dto.getReasonOut(), findOpenIdByToken(dto.getAccessToken()), StaffChangeType.STATUS); |
|
|
|
staffManager.saveStaffChangeLog(staff.getStaffId(), "员工反白:"+dto.getReason(), findOpenIdByToken(dto.getAccessToken()), StaffChangeType.STATUS); |
|
|
|
} |
|
|
|
} |
|
|
|
return new BlackStaffOutResponseDTO(); |
|
|
@@ -79,12 +83,24 @@ public class BlackStaffManagerImpl extends AbstractUserwManager implements Black |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public BlackStaffInResponseDTO staffIn(BlackStaffInRequestDTO dto) throws ManagerException { |
|
|
|
IdType idType = IdType.findByCode(dto.getIdType()); |
|
|
|
if (idType == null){ |
|
|
|
throw new ManagerException("证件类型异常"); |
|
|
|
} |
|
|
|
List<AssBlackStaff> blackStaffs = blackStaffRepo.queryByIdNumAndIdType(dto.getIdNum(), IdType.findByCode(dto.getIdType()), 1); |
|
|
|
if (!CollectionTools.isEmpty(blackStaffs)){ |
|
|
|
throw new ManagerException("该证件号码和证件类型已下黑"); |
|
|
|
} |
|
|
|
|
|
|
|
AssBlackStaff blackStaff = copyProperties(dto, new AssBlackStaff()); |
|
|
|
blackStaff.setIdType(idType); |
|
|
|
blackStaff.setReasonIn(dto.getReason()); |
|
|
|
LocalDateTime now = LocalDateTime.now(); |
|
|
|
blackStaff.setStatus(1); |
|
|
|
blackStaff.setStaffInTime(now); |
|
|
|
blackStaff.setCreateOpenId(findOpenIdByToken(dto.getAccessToken())); |
|
|
|
AccountInfo accountInfo = accountInfoRepo.findByIdNumAndIdType(dto.getIdNum(), dto.getIdType()); |
|
|
|
|
|
|
|
AccountInfo accountInfo = accountInfoRepo.findByIdNumAndIdType(dto.getIdNum(), idType); |
|
|
|
if (accountInfo != null){ |
|
|
|
Staff staff = staffRepo.findByOpenId(accountInfo.getOpenId()); |
|
|
|
if (staff != null){ |
|
|
@@ -94,8 +110,10 @@ public class BlackStaffManagerImpl extends AbstractUserwManager implements Black |
|
|
|
staff.setUpdateOpenId(findOpenIdByToken(dto.getAccessToken())); |
|
|
|
staff.setUpdateTime(now); |
|
|
|
staffRepo.merge(staff); |
|
|
|
//删除openId缓存 |
|
|
|
deleteTokenByOpenId(staff.getOpenId()); |
|
|
|
//记录修改状态日志 |
|
|
|
staffManager.saveStaffChangeLog(staff.getStaffId(), "员工下黑:"+dto.getReasonIn(), findOpenIdByToken(dto.getAccessToken()), StaffChangeType.STATUS); |
|
|
|
staffManager.saveStaffChangeLog(staff.getStaffId(), "员工下黑:"+dto.getReason(), findOpenIdByToken(dto.getAccessToken()), StaffChangeType.STATUS); |
|
|
|
} |
|
|
|
} |
|
|
|
blackStaffRepo.persist(blackStaff); |