|
@@ -0,0 +1,216 @@
|
|
|
|
+/*
|
|
|
|
+ * Copyright [2022] [https://www.xiaonuo.vip]
|
|
|
|
+ *
|
|
|
|
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
|
|
|
+ *
|
|
|
|
+ * 1.请不要删除和修改根目录下的LICENSE文件。
|
|
|
|
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
|
|
|
|
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
|
|
|
|
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
|
|
|
|
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
|
|
|
|
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
|
|
|
|
+ */
|
|
|
|
+package vip.xiaonuo.biz.modular.bizloaddispatch.service.impl;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
|
+import cn.hutool.core.collection.CollStreamUtil;
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+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.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.common.enums.CommonSortOrderEnum;
|
|
|
|
+import vip.xiaonuo.common.exception.CommonException;
|
|
|
|
+import vip.xiaonuo.common.page.CommonPageRequest;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.entity.BizLoadDispatch;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.mapper.BizLoadDispatchMapper;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.param.BizLoadDispatchAddParam;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.param.BizLoadDispatchEditParam;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.param.BizLoadDispatchIdParam;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.param.BizLoadDispatchPageParam;
|
|
|
|
+import vip.xiaonuo.biz.modular.bizloaddispatch.service.BizLoadDispatchService;
|
|
|
|
+
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 起卸预约分配Service接口实现类
|
|
|
|
+ *
|
|
|
|
+ * @author fanzherong
|
|
|
|
+ * @date 2025/07/01 09:47
|
|
|
|
+ **/
|
|
|
|
+@Service
|
|
|
|
+public class BizLoadDispatchServiceImpl extends ServiceImpl<BizLoadDispatchMapper, BizLoadDispatch> implements BizLoadDispatchService {
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private BizLoadAppointService bizLoadAppointService;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private BizLoadTimeService bizLoadTimeService;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Page<BizLoadDispatch> page(BizLoadDispatchPageParam bizLoadDispatchPageParam) {
|
|
|
|
+ QueryWrapper<BizLoadDispatch> queryWrapper = new QueryWrapper<BizLoadDispatch>().checkSqlInjection();
|
|
|
|
+ if(ObjectUtil.isAllNotEmpty(bizLoadDispatchPageParam.getSortField(), bizLoadDispatchPageParam.getSortOrder())) {
|
|
|
|
+ CommonSortOrderEnum.validate(bizLoadDispatchPageParam.getSortOrder());
|
|
|
|
+ queryWrapper.orderBy(true, bizLoadDispatchPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
|
|
|
|
+ StrUtil.toUnderlineCase(bizLoadDispatchPageParam.getSortField()));
|
|
|
|
+ } else {
|
|
|
|
+ queryWrapper.lambda().orderByAsc(BizLoadDispatch::getId);
|
|
|
|
+ }
|
|
|
|
+ return this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ @Override
|
|
|
|
+ public void add(BizLoadDispatchAddParam bizLoadDispatchAddParam) {
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = BeanUtil.toBean(bizLoadDispatchAddParam, BizLoadDispatch.class);
|
|
|
|
+ this.save(bizLoadDispatch);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ @Override
|
|
|
|
+ public void addDispatch(BizLoadDispatchAddParam bizLoadDispatchAddParam) {
|
|
|
|
+ checkParam(bizLoadDispatchAddParam,"2");
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = BeanUtil.toBean(bizLoadDispatchAddParam, BizLoadDispatch.class);
|
|
|
|
+ bizLoadDispatch.setLoadType("2");
|
|
|
|
+ this.save(bizLoadDispatch);
|
|
|
|
+
|
|
|
|
+ //查询是否存在起卸分配
|
|
|
|
+ long count = this.count(new QueryWrapper<BizLoadDispatch>().lambda().
|
|
|
|
+ eq(BizLoadDispatch::getAppointId, bizLoadDispatch.getAppointId()).
|
|
|
|
+ eq(BizLoadDispatch::getLoadType, "1"));
|
|
|
|
+ if(count>0){
|
|
|
|
+ BizLoadAppoint loadAppoint = bizLoadAppointService.getById(bizLoadDispatch.getAppointId());
|
|
|
|
+ if(ObjectUtil.isNotNull(loadAppoint)){
|
|
|
|
+ if(StringUtils.equals(loadAppoint.getStatus(),"4")){
|
|
|
|
+ loadAppoint.setStatus("5");
|
|
|
|
+ bizLoadAppointService.updateById(loadAppoint);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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()).
|
|
|
|
+ eq(BizLoadDispatch::getLoadTimeId, bizLoadDispatchAddParam.getLoadTimeId()).
|
|
|
|
+ eq(BizLoadDispatch::getLoadType,type));
|
|
|
|
+ if(count>0){
|
|
|
|
+ if(StringUtils.equals(type,"1")){
|
|
|
|
+ throw new CommonException("起卸点位和时间已经添加过!");
|
|
|
|
+ }else{
|
|
|
|
+ throw new CommonException("装卸点位和时间已经添加过!");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ @Override
|
|
|
|
+ public void addLoad(BizLoadDispatchAddParam bizLoadDispatchAddParam) {
|
|
|
|
+ checkParam(bizLoadDispatchAddParam,"1");
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = BeanUtil.toBean(bizLoadDispatchAddParam, BizLoadDispatch.class);
|
|
|
|
+ bizLoadDispatch.setLoadType("1");
|
|
|
|
+ this.save(bizLoadDispatch);
|
|
|
|
+
|
|
|
|
+ //查询是否存在装卸分配
|
|
|
|
+ long count = this.count(new QueryWrapper<BizLoadDispatch>().lambda().
|
|
|
|
+ eq(BizLoadDispatch::getAppointId, bizLoadDispatch.getAppointId()).
|
|
|
|
+ eq(BizLoadDispatch::getLoadType, "2"));
|
|
|
|
+ if(count>0){
|
|
|
|
+ BizLoadAppoint loadAppoint = bizLoadAppointService.getById(bizLoadDispatch.getAppointId());
|
|
|
|
+ if(ObjectUtil.isNotNull(loadAppoint)){
|
|
|
|
+ if(StringUtils.equals(loadAppoint.getStatus(),"4")){
|
|
|
|
+ loadAppoint.setStatus("5");
|
|
|
|
+ bizLoadAppointService.updateById(loadAppoint);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ @Override
|
|
|
|
+ public void edit(BizLoadDispatchEditParam bizLoadDispatchEditParam) {
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = this.queryEntity(bizLoadDispatchEditParam.getId());
|
|
|
|
+ BeanUtil.copyProperties(bizLoadDispatchEditParam, bizLoadDispatch);
|
|
|
|
+ this.updateById(bizLoadDispatch);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ @Override
|
|
|
|
+ public void delete(List<BizLoadDispatchIdParam> bizLoadDispatchIdParamList) {
|
|
|
|
+ // 执行删除
|
|
|
|
+ this.removeByIds(CollStreamUtil.toList(bizLoadDispatchIdParamList, BizLoadDispatchIdParam::getId));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ @Override
|
|
|
|
+ public void deleteDispatch(List<BizLoadDispatchIdParam> bizLoadDispatchIdParamList) {
|
|
|
|
+ for(BizLoadDispatchIdParam bizLoadDispatchIdParam : bizLoadDispatchIdParamList){
|
|
|
|
+ BizLoadDispatch loadDispatch = this.getById(bizLoadDispatchIdParam.getId());
|
|
|
|
+ if(ObjectUtil.isNotNull(loadDispatch)){
|
|
|
|
+ BizLoadTime bizLoadTime = bizLoadTimeService.getById(loadDispatch.getLoadTimeId());
|
|
|
|
+ if(ObjectUtil.isNotNull(bizLoadTime)){
|
|
|
|
+ if(bizLoadTime.getAlreadyNumber()>0){
|
|
|
|
+ throw new CommonException("装货点位添加过预约不可删除");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.removeById(loadDispatch);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BizLoadDispatch detail(BizLoadDispatchIdParam bizLoadDispatchIdParam) {
|
|
|
|
+ return this.queryEntity(bizLoadDispatchIdParam.getId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BizLoadDispatch queryEntity(String id) {
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = this.getById(id);
|
|
|
|
+ if(ObjectUtil.isEmpty(bizLoadDispatch)) {
|
|
|
|
+ throw new CommonException("起卸预约分配不存在,id值为:{}", id);
|
|
|
|
+ }
|
|
|
|
+ return bizLoadDispatch;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Page<BizLoadDispatch> getPageList(BizLoadDispatchPageParam bizLoadDispatchPageParam) {
|
|
|
|
+ QueryWrapper<BizLoadDispatch> queryWrapper = new QueryWrapper<>();
|
|
|
|
+ if(ObjectUtil.isNotEmpty(bizLoadDispatchPageParam.getAppointId())){
|
|
|
|
+ queryWrapper.eq("bld.appoint_id",bizLoadDispatchPageParam.getAppointId());
|
|
|
|
+ }
|
|
|
|
+ if(ObjectUtil.isNotEmpty(bizLoadDispatchPageParam.getLoadType())){
|
|
|
|
+ queryWrapper.eq("bld.load_type",bizLoadDispatchPageParam.getLoadType());
|
|
|
|
+ }
|
|
|
|
+ queryWrapper.eq("bld.delete_flag","NOT_DELETE");
|
|
|
|
+ queryWrapper.orderByDesc("bld.create_time");
|
|
|
|
+ Page<BizLoadDispatch> pageList = this.getBaseMapper().getPageList(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
|
+ return pageList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void replaceLoad(BizLoadDispatchEditParam bizLoadDispatchEditParam) {
|
|
|
|
+ //起卸分配替换
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = this.queryEntity(bizLoadDispatchEditParam.getId());
|
|
|
|
+ bizLoadDispatch.setLoadPointId(bizLoadDispatchEditParam.getLoadPointId());
|
|
|
|
+ bizLoadDispatch.setLoadTimeId(bizLoadDispatchEditParam.getLoadTimeId());
|
|
|
|
+ this.updateById(bizLoadDispatch);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void replaceDispatch(BizLoadDispatchEditParam bizLoadDispatchEditParam) {
|
|
|
|
+ //装卸分配替换
|
|
|
|
+ BizLoadDispatch bizLoadDispatch = this.queryEntity(bizLoadDispatchEditParam.getId());
|
|
|
|
+ }
|
|
|
|
+}
|