no message

main
HUOJIN\霍先森 2024-12-12 23:35:32 +08:00
parent 49ce14dc32
commit e73f573a42
12 changed files with 150 additions and 21 deletions

View File

@ -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)

View File

@ -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() {

View File

@ -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<Object> badResponse(String message) {
return new ResponseEntity<>(ApiResult.fail(BAD_REQUEST.value(), message, ""), HttpStatus.BAD_REQUEST);
}
private ResponseEntity<Object> successResponse(String message) {
return new ResponseEntity<>(ApiResult.fail(OK.value(), message, ""), HttpStatus.OK);
}

View File

@ -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<Object> returnPick(@Validated @RequestBody Long pickId) {
pickService.returnPick(pickId);
return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK);
}
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -98,10 +98,10 @@ public class PickDetailDto implements Serializable {
/** 仓库ID */
private Dept dept;
/** 来源名称 */
/** 回传报文 */
private String sourceName;
/** 封包系数 */
/** 回传状态 */
private Long sourceId;
/** 创建人 */

View File

@ -101,7 +101,7 @@ public class PickDto implements Serializable {
/**
* ID
*
*/
private Long sourceId;

View File

@ -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<Timestamp> createTime;
}

View File

@ -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));
}
}

View File

@ -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<PickDetail> pickDetailList = pickDetailRepository.findByAllPickDetail(pickId);
for (PickDetail pickDetail : pickDetailList) {
sendPick(UrlApi.stock(), pickDetail);
}
refreshPickReturn(pick);
}
public void refreshPickReturn(Pick pick) {
List<PickDetail> pickDetailList = pickDetailRepository.findByAllPickDetail(pick.getId());
List<PickDetail> 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);
}
}

View File

@ -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
*/
}