自动化立体仓库 - WMS系统
skyouc
2 天以前 37ce77c4c32f62efa7edccaea8b28a624e87d2ad
缓冲区功能调整
2个文件已修改
66 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/LocDetl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -3,6 +3,7 @@
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
@@ -16,6 +17,7 @@
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.text.SimpleDateFormat;
@@ -23,15 +25,28 @@
@Data
@TableName("asr_loc_detl")
@Accessors(chain = true)
@ExcelIgnoreUnannotated
public class LocDetl implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId
    private Long id;
    @TableField("loc_id")
    private Long locId;
    @ApiModelProperty(value= "库位号")
    @TableField("loc_no")
    private String locNo;
    @ApiModelProperty("area_id")
    private Long areaId;
    @ApiModelProperty("area_name")
    private String areaName;
    @ApiModelProperty(value= "托盘条码")
    private String zpallet;
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -4,16 +4,19 @@
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.LocStsType;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.LocCacheServiceImpl;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -56,14 +59,48 @@
        return SUCCESS;
    }
    private ReturnT<String> doIn(WrkMast wrkMast){
    @Transactional(rollbackFor = Exception.class)
    public ReturnT<String> doIn(WrkMast wrkMast) {
        if (wrkMast.getTaskType().equals("agv")) {
            Date now = new Date();
            LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
            if (Objects.isNull(locCache)) {
                throw new CoolException("数据错误,库位不存在!!");
            }
            List<WaitPakin> apallet = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("apallet", wrkMast.getBarcode()));
            if (Objects.isNull(apallet)) {
                throw new CoolException("数据错误:组托数据不存在!!");
            }
            List<LocDetl> detls = new ArrayList<>();
            apallet.forEach(pakin -> {
                LocDetl detl = new LocDetl();
                BeanUtils.copyProperties(pakin, detl);
                detl.setBarcode(pakin.getBarcode())
                        .setAnfme(pakin.getAnfme())
                        .setBrand(pakin.getBrand())
                        .setAppeTime(new Date())
                        .setSpecs(pakin.getSpecs())
                        .setColor(pakin.getColor())
                        .setLocId(locCache.getId())
                        .setLocNo(locCache.getLocNo())
                        .setAreaId(locCache.getAreaId())
                        .setAreaName(locCache.getAreaName())
                        .setUnit(pakin.getUnit())
                        .setBatch(pakin.getBatch());
                detls.add(detl);
            });
            if (!locDetlService.insertBatch(detls)) {
                throw new CoolException("库位明细保存失败!!");
            }
            locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
            locCache.setModiTime(new Date());
            if (!locCacheService.updateById(locCache)) {
                throw new CoolException("库位状态修改失败!");
            }
        } else {
            Date now = new Date();
            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
@@ -154,7 +191,8 @@
                                        return FAIL.setMsg("全板入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                                    }
                                }
                            } catch (Exception ignore){}
                            } catch (Exception ignore) {
                            }
                        }
                        // 修改库位状态 S ====>> F
@@ -257,7 +295,8 @@
                                        return FAIL.setMsg("拣料入库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                                    }
                                }
                            } catch (Exception ignore){}
                            } catch (Exception ignore) {
                            }
                        }
                        // 修改库位状态 Q ====>> F
@@ -476,7 +515,8 @@
                                    return FAIL.setMsg("全板出库 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
                        } catch (Exception ignore) {
                        }
                    }
                    // 删除工作档源库位的库存明细
                    if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) {
@@ -527,7 +567,8 @@
                                    return FAIL.setMsg("并板途中捡料 ===>> 更新订单完成数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                                }
                            }
                        } catch (Exception ignore){}
                        } catch (Exception ignore) {
                        }
                    }
                    break;
                // 空板出库