| | |
| | | if("F".equals(agvBasDevp.getLocSts()) || "R".equals(agvBasDevp.getLocSts())){ |
| | | //先去入库通知档找明细 |
| | | Page<AgvWaitPakin> agvWaitPakinPage = agvWaitPakinService.selectPage(new Page<>(curr, limit), new EntityWrapper<AgvWaitPakin>() |
| | | .eq("zpallet", agvBasDevp.getBarcode())); |
| | | .eq("supp_code", agvBasDevp.getBarcode())); |
| | | if(agvWaitPakinPage.getRecords().size()>0){ |
| | | return R.ok(agvWaitPakinPage); |
| | | }else { |
| | |
| | | package com.zy.asrs.controller; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.annotations.AppAuth; |
| | | import com.core.common.Cools; |
| | |
| | | @AppAuth(memo = "ESS任务回调") |
| | | public R taskEventStaus(@RequestBody AgvTaskCallBackParam param, HttpServletRequest request){ |
| | | |
| | | apiLogService.save( |
| | | "ESS任务回调", |
| | | "/tzskwms/agv/task/event/status", |
| | | null, |
| | | null, |
| | | JSON.toJSONString(JSONObject.toJSONString(param)), |
| | | null, |
| | | true |
| | | ); |
| | | |
| | | |
| | | //save api log (appkey 后续添加) |
| | | AppAuthUtil.auth("test-appkey",param, request); |
| | | |
| | | AppAuthUtil.auth("",param, request); |
| | | |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", param.getTaskCode())); |
| | | if(Cools.isEmpty(agvWrkMast)){ |
| | | return R.error("任务编号错误"); |
| | | } |
| | | |
| | | if(!checkParam(param,agvWrkMast)){ |
| | | return R.error("任务参数与工作档参数不符合"); |
| | | } |
| | | // if(!checkParam(param,agvWrkMast)){ |
| | | // return R.error("任务参数与工作档参数不符合"); |
| | | // } |
| | | |
| | | AgvTask agvTask = AgvTask.valueOf(param.getEventType()); |
| | | Class<AgvTask> clz = AgvTask.class; |
| | |
| | | @Repository |
| | | public interface AgvWaitPakinLogMapper extends BaseMapper<AgvWaitPakinLog> { |
| | | |
| | | @Insert("insert into agv_cust_wait_pakin_log select * from agv_cust_wait_pakin where zpallet=#{zpallet}") |
| | | @Insert("insert into agv_cust_wait_pakin_log select * from agv_cust_wait_pakin where supp_code=#{zpallet}") |
| | | int save(String zpallet); |
| | | |
| | | } |
| | |
| | | package com.zy.asrs.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.zy.asrs.entity.AgvWrkMast; |
| | | import com.zy.asrs.entity.AgvWrkMastLog; |
| | | import org.apache.ibatis.annotations.Insert; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | |
| | | @Insert("insert into agv_wrk_mast_log select * from agv_wrk_mast where wrk_no=#{workNo}") |
| | | int save(Integer workNo); |
| | | |
| | | @Insert("INSERT INTO agv_wrk_mast_log(wrk_no,wrk_sts," + |
| | | "io_type," + |
| | | "io_time," + |
| | | "io_pri," + |
| | | "source_loc_no," + |
| | | "loc_no," + |
| | | "barcode," + |
| | | "appe_user," + |
| | | "appe_time," + |
| | | "modi_user," + |
| | | "modi_time) " + |
| | | "VALUES(#{wrkNo},#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{appeUser},#{appeTime},#{modiUser},#{modiTime})") |
| | | int saveByWrkMast(AgvWrkMast agvWrkMast); |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.zy.asrs.entity.AgvWrkMast; |
| | | import org.apache.ibatis.annotations.Insert; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | @Mapper |
| | | public interface AgvWrkMastMapper extends BaseMapper<AgvWrkMast> { |
| | | |
| | | @Insert("INSERT INTO agv_wrk_mast(wrk_sts," + |
| | | "io_type," + |
| | | "io_time," + |
| | | "io_pri," + |
| | | "source_loc_no," + |
| | | "loc_no," + |
| | | "barcode," + |
| | | "appe_user," + |
| | | "appe_time," + |
| | | "modi_user," + |
| | | "modi_time) " + |
| | | "VALUES(#{wrkSts},#{ioType},#{ioTime},#{ioPri},#{sourceLocNo},#{locNo},#{barcode},#{appeUser},#{appeTime},#{modiUser},#{modiTime})") |
| | | public int insertByIncrease(AgvWrkMast agvWrkMast); |
| | | |
| | | } |
| | |
| | | import com.zy.asrs.entity.StaDesc; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | |
| | | |
| | | StaDesc queryCrnStn(Integer crnNo); |
| | | |
| | | @Select("SELECT dev_no FROM [dbo].[asr_bas_devp] WHERE out_enable = 'Y' AND loading = 'N' AND autoing = 'Y'") |
| | | List<Integer> queryOutStation(); |
| | | |
| | | } |
| | |
| | | package com.zy.asrs.service; |
| | | |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import com.zy.asrs.entity.AgvWrkMast; |
| | | import com.zy.asrs.entity.AgvWrkMastLog; |
| | | |
| | | public interface AgvWrkMastLogService extends IService<AgvWrkMastLog> { |
| | | |
| | | boolean save(Integer workNo); |
| | | boolean save(AgvWrkMast workNo); |
| | | |
| | | } |
| | |
| | | public int containerMove(List<AgvWrkMast> agvWrkMastList) throws IOException; |
| | | |
| | | public int containerMoveOut(List<AgvWrkMast> agvWrkMastList) throws IOException; |
| | | |
| | | public boolean insertByIncrease(AgvWrkMast agvWrkMast); |
| | | } |
| | |
| | | |
| | | if("F".equals(agvBasDevpDto.getLocSts()) || "R".equals(agvBasDevpDto.getLocSts())){ |
| | | AgvWaitPakin agvWaitPakin = agvWaitPakinService.selectOne(new EntityWrapper<AgvWaitPakin>() |
| | | .eq("zpallet", agvBasDevpDto.getBarcode())); |
| | | .eq("supp_code", agvBasDevpDto.getBarcode())); |
| | | |
| | | agvBasDevpDto.setAgvWaitPakin(agvWaitPakin); |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | setFlagForAgvBasDevpDto(agvWrkMast,agvBasDevpDto); |
| | | if(!Cools.isEmpty(agvWrkMast)){ |
| | | setFlagForAgvBasDevpDto(agvWrkMast,agvBasDevpDto); |
| | | } |
| | | |
| | | return agvBasDevpDto; |
| | | |
| | |
| | | |
| | | public void addLocDetlInfo(String locNo, int taskCode) { |
| | | List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", taskCode)); |
| | | List<AgvLocDetl> agvLocDetlList = agvWrkDetls.stream().map(agvWrkDetl -> { |
| | | agvWrkDetls.stream().map(agvWrkDetl -> { |
| | | AgvLocDetl agvLocDetl = new AgvLocDetl(); |
| | | BeanUtils.copyProperties(agvWrkDetl, agvLocDetl); |
| | | agvLocDetl.setLocNo(locNo); |
| | |
| | | LocDto locDto = new LocDto(agvLocDetl.getLocNo(), agvLocDetl.getMatnr(), agvLocDetl.getMaktx(), agvLocDetl.getBatch(), orderNo, anfme); |
| | | locDto.setCsocode(csocode); |
| | | locDto.setIsoseq(isoseq); |
| | | locDto.setContainerCode(agvLocDetl.getZpallet()); |
| | | locDto.setContainerCode(agvLocDetl.getSuppCode()); |
| | | //当前库位所处楼层 |
| | | int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]); |
| | | locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); |
| | |
| | | |
| | | private void wapperSetCondition(Wrapper wrapper,String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.isNull(column); |
| | | wrapper.andNew().eq(column,"").or().isNull(column); |
| | | //wrapper.isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | |
| | | |
| | | //检查是否已存在相同的托盘条码,存在则抛出异常 |
| | | if (agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>(). |
| | | eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { |
| | | eq("supp_code", param.getBarcode()).eq("io_status", "N")) > 0) { |
| | | throw new CoolException(param.getBarcode() + "数据正在进行入库"); |
| | | } |
| | | |
| | |
| | | import com.zy.common.model.OrderDto; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.model.TaskDto; |
| | | import com.zy.common.model.enums.WorkNoType; |
| | | import com.zy.common.service.AgvCommonService; |
| | | import com.zy.common.web.BaseController; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | throw new CoolException("选中的站点中含有货位状态不为F.在库的站点,请重新选择"); |
| | | } |
| | | |
| | | List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("zpallet", agvBasDevp.getBarcode())); |
| | | List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode())); |
| | | |
| | | //检索库位,选择合适的库位 |
| | | AgvLocMast agvLocMast = agvCommonService.getLocNo(agvWaitPakinList, agvBasDevp.getFloor()); |
| | |
| | | //生成工作档明细 |
| | | //createWrkDetlReWrite(agvWaitPakinList,wrkMast,userId); |
| | | agvWaitPakinList.forEach(wp -> { |
| | | createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getZpallet(),now,userId,wp.getThreeCode(),wp.getDeadTime()); |
| | | createWrkDetlReWrite(wp.getMatnr(),wrkMast.getWrkNo(),wp.getOrderNo(),wp.getBatch(),wp.getAnfme(),wp.getSuppCode(),now,userId,wp.getThreeCode(),wp.getDeadTime()); |
| | | }); |
| | | //更新源站点信息 |
| | | updateAgvBasDevp(agvBasDevp,"R"); |
| | |
| | | long wrkSts = 21L; |
| | | String sourceLocNo = taskDto.getLocNo(); |
| | | String targetLocNo = taskDto.getAgvStaNo(); |
| | | String barcode = agvLocDetl.getZpallet(); |
| | | String barcode = agvLocDetl.getSuppCode(); |
| | | //明细档所需参数 |
| | | String mantr = taskDto.getLocDtos().get(0).getMatnr(); |
| | | String orderNo = taskDto.getLocDtos().get(0).getOrderNo(); |
| | |
| | | private AgvWrkMast createWrkMast(int ioType, long wrkSts, String sourceLocNo, String locNo, String barcode, Date now, Long userId){ |
| | | AgvWrkMast wrkMast = new AgvWrkMast(); |
| | | //生成工作号 |
| | | int workNo = agvCommonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); |
| | | wrkMast.setWrkNo(workNo); |
| | | // int workNo = agvCommonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); |
| | | // wrkMast.setWrkNo(); |
| | | //工作状态 |
| | | wrkMast.setWrkSts(wrkSts); |
| | | //入出库类型 |
| | |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiUser(userId); |
| | | wrkMast.setModiTime(now); |
| | | if (!agvWrkMastService.insert(wrkMast)) { |
| | | |
| | | if (!agvWrkMastService.insertByIncrease(wrkMast)) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | |
| | | int i = agvWrkMastService.selectCount(new EntityWrapper<AgvWrkMast>()); |
| | | log.info(i + ""); |
| | | |
| | | |
| | | wrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", locNo).eq("source_loc_no",sourceLocNo)); |
| | | |
| | | return wrkMast; |
| | | } |
| | |
| | | private AgvWrkMast createWrkMast(AgvBasDevp agvBasDevp,AgvLocMast agvLocMast, Date now, Long userId){ |
| | | AgvWrkMast wrkMast = new AgvWrkMast(); |
| | | //生成工作号 |
| | | int workNo = agvCommonService.getWorkNo(0); |
| | | wrkMast.setWrkNo(workNo); |
| | | //int workNo = agvCommonService.getWorkNo(0); |
| | | //wrkMast.setWrkNo(workNo); |
| | | wrkMast.setIoTime(new Date()); |
| | | // 工作状态:201.生成入库任务ID |
| | | wrkMast.setWrkSts(201L); |
| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.zy.asrs.entity.AgvWrkMast; |
| | | import com.zy.asrs.entity.AgvWrkMastLog; |
| | | import com.zy.asrs.mapper.AgvWrkMastLogMapper; |
| | | import com.zy.asrs.service.AgvWrkMastLogService; |
| | |
| | | public class AgvWrkMastLogServiceImpl extends ServiceImpl<AgvWrkMastLogMapper, AgvWrkMastLog> implements AgvWrkMastLogService { |
| | | |
| | | @Override |
| | | public boolean save(Integer workNo) { |
| | | return this.baseMapper.save(workNo) > 0; |
| | | public boolean save(AgvWrkMast agvWrkMast) { |
| | | return this.baseMapper.saveByWrkMast(agvWrkMast) > 0; |
| | | } |
| | | |
| | | } |
| | |
| | | @Value("${agv.containerMoveInPath}") |
| | | private String containerMoveInPath; |
| | | |
| | | @Value("${agv.containerMoveOutPath}") |
| | | private String containerMoveOutPath; |
| | | |
| | | @Autowired |
| | | AgvWrkMastMapper agvWrkMastMapper; |
| | | @Autowired |
| | |
| | | positionCodeMap.put("positionCode",agvWrkMast.getLocNo()); |
| | | positionCodeMapList.add(positionCodeMap); |
| | | } |
| | | return doHttpRequest(containerMoveParam,"容器入场任务下发",url, containerMoveInPath,null,"127.0.0.1"); |
| | | return doHttpRequest(containerMoveParam,"容器离场任务下发",url, containerMoveOutPath,null,"127.0.0.1"); |
| | | } |
| | | |
| | | public boolean insertByIncrease(AgvWrkMast agvWrkMast) { |
| | | int index = this.baseMapper.insertByIncrease(agvWrkMast); |
| | | |
| | | return index > 0; |
| | | } |
| | | |
| | | private void getContainerMoveParam(List<AgvWrkMast> agvWrkMastList,List<Map<String,String>> positionCodeMapList){ |
| | |
| | | anfme = anfme > issued ? issued : anfme; |
| | | LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme); |
| | | List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType); |
| | | |
| | | locDto.setStaNos(staNos); |
| | | locDto.setCsocode(csocode); |
| | | locDto.setIsoseq(isoseq); |
| | |
| | | |
| | | private void wapperSetCondition(Wrapper wrapper,String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.isNull(column); |
| | | wrapper.andNew().eq(column,"").or().isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | |
| | | |
| | | private void wapperSetCondition(Wrapper wrapper,String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.isNull(column); |
| | | wrapper.andNew().eq(column,"").or().isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | |
| | | if (row == 31 || row == 32) { |
| | | crnNo = 3; |
| | | } |
| | | return this.baseMapper.queryOutStaNosByCrnNo(crnNo, typeNo); |
| | | return this.baseMapper.queryOutStation(); |
| | | //return this.baseMapper.queryOutStaNosByCrnNo(crnNo, typeNo); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public StaDesc queryCrnStnAuto(Integer typeNo, Integer crnNo, Integer stnNo) { |
| | | Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", typeNo) |
| | | .eq("stn_no", stnNo) |
| | | .eq("crn_no", crnNo); |
| | | .eq("stn_no", stnNo); |
| | | //.eq("crn_no", crnNo); |
| | | StaDesc staDesc = this.selectOne(wrapper); |
| | | if (staDesc == null) { |
| | | wrapper = new EntityWrapper<StaDesc>() |
| | | .eq("type_no", typeNo) |
| | | .eq("crn_no", crnNo); |
| | | .eq("type_no", typeNo); |
| | | //.eq("crn_no", crnNo); |
| | | List<StaDesc> staDescs = this.selectList(wrapper); |
| | | if (Cools.isEmpty(staDescs)) { |
| | | throw new CoolException("出库路径不存在"); |
| | |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Slf4j |
| | | @Service |
| | | public class AgvWrkMastHandler extends AbstractHandler<String> { |
| | | |
| | |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F"); |
| | | } |
| | | //生成AGV工作历史档 |
| | | agvWrkMastLogService.save(wrkNo); |
| | | agvWrkMastLogService.save(agvWrkMast); |
| | | //生成AGV工作明细历史档 |
| | | agvWrkDetlLogService.save(wrkNo); |
| | | //删除AGV工作档 |
| | | agvWrkMastService.deleteById(wrkNo); |
| | | //删除AGV工作明细档 |
| | | agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); |
| | | //类型为入库时 |
| | | if(agvWrkMast.getIoType() == 1){ |
| | | //更新目标库位明细 |
| | | log.info("更新目标库位明细 agvWrkMast.getLocNo(): " + agvWrkMast.getLocNo() + ", wrkNo: " + wrkNo); |
| | | agvLocDetlService.addLocDetlInfo(agvWrkMast.getLocNo(),wrkNo); |
| | | //生成入库通知历史档 |
| | | agvWaitPakinLogService.save(barcode); |
| | | boolean save = agvWaitPakinLogService.save(barcode); |
| | | //删除入库通知档 |
| | | agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("zpallet",barcode)); |
| | | log.info("删除入库通知档 supp_code: " + barcode); |
| | | agvWaitPakinService.delete(new EntityWrapper<AgvWaitPakin>().eq("supp_code",barcode)); |
| | | } |
| | | //类型为库位移转时 |
| | | if(agvWrkMast.getIoType() == 11){ |
| | |
| | | orderService.checkComplete(o); |
| | | }); |
| | | } |
| | | |
| | | //删除AGV工作档 |
| | | agvWrkMastService.deleteById(wrkNo); |
| | | //删除AGV工作明细档 |
| | | agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo)); |
| | | |
| | | return SUCCESS; |
| | | } |
| | |
| | | } |
| | | |
| | | //生成AGV工作历史档 |
| | | agvWrkMastLogService.save(wrkNo); |
| | | agvWrkMastLogService.save(agvWrkMast); |
| | | //生成AGV工作明细历史档 |
| | | agvWrkDetlLogService.save(wrkNo); |
| | | //删除AGV工作档 |
| | |
| | | } |
| | | // 修改订单状态 作业中 ===>> 已完成 |
| | | for (WrkDetl wrkDetl : wrkDetlsKeyOrder) { |
| | | if (BaseController.isJSON(wrkDetl.getOrderNo())) { |
| | | if (!BaseController.isJSON(wrkDetl.getOrderNo())) { |
| | | orderService.checkComplete(wrkDetl.getOrderNo()); |
| | | } else { |
| | | // 订单合并出库 |
| | |
| | | package com.zy.asrs.utils; |
| | | |
| | | import com.core.common.Cools; |
| | | import com.core.exception.CoolException; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | |
| | | public static void auth(String appkey, Object obj, HttpServletRequest request) { |
| | | request.setAttribute("cache", obj); |
| | | |
| | | if (Cools.isEmpty(appkey)) { |
| | | throw new CoolException("认证失败,请确认appkey无误!"); |
| | | } |
| | | // if (Cools.isEmpty(appkey)) { |
| | | // throw new CoolException("认证失败,请确认appkey无误!"); |
| | | // } |
| | | // if (!APP_KEY_LIST.contains(appkey)) { |
| | | // throw new CoolException("认证失败,请确认appkey无误!"); |
| | | // } |
| | |
| | | |
| | | public static void wapperSetCondition(Wrapper wrapper, String column, String condition){ |
| | | if(Cools.isEmpty(condition)){ |
| | | wrapper.isNull(column); |
| | | wrapper.andNew().eq(column,"").or().isNull(column); |
| | | }else { |
| | | wrapper.eq(column,condition); |
| | | } |
| | |
| | | password: Poy@2022 |
| | | |
| | | agv: |
| | | url: localhost:8080 |
| | | taskCreatePath: /test/task/create |
| | | containerMoveInPath: /test/container/moveIn |
| | | # url: localhost:8080 |
| | | # taskCreatePath: /test/task/create |
| | | # containerMoveInPath: /test/container/moveIn |
| | | url: 10.10.10.182:9046 |
| | | taskCreatePath: /task/create |
| | | containerMoveInPath: /expand/api/moveIn/container |
| | | containerMoveOutPath: /expand/api/moveOut/container |
| | | |
| | | u8: |
| | | url: http://192.168.1.55:8010 |
| | |
| | | ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true} |
| | | ,{field: 'anfme', align: 'center',title: '数量'} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码'} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码'} |
| | | ,{field: 'threeCode', align: 'center',title: '销售订单号'} |
| | | ,{field: 'dead_time', align: 'center',title: '销售订单行号'} |
| | | ,{field: 'specs', align: 'center',title: '规格型号', hide: false} |
| | |
| | | var pageCurr; |
| | | function getCol() { |
| | | var cols = [ {type: 'checkbox'} ]; |
| | | cols.push( |
| | | //{field: 'suppCode', align: 'center',title: '料箱码'}, |
| | | {field: 'anfme', align: 'center',title: '数量'}); |
| | | arrRemove(detlCols, 'field', 'zpallet'); |
| | | cols.push.apply(cols, detlCols); |
| | | cols.push({field: 'status', align: 'center',title: '数据状态', templet:function(row){ |
| | | var html = "<input value='status' type='checkbox' lay-skin='switch' lay-text='正常|锁定'' lay-filter='tableCheckbox' disabled='disabled' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | |
| | | function getCol() { |
| | | var cols = [ |
| | | ]; |
| | | cols.push( |
| | | //{field: 'suppCode', align: 'center',title: '料箱码'}, |
| | | {field: 'anfme', align: 'center',title: '数量'}); |
| | | arrRemove(detlCols, 'field', 'zpallet'); |
| | | cols.push.apply(cols, detlCols); |
| | | cols.push({field: 'status', align: 'center',title: '数据状态', templet:function(row){ |
| | | var html = "<input value='status' type='checkbox' lay-skin='switch' lay-text='正常|锁定' lay-filter='tableCheckbox' disabled='disabled' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | |
| | | {field: 'wrkNo', align: 'center',title: '工作号'} |
| | | ,{field: 'ioTime$', align: 'center',title: '工作时间', width: 160} |
| | | ]; |
| | | cols.push( |
| | | //{field: 'suppCode', align: 'center',title: '料箱码'}, |
| | | {field: 'anfme', align: 'center',title: '数量'}); |
| | | arrRemove(detlCols, 'field', 'zpallet'); |
| | | cols.push.apply(cols, detlCols); |
| | | cols.push({field: 'modiUser$', align: 'center',title: '修改人员', hide:true} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true}) |
| | |
| | | {field: 'wrkNo', align: 'center',title: '工作号'} |
| | | ,{field: 'ioTime$', align: 'center',title: '工作时间'} |
| | | ]; |
| | | cols.push( |
| | | //{field: 'suppCode', align: 'center',title: '料箱码'}, |
| | | {field: 'anfme', align: 'center',title: '数量'}); |
| | | arrRemove(detlCols, 'field', 'zpallet'); |
| | | cols.push.apply(cols, detlCols); |
| | | cols.push({field: 'modiUser$', align: 'center',title: '修改人员',hide: true} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间',hide: true} |
| | |
| | | ,{field: 'sourceLocNo', align: 'center',title: '源库位'} |
| | | ,{field: 'locNo', align: 'center',title: '目标库位'} |
| | | //,{field: 'steNo', align: 'center',title: '小车', width: 70} |
| | | ,{field: 'barcode', align: 'center',title: '条码', hide: false} |
| | | ,{field: 'barcode', align: 'center',title: '料箱码', hide: false} |
| | | ,{field: 'preHave', align: 'center',title: '先入品', hide: true} |
| | | ,{field: 'takeNone', align: 'center',title: '空操作', hide: true} |
| | | // ,{field: 'picking', align: 'center',title: '拣料', templet:function(row){ |
| | |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | cols: [[ |
| | | // {type: 'checkbox'} |
| | | // ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80} |
| | | // ,{field: 'id', align: 'center',title: '编号'} |
| | | {field: 'wrkNo', align: 'center',title: '工作号',event: 'wrkNo', sort: true} |
| | | ,{field: 'ioTime$', align: 'center',title: '工作时间', width:160, sort: true} |
| | | ,{field: 'wrkSts$', align: 'center',title: '工作状态', width:160} |
| | | ,{field: 'ioType$', align: 'center',title: '入出库类型', width:160} |
| | | ,{field: 'ioPri', align: 'center',title: '优先级'} |
| | | //,{field: 'crnNo$', align: 'center',title: '堆垛机号'} |
| | | //,{field: 'sourceStaNo$', align: 'center',title: '源站'} |
| | | //,{field: 'staNo$', align: 'center',title: '目标站'} |
| | | ,{field: 'sourceLocNo', align: 'center',title: '源库位'} |
| | | ,{field: 'locNo', align: 'center',title: '目标库位'} |
| | | // ,{field: 'picking', align: 'center',title: '拣料', templet:function(row){ |
| | | // var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | // if(row.picking === 'Y'){html += " checked ";} |
| | | // html += ">"; |
| | | // return html; |
| | | // }} |
| | | // ,{field: 'exitMk', align: 'center',title: '退出', templet:function(row){ |
| | | // var html = "<input value='exitMk' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | // if(row.exitMk === 'Y'){html += " checked ";} |
| | | // html += ">"; |
| | | // return html; |
| | | // }} |
| | | // ,{field: 'emptyMk', align: 'center',title: '空板', templet:function(row){ |
| | | // var html = "<input value='emptyMk' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | // if(row.emptyMk === 'Y'){html += " checked ";} |
| | | // html += ">"; |
| | | // return html; |
| | | // }} |
| | | // |
| | | // ,{field: 'crnStrTime$', align: 'center',title: '堆垛机启动时间'} |
| | | // ,{field: 'crnEndTime$', align: 'center',title: '堆垛机停止时间'} |
| | | // ,{field: 'plcStrTime$', align: 'center',title: '拣料时间'} |
| | | ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true} |
| | | ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true} |
| | | // ,{field: 'appeUser$', align: 'center',title: '创建者',event: 'appeUser', style: 'cursor:pointer'} |
| | | // ,{field: 'appeTime$', align: 'center',title: '添加时间'} |
| | | ,{field: 'barcode', align: 'center',title: '条码'} |
| | | // ,{field: 'fullPlt', align: 'center',title: '满板', templet:function(row){ |
| | | // var html = "<input value='fullPlt' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'"; |
| | | // if(row.fullPlt === 'Y'){html += " checked ";} |
| | | // html += ">"; |
| | | // return html; |
| | | // }} |
| | | |
| | | ,{field: 'barcode', align: 'center',title: '料箱码'} |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 80} |
| | | ]], |
| | | request: { |
| | |
| | | var detlCols = [ |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: true} |
| | | ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false} |
| | | ,{field: 'suppCode', align: 'center',title: '料箱码', hide: true} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码',hide: true} |
| | | ,{field: 'matnr', align: 'center',title: '存货编码'} |
| | | ,{field: 'batch', align: 'center',title: '序列码', width: 300, sort:true, hide: true} |