Merge remote-tracking branch 'origin/master'

liweidong
ShiJiuZhou 2 weeks ago
commit 40f0c9dff1
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
  2. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java
  3. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java
  4. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  5. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java
  6. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  7. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
  8. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  9. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java
  10. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.java
  11. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  12. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java
  13. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml
  14. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java
  15. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java
  16. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  17. 212
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java
  18. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java

@ -159,7 +159,7 @@ public class WorkPlan extends BaseEntity {
* 不合格数量
*/
@Schema(description = "不合格数量")
private Integer unqualifiedQty;
private Double unqualifiedQty;
/**
* 实际开始
*/

@ -55,7 +55,7 @@ public interface ReviewSheetConst {
/**
* 初始化
*/
Integer REVIEW_STATUS_INIT = -1;
Short REVIEW_STATUS_INIT = -1;
/**
* 让步接收
*/

@ -180,6 +180,19 @@ public class InspectionTask extends BaseEntity {
*/
public static final String COL_PREPARE_WORK_MINUTE = "PREPARE_WORK_MINUTE";
/**
* 未检验
*/
public static Integer CHECK_RESULT_NOT = -1;
/**
* 合格
*/
public static Integer CHECK_RESULT_OK = 1;
/**
* 不合格
*/
public static Integer CHECK_RESULT_NO = 2;
/**
* [检验任务]编码
*/

@ -306,7 +306,7 @@ public class ReviewSheet extends BaseEntity {
* 审理状态
*/
@Schema(description = "审理状态")
private Integer reviewStatus;
private Short reviewStatus;
/**
* 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;
*/

@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.desk.oldv1.constant.Constant;
import org.springblade.desk.oldv1.pojo.ResultInfo;
@ -52,4 +53,22 @@ public class AiWebApiController extends BladeController {
return ResultInfo.ok();
}
@PostMapping(value = "/deleteReviewOrder")
@Operation(summary = "审理结束回调接口")
public ResultInfo deleteReviewOrder(HttpServletRequest request) throws Exception {
JSONObject params = (JSONObject) request.getAttribute(Constant.WEBAPI_REQUEST_PARAMETERS);
// 添加 调试log
log.info("审理单删除调用接口 params = {}", params);
if (params == null || params.size() == 0) {
throw new BusinessException("参数传递异常!");
}
try {
String trialId = params.getString("trialId");
qcReviewSheetService.deleteReviewOrder(trialId);
} catch (Exception e) {
log.error("审理单删除调用接口{}", params.toJSONString(), e);
}
return ResultInfo.ok();
}
}

@ -11,6 +11,7 @@ import org.springblade.desk.produce.pojo.vo.BatchPrepareVO;
import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO;
import org.springblade.desk.produce.pojo.vo.WorkOrderVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.desk.produce.pojo.vo.*;
import java.util.List;
@ -217,7 +218,7 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
* @param wp 工单计划
* @param wo 工单
*/
void qualified(WorkPlan wp, WorkOrder wo, String userName);
void qualified(WorkPlan wp, InspectionTask taskWorkOrder ,WorkOrder wo, String userName);
/**
* <p>方法名: setRbFilePreserveData </p>

@ -213,7 +213,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
if (wp.getStatus() <= WorkPlan.STATUS_START) {
// 修改本序
wp.setFactStartTime(null);
wp.setUnqualifiedQty(0);
wp.setUnqualifiedQty(0d);
wp.setStatus(WorkPlan.STATUS_NO_START);
workPlanMapper.updateById(wp);
WorkPlan frontWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
@ -344,7 +344,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
wp.setMakeTeam(teamSet.getId());
wp.setOem(null);
wp.setPlanStartTime(null);
wp.setUnqualifiedQty(0);
wp.setUnqualifiedQty(0d);
wp.setWorkQty(0d);
wp.setPlanEndTime(null);
wp.setSubsidiaryTeam(null);

@ -2121,7 +2121,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
@Override
public void qualified(WorkPlan wp, WorkOrder wo, String userName) {
public void qualified(WorkPlan wp, InspectionTask wc, WorkOrder wo, String userName) {
wc.setQualifiedQty(wo.getMakeQty());
wc.setCheckResult(InspectionTask.CHECK_RESULT_OK);
// 检验完成修改车间订单状态(注意如果wp中状态是已完成,则不更改订单状态和工序状态,只对后续工序的接收数和完工数进行更改)
WorkPlan nextWorkPlan = workPlanService.getById(wp.getNextWpId());
if (wp.getStatus() < WorkPlan.STATUS_COMPLETE) {

@ -100,7 +100,7 @@ public class WorkPlanServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPla
wp.setTestQty(0d);
wp.setScrapQty(0d);
wp.setCreateTime(new Date());
wp.setUnqualifiedQty(0);
wp.setUnqualifiedQty(0d);
//判定工序是否特殊工序,如果是,则附属班组存在值
if (wp.getMakeTeam() != null) {
BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId());

@ -14,6 +14,7 @@ import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch;
import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO;
import org.springblade.wms.pojo.entity.SyDockingLog;
import java.util.List;
@ -61,4 +62,6 @@ public interface ReviewSheetMapper extends BaseMapper<ReviewSheet> {
List<PpmReportDetailDTO> listErpNew(IPage<PpmReportDetailDTO> page,
@Param("q") ReviewSheetErpSearch search);
List<SyDockingLog> queryGdByCode(String trialId);
}

@ -346,4 +346,7 @@
and lotno like concat(concat('%', #{q.dutyBatNo}),'%')
</if>
</select>
<select id="queryGdByCode" resultType="org.springblade.wms.pojo.entity.SyDockingLog">
select * from SY_DOCKING_LOG where read_type = '审理结束回调接口' and code = #{trialId}
</select>
</mapper>

@ -37,4 +37,6 @@ public interface WorkPlanItemMapper extends BaseMapper<WorkPlanItem> {
* @return List<WorkPlanItemExcel>
*/
List<WorkPlanItemExcel> exportWorkPlanItem(@Param("ew") Wrapper<WorkPlanItem> queryWrapper);
List<WorkPlanItem> listByWoId(Long woId);
}

@ -37,4 +37,16 @@
SELECT *
FROM QA_WORK_PLAN_ITEM ${ew.customSqlSegment}
</select>
<select id="listByWoId" resultType="org.springblade.desk.quality.pojo.entity.WorkPlanItem">
SELECT
a.*
FROM
QA_WORK_PLAN_ITEM a
INNER JOIN mes_work_plan b ON a.wp_id = b.ID
LEFT JOIN BS_PROCESS_SET c ON b.PPS_ID = c.ID
WHERE
b.wo_id = #{woId}
AND a.ITEM_NAME != '单件包装材料数量'
AND c.NAME != '烧结包装防护'
</select>
</mapper>

@ -16,6 +16,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.PrintThicknessCraftCard;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.quality.excel.InspectionTaskExcel;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
@ -131,5 +133,7 @@ public interface IInspectionTaskService extends BaseService<InspectionTask> {
List<PrintThicknessCraftCard> printThicknessList(List<Long> idArr);
List<MesRbFilePreserveDetailEntity> getByRfpsIdMesNew(Long rfpsId);
public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo,Long rfpId);
void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo, Long rfpId);
void computeOrderQty(WorkPlan wp, InspectionTask task, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty);
}

