feat(qms-incoming-inspection): 实现来料检验任务回调功能
- 新增来料检验任务实体类 QmsIncomingInspectionTask - 增加 MyBatis 映射文件 QmsIncomingInspectionTaskMapper.xml 支持多条件查询 - 添加 QmsIncomingInspectionTaskVO 用于查询结果封装 - 在控制器 QmsIncomingInspectionTaskController 中新增回调接口 - 实现 WmsIncomingInspectionTaskCallbackService 服务,支持来料和库存检验回调 - 回调接口添加异常捕获及回调结果状态更新 - 细化查询条件及返回字段,实现任务详情查询和待办任务查询功能
This commit is contained in:
parent
771fc37fe4
commit
de9799bcb4
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.qms.admin.controller;
|
package com.nflg.qms.admin.controller;
|
||||||
|
|
||||||
import com.nflg.qms.admin.service.IncomingInspectionTaskControllerService;
|
import com.nflg.qms.admin.service.IncomingInspectionTaskControllerService;
|
||||||
|
import com.nflg.qms.admin.service.WmsIncomingInspectionTaskCallbackService;
|
||||||
import com.nflg.wms.common.pojo.ApiResult;
|
import com.nflg.wms.common.pojo.ApiResult;
|
||||||
import com.nflg.wms.common.pojo.PageData;
|
import com.nflg.wms.common.pojo.PageData;
|
||||||
import com.nflg.wms.common.pojo.qo.*;
|
import com.nflg.wms.common.pojo.qo.*;
|
||||||
|
|
@ -28,6 +29,9 @@ public class QmsIncomingInspectionTaskController extends BaseController {
|
||||||
@Resource
|
@Resource
|
||||||
private IncomingInspectionTaskControllerService incomingInspectionTaskControllerService;
|
private IncomingInspectionTaskControllerService incomingInspectionTaskControllerService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private WmsIncomingInspectionTaskCallbackService wmsIncomingInspectionTaskCallbackService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分页查询来料检测任务列表
|
* 分页查询来料检测任务列表
|
||||||
*/
|
*/
|
||||||
|
|
@ -131,5 +135,12 @@ public class QmsIncomingInspectionTaskController extends BaseController {
|
||||||
return ApiResult.success();
|
return ApiResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回调
|
||||||
|
*/
|
||||||
|
@PostMapping("callback")
|
||||||
|
public ApiResult<Void> callback(@RequestParam Long taskId){
|
||||||
|
wmsIncomingInspectionTaskCallbackService.process(taskId);
|
||||||
|
return ApiResult.success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
package com.nflg.qms.admin.service;
|
package com.nflg.qms.admin.service;
|
||||||
|
|
||||||
|
import com.nflg.wms.common.constant.STATE;
|
||||||
|
import com.nflg.wms.common.exception.NflgException;
|
||||||
import com.nflg.wms.common.pojo.qo.WmsIncomingInspectionTaskCallbackQO;
|
import com.nflg.wms.common.pojo.qo.WmsIncomingInspectionTaskCallbackQO;
|
||||||
import com.nflg.wms.common.pojo.qo.WmsInventoryInspectionTaskCallbackQO;
|
import com.nflg.wms.common.pojo.qo.WmsInventoryInspectionTaskCallbackQO;
|
||||||
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO;
|
import com.nflg.wms.common.pojo.vo.QmsIncomingInspectionTaskVO;
|
||||||
|
import com.nflg.wms.common.util.VUtil;
|
||||||
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTask;
|
||||||
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord;
|
import com.nflg.wms.repository.entity.QmsIncomingInspectionTaskRecord;
|
||||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordService;
|
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskRecordService;
|
||||||
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskService;
|
import com.nflg.wms.repository.service.IQmsIncomingInspectionTaskService;
|
||||||
|
|
@ -38,8 +42,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
/**
|
/**
|
||||||
* 向WMS系统发送来料检验任务回调
|
* 向WMS系统发送来料检验任务回调
|
||||||
*/
|
*/
|
||||||
public void incoming(Long taskId) {
|
private void incoming(QmsIncomingInspectionTaskVO taskVO) {
|
||||||
QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId);
|
|
||||||
WmsIncomingInspectionTaskCallbackQO qo = new WmsIncomingInspectionTaskCallbackQO()
|
WmsIncomingInspectionTaskCallbackQO qo = new WmsIncomingInspectionTaskCallbackQO()
|
||||||
.setTaskNo(taskVO.getTaskNo())
|
.setTaskNo(taskVO.getTaskNo())
|
||||||
.setInspectionType(taskVO.getInspectionType())
|
.setInspectionType(taskVO.getInspectionType())
|
||||||
|
|
@ -59,7 +62,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
|
|
||||||
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||||
.select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
|
.select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
|
||||||
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId)
|
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId())
|
||||||
.list();
|
.list();
|
||||||
qo.setQualifiedMaterialUniqueNo(records.stream()
|
qo.setQualifiedMaterialUniqueNo(records.stream()
|
||||||
.filter(QmsIncomingInspectionTaskRecord::getQualified)
|
.filter(QmsIncomingInspectionTaskRecord::getQualified)
|
||||||
|
|
@ -72,14 +75,25 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
.toList()
|
.toList()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
boolean callbackResult = true;
|
||||||
|
try {
|
||||||
wmsApiService.post(incomingUrl, qo, "来料检验任务回调WMS");
|
wmsApiService.post(incomingUrl, qo, "来料检验任务回调WMS");
|
||||||
|
} catch (Exception e) {
|
||||||
|
callbackResult = false;
|
||||||
|
throw new NflgException(STATE.BusinessError, "调用WMS接口失败:" + e.getMessage());
|
||||||
|
} finally {
|
||||||
|
incomingInspectionTaskService.lambdaUpdate()
|
||||||
|
.eq(QmsIncomingInspectionTask::getId, taskVO.getId())
|
||||||
|
.ne(QmsIncomingInspectionTask::getCallbackResult, true)
|
||||||
|
.set(QmsIncomingInspectionTask::getCallbackResult, callbackResult)
|
||||||
|
.update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 向WMS系统发送库存检验任务回调
|
* 向WMS系统发送库存检验任务回调
|
||||||
*/
|
*/
|
||||||
public void inventory(Long taskId) {
|
private void inventory(QmsIncomingInspectionTaskVO taskVO) {
|
||||||
QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId);
|
|
||||||
WmsInventoryInspectionTaskCallbackQO qo = new WmsInventoryInspectionTaskCallbackQO()
|
WmsInventoryInspectionTaskCallbackQO qo = new WmsInventoryInspectionTaskCallbackQO()
|
||||||
.setTaskNo(taskVO.getTaskNo())
|
.setTaskNo(taskVO.getTaskNo())
|
||||||
.setMaterialNo(taskVO.getMaterialNo())
|
.setMaterialNo(taskVO.getMaterialNo())
|
||||||
|
|
@ -94,7 +108,7 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
|
|
||||||
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
List<QmsIncomingInspectionTaskRecord> records = incomingInspectionTaskRecordService.lambdaQuery()
|
||||||
.select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
|
.select(QmsIncomingInspectionTaskRecord::getMaterialUniqueNo, QmsIncomingInspectionTaskRecord::getQualified)
|
||||||
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskId)
|
.eq(QmsIncomingInspectionTaskRecord::getTaskId, taskVO.getId())
|
||||||
.list();
|
.list();
|
||||||
qo.setQualifiedMaterialUniqueNo(records.stream()
|
qo.setQualifiedMaterialUniqueNo(records.stream()
|
||||||
.filter(QmsIncomingInspectionTaskRecord::getQualified)
|
.filter(QmsIncomingInspectionTaskRecord::getQualified)
|
||||||
|
|
@ -107,6 +121,33 @@ public class WmsIncomingInspectionTaskCallbackService {
|
||||||
.toList()
|
.toList()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
boolean callbackResult = true;
|
||||||
|
try {
|
||||||
wmsApiService.post(inventoryUrl, qo, "库存检验任务回调WMS");
|
wmsApiService.post(inventoryUrl, qo, "库存检验任务回调WMS");
|
||||||
|
} catch (Exception e) {
|
||||||
|
callbackResult = false;
|
||||||
|
throw new NflgException(STATE.BusinessError, "调用WMS接口失败:" + e.getMessage());
|
||||||
|
} finally {
|
||||||
|
incomingInspectionTaskService.lambdaUpdate()
|
||||||
|
.eq(QmsIncomingInspectionTask::getId, taskVO.getId())
|
||||||
|
.ne(QmsIncomingInspectionTask::getCallbackResult, true)
|
||||||
|
.set(QmsIncomingInspectionTask::getCallbackResult, callbackResult)
|
||||||
|
.update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void process(Long taskId) {
|
||||||
|
QmsIncomingInspectionTaskVO taskVO = incomingInspectionTaskService.getDetail(taskId);
|
||||||
|
switch (taskVO.getInspectionType()) {
|
||||||
|
case 1:
|
||||||
|
incoming(taskVO);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
inventory(taskVO);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
VUtil.trueThrowBusinessError(true).throwMessage("无效的检验类型:" + taskVO.getInspectionType());
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -182,6 +182,11 @@ public class QmsIncomingInspectionTaskVO {
|
||||||
*/
|
*/
|
||||||
private String purchaseGroup;
|
private String purchaseGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回调结果
|
||||||
|
*/
|
||||||
|
private Boolean callbackResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最近更新人id
|
* 最近更新人id
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,11 @@ public class QmsIncomingInspectionTask implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String purchaseGroup;
|
private String purchaseGroup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回调结果
|
||||||
|
*/
|
||||||
|
private Boolean callbackResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最近更新人id
|
* 最近更新人id
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,9 @@
|
||||||
t2.task_no as related_task_no,
|
t2.task_no as related_task_no,
|
||||||
t.update_user_id,
|
t.update_user_id,
|
||||||
t.update_user_name,
|
t.update_user_name,
|
||||||
t.update_time
|
t.update_time,
|
||||||
|
t.purchase_group,
|
||||||
|
t.callback_result
|
||||||
FROM qms_incoming_inspection_task t
|
FROM qms_incoming_inspection_task t
|
||||||
LEFT JOIN qms_qc_material m ON t.material_id = m.id
|
LEFT JOIN qms_qc_material m ON t.material_id = m.id
|
||||||
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
|
LEFT JOIN qms_inspection_standard s ON t.inspection_standard_id = s.id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue