Merge remote-tracking branch 'origin/feature/NoScanning' into feature/NoScanning

This commit is contained in:
yf001217 2026-06-08 14:17:18 +08:00
commit 0e1f1c8f9f
13 changed files with 64 additions and 20 deletions

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.qms.admin.service.QmsIssueTicketTodoControllerService;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.PageData;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketTodoItemSearchQO;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.IssueTicketTodoNotReadNumVO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketToDoVO;
@ -26,7 +27,7 @@ public class QmsIssueTicketTodoController extends BaseController {
* 查询
*/
@PostMapping("search")
public ApiResult<PageData<QmsIssueTicketToDoVO>> search(@Valid @RequestBody QmsTodoItemSearchQO request) {
public ApiResult<PageData<QmsIssueTicketToDoVO>> search(@Valid @RequestBody QmsIssueTicketTodoItemSearchQO request) {
IPage<QmsIssueTicketToDoVO> page = qmsIssueTicketTodoControllerService.search(request);
return ApiResult.success(page);
}

View File

@ -1,5 +1,6 @@
package com.nflg.qms.admin.controller.external;
import com.nflg.wms.common.pojo.ApiResult;
import com.nflg.wms.common.pojo.qo.QmsCoaReportCheckQO;
import com.nflg.wms.repository.service.IQmsCoaReviewService;
import com.nflg.wms.starter.BaseController;
@ -23,7 +24,7 @@ public class CoaController extends BaseController {
* 检测COA报告是否存在且已审核
*/
@PostMapping("existsReport")
public boolean existsReport(@RequestBody QmsCoaReportCheckQO qo){
return coaReviewService.existsReport(qo);
public ApiResult<Boolean> existsReport(@RequestBody QmsCoaReportCheckQO qo){
return ApiResult.success(coaReviewService.existsReport(qo));
}
}

View File

@ -3,6 +3,7 @@ package com.nflg.qms.admin.service;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketTodoItemSearchQO;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.IssueTicketTodoNotReadNumVO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketToDoVO;
@ -28,7 +29,7 @@ public class QmsIssueTicketTodoControllerService {
/**
* 分页查询待办事项列表
*/
public IPage<QmsIssueTicketToDoVO> search(QmsTodoItemSearchQO request) {
public IPage<QmsIssueTicketToDoVO> search(QmsIssueTicketTodoItemSearchQO request) {
IPage<QmsIssueTicketToDoVO> pageData = issueTicketToDoService.search(request);
if (CollectionUtil.isNotEmpty(pageData.getRecords())) {
pageData.getRecords().forEach(item -> {

View File

@ -18,7 +18,6 @@ import com.nflg.wms.common.pojo.dto.SAPOrderDTO;
import com.nflg.wms.common.pojo.qo.*;
import com.nflg.wms.common.pojo.vo.DeliverNormalOrderVO;
import com.nflg.wms.common.util.NumberUtil;
import com.nflg.wms.common.util.StringUtil;
import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.common.util.VUtil;
import com.nflg.wms.repository.entity.*;
@ -227,8 +226,8 @@ public class NormalOrderController extends BaseController {
// VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要打印的数据");
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByExtendIds(ids);
qrCodeMasters.forEach(qrCodeMaster->{
VUtil.trueThrowBusinessError(!qmsService.existsReport(qrCodeMaster.getSupplierCode(),qrCodeMaster.getMaterialCode(),qrCodeMaster.getPoNumber()))
.throwMessage("物料" + qrCodeMaster.getMaterialCode() + "采购单" + qrCodeMaster.getPoNumber() + "无有效COA报告");
VUtil.trueThrowBusinessError(!qmsService.coaReportPass(qrCodeMaster.getSupplierCode(),qrCodeMaster.getMaterialCode(),qrCodeMaster.getPoNumber()))
.throwMessage("请先提交物料" + qrCodeMaster.getMaterialCode() + "(采购单" + qrCodeMaster.getPoNumber() + ")的COA报告并完成审核");
});
exportPdfPerPage(qrCodeMasters, response);
}
@ -252,8 +251,8 @@ public class NormalOrderController extends BaseController {
// exportPdfInAll(convert(orders), response);
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByExtendIds(ids);
qrCodeMasters.forEach(qrCodeMaster->{
VUtil.trueThrowBusinessError(!qmsService.existsReport(qrCodeMaster.getSupplierCode(),qrCodeMaster.getMaterialCode(),qrCodeMaster.getPoNumber()))
.throwMessage("物料" + qrCodeMaster.getMaterialCode() + "采购单" + qrCodeMaster.getPoNumber() + "无有效COA报告");
VUtil.trueThrowBusinessError(!qmsService.coaReportPass(qrCodeMaster.getSupplierCode(),qrCodeMaster.getMaterialCode(),qrCodeMaster.getPoNumber()))
.throwMessage("请先提交物料" + qrCodeMaster.getMaterialCode() + "(采购单" + qrCodeMaster.getPoNumber() + ")的COA报告并完成审核");
});
exportPdfInAll(qrCodeMasters, response);
}
@ -405,8 +404,8 @@ public class NormalOrderController extends BaseController {
// VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(orders)).throwMessage("没有需要打印的数据");
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.getByExtendIds(ids);
qrCodeMasters.forEach(qrCodeMaster->{
VUtil.trueThrowBusinessError(!qmsService.existsReport(qrCodeMaster.getSupplierCode(),qrCodeMaster.getMaterialCode(),qrCodeMaster.getPoNumber()))
.throwMessage("物料" + qrCodeMaster.getMaterialCode() + "采购单" + qrCodeMaster.getPoNumber() + "无有效COA报告");
VUtil.trueThrowBusinessError(!qmsService.coaReportPass(qrCodeMaster.getSupplierCode(),qrCodeMaster.getMaterialCode(),qrCodeMaster.getPoNumber()))
.throwMessage("请先提交物料" + qrCodeMaster.getMaterialCode() + "(采购单" + qrCodeMaster.getPoNumber() + ")的COA报告并完成审核");
});
return exportItemImageZip(convertToPrintDTO(qrCodeMasters));
}

View File

@ -120,9 +120,9 @@ public class QmsService {
}
/**
* 检查是否免检物料
* 检查COA报告
*/
public boolean existsReport(String supplierCode,String materialNo,String purchaseNo) {
public boolean coaReportPass(String supplierCode, String materialNo, String purchaseNo) {
log.info("检测是否已提交COA报告供应商{},物料编号:{},采购单号:{}", supplierCode, materialNo,purchaseNo);
HttpHeaders headers = new HttpHeaders();
@ -142,7 +142,7 @@ public class QmsService {
VUtil.trueThrowBusinessError(
Objects.isNull(response.getBody()) || response.getBody().getCode() != 200
).throwMessage("检测是否已提交COA报告失败" + response.getBody().getMessage());
return response.getBody().getResult();
return !Objects.equals(response.getBody().getResult(),false);
}
public void pushInventoryInspection(InventoryDetectionApplyQO request) {

View File

@ -0,0 +1,22 @@
package com.nflg.wms.common.pojo.qo;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 工单待办事项 列表查询参数
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QmsIssueTicketTodoItemSearchQO extends SearchBaseQO {
/**
* 标题
*/
private String title;
/**
* 来源类型0=IQC检测任务1=PDI检测任务2=巡检3=PQC检测任务
*/
private Integer sourceType;
}

View File

@ -21,4 +21,10 @@ public class QrCodeItemSearchQO extends SearchBaseQO {
* 库存地点
*/
private String storageLocation;
/**
* 供应商编号
*/
private String supplierNo;
}

View File

@ -38,9 +38,17 @@ public class SaTokenConfigure {
.setAuth(obj -> {
// 登录校验 -- 拦截所有路由
SaRouter.match("/**")
.notMatch("/auth/**","/srm-receive/**", "/shipment/material/**","**/actuator/**","**/external/**"
.notMatch("/auth/**"
, "/srm-receive/**"
, "/shipment/material/**"
, "/qms/external/**"
// MPM 免登录接口
, "/admin/material/mpm/**", "/admin/package/mpm/**")
, "/admin/material/mpm/**"
, "/admin/package/mpm/**")
.notMatch(r -> {
String path = SaHolder.getRequest().getRequestPath();
return path.contains("/actuator/");
})
.check(r -> {
String traceId = SaHolder.getRequest().getHeader(Constant.TRACE_ID_HEADER, IdUtil.getSnowflakeNextIdStr());
MDC.put(Constant.TRACE_ID, traceId);

View File

@ -3,6 +3,7 @@ package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketTodoItemSearchQO;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.IssueTicketTodoNotReadNumVO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketToDoVO;
@ -13,7 +14,7 @@ import com.nflg.wms.repository.entity.QmsIssueTicketToDo;
*/
public interface QmsIssueTicketToDoMapper extends BaseMapper<QmsIssueTicketToDo> {
IPage<QmsIssueTicketToDoVO> search(QmsTodoItemSearchQO request, Long userId, Page<Object> page);
IPage<QmsIssueTicketToDoVO> search(QmsIssueTicketTodoItemSearchQO request, Long userId, Page<Object> page);
IssueTicketTodoNotReadNumVO getCount(Long userId);

View File

@ -2,6 +2,7 @@ package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketTodoItemSearchQO;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.IssueTicketTodoNotReadNumVO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketToDoVO;
@ -15,7 +16,7 @@ public interface IQmsIssueTicketToDoService extends IService<QmsIssueTicketToDo>
/**
* 分页查询待办事项列表
*/
IPage<QmsIssueTicketToDoVO> search(QmsTodoItemSearchQO request);
IPage<QmsIssueTicketToDoVO> search(QmsIssueTicketTodoItemSearchQO request);
void processed(Long id);

View File

@ -617,7 +617,7 @@ public class QmsCoaReviewServiceImpl extends ServiceImpl<QmsCoaReviewMapper, Qms
.eq(QmsCoaReview::getMaterialId, material.getId())
.eq(QmsCoaReview::getPurchaseNo, qo.getPurchaseNo())
.eq(QmsCoaReview::getStatus, 2)
.ne(QmsCoaReview::getDeleted, true)
.ne(QmsCoaReview::getDeleted, false)
.exists();
}

View File

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.common.pojo.qo.QmsIssueTicketTodoItemSearchQO;
import com.nflg.wms.common.pojo.qo.QmsTodoItemSearchQO;
import com.nflg.wms.common.pojo.vo.IssueTicketTodoNotReadNumVO;
import com.nflg.wms.common.pojo.vo.QmsIssueTicketToDoVO;
@ -24,7 +25,7 @@ public class QmsIssueTicketToDoServiceImpl
implements IQmsIssueTicketToDoService {
@Override
public IPage<QmsIssueTicketToDoVO> search(QmsTodoItemSearchQO request) {
public IPage<QmsIssueTicketToDoVO> search(QmsIssueTicketTodoItemSearchQO request) {
IPage<QmsIssueTicketToDoVO> pageData = baseMapper.search(request, UserUtil.getUserId(), new Page<>(request.getPage(), request.getPageSize()));
if (CollectionUtil.isNotEmpty(pageData.getRecords())) {
List<Long> ticketIds = pageData.getRecords()

View File

@ -49,6 +49,9 @@
<if test="request.endDate !=null">
and a.create_time &lt;= #{request.endDate}
</if>
<if test="request.supplierNo!=null and request.supplierNo!=''">
and d.supplier_code=#{request.supplierNo}
</if>
<!-- group by a.id, a.barcode_code, a.barcode_type, a.process_stage, a.material_code, a.material_description,-->
<!-- a.packaging_type, a.unit, a.batch_no, a.serial_no, a.supplier_code, d.supplier_name, a.po_number,-->
<!-- a.po_line_number,-->