From a33fa0362c094844479007465272bbdbd88cf369 Mon Sep 17 00:00:00 2001 From: xs Date: Tue, 16 Jul 2024 18:41:14 +0800 Subject: [PATCH] =?UTF-8?q?2.6.3=20MES:=E6=96=B0=E5=A2=9E=E9=97=A8?= =?UTF-8?q?=E6=9D=BF=E6=9D=A1=E7=A0=81=E5=92=8C=E8=83=8C=E6=9D=BF=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E6=89=93=E5=8D=B0=20WMS=EF=BC=9A=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E9=A2=86=E6=96=99=E5=92=8C=E7=BB=93=E6=9D=9F=E9=80=80=E6=96=99?= =?UTF-8?q?=E8=B0=83=E7=94=A8wcs=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hw/common/core/constant/MesConstants.java | 4 + .../hw/mes/controller/MesApiController.java | 14 - .../impl/MesBaseBarcodeInfoServiceImpl.java | 75 ++- .../java/com/hw/wms/config/WmsConfig.java | 20 +- .../hw/wms/controller/WmsApiController.java | 25 + .../com/hw/wms/domain/vo/WcsReturnMsgVo.java | 11 + .../vo/WmsCmpleteCollectMaterialsVo.java | 9 + .../hw/wms/mapper/WmsRawOutstockMapper.java | 7 + .../wms/service/IWmsRawOutstockService.java | 15 + .../impl/WmsBaseLocationServiceImpl.java | 15 +- .../impl/WmsProductInstockServiceImpl.java | 8 +- .../impl/WmsRawOutstockServiceImpl.java | 60 +- .../mapper/wms/WmsRawOutstockMapper.xml | 12 + hw-ui/src/api/board/index.js | 40 ++ hw-ui/src/views/board/fifthFloor/index.vue | 537 ++++++++++-------- hw-ui/src/views/board/firstFloor/index.vue | 6 +- .../src/views/board/fourthFloor/assemble.vue | 4 +- .../views/board/fourthFloor/laserLight.vue | 4 +- .../src/views/mes/barcode/endProductIndex.vue | 135 ++++- 19 files changed, 689 insertions(+), 312 deletions(-) create mode 100644 hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WcsReturnMsgVo.java create mode 100644 hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsCmpleteCollectMaterialsVo.java diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java index 64cbd1f..694b6c6 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java @@ -28,6 +28,10 @@ public class MesConstants { * 条码类型:背板 */ public static final String MES_BARCODE_TYPE_BACKPLATE = "4"; + /** + * 条码类型:门板 + */ + public static final String MES_BARCODE_TYPE_DOOR = "5"; /** * 条码类型:固定原材料条码 */ diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java index b4e86f8..c906ff7 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java @@ -240,18 +240,4 @@ public class MesApiController extends BaseController { } - /** - * 领料完成 - */ - @Log(title = "领料", businessType = BusinessType.COMPLETE) - @PostMapping(("/completeCollectMaterials")) - public AjaxResult completeCollectMaterials() { - //todo - /*http://IP:5001/wcs/RecieveRcs/agvComplete 装配区背负式Agv通知任务完成 - 参数:{ - "endStationCode": "string",//工位 - }*/ - return null; - } - } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java index 2c9534f..17d4893 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseBarcodeInfoServiceImpl.java @@ -123,6 +123,10 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService generateProductBarcode(mesBaseBarcodeInfo); } + else{//生成背板条码或者门板条码 + generateBackOrDoorBarcode(mesBaseBarcodeInfo); + } + return 1; } @@ -250,22 +254,22 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService List mesBaseBarcodeInfos = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoList(queryBarcodeInfo); if (mesBaseBarcodeInfos != null && !mesBaseBarcodeInfos.isEmpty()) { - throw new ServiceException("此计划明细已经生成条码,不能重复生成"); + throw new ServiceException("此生产明细已经生成条码,不能重复生成"); } MesProductPlanDetail mesProductPlanDetail = mesProductPlanDetailMapper.selectMesProductPlanDetailByPlanDetailCode(planDetailCode); if (mesProductPlanDetail == null) { - throw new ServiceException("此生产任务明细不存在"); + throw new ServiceException("此生产明细不存在"); } if (!mesProductPlanDetail.getPlanDetailStatus().equals(MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_FINISH) && !mesProductPlanDetail.getPlanDetailStatus().equals(MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_ABNORMAL_FINISH)) { - throw new ServiceException("此生产任务明细还未完成,不能打印条码"); + throw new ServiceException("此生产明细还未完成,不能打印条码"); } MesProductPlan productPlan = mesProductPlanMapper.selectOnlyMesProductPlanByPlanCode(planCode); if (productPlan == null) { - throw new ServiceException("此生产任务不存在"); + throw new ServiceException("此生产派工不存在"); } @@ -290,6 +294,69 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService } + /** + * 生成背板或门板条码 + * @param mesBaseBarcodeInfo + */ + public void generateBackOrDoorBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo) { + String planCode = mesBaseBarcodeInfo.getPlanCode(); + String planDetailCode = mesBaseBarcodeInfo.getPlanDetailCode(); + + MesBaseBarcodeInfo queryBarcodeInfo = new MesBaseBarcodeInfo(); + queryBarcodeInfo.setPlanDetailCode(planDetailCode); + queryBarcodeInfo.setBarcodeType(mesBaseBarcodeInfo.getBarcodeType()); + List mesBaseBarcodeInfos = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoList(queryBarcodeInfo); + + if (mesBaseBarcodeInfos != null && !mesBaseBarcodeInfos.isEmpty()) { + throw new ServiceException("此生产明细已经生成条码,不能重复生成"); + } + + MesProductPlanDetail mesProductPlanDetail = mesProductPlanDetailMapper.selectMesProductPlanDetailByPlanDetailCode(planDetailCode); + if (mesProductPlanDetail == null) { + throw new ServiceException("此生产明细不存在"); + } + + + MesProductPlan productPlan = mesProductPlanMapper.selectOnlyMesProductPlanByPlanCode(planCode); + if (productPlan == null) { + throw new ServiceException("此生产派工不存在"); + } + + MesBaseBarcodeInfo bindBarcodeInfo = mesBaseBarcodeInfoMapper.selectMesBaseBarcodeInfoByBarcodeInfo(mesBaseBarcodeInfo.getBindBarcode()); + if(bindBarcodeInfo==null){ + throw new ServiceException("绑定的柜体码不存在"); + } + + String userName = SecurityUtils.getUsername(); + Date currentDate = new Date(); + //将之前的原材料码设置计划编码和明细编码,在入半成品库时是按照此码入库,后续生成成品码也需要根据此码生成 + bindBarcodeInfo.setPlanCode(mesBaseBarcodeInfo.getPlanCode()); + bindBarcodeInfo.setPlanDetailCode(mesBaseBarcodeInfo.getPlanDetailCode()); + bindBarcodeInfo.setUpdateBy(userName); + bindBarcodeInfo.setUpdateTime(currentDate); + + String barcode = Seq.getId(Seq.mesCompBarcodeSeqType, Seq.mesCompBarcodeCode); + mesBaseBarcodeInfo.setBatchCode(barcode);// 成品的批次代码 == 条码内容 + mesBaseBarcodeInfo.setBarcodeInfo(barcode); + mesBaseBarcodeInfo.setAmount(new BigDecimal(1)); + + mesBaseBarcodeInfo.setBatchFlag(MesConstants.NOT_IS_BATCH); + mesBaseBarcodeInfo.setSafeFlag(MesConstants.MES_ORDER_BIND_SAFE_FLAG_YES); + + mesBaseBarcodeInfo.setMaterialId(productPlan.getMaterialId()); + mesBaseBarcodeInfo.setPrintFlag(MesConstants.MES_BARCODE_PRINT_FLAG_NO); + mesBaseBarcodeInfo.setSaleOrderId(productPlan.getSaleOrderId()); + mesBaseBarcodeInfo.setSaleorderCode(productPlan.getSaleorderCode()); + + mesBaseBarcodeInfo.setCreateTime(currentDate); + mesBaseBarcodeInfo.setCreateBy(userName); + + mesBaseBarcodeInfoMapper.updateMesBaseBarcodeInfo(bindBarcodeInfo); + mesBaseBarcodeInfoMapper.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo); + + } + + public MesBaseBarcodeInfo getInsertedBarcodeInfo(MesBaseBarcodeInfo mesBaseBarcodeInfo, String batchCode, String userName, Date currentDate) { MesBaseBarcodeInfo toInsertedBarcodeInfo = new MesBaseBarcodeInfo(); //同一批次的批次代码相同 diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/config/WmsConfig.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/config/WmsConfig.java index d95d914..baaf1f6 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/config/WmsConfig.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/config/WmsConfig.java @@ -6,14 +6,13 @@ import org.springframework.context.annotation.Configuration; /** * @Description: 位置信息编码 * @ClassName: StationConfig - * @Author : xins - * @Date :2024-03-25 8:53 + * @Author : xins + * @Date :2024-03-25 8:53 * @Version :1.0 */ @Configuration @ConfigurationProperties(prefix = "wms") -public class WmsConfig -{ +public class WmsConfig { /** * 五楼组装区域位置编码 */ @@ -44,6 +43,11 @@ public class WmsConfig */ private Long fourthFloorPartsWarehouseId; + /** + * WCS调度接口-通知agv离开(结束领料或结束放料) + */ + private String wcsAgvCompleteUrl; + public String getFifthAssembleStationCode() { return fifthAssembleStationCode; @@ -92,4 +96,12 @@ public class WmsConfig public void setFourthFloorPartsWarehouseId(Long fourthFloorPartsWarehouseId) { this.fourthFloorPartsWarehouseId = fourthFloorPartsWarehouseId; } + + public String getWcsAgvCompleteUrl() { + return wcsAgvCompleteUrl; + } + + public void setWcsAgvCompleteUrl(String wcsAgvCompleteUrl) { + this.wcsAgvCompleteUrl = wcsAgvCompleteUrl; + } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java index 92d4ac6..a81e2ae 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java @@ -153,4 +153,29 @@ public class WmsApiController extends BaseController { } + /** + * 完成领料拿料 + */ + @Log(title = "领料", businessType = BusinessType.COMPLETE) + @PostMapping(("/completeCollectMaterials")) + public AjaxResult completeCollectMaterials(@RequestBody WmsCmpleteCollectMaterialsVo wmsCmpleteCollectMaterialsVo) { + return toAjax(wmsRawOutstockService.completeCollectMaterials(wmsCmpleteCollectMaterialsVo)); + } + + /** + * 完成退料放料 + */ + @Log(title = "退料", businessType = BusinessType.COMPLETE) + @PostMapping(("/completeReturnMaterials")) + public AjaxResult completeReturnMaterials(@RequestBody WmsCmpleteCollectMaterialsVo wmsCmpleteCollectMaterialsVo) { + return toAjax(wmsRawOutstockService.completeCollectMaterials(wmsCmpleteCollectMaterialsVo)); + } + + /** + * 获取此计划明细最新的一条柜体出库信息 + */ + @GetMapping(("/getNewestOutstockCabinet")) + public AjaxResult getNewestOutstockCabinet(WmsRawOutstock wmsRawOutstock) { + return success(wmsRawOutstockService.getNewestOutstockCabinet(wmsRawOutstock)); + } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WcsReturnMsgVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WcsReturnMsgVo.java new file mode 100644 index 0000000..b2da713 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WcsReturnMsgVo.java @@ -0,0 +1,11 @@ +package com.hw.wms.domain.vo; + +import lombok.Data; + +@Data +public class WcsReturnMsgVo { + + private Integer code; + + private String message; +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsCmpleteCollectMaterialsVo.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsCmpleteCollectMaterialsVo.java new file mode 100644 index 0000000..81ce693 --- /dev/null +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/vo/WmsCmpleteCollectMaterialsVo.java @@ -0,0 +1,9 @@ +package com.hw.wms.domain.vo; + +import lombok.Data; + +@Data +public class WmsCmpleteCollectMaterialsVo { + + private String endStationCode; +} diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java index 971be97..c66b0c0 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawOutstockMapper.java @@ -139,4 +139,11 @@ public interface WmsRawOutstockMapper */ public WmsRawOutstock selectWmsRawOutstockJoinMaterialById(Long rawOutstockId); + /** + * 查询最新一条原材料出库记录 + * + * @param wmsRawOutstock 原材料出库记录 + * @return 原材料出库记录 + */ + public WmsRawOutstock selectNewestWmsRawOutstock(WmsRawOutstock wmsRawOutstock); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java index cb7a79b..5eb3f62 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java @@ -140,4 +140,19 @@ public interface IWmsRawOutstockService * @return */ public int directRawOutstock(WmsRawOutstock wmsRawOutstock); + + /** + * 五楼装配工位申请领料时,在拿完物料,调用wcs接口已领完,wcs可以调度背负agv进行下一个任务 + * @param wmsCmpleteCollectMaterialsVo + */ + public int completeCollectMaterials(WmsCmpleteCollectMaterialsVo wmsCmpleteCollectMaterialsVo); + + + /** + * 获取最新一条出库记录明细(用来绑定柜体码、门板码和背板码使用) + * @param wmsRawOutstock + * @return + */ + public WmsRawOutstock getNewestOutstockCabinet(WmsRawOutstock wmsRawOutstock); } + diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsBaseLocationServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsBaseLocationServiceImpl.java index 6e9c259..3fbd502 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsBaseLocationServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsBaseLocationServiceImpl.java @@ -1,28 +1,23 @@ package com.hw.wms.service.impl; -import java.util.HashMap; -import java.util.List; - import com.hw.common.core.constant.SecurityConstants; -import com.hw.common.core.constant.WmsConstants; import com.hw.common.core.enums.WmsLocationStatus; import com.hw.common.core.exception.ServiceException; import com.hw.common.core.utils.DateUtils; import com.hw.common.core.utils.StringUtils; import com.hw.common.security.utils.SecurityUtils; -import com.hw.mes.api.RemoteMesService; -import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.printer.api.RemotePrinterService; -import com.hw.printer.api.domain.vo.PrintContentVo; +import com.hw.wms.domain.WmsBaseLocation; import com.hw.wms.domain.WmsBaseWarehouse; +import com.hw.wms.mapper.WmsBaseLocationMapper; import com.hw.wms.mapper.WmsBaseWarehouseMapper; +import com.hw.wms.service.IWmsBaseLocationService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.hw.wms.mapper.WmsBaseLocationMapper; -import com.hw.wms.domain.WmsBaseLocation; -import com.hw.wms.service.IWmsBaseLocationService; import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; /** * 库位Service业务层处理 diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java index 7fe4696..dd219e9 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsProductInstockServiceImpl.java @@ -358,10 +358,10 @@ public class WmsProductInstockServiceImpl implements IWmsProductInstockService { throw new ServiceException("物料条码有误"); } - if (baseBarcodeInfo.getBarcodeType().equals(WmsConstants.RWA_STOCK_STOCK_TYPE_RAW)) { - throw new ServiceException("此物料条码为原材料,非成品条码"); - } - +// if (baseBarcodeInfo.getBarcodeType().equals(WmsConstants.RWA_STOCK_STOCK_TYPE_RAW)) { +// throw new ServiceException("此物料条码为原材料,非成品条码"); +// } + //按原材料入库的柜体原料码进行入库 if (baseBarcodeInfo.getPrintFlag().equals(MesConstants.MES_BARCODE_PRINT_FLAG_NO)) { throw new ServiceException("此条码还未打印"); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java index 8564740..93ad90b 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java @@ -19,8 +19,13 @@ import com.hw.wms.domain.vo.*; import com.hw.wms.mapper.*; import com.hw.wms.service.IWmsRawOutstockService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.client.RestTemplate; import java.math.BigDecimal; import java.util.*; @@ -924,7 +929,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { */ @Override public int assembleOutstock(WmsAssembleOutstockVo wmsAssembleOutstockVo) { - /**1、todo:柜体出库,wcs轮询后执行完成要删除库存 + /**1、柜体出库,wcs轮询后执行完成要删除库存 * 2、拆分,生成条码绑定,贴码 * 3、返库(返库的是之前的条码,库存也是之前条码库存信息,返库后记录完整标识),WCS轮询执行完成后要插入库存,完整标识为否 * * @@ -932,11 +937,11 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { String materialBarcode = wmsAssembleOutstockVo.getMaterialBarcode(); R baseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER); if (baseBarcodeInfoR == null) { - throw new ServiceException("物料编码有误"); + throw new ServiceException("物料条码有误"); } MesBaseBarcodeInfo baseBarcodeInfo = baseBarcodeInfoR.getData(); if (baseBarcodeInfo == null) { - throw new ServiceException("物料编码有误"); + throw new ServiceException("物料条码有误"); } /**todo:需要最终确认一下。在申请领柜体后,wcs会调度agv将对应库位的柜体运输到柜体拆分区,然后更新rawoutstock的materialbatch为其物料条码*/ @@ -959,7 +964,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { throw new ServiceException("没找到库存信息"); } - WmsRawStock wmsRawStock = wmsRawStocks.get(0); //todo:待agv出库后,wcs更新库存信息(需要删除库存,由于是1个) + WmsRawStock wmsRawStock = wmsRawStocks.get(0); //待agv出库后,wcs更新库存信息(需要删除库存,由于是1个) WmsRawOutstock wmsRawOutstock = new WmsRawOutstock(); wmsRawOutstock.setTaskCode(Seq.getId(Seq.rawOutstockSeqType, Seq.rawOutstockSeqCode)); @@ -973,7 +978,7 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { wmsRawOutstock.setPalletInfoCode(baseBarcodeInfo.getPalletInfoCode());//在绑定时需要在条码信息中记录托盘码 wmsRawOutstock.setOutstockAmount(BigDecimal.ONE); - wmsRawOutstock.setEndStationCode(wmsConfig.getFifthAssembleStationCode());//目标位置,五楼组装区域 todo 读配置文件获取 + wmsRawOutstock.setEndStationCode(wmsConfig.getFifthAssembleStationCode());//目标位置,五楼组装区域 wmsRawOutstock.setOperationType(WmsConstants.WMS_OPERATION_TYPE_AUTO); wmsRawOutstock.setTaskType(WmsConstants.WMS_RAW_OUTSTOCK_TASK_TYPE_PRODUCTION_INSTALL); wmsRawOutstock.setApplyBy(SecurityUtils.getUsername()); @@ -1165,4 +1170,49 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { } } + + /** + * 五楼装配工位申请领料时,在拿完物料,调用wcs接口已领完,wcs可以调度背负agv进行下一个任务 + * + * @param wmsCmpleteCollectMaterialsVo + */ + @Override + public int completeCollectMaterials(WmsCmpleteCollectMaterialsVo wmsCmpleteCollectMaterialsVo) { + try { + String wcsAgvCompleteUrl = wmsConfig.getWcsAgvCompleteUrl(); + RestTemplate restTemplate = new RestTemplate(); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); +// headers.add(HttpHeaders.CONTENT_TYPE,MediaType.APPLICATION_JSON_VALUE); +// String params = "{\"endStationCode\":\""+stationCode+"\"}"; + + HttpEntity entity = new HttpEntity<>(wmsCmpleteCollectMaterialsVo, headers); + ResponseEntity response = restTemplate.postForEntity( + wcsAgvCompleteUrl, entity, WcsReturnMsgVo.class); + + WcsReturnMsgVo wcsReturnMsgVo = response.getBody(); +// System.out.println("Response Status: " + response.getStatusCode()); +// System.out.println("Response Status: " + wcsReturnMsgVo); + if (response.getStatusCodeValue() != 200) { + throw new ServiceException("调度异常,请重试"); + } + } catch (Exception e) { + throw new ServiceException("调度异常,请重试"); + } + return 1; + + } + + + /** + * 获取最新一条出库记录明细(用来绑定柜体码、门板码和背板码使用) + * + * @param wmsRawOutstock + * @return + */ + @Override + public WmsRawOutstock getNewestOutstockCabinet(WmsRawOutstock wmsRawOutstock) { + wmsRawOutstock.setExecuteStatus(WmsConstants.WMS_EXECUTE_STATUS_FINISH); + return wmsRawOutstockMapper.selectNewestWmsRawOutstock(wmsRawOutstock); + } } diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml index 68d149d..a4e7d2c 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml @@ -328,4 +328,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + diff --git a/hw-ui/src/api/board/index.js b/hw-ui/src/api/board/index.js index e77b990..3819d32 100644 --- a/hw-ui/src/api/board/index.js +++ b/hw-ui/src/api/board/index.js @@ -250,3 +250,43 @@ export function selectMaterialInstallationCircumstance(query) { params: query }) } + +// 查询当前登录工位 +export function getLoginStationInfo() { + return request({ + url: '/mes/api/getLoginStationInfo', + method: 'get', + }) +} + + +export function getNewestOutstockCabinet(query) { + return request({ + url: '/wms/api/getNewestOutstockCabinet', + method: 'get', + params: query + }) +} + + +/** + * 完成领料拿料 + */ +export function completeCollectMaterials(data) { + return request({ + url: '/wms/api/completeCollectMaterials', + method: 'post', + data: data + }) +} + +/** + * 完成退料放料 + */ +export function completeReturnMaterials(data) { + return request({ + url: '/wms/api/completeReturnMaterials', + method: 'post', + data: data + }) +} diff --git a/hw-ui/src/views/board/fifthFloor/index.vue b/hw-ui/src/views/board/fifthFloor/index.vue index a7a0940..311dbfe 100644 --- a/hw-ui/src/views/board/fifthFloor/index.vue +++ b/hw-ui/src/views/board/fifthFloor/index.vue @@ -25,20 +25,44 @@
- 领料 + 领料 - 扫描 + 完成领料 - 退料 + 扫描 - + 退料 + + 完成退料 + + 领柜体 - 绑定 + + 条码 - 返库 + + 返库 + + 完成 - 完成 确 定
- 下发 - + + @@ -156,19 +181,10 @@ size="small" style="margin-right: 12px" type="text" - @click="SOP(scope.row)" + @click="SOP(scope.row)" > SOP预览 - - 条码打印 - @@ -200,7 +216,7 @@ trigger="click">
- +
@@ -339,7 +355,7 @@ -
+