From e73f573a4232c0811283191df347624769180c1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?HUOJIN=5C=E9=9C=8D=E5=85=88=E6=A3=AE?= Date: Thu, 12 Dec 2024 23:35:32 +0800 Subject: [PATCH] no message --- .../youchain/businessdata/domain/Pick.java | 4 +- .../businessdata/domain/PickDetail.java | 6 +- .../businessdata/rest/MesController.java | 3 - .../businessdata/rest/PickController.java | 14 ++- .../businessdata/service/MesService.java | 3 + .../businessdata/service/PickService.java | 20 +++++ .../service/dto/PickDetailDto.java | 4 +- .../businessdata/service/dto/PickDto.java | 2 +- .../service/dto/PickQueryCriteria.java | 4 + .../service/impl/MesServiceImpl.java | 15 ++-- .../service/impl/PickServiceImpl.java | 88 ++++++++++++++++++- .../main/java/com/youchain/utils/UrlApi.java | 8 ++ 12 files changed, 150 insertions(+), 21 deletions(-) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java index 8c18947..ba11bea 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/Pick.java @@ -99,8 +99,8 @@ public class Pick extends BaseEntity implements Serializable { private Stock stock; @Column(name = "`source_id`") - @ApiModelProperty(value = "来源ID") - private Long sourceId; + @ApiModelProperty(value = "回传状态") + private Long sourceId;/** 0失败;1.成功*/ @OneToOne @JoinColumn(name = "`dept_id`", nullable = false) diff --git a/youchain-system/src/main/java/com/youchain/businessdata/domain/PickDetail.java b/youchain-system/src/main/java/com/youchain/businessdata/domain/PickDetail.java index afc2d60..4ace797 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/domain/PickDetail.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/domain/PickDetail.java @@ -136,12 +136,12 @@ public class PickDetail extends BaseEntity implements Serializable { private Dept dept; @Column(name = "`source_name`") - @ApiModelProperty(value = "来源名称") + @ApiModelProperty(value = "回传报文") private String sourceName; @Column(name = "`source_id`") - @ApiModelProperty(value = "来源序号") - private Long sourceId; + @ApiModelProperty(value = "回传状态") + private Long sourceId;/**0失败;1成功;*/ public PickDetail() { diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/MesController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/MesController.java index 6147a3b..9a4b69e 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/MesController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/MesController.java @@ -28,7 +28,6 @@ import static org.springframework.http.HttpStatus.OK; public class MesController { private final MesService mesService; - @PostMapping("/yclbl") @Log("mes-原材料备料") @ApiOperation("mes-原材料备料") @@ -98,12 +97,10 @@ public class MesController { } } - private ResponseEntity badResponse(String message) { return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), message, ""), HttpStatus.BAD_REQUEST); } - private ResponseEntity successResponse(String message) { return new ResponseEntity<>(ApiResult.fail(OK.value(), message, ""), HttpStatus.OK); } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java index 7e713b2..501f52f 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/rest/PickController.java @@ -15,10 +15,12 @@ */ package com.youchain.businessdata.rest; +import com.youchain.annotation.AnonymousAccess; import com.youchain.annotation.Log; import com.youchain.businessdata.domain.Pick; import com.youchain.businessdata.service.PickService; import com.youchain.businessdata.service.dto.PickQueryCriteria; +import com.youchain.exception.handler.ApiResult; import org.springframework.data.domain.Pageable; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; @@ -27,10 +29,9 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; - import java.io.IOException; -import java.util.List; import javax.servlet.http.HttpServletResponse; +import static org.springframework.http.HttpStatus.OK; /** * @author huojin @@ -86,4 +87,13 @@ public class PickController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/returnPick") + @Log("mes-工单回传") + @ApiOperation("mes-工单回传") + @AnonymousAccess + public ResponseEntity returnPick(@Validated @RequestBody Long pickId) { + pickService.returnPick(pickId); + return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK); + } + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/MesService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/MesService.java index 7424d92..573026c 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/MesService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/MesService.java @@ -2,6 +2,8 @@ package com.youchain.businessdata.service; import com.youchain.RequestData.TransTask; import com.youchain.RequestData.Yclbl; +import com.youchain.businessdata.domain.Pick; +import com.youchain.businessdata.domain.PickDetail; public interface MesService { /** @@ -37,4 +39,5 @@ public interface MesService { * @param transTask 搬运任务 */ void performTransportTask(TransTask transTask); + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java b/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java index 6d6bf45..4518124 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/PickService.java @@ -111,4 +111,24 @@ public interface PickService { */ void refreshPickStatus(Pick pick); + /** + * 工单回传JSON + * + * @param pickDetail 工单明细 + */ + String returnPickJson(PickDetail pickDetail); + + /** + * 工单回传 + * @param pick 出库单 + */ + void returnPick(Long pick); + + /** + * 下发回传任务 + * @param url 地址 + * @param pickDetail 参数 + */ + void sendPick(String url, PickDetail pickDetail); + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDetailDto.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDetailDto.java index 5329ab5..5e19bfd 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDetailDto.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDetailDto.java @@ -98,10 +98,10 @@ public class PickDetailDto implements Serializable { /** 仓库ID */ private Dept dept; - /** 来源名称 */ + /** 回传报文 */ private String sourceName; - /** 封包系数 */ + /** 回传状态 */ private Long sourceId; /** 创建人 */ diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java index 985a3f8..7a585ac 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickDto.java @@ -101,7 +101,7 @@ public class PickDto implements Serializable { /** - * 来源ID + * 回传状态 */ private Long sourceId; diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java index a106504..3e05a88 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/dto/PickQueryCriteria.java @@ -17,6 +17,7 @@ package com.youchain.businessdata.service.dto; import lombok.Data; +import java.sql.Timestamp; import java.util.List; import com.youchain.annotation.Query; @@ -59,4 +60,7 @@ public class PickQueryCriteria { @Query(type = Query.Type.EQUAL) private String orderType; + @Query(type = Query.Type.BETWEEN) + private List createTime; + } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java index 1d94bae..d0302a8 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/MesServiceImpl.java @@ -1,5 +1,7 @@ package com.youchain.businessdata.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.youchain.RequestData.ItemDate; import com.youchain.RequestData.TransTask; import com.youchain.RequestData.Yclbl; @@ -19,6 +21,8 @@ import com.youchain.businessdata.service.AgvTaskService; import com.youchain.businessdata.service.MesService; import com.youchain.businessdata.service.TaskService; import com.youchain.exception.BadRequestException; +import com.youchain.modules.system.domain.Dict; +import com.youchain.modules.system.repository.DictRepository; import com.youchain.modules.system.service.DeptService; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; @@ -26,10 +30,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -75,6 +76,8 @@ public class MesServiceImpl implements MesService { createPicks.add(pick); zcData.getBlzcmx().forEach(itemDate -> { Item item = itemMap.get(itemDate.getItemCode()); + item.setGoodType(BaseStatus.GD_TYPE_CT); + itemRepository.save(item); PickDetail pickDetail = createPickDetail(pick, item, BaseStatus.GD_TYPE_CT, itemDate.getItemQty(), zcData.getCompleteQty()); createPickDetails.add(pickDetail); }); @@ -85,6 +88,8 @@ public class MesServiceImpl implements MesService { Pick pick = createPick(orderNo, taskCode, lineNo.getAndIncrement(), itemDate.getItemCode(), itemDate.getStation(), BaseStatus.GD_TYPE_DP); createPicks.add(pick); Item item = itemMap.get(itemDate.getItemCode()); + item.setGoodType(BaseStatus.GD_TYPE_DP); + itemRepository.save(item); PickDetail pickDetail = createPickDetail(pick, item, BaseStatus.GD_TYPE_DP, itemDate.getItemQty(), null); createPickDetails.add(pickDetail); }); @@ -170,6 +175,7 @@ public class MesServiceImpl implements MesService { } } + /** * 验证参数有效性 * @@ -381,6 +387,5 @@ public class MesServiceImpl implements MesService { // 下发任务 kmReService.sendAgvTask(agvTask, kmReService.sendAgvTaskGtJson(agvTask)); - } } diff --git a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java index 513178b..6d13c0d 100644 --- a/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java +++ b/youchain-system/src/main/java/com/youchain/businessdata/service/impl/PickServiceImpl.java @@ -15,13 +15,18 @@ */ package com.youchain.businessdata.service.impl; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.youchain.basicdata.domain.Point; import com.youchain.basicdata.domain.Stock; import com.youchain.basicdata.service.PointService; import com.youchain.basicdata.service.StockService; import com.youchain.businessdata.domain.*; +import com.youchain.businessdata.repository.PickDetailRepository; import com.youchain.businessdata.service.*; import com.youchain.exception.BadRequestException; +import com.youchain.modules.system.domain.Dict; +import com.youchain.modules.system.repository.DictRepository; import com.youchain.service.LogService; import com.youchain.utils.*; import lombok.RequiredArgsConstructor; @@ -37,6 +42,7 @@ import org.springframework.data.domain.Pageable; import java.util.*; import java.io.IOException; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; @@ -50,12 +56,11 @@ import javax.servlet.http.HttpServletResponse; @RequiredArgsConstructor @Slf4j public class PickServiceImpl implements PickService { - + private final DictRepository dictRepository; private final PickRepository pickRepository; + private final PickDetailRepository pickDetailRepository; private final PickMapper pickMapper; private final PickDetailService pickDetailService; - private final PointService pointService; - private final AgvTaskService agvTaskService; @Override @@ -163,4 +168,81 @@ public class PickServiceImpl implements PickService { pickRepository.save(pick); } + @Override + public String returnPickJson(PickDetail pickDetail) { + JSONObject jsonObject = new JSONObject(new LinkedHashMap<>()); + //需求工位 + jsonObject.put("OpName", pickDetail.getPick().getStation()); + //工单号 + jsonObject.put("OrderCode", pickDetail.getPick().getGdCode()); + //物料编码 + jsonObject.put("MaterialCode", pickDetail.getItem().getCode()); + //数量 + jsonObject.put("number", pickDetail.getOrderQty()); + //taskId + jsonObject.put("taskId", pickDetail.getPick().getTaskCode()); + System.out.println("叫料回传JSON:" + jsonObject.toString()); + return jsonObject.toString(); + } + + @Override + public void returnPick(Long pickId) { + Pick pick = pickRepository.getById(pickId); + List pickDetailList = pickDetailRepository.findByAllPickDetail(pickId); + for (PickDetail pickDetail : pickDetailList) { + sendPick(UrlApi.stock(), pickDetail); + } + refreshPickReturn(pick); + } + + public void refreshPickReturn(Pick pick) { + List pickDetailList = pickDetailRepository.findByAllPickDetail(pick.getId()); + List filteredList = pickDetailList.stream() + .filter(detail -> detail.getSourceId() == null || detail.getSourceId() == 0) + .collect(Collectors.toList()); + if (filteredList.isEmpty()) { + pick.setSourceId(1L); + pickRepository.save(pick); + return; + } + pick.setSourceId(0L); + pickRepository.save(pick); + } + + @Override + public void sendPick(String url, PickDetail pickDetail) { + Dict dict = dictRepository.findDictByDescription("OPEN"); + String message = null; + if (dict != null) { + String resultJson = HttpPostUtil.sendPostReq(url, returnPickJson(pickDetail)); + if (StringUtils.isEmpty(resultJson)) { + pickDetail.setSourceId(0L); + pickDetail.setSourceName("MES返回信息:接口调用失败"); + pickDetailRepository.save(pickDetail); + return; + } + JSONObject resultObject = JSON.parseObject(resultJson); + if (resultObject == null) { + pickDetail.setSourceId(0L); + pickDetail.setSourceName("MES返回信息:接口数据返回为空"); + pickDetailRepository.save(pickDetail); + return; + } + String code = resultObject.getString("code"); + message = resultObject.getString("message"); + if (!"0".equals(code)) { + pickDetail.setSourceId(0L); + pickDetail.setSourceName(message); + pickDetailRepository.save(pickDetail); + return; + } + + } + + pickDetail.setSourceId(1L); + pickDetail.setSourceName(message == null ? "成功" : message); + pickDetailRepository.save(pickDetail); + } + + } diff --git a/youchain-system/src/main/java/com/youchain/utils/UrlApi.java b/youchain-system/src/main/java/com/youchain/utils/UrlApi.java index 484e94e..9258923 100644 --- a/youchain-system/src/main/java/com/youchain/utils/UrlApi.java +++ b/youchain-system/src/main/java/com/youchain/utils/UrlApi.java @@ -30,6 +30,10 @@ public class UrlApi { return (String)getByKey("containerOut_url"); } + public static String stock(){ + return (String)getByKey("stock_url"); + } + public static String containerQuery(){ return (String)getByKey("containerQuery"+"_url"); } @@ -69,6 +73,10 @@ public class UrlApi { * 输送线点位查询 *//* public static String QueryCount="http://10.177.188.11:4080/webapi/mes/QueryCount"; + + MES回传 + public static String stock="http://30.3.56.2:80/rest/productcenter/v1/agv/stock"; + http://10.177.202.230:10870/rest/productcenter/v1/agv/stock */ }