|
@@ -247,6 +247,20 @@ public class OrderBaseLogic {
|
|
|
.stream()
|
|
|
.map(OrderBaseVO::getId)
|
|
|
.collect(Collectors.toList());
|
|
|
+ List<AdminWebsit> adminWebsits = new ArrayList<>();
|
|
|
+ Map<String, String> adminWebsitMap = new HashMap<>();
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(orderBaseVOS)) {
|
|
|
+ adminWebsits = adminWebsitService.lambdaQuery()
|
|
|
+ .eq(AdminWebsit::getCompanyWechatId, currentCompanyWechat.getCompanyWechatId())
|
|
|
+ .in(AdminWebsit::getWebsitId, orderBaseVOS.stream().map(OrderBaseVO::getWebsitId).collect(Collectors.toList()))
|
|
|
+ .list();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (CollectionUtil.isNotEmpty(adminWebsits)) {
|
|
|
+ adminWebsitMap = adminWebsits.stream().collect(Collectors.toMap(AdminWebsit::getWebsitId, AdminWebsit::getAttr));
|
|
|
+ }
|
|
|
+
|
|
|
Map<String, List<PgOrderFlag>> mapList = this.getOrderFlags(orderIds);
|
|
|
for (OrderBaseVO orderBaseVO : orderBaseVOS) {
|
|
|
orderBaseVO.setOrderFlags(mapList.get(orderBaseVO.getId()));
|
|
@@ -259,6 +273,12 @@ public class OrderBaseLogic {
|
|
|
orderBaseVO.setUserMobile(orderBaseVO.getUserMobile().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
|
|
|
orderBaseVO.setAddress(orderBaseVO.getProvince()+orderBaseVO.getCity()+orderBaseVO.getArea()+orderBaseVO.getStreet()+"****");
|
|
|
}
|
|
|
+ final String attr = adminWebsitMap.get(orderBaseVO.getWebsitId());
|
|
|
+ if (StringUtils.isNotBlank(attr)
|
|
|
+ && attr.equals(WebsitAttrEnum.SELF.getKey())
|
|
|
+ && "安装, 拆移机".contains(orderBaseVO.getOrderSmallTypeText())) {
|
|
|
+ orderBaseVO.setNeedSlave(true);
|
|
|
+ }
|
|
|
}
|
|
|
page.setRecords(orderBaseVOS);
|
|
|
return page;
|
|
@@ -352,6 +372,14 @@ public class OrderBaseLogic {
|
|
|
}
|
|
|
//服务单标记
|
|
|
pgOrderBaseDetailVO.setPgOrderFlags(orderFlagLogic.list(orderBaseId));
|
|
|
+
|
|
|
+ final AdminWebsit adminWebsit = adminWebsitService.getById(pgOrderBase.getWebsitId());
|
|
|
+ if (Objects.nonNull(adminWebsit)) {
|
|
|
+ if (adminWebsit.getAttr().equals(WebsitAttrEnum.SELF.getKey())
|
|
|
+ && "安装, 拆移机".contains(pgOrderBase.getOrderSmallTypeText())) {
|
|
|
+ pgOrderBaseDetailVO.setNeedSlave(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
return pgOrderBaseDetailVO;
|
|
|
}
|
|
|
|
|
@@ -408,7 +436,7 @@ public class OrderBaseLogic {
|
|
|
final AdminWebsit adminWebsit = adminWebsitService.getById(pgOrderBase.getWebsitId());
|
|
|
|
|
|
if (adminWebsit.getAttr().equals(WebsitAttrEnum.SELF.getKey())
|
|
|
- && "安装, 拆移".contains(pgOrderBase.getOrderSmallType())
|
|
|
+ && "安装, 拆移机".contains(pgOrderBase.getOrderSmallTypeText())
|
|
|
&& CollectionUtil.isEmpty(workerList)) {
|
|
|
throw new RemoteServiceException("工单的类型必须至少选一个小工");
|
|
|
}
|
|
@@ -465,6 +493,7 @@ public class OrderBaseLogic {
|
|
|
if(!StringUtils.equals(user.getType(),UserTypeEnum.WORKER.getKey())){
|
|
|
throw new RemoteServiceException("当前身份不可抢单");
|
|
|
}
|
|
|
+
|
|
|
pgOrderBase.setWorkerId(currentCompanyWechat.getUserId());
|
|
|
pgOrderBase.setWorkerNumber(currentCompanyWechat.getUser().getWorkerNumber());
|
|
|
pgOrderBase.setWorkerName(user.getNickName());
|
|
@@ -482,6 +511,7 @@ public class OrderBaseLogic {
|
|
|
PgOrderWorker pgOrderWorker = new PgOrderWorker();
|
|
|
pgOrderWorker.setIsMaster(true);
|
|
|
pgOrderWorker.setWorkerId(user.getUserId());
|
|
|
+ pgOrderWorker.setWorkerNumber(currentCompanyWechat.getUser().getWorkerNumber());
|
|
|
pgOrderWorker.setWorkerName(user.getNickName());
|
|
|
pgOrderWorker.setWorkerIdcard(user.getIdCard());
|
|
|
pgOrderWorker.setWorkerMobile(user.getMobile());
|
|
@@ -490,7 +520,31 @@ public class OrderBaseLogic {
|
|
|
pgOrderWorker.setOrderBaseId(pgOrderBase.getId());
|
|
|
pgOrderWorker.insert();
|
|
|
|
|
|
- orderLogLogic.addLog(orderBaseId,"师傅抢单","工程师【"+pgOrderWorker.getWorkerName()+"】抢单成功",pgOrderWorker.getWebsitName());
|
|
|
+ final AdminWebsit adminWebsit = adminWebsitService.getById(pgOrderBase.getWebsitId());
|
|
|
+ StringBuilder joinSlaveStr = new StringBuilder();
|
|
|
+ if (adminWebsit.getAttr().equals(WebsitAttrEnum.SELF.getKey())
|
|
|
+ && "安装, 拆移机".contains(pgOrderBase.getOrderSmallTypeText())) {
|
|
|
+ final List<WorkerTeamBean> teamBeanList = this.slaveWorkerTeam(orderBaseId, pgOrderBase);
|
|
|
+ if (CollectionUtil.isEmpty(teamBeanList)) {
|
|
|
+ throw new RemoteServiceException("工单类型必须有一组有效的组队,抢单失败");
|
|
|
+ }
|
|
|
+ joinSlaveStr.append(", 辅助工程师");
|
|
|
+ final WorkerTeamBean bean = teamBeanList.get(0);
|
|
|
+ PgOrderWorker pgOrderWorker2 = new PgOrderWorker();
|
|
|
+ pgOrderWorker2.setIsMaster(false);
|
|
|
+ pgOrderWorker2.setWorkerId(bean.getWorkerId());
|
|
|
+ pgOrderWorker2.setWorkerNumber(bean.getWorkerNumber());
|
|
|
+ pgOrderWorker2.setWorkerName(bean.getWorkerName());
|
|
|
+ pgOrderWorker2.setWorkerIdcard(bean.getWorkerIdCard());
|
|
|
+ pgOrderWorker2.setWorkerMobile(bean.getWorkerMobile());
|
|
|
+ pgOrderWorker2.setWebsitId(pgOrderBase.getWebsitId());
|
|
|
+ pgOrderWorker2.setWebsitName(pgOrderBase.getWebsitName());
|
|
|
+ pgOrderWorker2.setOrderBaseId(pgOrderBase.getId());
|
|
|
+ pgOrderWorker2.insert();
|
|
|
+ joinSlaveStr.append("【").append(pgOrderWorker2.getWorkerName()).append("】");
|
|
|
+ }
|
|
|
+
|
|
|
+ orderLogLogic.addLog(orderBaseId,"师傅抢单","工程师【"+pgOrderWorker.getWorkerName()+"】" + joinSlaveStr + "抢单成功",pgOrderWorker.getWebsitName());
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -564,10 +618,17 @@ public class OrderBaseLogic {
|
|
|
* @param orderBaseId
|
|
|
* @return
|
|
|
*/
|
|
|
- public List<WorkerTeamBean> slaveWorkerTeam(String orderBaseId) {
|
|
|
- final PgOrderBase orderBase = pgOrderBaseService.getById(orderBaseId);
|
|
|
- if (StringUtils.equals(orderBase.getOrderStatus(), OrderBaseStatusEnum.YWG.getKey())) {
|
|
|
- throw new RemoteServiceException("工单状态”已完工“");
|
|
|
+ public List<WorkerTeamBean> slaveWorkerTeam(String orderBaseId, PgOrderBase orderBase) {
|
|
|
+ String workerNumber;
|
|
|
+ if (Objects.isNull(orderBase)) {
|
|
|
+ orderBase = pgOrderBaseService.getById(orderBaseId);
|
|
|
+ if (StringUtils.equals(orderBase.getOrderStatus(), OrderBaseStatusEnum.YWG.getKey())) {
|
|
|
+ throw new RemoteServiceException("工单状态”已完工“");
|
|
|
+ }
|
|
|
+ workerNumber = orderBase.getWorkerNumber();
|
|
|
+ } else {
|
|
|
+ CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
|
|
|
+ workerNumber = currentCompanyWechat.getUser().getWorkerNumber();
|
|
|
}
|
|
|
Map<String, WorkerTeamBean> workerTeamMap = new HashMap<>();
|
|
|
if (StringUtils.isNotBlank(orderBase.getWorkerId())) {
|
|
@@ -577,13 +638,14 @@ public class OrderBaseLogic {
|
|
|
.ne(PgOrderWorker::getWorkerId, orderBase.getWorkerId())
|
|
|
.list();
|
|
|
|
|
|
-
|
|
|
if (CollectionUtil.isNotEmpty(orderWorkerList)) {
|
|
|
for (PgOrderWorker orderWorker : orderWorkerList) {
|
|
|
WorkerTeamBean bean = new WorkerTeamBean();
|
|
|
bean.setWorkerId(orderWorker.getWorkerId());
|
|
|
bean.setWorkerName(orderWorker.getWorkerName());
|
|
|
bean.setWorkerNumber(orderWorker.getWorkerNumber());
|
|
|
+ bean.setWorkerMobile(orderWorker.getWorkerMobile());
|
|
|
+ bean.setWorkerIdCard(orderWorker.getWorkerIdcard());
|
|
|
bean.setIsSelect(true);
|
|
|
workerTeamMap.put(orderWorker.getWorkerId(), bean);
|
|
|
}
|
|
@@ -592,7 +654,7 @@ public class OrderBaseLogic {
|
|
|
|
|
|
final List<WorkerTeam> teamList = workerTeamService.lambdaQuery()
|
|
|
.eq(WorkerTeam::getCompanyWechatId, orderBase.getCompanyWechatId())
|
|
|
- .eq(WorkerTeam::getMasterWorkerId, orderBase.getWorkerNumber())
|
|
|
+ .eq(WorkerTeam::getMasterWorkerId, workerNumber)
|
|
|
.eq(WorkerTeam::getStatus, StateEnum.ON.getKey())
|
|
|
.orderByAsc(WorkerTeam::getCreateTime)
|
|
|
.list();
|
|
@@ -612,6 +674,8 @@ public class OrderBaseLogic {
|
|
|
bean.setWorkerId(user.getUserId());
|
|
|
bean.setWorkerName(user.getNickName());
|
|
|
bean.setWorkerNumber(user.getWorkerNumber());
|
|
|
+ bean.setWorkerMobile(user.getMobile());
|
|
|
+ bean.setWorkerIdCard(user.getIdCard());
|
|
|
bean.setIsSelect(false);
|
|
|
if (index == 0 && CollectionUtil.isEmpty(workerTeamMap)) {
|
|
|
// 没有工单派工师傅并且下标为0时,默认选中
|
|
@@ -623,16 +687,18 @@ public class OrderBaseLogic {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 清除非正常状态的小工师傅
|
|
|
- final List<WebsitUser> websitUserList = websitUserService.lambdaQuery()
|
|
|
- .eq(WebsitUser::getCompanyWechatId, orderBase.getCompanyWechatId())
|
|
|
- .ne(WebsitUser::getExamineStatus, ExamineStatusEnum.OK.getKey())
|
|
|
- .eq(WebsitUser::getWebsitId, orderBase.getWebsitId())
|
|
|
- .in(WebsitUser::getUserId, workerTeamMap.keySet())
|
|
|
- .list();
|
|
|
+ if (CollectionUtil.isNotEmpty(workerTeamMap)) {
|
|
|
+ // 清除非正常状态的小工师傅
|
|
|
+ final List<WebsitUser> websitUserList = websitUserService.lambdaQuery()
|
|
|
+ .eq(WebsitUser::getCompanyWechatId, orderBase.getCompanyWechatId())
|
|
|
+ .ne(WebsitUser::getExamineStatus, ExamineStatusEnum.OK.getKey())
|
|
|
+ .eq(WebsitUser::getWebsitId, orderBase.getWebsitId())
|
|
|
+ .in(WebsitUser::getUserId, workerTeamMap.keySet())
|
|
|
+ .list();
|
|
|
|
|
|
- for (WebsitUser websitUser : websitUserList) {
|
|
|
- workerTeamMap.remove(websitUser.getUserId());
|
|
|
+ for (WebsitUser websitUser : websitUserList) {
|
|
|
+ workerTeamMap.remove(websitUser.getUserId());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return new ArrayList<>(workerTeamMap.values());
|