|
@@ -23,10 +23,14 @@ import jakarta.annotation.Resource;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import vip.xiaonuo.biz.modular.bizappointmentrecord.entity.BizAppointmentRecord;
|
|
|
+import vip.xiaonuo.biz.modular.bizappointmentrecord.service.BizAppointmentRecordService;
|
|
|
import vip.xiaonuo.biz.modular.bizloadappoint.entity.BizLoadAppoint;
|
|
|
import vip.xiaonuo.biz.modular.bizloadappoint.service.BizLoadAppointService;
|
|
|
import vip.xiaonuo.biz.modular.bizloadtime.entity.BizLoadTime;
|
|
|
import vip.xiaonuo.biz.modular.bizloadtime.service.BizLoadTimeService;
|
|
|
+import vip.xiaonuo.biz.modular.bizorderload.entity.BizOrderLoad;
|
|
|
+import vip.xiaonuo.biz.modular.bizorderload.param.BizOrderLoadEditParam;
|
|
|
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
|
|
|
import vip.xiaonuo.common.exception.CommonException;
|
|
|
import vip.xiaonuo.common.page.CommonPageRequest;
|
|
@@ -56,6 +60,9 @@ public class BizLoadDispatchServiceImpl extends ServiceImpl<BizLoadDispatchMappe
|
|
|
@Resource
|
|
|
private BizLoadTimeService bizLoadTimeService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private BizAppointmentRecordService bizAppointmentRecordService;
|
|
|
+
|
|
|
@Override
|
|
|
public Page<BizLoadDispatch> page(BizLoadDispatchPageParam bizLoadDispatchPageParam) {
|
|
|
QueryWrapper<BizLoadDispatch> queryWrapper = new QueryWrapper<BizLoadDispatch>().checkSqlInjection();
|
|
@@ -100,6 +107,7 @@ public class BizLoadDispatchServiceImpl extends ServiceImpl<BizLoadDispatchMappe
|
|
|
}
|
|
|
|
|
|
public void checkParam(BizLoadDispatchAddParam bizLoadDispatchAddParam,String type){
|
|
|
+ //判断起卸点位时间是否添加过
|
|
|
long count = this.count(new QueryWrapper<BizLoadDispatch>().lambda().
|
|
|
eq(BizLoadDispatch::getAppointId, bizLoadDispatchAddParam.getAppointId()).
|
|
|
eq(BizLoadDispatch::getLoadPointId, bizLoadDispatchAddParam.getLoadPointId()).
|
|
@@ -113,6 +121,15 @@ public class BizLoadDispatchServiceImpl extends ServiceImpl<BizLoadDispatchMappe
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ //判断是否添加过多个执行人员
|
|
|
+ long userCount = this.count(new QueryWrapper<BizLoadDispatch>().lambda().
|
|
|
+ eq(BizLoadDispatch::getAppointId, bizLoadDispatchAddParam.getAppointId()).
|
|
|
+ eq(BizLoadDispatch::getLoadType,type).
|
|
|
+ ne(BizLoadDispatch::getUserId,bizLoadDispatchAddParam.getUserId()));
|
|
|
+ if(userCount>0){
|
|
|
+ throw new CommonException("不可以分配多个执行人员!");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -191,8 +208,8 @@ public class BizLoadDispatchServiceImpl extends ServiceImpl<BizLoadDispatchMappe
|
|
|
if(ObjectUtil.isNotEmpty(bizLoadDispatchPageParam.getAppointId())){
|
|
|
queryWrapper.eq("bld.appoint_id",bizLoadDispatchPageParam.getAppointId());
|
|
|
}
|
|
|
- if(ObjectUtil.isNotEmpty(bizLoadDispatchPageParam.getLoadType())){
|
|
|
- queryWrapper.eq("bld.load_type",bizLoadDispatchPageParam.getLoadType());
|
|
|
+ if(ObjectUtil.isNotEmpty(bizLoadDispatchPageParam.getAppointType())){
|
|
|
+ queryWrapper.eq("bld.load_type",bizLoadDispatchPageParam.getAppointType());
|
|
|
}
|
|
|
queryWrapper.eq("bld.delete_flag","NOT_DELETE");
|
|
|
queryWrapper.orderByDesc("bld.create_time");
|
|
@@ -206,13 +223,80 @@ public class BizLoadDispatchServiceImpl extends ServiceImpl<BizLoadDispatchMappe
|
|
|
BizLoadDispatch bizLoadDispatch = this.queryEntity(bizLoadDispatchEditParam.getId());
|
|
|
bizLoadDispatch.setLoadPointId(bizLoadDispatchEditParam.getLoadPointId());
|
|
|
bizLoadDispatch.setLoadTimeId(bizLoadDispatchEditParam.getLoadTimeId());
|
|
|
+ bizLoadDispatch.setUserId(bizLoadDispatchEditParam.getUserId());
|
|
|
this.updateById(bizLoadDispatch);
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public void replaceDispatch(BizLoadDispatchEditParam bizLoadDispatchEditParam) {
|
|
|
//装卸分配替换
|
|
|
BizLoadDispatch bizLoadDispatch = this.queryEntity(bizLoadDispatchEditParam.getId());
|
|
|
+ checkDispatch(bizLoadDispatch,bizLoadDispatchEditParam);
|
|
|
+ //修改预约记录的装卸点位和装卸时间
|
|
|
+ updateAppointment(bizLoadDispatch,bizLoadDispatchEditParam);
|
|
|
+
|
|
|
+ BeanUtil.copyProperties(bizLoadDispatchEditParam, bizLoadDispatch);
|
|
|
+ //修改装卸点位和装卸时间
|
|
|
+ this.updateById(bizLoadDispatch);
|
|
|
+ }
|
|
|
+ public void checkDispatch(BizLoadDispatch bizLoadDispatch, BizLoadDispatchEditParam bizLoadDispatchEditParam){
|
|
|
+ //校验是否在物流订单添加过
|
|
|
+ QueryWrapper<BizLoadDispatch> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.lambda().eq(BizLoadDispatch::getAppointId,bizLoadDispatchEditParam.getAppointId()).
|
|
|
+ eq(BizLoadDispatch::getLoadPointId,bizLoadDispatchEditParam.getLoadPointId()).
|
|
|
+ eq(BizLoadDispatch::getLoadTimeId,bizLoadDispatchEditParam.getLoadTimeId()).
|
|
|
+ eq(BizLoadDispatch::getLoadType,"2");
|
|
|
+ long count = this.count(queryWrapper);
|
|
|
+ if(count>0){
|
|
|
+ throw new CommonException("装卸点位和时间已经添加过,不可更换!");
|
|
|
+ }
|
|
|
+
|
|
|
+ //校验新的装卸时间段预约次数是否大于旧的已经预约数
|
|
|
+ //查询旧的装卸点位已约次数
|
|
|
+ Integer oldApplyNumber= 0;
|
|
|
+ BizLoadTime bizLoadTime = bizLoadTimeService.getById(bizLoadDispatch.getLoadTimeId());
|
|
|
+ if(ObjectUtil.isNotNull(bizLoadTime)){
|
|
|
+ oldApplyNumber = bizLoadTime.getAlreadyNumber();
|
|
|
+ }
|
|
|
+ //查询新的装卸点位可约次数
|
|
|
+ Integer applyNumber = 0;
|
|
|
+ BizLoadTime loadTime = bizLoadTimeService.getById(bizLoadDispatchEditParam.getLoadTimeId());
|
|
|
+ if(ObjectUtil.isNotNull(loadTime)){
|
|
|
+ applyNumber = loadTime.getAvailableNumber();
|
|
|
+ }
|
|
|
+ if(applyNumber<oldApplyNumber){
|
|
|
+ throw new CommonException("该装卸点位预约次数不足,不可更换!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void updateAppointment(BizLoadDispatch bizLoadDispatch, BizLoadDispatchEditParam bizLoadDispatchEditParam){
|
|
|
+ //查询所有未装货的且是旧装卸点位的预约记录
|
|
|
+ List<BizAppointmentRecord> recordList = bizAppointmentRecordService.list(new QueryWrapper<BizAppointmentRecord>().lambda().
|
|
|
+ eq(BizAppointmentRecord::getOrderId, bizLoadDispatch.getAppointId()).
|
|
|
+ eq(BizAppointmentRecord::getLoadPointId, bizLoadDispatch.getLoadPointId()).
|
|
|
+ eq(BizAppointmentRecord::getLoadTimeId, bizLoadDispatch.getLoadTimeId()).
|
|
|
+ in(BizAppointmentRecord::getStatus, "1", "2", "3", "4", "5", "6"));
|
|
|
+ for(BizAppointmentRecord bizAppointmentRecord : recordList){
|
|
|
+ bizAppointmentRecord.setLoadPointId(bizLoadDispatchEditParam.getLoadPointId());
|
|
|
+ bizAppointmentRecord.setLoadTimeId(bizLoadDispatchEditParam.getLoadTimeId());
|
|
|
+ bizAppointmentRecordService.updateById(bizAppointmentRecord);
|
|
|
+ }
|
|
|
+
|
|
|
+ BizLoadTime bizLoadTime = bizLoadTimeService.getById(bizLoadDispatch.getLoadTimeId());
|
|
|
+ if(ObjectUtil.isNotNull(bizLoadTime)){
|
|
|
+ bizLoadTime.setAlreadyNumber(bizLoadTime.getAlreadyNumber() - recordList.size());
|
|
|
+ bizLoadTimeService.updateById(bizLoadTime);
|
|
|
+ }
|
|
|
+
|
|
|
+ BizLoadTime loadTime = bizLoadTimeService.getById(bizLoadDispatchEditParam.getLoadTimeId());
|
|
|
+ if(ObjectUtil.isNotNull(loadTime)){
|
|
|
+ if((loadTime.getAlreadyNumber() + recordList.size()) > loadTime.getAvailableNumber()){
|
|
|
+ throw new CommonException("次数不足,不可更换");
|
|
|
+ }
|
|
|
+ loadTime.setAlreadyNumber(loadTime.getAlreadyNumber() + recordList.size());
|
|
|
+ bizLoadTimeService.updateById(loadTime);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|