Merge remote-tracking branch 'origin/jshdasrs' into jshdasrs
New file |
| | |
| | | package com.zy.asrs.entity.param; |
| | | |
| | | import com.zy.common.model.MesPakoutParam; |
| | | import lombok.Data; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class OrderToLine { |
| | | /** |
| | | * 单据编号 |
| | | */ |
| | | private String OrderNo; |
| | | |
| | | /** |
| | | * 时间戳 |
| | | */ |
| | | private Long createTime; |
| | | |
| | | /** |
| | | * 物料列表 |
| | | */ |
| | | private List<MatList> matList = new ArrayList<>(); |
| | | |
| | | @Data |
| | | public static class MatList { |
| | | |
| | | // Sku\客人型号\分拣属性1\不可为空\扫码可获取 |
| | | private String sku; |
| | | |
| | | // Po\客人PO\分拣属性2(可人工开关)\可以为空字符串,非NULL\扫码可获取 |
| | | private String po; |
| | | |
| | | //箱数 |
| | | private Float ctns; |
| | | |
| | | //条码值\非分拣属性(可人工开关)\不可为空\扫码可获取 |
| | | private String upc; |
| | | |
| | | //标识:\非分拣属性 |
| | | //1:执行分拣 |
| | | //0:不分拣,在线体循环 |
| | | private Integer sign; |
| | | |
| | | //货源\非分拣属性(不下发,数据在条码中,需上报) |
| | | private String supplier; |
| | | |
| | | //绑定标记(标识相同必须去同一个分拣口) |
| | | private Long binding_tags; |
| | | |
| | | public MatList() { |
| | | } |
| | | public MatList(String sku, String po) { |
| | | this.sku = sku; |
| | | this.po = po; |
| | | } |
| | | public MatList(String sku, String po, Float ctns, String upc, Integer sign, String supplier, Long binding_tags) { |
| | | this.sku = sku; |
| | | this.po = po; |
| | | this.ctns = ctns; |
| | | this.upc = upc; |
| | | this.sign = sign; |
| | | this.supplier = supplier; |
| | | this.binding_tags = binding_tags; |
| | | } |
| | | } |
| | | } |
| | |
| | | @Mapper |
| | | @Repository |
| | | public interface WrkMastStaMapper extends BaseMapper<WrkMastSta> { |
| | | Integer wrkCount1(); |
| | | Integer wrkCount2(); |
| | | |
| | | } |
| | |
| | | List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo); |
| | | |
| | | StaDesc queryCrnStn(Integer typeNo, Integer crnNo, Integer stnNo); |
| | | StaDesc queryCrnStnCheck(Integer typeNo, Integer crnNo, Integer stnNo); |
| | | |
| | | StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo); |
| | | |
| | |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.StaDesc; |
| | | import com.zy.asrs.mapper.StaDescMapper; |
| | | import com.zy.asrs.mapper.WrkMastStaMapper; |
| | | import com.zy.asrs.service.MatService; |
| | | import com.zy.asrs.service.StaDescService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Service("staDescService") |
| | | public class StaDescServiceImpl extends ServiceImpl<StaDescMapper, StaDesc> implements StaDescService { |
| | | |
| | | @Autowired |
| | | private WrkMastStaMapper wrkMastStaMapper; |
| | | @Override |
| | | public List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo) { |
| | | return this.baseMapper.queryOutStaNosByLocNo(locNo, typeNo); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public StaDesc queryCrnStnCheck(Integer typeNo, Integer crnNo, Integer stnNo) { |
| | | Integer wrkRgv1 = wrkMastStaMapper.wrkCount1(); |
| | | Integer wrkRgv2 = wrkMastStaMapper.wrkCount2(); |
| | | |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<>(); |
| | | |
| | | // ✅ 如果 wrkRgv1 < wrkRgv2,则多加一个条件 |
| | | if (wrkRgv1 < wrkRgv2) { |
| | | wrapper.eq("type_no", typeNo) |
| | | .eq("stn_no", stnNo) |
| | | .eq("crn_no", crnNo) |
| | | .lt("crn_stn", 2000); |
| | | }else{ |
| | | wrapper.eq("type_no", typeNo) |
| | | .eq("stn_no", stnNo) |
| | | .eq("crn_no", crnNo) |
| | | .gt("crn_stn", 2000); |
| | | } |
| | | StaDesc staDesc = this.selectOne(wrapper); |
| | | if (staDesc == null) { |
| | | throw new CoolException("出库路径不存在"); |
| | | } |
| | | return staDesc; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo) { |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", typeNo) |
| | |
| | | |
| | | // 获取路径 |
| | | StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta); |
| | | if(ioType.equals(107)){ |
| | | staDesc = staDescService.queryCrnStnCheck(ioType, locMast.getCrnNo(), outSta); |
| | | } |
| | | |
| | | // 生成工作号 |
| | | int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); |
| | | // 生成工作档 |
| | |
| | | wrkMast.setEmptyMk("N"); // 空板 |
| | | wrkMast.setLinkMis("N"); |
| | | wrkMast.setBarcode(locMast.getBarcode()); |
| | | if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null) { //若有空库位且配置允许则绑定其备料库位号 |
| | | if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null && ioType != 107) { //若有空库位且配置允许则绑定其备料库位号 |
| | | wrkMast.setLocNo(locMastRgv.getLocNo()); |
| | | wrkMast.setTakeNone("0"); //0rgv未取,1rgv已取货 |
| | | } |
| | |
| | | } |
| | | } |
| | | //修改agv备料区状态 |
| | | if(locMastRgv.getLocSts().equals("O")){ |
| | | if(locMastRgv.getLocSts().equals("O") && ioType != 107){ |
| | | locMastRgv.setLocSts("S"); |
| | | locMastRgv.setModiUser(userId); |
| | | locMastRgv.setModiTime(now); |
| | | if (!locMastService.updateById(locMastRgv)) { |
| | | throw new CoolException("预约agv备料区库位状态失败,库位号:"+locMastRgv.getLocNo()); |
| | | } |
| | | }else{ |
| | | throw new CoolException(locMastRgv.getLocNo() + "备料区不是空库位状态"); |
| | | |
| | | } |
| | | // 修改库位状态: F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中 |
| | | locMast = locMastService.selectById(dto.getLocNo()); |
New file |
| | |
| | | package com.zy.asrs.task; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | @Slf4j |
| | | @Component |
| | | //订单下发至分拣线 |
| | | public class OrderToSortLineScheduler { |
| | | |
| | | // @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void orderToSortLine() { |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | wrkMast.setIoType(12); |
| | | wrkMast.setCrnNo(3); |
| | | wrkMast.setBarcode(transplantWork.getBarcode()); |
| | | wrkMast.setSourceStaNo(1015); |
| | | wrkMast.setSourceStaNo(transplantWork.getSourceStaNo()); |
| | | wrkMast.setStaNo(transplantWork.getStaNo()); |
| | | wrkMast.setFullPlt("Y"); // 满板:Y |
| | | wrkMast.setPicking("N"); // 拣料 |
| | |
| | | enabled: false |
| | | datasource: |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | # url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs |
| | | url: jdbc:sqlserver://10.10.10.235:1433;databasename=jshdasrs |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=jshdasrs |
| | | # url: jdbc:sqlserver://10.10.10.235:1433;databasename=jshdasrs |
| | | username: sa |
| | | password: sa@123 |
| | | mvc: |
| | |
| | | |
| | | </resultMap> |
| | | |
| | | <select id="wrkCount1" resultType="Integer"> |
| | | SELECT COUNT(*) FROM asr_wrk_mast_sta WHERE wrk_start < 2000 |
| | | </select> |
| | | |
| | | |
| | | <select id="wrkCount2" resultType="Integer"> |
| | | SELECT COUNT(*) |
| | | FROM asr_wrk_mast_sta |
| | | WHERE wrk_start > 2000 |
| | | </select> |
| | | |
| | | |
| | | </mapper> |