@ -55,4 +55,10 @@ public interface IWorkPlanItemService extends BaseService<WorkPlanItem> {
void saveCheckItem(WorkPlan wp, List<WorkPlanItem> checkItemList, List<Long> deleteIds, String s);
void deleteItem(List<Long> deleteIds);
List<WorkPlanItem> listByWpId(Long wpId, Integer checkResultNo);
List<WorkPlanItem> listByWpId(Long wpId);
List<WorkPlanItem> listByWoId(Long woId);
}

@ -189,7 +189,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
vo.setOrderInfo(detailDetail);
if (null == detailDetail.getCurrentProcessName()) {
vo.setProcessName("");
@ -590,7 +589,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
@Override
public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) {
List<InspectionTaskListVO> listVO = baseMapper.listSearch(page, search);
@ -978,7 +976,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
//222222222222222222222222222222222222222222222
// 根据电子档案维护组装数据(线下)
@ -1536,10 +1533,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
task.setCheckUserId(AuthUtil.getUserId());
task.setCheckDate(LocalDateTime.now());
this.computeOrderQty(wp, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
// this.qualified(wp, wc, wo);
this.computeOrderQty(wp, task, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
IWorkOrderService workOrderService = context.getBean(IWorkOrderService.class);
workOrderService.qualified(wp,wo,AuthUtil.getUserName());
workOrderService.qualified(wp, task, wo, AuthUtil.getUserName());
} else if (countNA == itemList.size()) { // 全部item NA
checkResult = InspectionTaskConst.CHECK_RESULT_NA;
} else if (countNO >= 0 && countNO <= itemList.size()) { // 不合格
@ -1572,8 +1568,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
public void setApplicationContext(ApplicationContext context) {
this.context = context;
}
public void computeOrderQty(WorkPlan wp, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty) {
@Override
public void computeOrderQty(WorkPlan wp, InspectionTask wc, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty) {
if (wc != null) {
wc.setScrapQty(wc.getScrapQty() + scrapQty);
wc.setCheckQty(wc.getCheckQty() + checkQ);
wc.setLossQty(wc.getLossQty() + lossQty);
}
if (wo != null) {
wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty));
wo.setTestQty(wo.getTestQty() + testQty);
@ -1761,6 +1763,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
return obj;
}
public List<PrintChildCheck> getCheckListDetail(List<PrintChildCheck> checkList, List<WorkPlanItem> piLst, Boolean eleOrPrint) {
if (piLst != null && piLst.size() > 0) {
@ -1813,7 +1816,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName);
if (eleOrPrint) {
cc.setImgUrl(checkManByNewErp);
} else {
@ -1889,7 +1891,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
}
@Override
public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) {
@ -1971,6 +1972,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
List<MesRbFilePreserveDetailEntity> list = workPlanMapper.getByRfpsIdMesNew(id);
return list;
}
@Override
public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo, Long rfpId) {
Map<String, Long> slotNameCountMap = submitList.stream()

@ -1,6 +1,3 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil;
@ -9,14 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@ -27,40 +25,41 @@ import org.springblade.desk.basic.constant.BaseRequest;
import org.springblade.desk.basic.constant.BaseValue;
import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl;
import org.springblade.desk.basic.util.IdUtil;
import org.springblade.desk.order.mapper.YieldOrderMapper;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.produce.mapper.WorkOrderRunMapper;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springblade.desk.produce.service.IWorkPlanService;
import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.constant.ReviewSheetConst;
import org.springblade.desk.quality.excel.ReviewSheetExcel;
import org.springblade.desk.quality.mapper.ReviewSheetMapper;
import org.springblade.desk.quality.pojo.dto.*;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.entity.ReviewFault;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.entity.*;
import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch;
import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.service.IInspectionTaskService;
import org.springblade.desk.quality.service.IReviewDutyService;
import org.springblade.desk.quality.service.IReviewFaultService;
import org.springblade.desk.quality.service.IReviewSheetService;
import org.springblade.desk.quality.service.*;
import org.springblade.desk.quality.wrapper.ReviewSheetDetailWrapper;
import org.springblade.erpdata.feign.IErpMesRbPkpqryClient;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.entity.UserInfo;
import org.springblade.wms.pojo.entity.SyDockingLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.http.HttpEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.springframework.web.client.RestTemplate;
import org.springframework.http.HttpHeaders;
@ -73,12 +72,9 @@ import org.springframework.http.MediaType;
*/
@Service
@Data
//@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
//@RefreshScope
public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper, ReviewSheet>
implements IReviewSheetService {
public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper, ReviewSheet> implements IReviewSheetService {
@Value("${request.newErp.url}")
private String newErpUrl;
@Resource
@ -99,6 +95,18 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
@Resource
private IErpMesRbPkpqryClient erpMesRbPkpqryClient;
@Lazy
@Autowired
private IWorkOrderService workOrderService;
private final IInspectionTaskService inspectionTaskService;
private final WorkOrderRunMapper workOrderRunMapper;
private final YieldOrderMapper yieldOrderMapper;
private final IWorkPlanItemService workPlanItemService;
@Override
public IPage<ReviewSheetDetailVO> selectReviewSheetPage(IPage<ReviewSheetDetailVO> page, ReviewSheetDetailVO reviewSheet) {
return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet));
@ -283,44 +291,186 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
}
@Override
public void reviewResult(String trialId, Short resultStatus, String reviewMan, String liabilityPart,
Integer scrapQty, Integer reworkQty, Integer concedeQty, String memo) throws Exception {
public void reviewResult(String trialId, Short resultStatus, String reviewMan, String liabilityPart, Integer scrapQty, Integer reworkQty, Integer concedeQty, String memo) throws Exception {
ReviewSheet rs = getByTrialId(trialId);
if (rs == null) {
throw new BusinessException("审理单信息不存在!");
}
InspectionTask wc = taskService.getById(rs.getTaskId());
WorkPlan wp = workPlanService.getById(wc.getWpId());
WorkOrder wo = workOrderService.getById(wp.getWoId());
// rs.setReviewUserId(); "reviewMan"
if (WorkOrder.RUN_STATUS_HANDOVER.equals(wo.getRunStatus())) {
log.error("车间订单状态为已交接,不处理审理单!{}", wo.getWoCode());
return;
}
List<User> users = userClient.userListByName(reviewMan);
rs.setReviewUserId(CollectionUtils.isNotEmpty(users) ? users.get(0).getId() : null);
rs.setMemo(memo);
rs.setReviewDate(LocalDateTime.now());
rs.setReviewStatus((int) resultStatus); // todo:
rs.setReviewStatus(resultStatus);
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
// 装配模式
if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) {
// 如果相关零件号存在 报废数量直接扣除
if (StringUtils.isNotBlank(liabilityPart)) {
if (scrapQty != null && scrapQty > 0) {
//20250407 zxh 装配模式有报废且有相关零件时,校验订单加工数需大于报废数后再进行扣数
if (wo.getMakeQty() >= scrapQty) {
inspectionTaskService.computeOrderQty(wp, wc, wo, 0, 0, 0, scrapQty);
}
}
} else { // 将报废数累加,不扣生产数量
if (scrapQty != null && scrapQty > 0) {
if (wc != null) {
wc.setScrapQty(wc.getScrapQty() + scrapQty);
}
if (wo != null) {
wo.setScrapQty(wo.getScrapQty() + scrapQty);
}
}
}
}
// 零件模式
if (ReviewSheetConst.MODE_PART.equals(rs.getReviewOrderMode())) {
else if (ReviewSheetConst.MODE_PART.equals(rs.getReviewOrderMode())) {
// 如果有报废数量直接扣除
if (scrapQty != null && scrapQty > 0) {
//20250329 zxh 审理单多次归档问题处理
List<SyDockingLog> queryGdByCode = baseMapper.queryGdByCode(trialId);
if (queryGdByCode != null && !queryGdByCode.isEmpty()) {
wo.setScrapQty(wo.getScrapQty() - wc.getScrapQty());
wo.setMakeQty(wo.getMakeQty() + wc.getScrapQty());
wp.setWorkQty(wp.getWorkQty() + wc.getScrapQty());
wp.setScrapQty(wp.getScrapQty() - wc.getScrapQty());
wc.setScrapQty(0d);
}
inspectionTaskService.computeOrderQty(wp, wc, wo, 0, 0, 0, scrapQty);
}
}
//如果有返工数量,则直接返工
if (reworkQty != null && reworkQty > 0) {
wc.setUnqualifiedQty(wo.getMakeQty());
wc.setReworkQty(Double.valueOf(reworkQty));
wp.setUnqualifiedQty(wo.getMakeQty());
} else {
//如果全部报废则更改车间订单为全部报废
if (wo.getMakeQty().intValue() <= 0) {
//检验完成修改车间订单
workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_SCRAP, null, null);
} else {
// 查询此工序是否有试验项目,如果有说明是检验工序
List<WorkPlanItem> list = workPlanItemService.listByWpId(wp.getId());
if (list != null && !list.isEmpty()) {
//修改检验明细为合格
list = workPlanItemService.listByWpId(wp.getId(), InspectionTask.CHECK_RESULT_NO);
list.forEach(item -> item.setCheckResult(InspectionTask.CHECK_RESULT_OK));
//判定是否还有未检验,如果没有,修改检验为合格
list = workPlanItemService.listByWpId(wp.getId(), InspectionTask.CHECK_RESULT_NOT);
if (list.isEmpty()) {
// 扣除实验数、消耗数
List<WorkPlanItem> prWorkPlanItemList = workPlanItemService.listByWpId(wp.getId());
int sumCheckQ = 0, sumTestQty = 0, sumLossQty = 0;
for (WorkPlanItem wpi : prWorkPlanItemList) {
sumCheckQ += wpi.getCheckQty();
sumTestQty += wpi.getTestQty();
sumLossQty += wpi.getLossQty();
}
List<WorkPlanItem> prWorkPlanItems = workPlanItemService.listByWoId(wo.getId());
int sumAllTestQty = 0;
int sumAllLostQty = 0;
for (WorkPlanItem prWorkPlanItem : prWorkPlanItems) {
sumAllTestQty += prWorkPlanItem.getTestQty();
sumAllLostQty += prWorkPlanItem.getLossQty();
}
//周新昊 20241104 加日志
//zxh 20241128 审理单归档后扣除实验数前增加校验
//zxh 20250423 条件增加||损耗数校验
if (!(wo.getTestQty().equals(sumAllTestQty)) || !(wo.getLossQty().equals(sumAllLostQty))) {
inspectionTaskService.computeOrderQty(wp, wc, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
}
workOrderService.qualified(wp, wc, wo, userClient.userInfoById(wc.getCheckUserId()).getData().getRealName());
} else {
wc.setCheckResult(InspectionTask.CHECK_RESULT_NOT);
// 如果还有未检验得试验项目、继续检验
wo.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
log.info("审理结束回调接口修改订单状态为检验中");
workOrderService.updateById(wo);
}
} else {
wc.setCheckResult(InspectionTask.CHECK_RESULT_NOT);
wo.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE);
workOrderService.updateById(wo);
}
if (wo.getMakeQty() < 1) {
//检验完成修改车间订单
workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_SCRAP, null, null);
}
}
}
//zxh 20250617 审理结论为让步接收时,将检验记录中不合格数清零,检验状态改为合格
if (resultStatus == 3) {
wc.setUnqualifiedQty(0d);
wc.setCheckResult(InspectionTaskConst.CHECK_RESULT_OK);
}
WorkOrderRun wor = workOrderRunMapper.selectById(wo.getWorId());
YieldOrder yieldOrder = yieldOrderMapper.selectById(wo.getYoId());
if (wor != null && wor.getInCustomer() != null && !yieldOrder.getManualIncrease()) {
//外协交件单号为空不调用erp检验接口
if (StringUtils.isNotBlank(wor.getDeliverKey())) {
//调用erp检验接口
// erpMesRbPkpqryClient.checkCompleteErpBackFill(wor.getWoCode(), wor.getDeliverKey(), wp.getWorkQty(), 0, userClient.userInfoById(wc.getCheckUserId()).getData().getRealName());
}
}
}
@Override
public void deleteReviewOrder(String trialId) throws Exception {
public void deleteReviewOrder(String trialId) {
ReviewSheet reviewSheet = getByTrialId(trialId);
if (reviewSheet == null) {
throw new BusinessException("审理单信息不存在!");
throw new ServiceException("审理单信息不存在!");
}
// todo: mes v1
//责任零件
dutyService.remove(Wrappers.lambdaQuery(ReviewDuty.class).eq(ReviewDuty::getReviewSheetId, reviewSheet.getId()));
//问题故障
faultService.remove(Wrappers.lambdaQuery(ReviewFault.class).eq(ReviewFault::getReviewSheetId, reviewSheet.getId()));
InspectionTask prWorkCheck = inspectionTaskService.getById(reviewSheet.getTaskId());
if (prWorkCheck != null) {
// 将审理状态改为初始值
prWorkCheck.setReviewStatus((short) 0);
inspectionTaskService.updateById(prWorkCheck);
WorkPlan workPlan = workPlanService.getById(prWorkCheck.getWpId());
if (workPlan != null) {
WorkOrder workOrder = workOrderService.getById(workPlan.getWoId());
if (workOrder != null && workOrder.getRunStatus() < WorkOrder.RUN_STATUS_COMPLETED) {
workOrder.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE);
//zxh 20250522 增加记录订单变更为加工中日志
// 判定当前序是否还有未检验得项目,如果有修改状态未检验中,如果没有修改未加工中
List<WorkPlanItem> prWorkPlanItems;
prWorkPlanItems = workPlanItemService.listByWpId(prWorkCheck.getWpId(), InspectionTask.CHECK_RESULT_NOT);
if (prWorkPlanItems != null && !prWorkPlanItems.isEmpty()) {
workOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
log.info("审理单删除调用接口修改订单状态为检验中1");
} else if (prWorkPlanItems.isEmpty()) {
// 判断是否有试验项目不合格
prWorkPlanItems = workPlanItemService.listByWpId(prWorkCheck.getWpId(), InspectionTask.CHECK_RESULT_NO);
if (prWorkPlanItems != null && !prWorkPlanItems.isEmpty()) {
workOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
log.info("审理单删除调用接口修改订单状态为检验中2");
}
}
workOrderService.updateById(workOrder);
}
}
}
this.removeById(reviewSheet);
}
@Override
@ -494,10 +644,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
if(1==selfReviewFlag){
//通过
rs.setReviewStatus(3);
rs.setReviewStatus((short) 3);
}else{
//驳回
rs.setReviewStatus(4);
rs.setReviewStatus((short) 4);
}
BladeUser bu = AuthUtil.getUser();
log.info("ReviewSheet bu = {}", bu);

@ -228,4 +228,19 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
wpItemDetailService.remove(Wrappers.lambdaQuery(WorkPlanItemDetail.class).in(WorkPlanItemDetail::getWorkPlanItemId, deleteIds));
}
}
@Override
public List<WorkPlanItem> listByWpId(Long wpId, Integer checkResultNo) {
return this.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId).eq(WorkPlanItem::getCheckResult, checkResultNo));
}
@Override
public List<WorkPlanItem> listByWpId(Long wpId) {
return this.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId));
}
@Override
public List<WorkPlanItem> listByWoId(Long woId) {
return baseMapper.listByWoId(woId);
}
}

Loading…
Cancel
Save