自动化立体仓库 - WMS系统
#
luxiaotao1123
2021-01-12 4b0fec6fd68a7f6ac0f5b226cf11b3e71cbe68e1
#
5个文件已修改
40 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocDetlService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.asrs.entity.LocDetl;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
@@ -24,7 +25,7 @@
    @Update("update asr_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}")
    int updateLocNo(String newLocNo, String oldLocNo);
    @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC")
    List<String> selectSameDetlToday(String matnr);
    @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 > #{start} AND lm.row1 < #{end})  AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC")
    List<String> selectSameDetlToday(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end);
}
src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -22,6 +22,6 @@
     * @param matnr 商品编号
     * @return locNo 库位号
     */
    List<String> getSameDetlToday(String matnr);
    List<String> getSameDetlToday(String matnr, Integer start, Integer end);
}
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -36,8 +36,7 @@
    }
    @Override
    public List<String> getSameDetlToday(String matnr) {
        return this.baseMapper.selectSameDetlToday(matnr);
    public List<String> getSameDetlToday(String matnr, Integer start, Integer end) {
        return this.baseMapper.selectSameDetlToday(matnr, start, end);
    }
}
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -73,7 +73,7 @@
        // 检索库位
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        List<String> matNos = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatNo).distinct().collect(Collectors.toList());
        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, locTypeDto);
        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, locTypeDto, 0);
        // 生成工作号
        int workNo = dto.getWorkNo();
        // 生成工作档
@@ -256,7 +256,7 @@
        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto);
        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
        int workNo = dto.getWorkNo();
        // 生成工作档
        WrkMast wrkMast = new WrkMast();
src/main/java/com/zy/common/service/CommonService.java
@@ -11,6 +11,7 @@
import com.zy.common.model.Shelves;
import com.zy.common.model.StartupDto;
import com.zy.common.properties.SlaveProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -21,6 +22,7 @@
 * 货架核心功能
 * Created by vincent on 2020/6/11
 */
@Slf4j
@Service
public class CommonService {
@@ -91,7 +93,7 @@
     * @return locNo 检索到的库位号
     */
    @Transactional
    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto) {
    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
        StartupDto startupDto = new StartupDto();
        // 生成工作号
        int workNo = getWorkNo(0);
@@ -128,7 +130,7 @@
        // 靠近摆放规则 --- 同天同规格物料
        if (!Cools.isEmpty(matNos)) {
            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0));
            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
            for (String locNo : locNos) {
                if (Utils.isShallowLoc(slaveProperties, locNo)) {
                    continue;
@@ -146,7 +148,7 @@
        // 靠近摆放规则 --- 空托
        if (staDescId == 10) {
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D"));
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").gt("row1", sRow).lt("row1", eRow));
            if (locMasts.size() > 0) {
                for (LocMast loc : locMasts) {
                    if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
@@ -227,6 +229,9 @@
        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
        int inQty = staNo.getInQty()==null?0:staNo.getInQty();
        if (staNo.getAutoing().equals("Y") && inQty<2) {
            // 更新库位排号
            rowLastno.setCurrentRow(curRow);
            rowLastnoService.updateById(rowLastno);
            // 查找库位
            if (locMast == null) {
                if (Utils.isShallowLoc(slaveProperties, curRow)) {
@@ -241,15 +246,16 @@
                // 轻货物找轻库位为空时,可以去找重库位仓
                if (locTypeDto.getLocType1() == 1) {
                    locTypeDto.setLocType1((short) 2);
                    return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto);
                    return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto, times);
                }
                throw new CoolException("没有空库位");
                if (times >= rowCount) {
                    log.error("没有空库位");
                    throw new CoolException("没有空库位");
                }
                times = times + 1;
                return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
            }
            String locNo = locMast.getLocNo();
            // 更新库位排号
            rowLastno.setCurrentRow(curRow);
            rowLastnoService.updateById(rowLastno);
            // 返回dto
            startupDto.setCrnNo(crnNo);