自动化立体仓库 - WMS系统
#
luxiaotao1123
2020-06-11 44cda1edd0b45c0845341dc9127a14273c4357b5
#
7个文件已修改
1个文件已添加
142 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/WorkController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasDevpService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WrkMastService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/DoubleDeepService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WorkController.java
@@ -32,9 +32,8 @@
    @RequestMapping("/full/store/start")
    @ManagerAuth(memo = "全板入库")
    public R start(@RequestBody FullStoreParam fullStoreParam) {
        System.out.println(JSON.toJSONString(fullStoreParam));
        workService.startupFullStore(fullStoreParam);
        return R.ok();
    }
src/main/java/com/zy/asrs/service/BasDevpService.java
@@ -9,4 +9,6 @@
    List<Integer> getAvailableDevp();
    void checkSiteStatus(String devpNo);
}
src/main/java/com/zy/asrs/service/WorkService.java
@@ -1,4 +1,13 @@
package com.zy.asrs.service;
import com.zy.asrs.entity.param.FullStoreParam;
public interface WorkService {
    /**
     * 全板入库
     * @param param
     */
    void startupFullStore(FullStoreParam param);
}
src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -5,4 +5,6 @@
public interface WrkMastService extends IService<WrkMast> {
    int getWorkingMast(String devpNo);
}
src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -1,9 +1,12 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.mapper.BasDevpMapper;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.WrkMastService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -11,8 +14,31 @@
@Service("basDevpService")
public class BasDevpServiceImpl extends ServiceImpl<BasDevpMapper, BasDevp> implements BasDevpService {
    @Autowired
    private WrkMastService wrkMastService;
    @Override
    public List<Integer> getAvailableDevp() {
        return this.baseMapper.getAvailableDevp();
    }
    @Override
    public void checkSiteStatus(String devpNo) {
        BasDevp station = selectById(devpNo);
        if (station == null){
            throw new CoolException("站点不存在");
        }
        if(station.getAutoing()==null || !station.getAutoing().equals("Y")) {
            throw new CoolException("入库站点不是自动状态");
        }
        if(station.getLoading()==null || !station.getLoading().equals("Y")) {
            throw new CoolException("入库站点无物");
        }
        if(station.getWrkNo()>0) {
            throw new CoolException("入库站点已有工作号");
        }
        if(wrkMastService.getWorkingMast(devpNo)>0){
            throw new CoolException("同一站点不能同时生成两笔入库工作档");
        }
    }
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,11 +1,50 @@
package com.zy.asrs.service.impl;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.WorkService;
import com.zy.asrs.service.WrkLastnoService;
import com.zy.asrs.service.WrkMastService;
import com.zy.common.service.DoubleDeepService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * Created by vincent on 2020/6/11
 */
@Service
public class WorkServiceImpl implements WorkService {
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private BasDevpService basDevpService;
    @Autowired
    private DoubleDeepService doubleDeepService;
    @Autowired
    private WrkLastnoService wrkLastnoService;
    @Override
    @Transactional
    public void startupFullStore(FullStoreParam param) {
        // 参数非空判断
        if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
            throw new CoolException(BaseRes.PARAM);
        }
        // 站点状态检测
        basDevpService.checkSiteStatus(param.getDevpNo());
        // 生成工作号
        int workNo = doubleDeepService.getWorkNo(wrkLastnoService.selectById(0));
//        if (staNo == null || staNo.get)
        // 获取最新的工作档
//        WrkMast latestWrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().orderBy("appe_time"));
    }
}
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -1,5 +1,6 @@
package com.zy.asrs.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkMastMapper;
@@ -9,4 +10,8 @@
@Service("wrkMastService")
public class WrkMastServiceImpl extends ServiceImpl<WrkMastMapper, WrkMast> implements WrkMastService {
    @Override
    public int getWorkingMast(String devpNo) {
        return selectCount(new EntityWrapper<WrkMast>().eq("source_sta_no", devpNo).in("wrk_sts", 1, 6));
    }
}
src/main/java/com/zy/common/service/DoubleDeepService.java
New file
@@ -0,0 +1,56 @@
package com.zy.common.service;
import com.core.common.Cools;
import com.zy.asrs.entity.WrkLastno;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * 双深式货架核心功能
 * Created by vincent on 2020/6/11
 */
@Service
public class DoubleDeepService {
    @Autowired
    private WrkMastService wrkMastService;
    /**
     * 生成工作号
     * @param wrkLastno
     * @return
     */
    public int getWorkNo(WrkLastno wrkLastno) {
        int workNo = 0;
        // 入出库类型
        if (wrkLastno.getWrkMk() == 0) {
            if (!Cools.isEmpty(wrkLastno)){
                workNo = wrkLastno.getWrkNo();
                int sNo = wrkLastno.getSNo();
                int eNo = wrkLastno.getENo();
                workNo = workNo>=eNo ? sNo : workNo+1;
                while (true) {
                    WrkMast wrkMast = wrkMastService.selectById(workNo);
                    if (null != wrkMast) {
                        workNo = workNo>=eNo ? sNo : workNo+1;
                    } else {
                        break;
                    }
                }
                if (workNo > 0){
                    // todo
                }
            }
        }
        return workNo;
    }
}