| | |
| | | public R inLocCallAgv(String sta, String inSta) { |
| | | |
| | | BasDevp basDevp = basDevpMapper.selectById(inSta); |
| | | // 0.出库模式,1.agv入库中,2.生成入库任务 |
| | | if (basDevp.getDevMk().equals("0")) { // 是出库 |
| | | // 判断是否有出库任务 |
| | | Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().lt("wrk_sts", 14).in("io_type", 101, 103, 107, 110); |
| | | switch (inSta) { |
| | | case "1040": wrapper.in("source_sta_no","1043","1044");break; |
| | | case "2010": wrapper.in("source_sta_no","2013","2014"); break; |
| | | case "2000": wrapper.in("source_sta_no","2003","2004");break; |
| | | case "3010": wrapper.in("source_sta_no","3013","3014");break; |
| | | default: |
| | | } |
| | | int count = wrkMastService.selectCount(wrapper); |
| | | if (count == 0) { |
| | | // 没有出库任务,更改为入库模式 |
| | | basDevp.setDevMk("1"); |
| | | basDevpMapper.updateById(basDevp); |
| | | } else { |
| | | return R.parse(inSta + "站点存在出库任务"); |
| | | } |
| | | |
| | | // 判断是否有出库任务 |
| | | Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().lt("wrk_sts", 14).in("io_type", 101, 103, 107, 110); |
| | | |
| | | switch (inSta) { |
| | | case "1040": |
| | | wrapper.in("source_sta_no", "1043", "1044"); |
| | | break; |
| | | case "2010": |
| | | wrapper.in("source_sta_no", "2013", "2014"); |
| | | break; |
| | | case "2000": |
| | | wrapper.in("source_sta_no", "2003", "2004"); |
| | | break; |
| | | case "3010": |
| | | wrapper.in("source_sta_no", "3013", "3014"); |
| | | break; |
| | | default: |
| | | } |
| | | int count = wrkMastService.selectCount(wrapper); |
| | | log.info("入库呼叫agv呼叫站点:{},目标站点:{},出库任务数:{}",sta,inSta,count); |
| | | if (count != 0) { |
| | | return R.parse(inSta + "站点存在出库任务"); |
| | | } |
| | | |
| | | // 先绑定 |
| | |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(0)) { |
| | | success = true; |
| | | // 没有出库任务,更改为入库模式 |
| | | basDevp.setDevMk("1"); |
| | | basDevp.setInQty(basDevp.getInQty() + 1); |
| | | basDevpMapper.updateById(basDevp); |
| | | } else { |
| | | message = jsonObject.getString("message"); |
| | | log.error("入库呼叫agv失败!!!url:{};request:{};response:{}", ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_CALL_IN_PATH, body, response); |
| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.BasDevpMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | // 更新入库站点的入库暂存数 |
| | | int sourceStaNo = wrkMast.getSourceStaNo() == null ? 0 : wrkMast.getSourceStaNo(); |
| | | if (sourceStaNo == 1041 || sourceStaNo == 2011 || sourceStaNo == 2001 || sourceStaNo == 3011 ) { |
| | | BasDevpMapper basDevpMapper = SpringUtils.getBean(BasDevpMapper.class); |
| | | BasDevp basDevp = basDevpMapper.selectById(sourceStaNo - 1); |
| | | basDevp.setInQty(basDevp.getInQty() -1); |
| | | basDevpMapper.updateById(basDevp); |
| | | } |
| | | |
| | | // 修改工作主档状态 |
| | | wrkMast.setWrkSts(5L); |
| | | wrkMast.setModiTime(now); |
| | |
| | | package com.zy.common.utils; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.core.common.SpringUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.BasDevp; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.mapper.BasDevpMapper; |
| | | import com.zy.asrs.mapper.WrkMastMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | |
| | | * @description 出库拦截工具类 |
| | | * @createDate 2024/11/9 14:29 |
| | | */ |
| | | @Slf4j |
| | | public class OutStockInterceptUtil { |
| | | |
| | | /** |
| | |
| | | * 堆垛机出库操作时拦截出库站点,判断出入库模式 |
| | | * @param site 出库站点 |
| | | */ |
| | | public static void outStockIntercept(Integer site){ |
| | | public static void outStockIntercept(Integer site) { |
| | | log.info("出库判断是否有入库任务,出库站点:{}",site); |
| | | // 只判断堆垛机库的入库站点 |
| | | if (inSiteMap.get(site) != null) { |
| | | BasDevpMapper basDevpMapper = SpringUtils.getBean(BasDevpMapper.class); |
| | | BasDevp basDevp = basDevpMapper.selectById(site); |
| | | String devMk = basDevp.getDevMk(); |
| | | if (devMk.equals("1")) { |
| | | throw new CoolException("该出库站点agv正在执行入库中"); |
| | | } else if (devMk.equals("2")) { |
| | | // 判断该站点入库任务是否完成 |
| | | WrkMastMapper wrkMastMapper = SpringUtils.getBean(WrkMastMapper.class); |
| | | Wrapper<WrkMast> wrapper = new EntityWrapper<WrkMast>().in("io_type", 1, 10, 53, 57); |
| | | switch (site) { |
| | | case 1040: wrapper.in("sta_no","1043","1044");break; |
| | | case 1042: wrapper.in("sta_no","1043","1044");break; |
| | | case 2010: wrapper.in("sta_no","2013","2014"); break; |
| | | case 2012: wrapper.in("sta_no","2013","2014"); break; |
| | | case 2000: wrapper.in("sta_no","2003","2004");break; |
| | | case 2002: wrapper.in("sta_no","2003","2004");break; |
| | | case 3010: wrapper.in("sta_no","3013","3014");break; |
| | | case 3012: wrapper.in("sta_no","3013","3014");break; |
| | | default: |
| | | } |
| | | int count = wrkMastMapper.selectCount(wrapper); |
| | | if (count == 0) { |
| | | basDevp.setDevMk("0"); // 没有入库任务,切换成出库模式 |
| | | basDevpMapper.updateById(basDevp); |
| | | } else { |
| | | throw new CoolException("该出库站点存在执行的入库任务"); |
| | | } |
| | | int inSite = 0; |
| | | switch (site) { |
| | | case 1040: |
| | | case 1042: |
| | | inSite = 1040; |
| | | break; |
| | | case 2010: |
| | | case 2012: |
| | | inSite = 2010; |
| | | break; |
| | | case 2000: |
| | | case 2002: |
| | | inSite = 2000; |
| | | break; |
| | | case 3010: |
| | | case 3012: |
| | | inSite = 3010; |
| | | break; |
| | | default: |
| | | } |
| | | BasDevp basDevp = basDevpMapper.selectById(inSite); |
| | | Integer inQty = basDevp.getInQty(); |
| | | log.info("入库任务数有:{}条", inQty); |
| | | if (inQty != 0) { |
| | | throw new CoolException("该出库站点存在执行的入库任务"); |
| | | } |
| | | } |
| | | } |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.transaction.interceptor.TransactionAspectSupport; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.*; |
| | |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setWrkSts(2L); // 工作状态:生成入库ID |
| | | wrkMast.setIoType(1); // 入出库状态:1.入库 |
| | | wrkMast.setIoPri(13D); // 优先级 |
| | | wrkMast.setIoPri(12D); // 优先级 |
| | | wrkMast.setCrnNo(dto.getCrnNo()); |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo()); |
| | | wrkMast.setStaNo(dto.getStaNo()); |
| | |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setWrkSts(2L); // 工作状态:生成入库ID |
| | | wrkMast.setIoType(10); // 入出库状态:10.空板入库 |
| | | wrkMast.setIoPri(13D); // 优先级 |
| | | wrkMast.setIoPri(12D); // 优先级 |
| | | wrkMast.setCrnNo(dto.getCrnNo()); |
| | | wrkMast.setSourceStaNo(dto.getSourceStaNo()); |
| | | wrkMast.setStaNo(dto.getStaNo()); |
| | |
| | | // ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80} |
| | | ,{field: 'devNo', align: 'center',sort:true,title: '编号'} |
| | | // ,{field: 'decDesc', align: 'center',title: '设备描述'} |
| | | ,{field: 'devMk', align: 'center',title: '出入状态'} |
| | | // ,{field: 'devMk', align: 'center',title: '出入状态'} |
| | | ,{field: 'inEnable', align: 'center',title: '可入', templet:function(row){ |
| | | var html = "<input value='inEnable' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | if(row.inEnable === 'Y'){html += " checked ";} |
| | |
| | | <!-- <input id="decDesc" class="layui-input" type="text">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-inline" style="width:31%;"> |
| | | <label class="layui-form-label">站点出入状态</label> |
| | | <div class="layui-input-inline"> |
| | | <input id="devMk" class="layui-input" type="text"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline" style="width:31%;">--> |
| | | <!-- <label class="layui-form-label">站点出入状态</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <input id="devMk" class="layui-input" type="text">--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | |
| | | |
| | | <hr class="layui-bg-gray"> |