|
@@ -22,6 +22,7 @@ import com.gree.mall.miniapp.logic.common.outside.WorkOrderApiLogic;
|
|
import com.gree.mall.miniapp.plus.entity.*;
|
|
import com.gree.mall.miniapp.plus.entity.*;
|
|
import com.gree.mall.miniapp.plus.service.*;
|
|
import com.gree.mall.miniapp.plus.service.*;
|
|
import com.gree.mall.miniapp.utils.DateUtils;
|
|
import com.gree.mall.miniapp.utils.DateUtils;
|
|
|
|
+import com.gree.mall.miniapp.utils.StringUtil;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -103,7 +104,10 @@ public class OrderBaseLogic {
|
|
mySchedule7Day.setDayList(dayList);
|
|
mySchedule7Day.setDayList(dayList);
|
|
|
|
|
|
List<String> orderBaseIds = pgOrderWorkerService.lambdaQuery()
|
|
List<String> orderBaseIds = pgOrderWorkerService.lambdaQuery()
|
|
- .eq(PgOrderWorker::getWorkerId, currentCompanyWechat.getUserId())
|
|
|
|
|
|
+ .and(item -> item.eq(PgOrderWorker::getWorkerId, currentCompanyWechat.getUserId())
|
|
|
|
+ .or(!StringUtil.isEmpty(currentCompanyWechat.getUser().getWorkerNumber()))
|
|
|
|
+ .eq(PgOrderWorker::getWorkerNumber,currentCompanyWechat.getUser().getWorkerNumber())
|
|
|
|
+ )
|
|
.list().stream().map(PgOrderWorker::getOrderBaseId).distinct().collect(Collectors.toList());
|
|
.list().stream().map(PgOrderWorker::getOrderBaseId).distinct().collect(Collectors.toList());
|
|
if(CollectionUtils.isEmpty(orderBaseIds)){
|
|
if(CollectionUtils.isEmpty(orderBaseIds)){
|
|
return mySchedule7Day;
|
|
return mySchedule7Day;
|
|
@@ -113,24 +117,32 @@ public class OrderBaseLogic {
|
|
.in(PgOrderBase::getId, orderBaseIds)
|
|
.in(PgOrderBase::getId, orderBaseIds)
|
|
.list();
|
|
.list();
|
|
|
|
|
|
|
|
+ List<String> djd = new ArrayList<>();
|
|
|
|
+ djd.add("DJD");
|
|
|
|
+
|
|
|
|
+ List<String> fwz = new ArrayList<>();
|
|
|
|
+ djd.add("FWZ");
|
|
|
|
+ djd.add("GCSZT");
|
|
|
|
+ djd.add("BFWG");
|
|
|
|
+
|
|
List<Long> djdList = Lists.newArrayList(
|
|
List<Long> djdList = Lists.newArrayList(
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),1),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),1)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),2),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),2)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),3),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),3)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),4),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),4)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),5),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),5)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.DJD,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),6),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),6))
|
|
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())),
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),1),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),1)),
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),2),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),2)),
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),3),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),3)),
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),4),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),4)),
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),5),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),5)),
|
|
|
|
+ scheduleSupply(list,djd,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),6),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),6))
|
|
);
|
|
);
|
|
|
|
|
|
List<Long> fwzList = Lists.newArrayList(
|
|
List<Long> fwzList = Lists.newArrayList(
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),1),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),1)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),2),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),2)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),3),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),3)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),4),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),4)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),5),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),5)),
|
|
|
|
- scheduleSupply(list,OrderBaseStatusEnum.FWZ,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),6),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),6))
|
|
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.beginOfDay(new Date()),DateUtil.endOfDay(new Date())),
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),1),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),1)),
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),2),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),2)),
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),3),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),3)),
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),4),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),4)),
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),5),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),5)),
|
|
|
|
+ scheduleSupplyFWZ(list,fwz,DateUtil.offsetDay(DateUtil.beginOfDay(new Date()),6),DateUtil.offsetDay(DateUtil.endOfDay(new Date()),6))
|
|
);
|
|
);
|
|
|
|
|
|
mySchedule7Day.setDjdList(djdList);
|
|
mySchedule7Day.setDjdList(djdList);
|
|
@@ -138,9 +150,17 @@ public class OrderBaseLogic {
|
|
return mySchedule7Day;
|
|
return mySchedule7Day;
|
|
}
|
|
}
|
|
|
|
|
|
- private long scheduleSupply(List<PgOrderBase> list,OrderBaseStatusEnum orderBaseStatusEnum,Date startTime,Date endTime){
|
|
|
|
|
|
+ private long scheduleSupplyFWZ(List<PgOrderBase> list,List<String> status,Date startTime,Date endTime){
|
|
|
|
+ long count = list.stream()
|
|
|
|
+ .filter(v -> status.contains(v.getOrderStatus()))
|
|
|
|
+ .filter(v -> v.getAppointmentTime() != null && v.getAppointmentTime().getTime() >= startTime.getTime() && v.getAppointmentTime().getTime() <= endTime.getTime())
|
|
|
|
+ .count();
|
|
|
|
+ return count;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private long scheduleSupply(List<PgOrderBase> list,List<String> status,Date startTime,Date endTime){
|
|
long count = list.stream()
|
|
long count = list.stream()
|
|
- .filter(v -> StringUtils.equals(v.getOrderStatus(), orderBaseStatusEnum.getKey()))
|
|
|
|
|
|
+ .filter(v -> status.contains(v.getOrderStatus()) || !v.getIsMeet())
|
|
.filter(v -> v.getAppointmentTime() != null && v.getAppointmentTime().getTime() >= startTime.getTime() && v.getAppointmentTime().getTime() <= endTime.getTime())
|
|
.filter(v -> v.getAppointmentTime() != null && v.getAppointmentTime().getTime() >= startTime.getTime() && v.getAppointmentTime().getTime() <= endTime.getTime())
|
|
.count();
|
|
.count();
|
|
return count;
|
|
return count;
|
|
@@ -222,7 +242,11 @@ public class OrderBaseLogic {
|
|
.like(PgOrderBase::getOrderSmallTypeText,keyword).or()
|
|
.like(PgOrderBase::getOrderSmallTypeText,keyword).or()
|
|
.like(PgOrderBase::getUserMobile,keyword).or()
|
|
.like(PgOrderBase::getUserMobile,keyword).or()
|
|
.like(PgOrderBase::getAddress,keyword))
|
|
.like(PgOrderBase::getAddress,keyword))
|
|
- .in(CollectionUtils.isNotEmpty(orderStatusList), PgOrderBase::getOrderStatus, orderStatusList)
|
|
|
|
|
|
+ .and(CollectionUtils.isNotEmpty(orderStatusList),item -> item.in(CollectionUtils.isNotEmpty(orderStatusList), PgOrderBase::getOrderStatus, orderStatusList)
|
|
|
|
+ .or(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DJD"))
|
|
|
|
+ .eq(CollectionUtils.isNotEmpty(orderStatusList) && orderStatusList.contains("DJD"),PgOrderBase::getIsMeet,false)
|
|
|
|
+ )
|
|
|
|
+ .in(CollectionUtils.isNotEmpty(orderStatusList) && !orderStatusList.contains("DJD"),PgOrderBase::getIsMeet,true)
|
|
.eq(StringUtils.equals(orderStatus, OrderBaseStatusEnum.YCD.getKey()),PgOrderBase::getIsException,true)
|
|
.eq(StringUtils.equals(orderStatus, OrderBaseStatusEnum.YCD.getKey()),PgOrderBase::getIsException,true)
|
|
.between(!StringUtils.equals(orderStatus, OrderBaseStatusEnum.YWG.getKey())
|
|
.between(!StringUtils.equals(orderStatus, OrderBaseStatusEnum.YWG.getKey())
|
|
&& StringUtils.isNoneBlank(startTime, endTime) && (byDay == null || byDay != 3), PgOrderBase::getDispatchTime, startTime, endTime)
|
|
&& StringUtils.isNoneBlank(startTime, endTime) && (byDay == null || byDay != 3), PgOrderBase::getDispatchTime, startTime, endTime)
|
|
@@ -419,15 +443,18 @@ public class OrderBaseLogic {
|
|
CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
|
|
CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
|
|
PgOrderWorker one = pgOrderWorkerService.lambdaQuery()
|
|
PgOrderWorker one = pgOrderWorkerService.lambdaQuery()
|
|
.eq(PgOrderWorker::getOrderBaseId, orderBaseId)
|
|
.eq(PgOrderWorker::getOrderBaseId, orderBaseId)
|
|
- .eq(PgOrderWorker::getWorkerId, currentCompanyWechat.getUserId())
|
|
|
|
|
|
+ .and(item -> item.eq(PgOrderWorker::getWorkerId, currentCompanyWechat.getUserId())
|
|
|
|
+ .or(!StringUtil.isEmpty(currentCompanyWechat.getUser().getWorkerNumber()))
|
|
|
|
+ .eq(!StringUtil.isEmpty(currentCompanyWechat.getUser().getWorkerNumber()),PgOrderWorker::getWorkerNumber,currentCompanyWechat.getUser().getWorkerNumber()))
|
|
|
|
+
|
|
.one();
|
|
.one();
|
|
if (one == null) {
|
|
if (one == null) {
|
|
throw new RemoteServiceException("暂无权限接单");
|
|
throw new RemoteServiceException("暂无权限接单");
|
|
}
|
|
}
|
|
PgOrderBase pgOrderBase = pgOrderBaseService.getById(orderBaseId);
|
|
PgOrderBase pgOrderBase = pgOrderBaseService.getById(orderBaseId);
|
|
- if (!(StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.DJD.getKey())
|
|
|
|
|
|
+ if (!pgOrderBase.getIsImportExcel() && (!(StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.DJD.getKey())
|
|
|| StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.DSM.getKey())
|
|
|| StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.DSM.getKey())
|
|
- || StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.YZP.getKey())
|
|
|
|
|
|
+ || StringUtils.equals(pgOrderBase.getOrderStatus(), OrderBaseStatusEnum.YZP.getKey()))
|
|
)) {
|
|
)) {
|
|
throw new RemoteServiceException("当前状态不可接单");
|
|
throw new RemoteServiceException("当前状态不可接单");
|
|
}
|
|
}
|
|
@@ -475,10 +502,19 @@ public class OrderBaseLogic {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- pgOrderBase.setOrderStatus(OrderBaseStatusEnum.FWZ.getKey());
|
|
|
|
- pgOrderBase.setOrderStatusText(OrderBaseStatusEnum.FWZ.getRemark());
|
|
|
|
- pgOrderBase.setWorkerReceTime(new Date());
|
|
|
|
- pgOrderBase.updateById();
|
|
|
|
|
|
+ if (!pgOrderBase.getIsImportExcel()) {
|
|
|
|
+ pgOrderBase.setOrderStatus(OrderBaseStatusEnum.FWZ.getKey());
|
|
|
|
+ pgOrderBase.setOrderStatusText(OrderBaseStatusEnum.FWZ.getRemark());
|
|
|
|
+ pgOrderBase.setWorkerReceTime(new Date());
|
|
|
|
+ pgOrderBase.updateById();
|
|
|
|
+ }else {
|
|
|
|
+ if (pgOrderBase.getOrderStatus().equals(OrderBaseStatusEnum.DJD.getKey())){
|
|
|
|
+ pgOrderBase.setOrderStatus(OrderBaseStatusEnum.FWZ.getKey());
|
|
|
|
+ pgOrderBase.setOrderStatusText(OrderBaseStatusEnum.FWZ.getRemark());
|
|
|
|
+ }
|
|
|
|
+ pgOrderBase.setIsMeet(true);
|
|
|
|
+ pgOrderBase.updateById();
|
|
|
|
+ }
|
|
|
|
|
|
orderLogLogic.addLog(orderBaseId, "接收工单", "主要工程师【" + one.getWorkerName() + "】确认接单" + joinSlaveStr, one.getWebsitName());
|
|
orderLogLogic.addLog(orderBaseId, "接收工单", "主要工程师【" + one.getWorkerName() + "】确认接单" + joinSlaveStr, one.getWebsitName());
|
|
}
|
|
}
|