| | |
| | | int saveWrkDetlLog(Integer workNo); |
| | | |
| | | |
| | | // List<WrkMast> selectWrkMastWrkDetlMatnrBatch(@Param("ioType") Integer ioType, @Param("matnr") String matnr , @Param("batch") String batch , @Param("grade") String grade , @Param("crnNo") Integer crnNo); |
| | | |
| | | } |
| | |
| | | |
| | | List<WrkMast> selectWrkMastWrkDetlMatnrBatch(Integer ioType,String matnr , String batch ,String grade,Integer crnNo); |
| | | |
| | | // List<WrkMast> selectWrkMastWrkDetlMatnrBatch(Integer ioType,String matnr , String batch ,String grade,Integer crnNo); |
| | | |
| | | } |
| | |
| | | public List<WrkMast> selectWrkMastWrkDetlMatnrBatch(Integer ioType,String matnr , String batch ,String grade ,Integer crnNo) { |
| | | return this.baseMapper.selectWrkMastWrkDetlMatnrBatch(ioType,matnr,batch,grade,crnNo); |
| | | } |
| | | |
| | | // @Override |
| | | // public List<WrkMast> selectWrkMastWrkDetlMatnrBatch(Integer ioType,String matnr , String batch ,String grade ,Integer crnNo) { |
| | | // return this.baseMapper.selectWrkMastWrkDetlMatnrBatch(ioType,matnr,batch,grade,crnNo); |
| | | // } |
| | | } |
| | |
| | | List<WrkMast> wrkMastList=wrkMastService.selectList(new EntityWrapper<WrkMast>()); |
| | | int i=1; |
| | | for(WrkMast wrkMast:wrkMastList){ |
| | | if (wrkMast.getWrkSts()==0){ |
| | | if (wrkMast.getWrkSts() == 0 || wrkMast.getWrkSts() == 14){ |
| | | wcsReportHandler.start(wrkMast,i); |
| | | i++; |
| | | } |
| | |
| | | WorkIssuedResult.Tasks task = new WorkIssuedResult.Tasks(); |
| | | task.setTaskId(wrkMast.getWrkNo().toString()); |
| | | task.setBarCode(wrkMast.getBarcode()); |
| | | task.setOrder(i); |
| | | // task.setOrder(i); |
| | | task.setOrder((int) (100 - wrkMast.getIoPri())); |
| | | |
| | | //优先级排序 15.出库>14.入库>13.空板出库>12.空板入库>11.移库 |
| | | if(wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57){//入库 |
| | |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.common.web.param.SearchEmptyParam; |
| | | import com.zy.common.web.param.SearchLocParam; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | private String url; |
| | | @Value("${wcs-slave.loc}") |
| | | private String loc; |
| | | @Value("${wcs-slave.warehouse}") |
| | | private String warehouse; |
| | | |
| | | //全板入库 |
| | | @PostMapping("/fromwcs/inware-task") |
| | | @ResponseBody |
| | | public synchronized Re getLocNo(@RequestBody SearchLocParam param) { |
| | |
| | | if (Cools.isEmpty(param.getFromPort())) { |
| | | return Re.error("源站编号不能为空"); |
| | | } |
| | | if(Cools.isEmpty(param.getWarehouse())){ |
| | | return Re.error("仓库编号不能为空"); |
| | | } |
| | | if(!param.getWarehouse().equals(warehouse)){ |
| | | return Re.error("仓库编号不匹配"); |
| | | } |
| | | List<WaitPakin> waitPakins = null; |
| | | if (param.getFromPort().equals("101")) { |
| | | |
| | |
| | | return Re.error("有空板出库到100站时时禁止入库"); |
| | | } |
| | | |
| | | if (Cools.isEmpty(param.getBarCode()) && param.getIoType() != 10) { |
| | | if (Cools.isEmpty(param.getBarCode())) { |
| | | return Re.error("条码不能为空"); |
| | | } |
| | | waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarCode())); |
| | |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | |
| | | StartupDto dto = null; |
| | | |
| | | //全板入库 |
| | | param.setIoType(1); |
| | | |
| | | switch (param.getIoType()) { |
| | | case 1://满托盘入库 |
| | | assert waitPakins != null; |
| | | dto = startupFullPutStore(Integer.valueOf(param.getFromPort()), param.getBarCode(), locTypeDto, waitPakins); |
| | | break; |
| | | case 10://空托盘入库 |
| | | dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto, param.getBarCode()); |
| | | break; |
| | | // case 10://空托盘入库 |
| | | // dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto, param.getBarCode()); |
| | | // break; |
| | | default: |
| | | break; |
| | | } |
| | | log.info("WCS入库接口返参:{},托盘码:{}", dto, param.getBarCode()); |
| | | return Re.ok(); |
| | | } |
| | | |
| | | @PostMapping("/fromwcs/empty-pallet-task") |
| | | @ResponseBody |
| | | public synchronized Re getLocNo(@RequestBody SearchEmptyParam param) { |
| | | log.info("收到WCS空板入库接口请求====>>入参:{}", param); |
| | | if(Cools.isEmpty(param.getWarehouse())){ |
| | | return Re.error("仓库编号不能为空"); |
| | | } |
| | | if(!param.getWarehouse().equals(warehouse)){ |
| | | return Re.error("仓库编号不匹配"); |
| | | } |
| | | |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.valueOf(param.getFromPort()), true); |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | |
| | | StartupDto dto = null; |
| | | |
| | | dto = emptyPlateIn(Integer.valueOf(param.getFromPort()), locTypeDto); |
| | | log.info("WCS入库接口返参:{},托盘码:{}", dto); |
| | | return Re.ok(); |
| | | } |
| | | |
| | | |
| | | |
| | | @PostMapping("/auto/emptyIn/v1") |
| | | @ResponseBody |
| | |
| | | } |
| | | |
| | | @Transactional |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) { |
| | | public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto) { |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); |
| | | // 检索库位 |
| | |
| | | wrkMast.setExitMk("N"); // 退出 |
| | | wrkMast.setEmptyMk("Y"); // 空板 |
| | | wrkMast.setLinkMis("Y"); |
| | | wrkMast.setBarcode(barcode); |
| | | wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型 |
| | | // 操作人员数据 |
| | | wrkMast.setAppeTime(new Date()); |
| | |
| | | throw new CoolException("修改库位状态失败"); |
| | | } |
| | | wrkMast.setWrkSts(14L);//14.已出库未确认 |
| | | } else if (wrkMast.getIoType() == 101 || wrkMast.getIoType() == 110) { |
| | | } else if ((wrkMast.getIoType() == 101 || wrkMast.getIoType() == 110) && statusParam.getTaskStatus() != 8) { |
| | | wrkMast.setWrkSts(7L);//7.出库完成 |
| | | } else if (wrkMast.getWrkSts() == 7 && statusParam.getTaskStatus() == 8){ |
| | | wrkMast.setWrkSts(15L);//15.出库更新完成,任务结束 |
| | | } |
| | | } |
| | | wrkMastService.updateById(wrkMast); |
| | |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()); |
| | | List<HashMap<String, Object>> mapList = new ArrayList<>(); |
| | | for (LocMast locMast : locMasts) { |
| | | if (locMast.getLev1() != 4) { |
| | | if (locMast.getLocSts() != "X" && locMast.getLocSts() != "G" ) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("warehouse", "ddth"); |
| | | map.put("posiX", locMast.getRow1()); |
| | | map.put("posiY", locMast.getBay1()); |
| | | map.put("posiZ", locMast.getLev1()); |
| | | map.put("cargoNo", locMast.getLocNo()); |
| | | if(locMast.getLev1() == 1 && locMast.getRow1() == 8 && locMast.getBay1() == 1){ |
| | | map.put("type", "6"); |
| | | }else { |
| | | map.put("type", "0"); |
| | | } |
| | | mapList.add(map); |
| | | } |
| | | if(locMast.getLocSts() == "G"){ |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("warehouse", "ddth"); |
| | | map.put("posiX", locMast.getRow1()); |
| | | map.put("posiY", locMast.getBay1()); |
| | | map.put("posiZ", locMast.getLev1()); |
| | | map.put("cargoNo", locMast.getLocNo()); |
| | | map.put("type", "1"); |
| | | mapList.add(map); |
| | | } |
| | | if(locMast.getLocSts() == "X"){ |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | map.put("warehouse", "ddth"); |
| | | map.put("posiX", locMast.getRow1()); |
| | | map.put("posiY", locMast.getBay1()); |
| | | map.put("posiZ", locMast.getLev1()); |
| | | map.put("cargoNo", locMast.getLocNo()); |
| | | map.put("type", "5"); |
| | | mapList.add(map); |
| | | } |
| | | |
| | | } |
| | | if (mapList.size() > 0) { |
| | | String response = ""; |
| New file |
| | |
| | | package com.zy.common.web.param; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class SearchEmptyParam { |
| | | /** |
| | | * 申请时间 |
| | | */ |
| | | @JsonProperty(value = "applyTime") |
| | | private String applyTime; |
| | | |
| | | /** |
| | | * 仓库编码 |
| | | */ |
| | | @JsonProperty(value = "warehouse") |
| | | private String warehouse; |
| | | |
| | | /** |
| | | * 入库口编号 |
| | | */ |
| | | @JsonProperty(value = "fromPort") |
| | | private String fromPort; |
| | | |
| | | /** |
| | | * 任务类型 |
| | | */ |
| | | @JsonProperty(value = "taskType") |
| | | private Integer taskType; |
| | | |
| | | /** |
| | | * 空托盘数量 |
| | | */ |
| | | @JsonProperty(value = "palletNum") |
| | | private Integer palletNum; |
| | | } |
| | |
| | | private String applyTime; |
| | | |
| | | /** |
| | | * 仓库编码 |
| | | */ |
| | | @JsonProperty(value = "warehouse") |
| | | private String warehouse; |
| | | |
| | | /** |
| | | * 入库口编号 |
| | | */ |
| | | @JsonProperty(value = "fromPort") |
| | |
| | | { |
| | | "code": 0 |
| | | ,"msg": "" |
| | | ,"count": "100" |
| | | ,"data": [{ |
| | | "id": "001" |
| | | ,"label": "美食" |
| | | ,"title": "舌尖上的中国第一季" |
| | | ,"author": "作者-1" |
| | | ,"content": "通过中华美食的多个侧面,来展现食物给中国人生活带来的仪式、伦理等方面的文化;见识中国特色食材以及与食物相关、构成中国美食特有气质的一系列元素;了解中华饮食文化的精致和源远流长" |
| | | ,"uploadtime": 20121204 |
| | | ,"status": true |
| | | },{ |
| | | "id": "002" |
| | | ,"label": "美食" |
| | | ,"title": "舌尖上的中国第二季" |
| | | ,"author": "作者-2" |
| | | ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感。" |
| | | ,"uploadtime": 20141204 |
| | | ,"status": false |
| | | },{ |
| | | "id": "003" |
| | | ,"label": "美食" |
| | | ,"title": "舌尖上的中国第三季" |
| | | ,"author": "作者-3" |
| | | ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感将世界美食和中国美食进行比照。春耕、夏耘、秋收、冬藏,天人合一的东方哲学让中国饮食依时而变,智慧灵动,中医营养摄生学说创造了食材运用的新天地,儒家人伦道德则把心意和家的味道端上我们的餐桌。淘洗历史,糅合时光,一代又一代的中国人在天地间升起烟火,用至精至诚的心意烹制食物,一餐一食之间,中国人展示个性,确认归属,构建文明,理解和把握着世界的奥妙。" |
| | | ,"uploadtime": 20161204 |
| | | ,"status": false |
| | | },{ |
| | | "id": "004" |
| | | ,"label": "历史" |
| | | ,"title": "诸葛亮骂王朗" |
| | | ,"author": "作者-1" |
| | | ,"content": "皓首匹夫!苍髯老贼!你即将命归于九泉之下,届时,有何面目见汉朝二十四代先帝?二臣贼子!你枉活七十有六,一生未立寸功,只会摇唇舞舌,助曹为虐!一条断脊之犬,还敢在我军阵前狺狺狂吠!我从未见过如此厚颜无耻之人!!!" |
| | | ,"uploadtime": 20180201 |
| | | ,"status": false |
| | | },{ |
| | | "id": "005" |
| | | ,"label": "新闻" |
| | | ,"title": "新时代特色中国梦" |
| | | ,"author": "作者-1" |
| | | ,"content": "今天,我们比历史上任何时期都更接近、更有信心和能力实现中华民族伟大复兴的目标。新时代已经到来,蓝图已经绘就,中国梦离我们越来越近了。" |
| | | ,"uploadtime": 20180512 |
| | | ,"status": false |
| | | },{ |
| | | "id": "006" |
| | | ,"label": "新闻" |
| | | ,"title": "新时代特色中国梦" |
| | | ,"author": "作者-2" |
| | | ,"content": "梦想不会主动走向我们,只有我们去主动实现梦想。行百里者半九十。虽然中国梦离我们越来越近了,但是要实现中国梦,还要靠我们以永不懈怠的精神状态、功在不舍的坚强意志,不忘初心,继续前进。" |
| | | ,"uploadtime": 20180514 |
| | | ,"status": false |
| | | },{ |
| | | "id": "007" |
| | | ,"label": "体育" |
| | | ,"title": "皇马大战利物浦" |
| | | ,"author": "作者-3" |
| | | ,"content": "对欧足联而言,更想要产生个新冠军。连续三年都是同一个冠军队,这会毁掉欧冠……”格里姆表态,“皇马有梦幻般的阵容,但从促进竞争的角度而言,另一支球队获胜会更好。" |
| | | ,"uploadtime": 20180515 |
| | | ,"status": false |
| | | }] |
| | | } |
| | | // { |
| | | // "code": 0 |
| | | // ,"msg": "" |
| | | // ,"count": "100" |
| | | // ,"data": [{ |
| | | // "id": "001" |
| | | // ,"label": "美食" |
| | | // ,"title": "舌尖上的中国第一季" |
| | | // ,"author": "作者-1" |
| | | // ,"content": "通过中华美食的多个侧面,来展现食物给中国人生活带来的仪式、伦理等方面的文化;见识中国特色食材以及与食物相关、构成中国美食特有气质的一系列元素;了解中华饮食文化的精致和源远流长" |
| | | // ,"uploadtime": 20121204 |
| | | // ,"status": true |
| | | // },{ |
| | | // "id": "002" |
| | | // ,"label": "美食" |
| | | // ,"title": "舌尖上的中国第二季" |
| | | // ,"author": "作者-2" |
| | | // ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感。" |
| | | // ,"uploadtime": 20141204 |
| | | // ,"status": false |
| | | // },{ |
| | | // "id": "003" |
| | | // ,"label": "美食" |
| | | // ,"title": "舌尖上的中国第三季" |
| | | // ,"author": "作者-3" |
| | | // ,"content": "以食物为窗口,读懂中国——通过美食,使人们可以有滋有味地认知这个古老的东方国度。“一方水土一方人”,本片将通过展示人们日常生活中与美食相关的多重侧面,描绘与感知中国人的文化传统、家族观念、生活态度与故土难离。人们收获、保存、烹饪、生产美食,并在其过程中留存和传承食物所承载的味觉记忆、饮食习俗、文化样态与家常情感将世界美食和中国美食进行比照。春耕、夏耘、秋收、冬藏,天人合一的东方哲学让中国饮食依时而变,智慧灵动,中医营养摄生学说创造了食材运用的新天地,儒家人伦道德则把心意和家的味道端上我们的餐桌。淘洗历史,糅合时光,一代又一代的中国人在天地间升起烟火,用至精至诚的心意烹制食物,一餐一食之间,中国人展示个性,确认归属,构建文明,理解和把握着世界的奥妙。" |
| | | // ,"uploadtime": 20161204 |
| | | // ,"status": false |
| | | // },{ |
| | | // "id": "004" |
| | | // ,"label": "历史" |
| | | // ,"title": "诸葛亮骂王朗" |
| | | // ,"author": "作者-1" |
| | | // ,"content": "皓首匹夫!苍髯老贼!你即将命归于九泉之下,届时,有何面目见汉朝二十四代先帝?二臣贼子!你枉活七十有六,一生未立寸功,只会摇唇舞舌,助曹为虐!一条断脊之犬,还敢在我军阵前狺狺狂吠!我从未见过如此厚颜无耻之人!!!" |
| | | // ,"uploadtime": 20180201 |
| | | // ,"status": false |
| | | // },{ |
| | | // "id": "005" |
| | | // ,"label": "新闻" |
| | | // ,"title": "新时代特色中国梦" |
| | | // ,"author": "作者-1" |
| | | // ,"content": "今天,我们比历史上任何时期都更接近、更有信心和能力实现中华民族伟大复兴的目标。新时代已经到来,蓝图已经绘就,中国梦离我们越来越近了。" |
| | | // ,"uploadtime": 20180512 |
| | | // ,"status": false |
| | | // },{ |
| | | // "id": "006" |
| | | // ,"label": "新闻" |
| | | // ,"title": "新时代特色中国梦" |
| | | // ,"author": "作者-2" |
| | | // ,"content": "梦想不会主动走向我们,只有我们去主动实现梦想。行百里者半九十。虽然中国梦离我们越来越近了,但是要实现中国梦,还要靠我们以永不懈怠的精神状态、功在不舍的坚强意志,不忘初心,继续前进。" |
| | | // ,"uploadtime": 20180514 |
| | | // ,"status": false |
| | | // },{ |
| | | // "id": "007" |
| | | // ,"label": "体育" |
| | | // ,"title": "皇马大战利物浦" |
| | | // ,"author": "作者-3" |
| | | // ,"content": "对欧足联而言,更想要产生个新冠军。连续三年都是同一个冠军队,这会毁掉欧冠……”格里姆表态,“皇马有梦幻般的阵容,但从促进竞争的角度而言,另一支球队获胜会更好。" |
| | | // ,"uploadtime": 20180515 |
| | | // ,"status": false |
| | | // }] |
| | | // } |