生产管理修改

liweidong
李涛 2 weeks ago
parent 752fb9ee4c
commit 45f0a335f8
  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. 124
      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 = "不合格数量") @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 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 = "审理状态") @Schema(description = "审理状态")
private Integer reviewStatus; private Short reviewStatus;
/** /**
* 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理; * 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;
*/ */

@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.desk.oldv1.constant.Constant; import org.springblade.desk.oldv1.constant.Constant;
import org.springblade.desk.oldv1.pojo.ResultInfo; import org.springblade.desk.oldv1.pojo.ResultInfo;
@ -52,4 +53,22 @@ public class AiWebApiController extends BladeController {
return ResultInfo.ok(); 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.QueryByReadStatusVO;
import org.springblade.desk.produce.pojo.vo.WorkOrderVO; import org.springblade.desk.produce.pojo.vo.WorkOrderVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO; 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.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.pojo.vo.*;
import java.util.List; import java.util.List;
@ -217,7 +218,7 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
* @param wp 工单计划 * @param wp 工单计划
* @param wo 工单 * @param wo 工单
*/ */
void qualified(WorkPlan wp, WorkOrder wo, String userName); void qualified(WorkPlan wp, InspectionTask taskWorkOrder ,WorkOrder wo, String userName);
/** /**
* <p>方法名: setRbFilePreserveData </p> * <p>方法名: setRbFilePreserveData </p>

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

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

@ -100,7 +100,7 @@ public class WorkPlanServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPla
wp.setTestQty(0d); wp.setTestQty(0d);
wp.setScrapQty(0d); wp.setScrapQty(0d);
wp.setCreateTime(new Date()); wp.setCreateTime(new Date());
wp.setUnqualifiedQty(0); wp.setUnqualifiedQty(0d);
//判定工序是否特殊工序,如果是,则附属班组存在值 //判定工序是否特殊工序,如果是,则附属班组存在值
if (wp.getMakeTeam() != null) { if (wp.getMakeTeam() != null) {
BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); 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.request.ReviewSheetRedoScrapSearch;
import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO; import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO;
import org.springblade.wms.pojo.entity.SyDockingLog;
import java.util.List; import java.util.List;
@ -61,4 +62,6 @@ public interface ReviewSheetMapper extends BaseMapper<ReviewSheet> {
List<PpmReportDetailDTO> listErpNew(IPage<PpmReportDetailDTO> page, List<PpmReportDetailDTO> listErpNew(IPage<PpmReportDetailDTO> page,
@Param("q") ReviewSheetErpSearch search); @Param("q") ReviewSheetErpSearch search);
List<SyDockingLog> queryGdByCode(String trialId);
} }

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

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

@ -37,4 +37,16 @@
SELECT * SELECT *
FROM QA_WORK_PLAN_ITEM ${ew.customSqlSegment} FROM QA_WORK_PLAN_ITEM ${ew.customSqlSegment}
</select> </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> </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.dto.PrintThicknessCraftCard;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity; import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; 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.excel.InspectionTaskExcel;
import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; 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<PrintThicknessCraftCard> printThicknessList(List<Long> idArr);
List<MesRbFilePreserveDetailEntity> getByRfpsIdMesNew(Long rfpsId); 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 saveCheckItem(WorkPlan wp, List<WorkPlanItem> checkItemList, List<Long> deleteIds, String s);
void deleteItem(List<Long> deleteIds); void deleteItem(List<Long> deleteIds);
List<WorkPlanItem> listByWpId(Long wpId, Integer checkResultNo);
List<WorkPlanItem> listByWpId(Long wpId);
List<WorkPlanItem> listByWoId(Long woId);
} }

@ -95,7 +95,7 @@ import static com.fasterxml.jackson.databind.type.LogicalType.DateTime;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Slf4j @Slf4j
public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMapper, InspectionTask> public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMapper, InspectionTask>
implements IInspectionTaskService , ApplicationContextAware { implements IInspectionTaskService, ApplicationContextAware {
@Resource @Resource
private IInspectionItemService itemService; private IInspectionItemService itemService;
@ -124,7 +124,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
private IRemindMsgService service; private IRemindMsgService service;
@Resource @Resource
private WorkPlanMapper workPlanMapper; private WorkPlanMapper workPlanMapper;
// @Resource // @Resource
// private IWorkOrderService workOrderService; // private IWorkOrderService workOrderService;
@Resource @Resource
private WorkOrderMapper workOrderMapper; private WorkOrderMapper workOrderMapper;
@ -177,8 +177,8 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// InspectionTaskListVO taskListVO = InspectionTaskListWrapper.build().entityVO(task); // InspectionTaskListVO taskListVO = InspectionTaskListWrapper.build().entityVO(task);
InspectionTaskListVO detailDetail = this.detailById(task); InspectionTaskListVO detailDetail = this.detailById(task);
DsPartEntity part =partService.selectDsPartByPatCodeAndVersion(detailDetail.getPartCode(),null); DsPartEntity part = partService.selectDsPartByPatCodeAndVersion(detailDetail.getPartCode(), null);
if(null != part){ if (null != part) {
detailDetail.setMaterial(part.getMaterial()); detailDetail.setMaterial(part.getMaterial());
detailDetail.setHardness(part.getHardness()); detailDetail.setHardness(part.getHardness());
detailDetail.setProcess(part.getCraftWay()); detailDetail.setProcess(part.getCraftWay());
@ -189,11 +189,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
vo.setOrderInfo(detailDetail); vo.setOrderInfo(detailDetail);
if(null == detailDetail.getCurrentProcessName()){ if (null == detailDetail.getCurrentProcessName()) {
vo.setProcessName(""); vo.setProcessName("");
}else{ } else {
vo.setProcessName(detailDetail.getCurrentProcessName()); vo.setProcessName(detailDetail.getCurrentProcessName());
} }
// todo: // todo:
@ -210,9 +209,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
//查询零件号消息提醒 //查询零件号消息提醒
List<RemindMsg> msgList = new ArrayList<>(); List<RemindMsg> msgList = new ArrayList<>();
List<RemindMsg> msgListNew = new ArrayList<>(); List<RemindMsg> msgListNew = new ArrayList<>();
if(null != parts && parts.size() > 0){ if (null != parts && parts.size() > 0) {
if(null != processId && 107L == processId){ if (null != processId && 107L == processId) {
LambdaQueryWrapper<RemindMsg> qw = Wrappers.lambdaQuery(RemindMsg.class) LambdaQueryWrapper<RemindMsg> qw = Wrappers.lambdaQuery(RemindMsg.class)
.eq(RemindMsg::getPartCode, parts.get(0).getPartCode()) .eq(RemindMsg::getPartCode, parts.get(0).getPartCode())
// .eq(RemindMsg::getQualityLevel, prodIdent) // .eq(RemindMsg::getQualityLevel, prodIdent)
@ -239,7 +238,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// } // }
} }
if(null != processId && 21L == processId){ if (null != processId && 21L == processId) {
LambdaQueryWrapper<RemindMsg> qw = Wrappers.lambdaQuery(RemindMsg.class) LambdaQueryWrapper<RemindMsg> qw = Wrappers.lambdaQuery(RemindMsg.class)
.eq(RemindMsg::getPartCode, parts.get(0).getPartCode()) .eq(RemindMsg::getPartCode, parts.get(0).getPartCode())
// .eq(RemindMsg::getQualityLevel, prodIdent) // .eq(RemindMsg::getQualityLevel, prodIdent)
@ -275,10 +274,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
//颜色提醒 //颜色提醒
List<DsPartEntity> list = partService.getPartSubList(detailDetail.getPartCode(), null); List<DsPartEntity> list = partService.getPartSubList(detailDetail.getPartCode(), null);
List<RemindMsg> colorMsges = new ArrayList<>(); List<RemindMsg> colorMsges = new ArrayList<>();
if(null != list && list.size() > 0){ if (null != list && list.size() > 0) {
for(DsPartEntity partEntity : list){ for (DsPartEntity partEntity : list) {
List<RemindMsg> msges = new ArrayList<>(); List<RemindMsg> msges = new ArrayList<>();
LambdaQueryWrapper<RemindMsg> qw = Wrappers.lambdaQuery(RemindMsg.class) LambdaQueryWrapper<RemindMsg> qw = Wrappers.lambdaQuery(RemindMsg.class)
.eq(RemindMsg::getSubPartCode, partEntity.getPartCode()) .eq(RemindMsg::getSubPartCode, partEntity.getPartCode())
// .eq(RemindMsg::getQualityLevel, prodIdent) // .eq(RemindMsg::getQualityLevel, prodIdent)
.eq(RemindMsg::getRemindMsgType, 2L) .eq(RemindMsg::getRemindMsgType, 2L)
@ -509,16 +508,16 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
WorkPlanItem wpItemDB = wpItemService.getById(wpItemVO.getId()); WorkPlanItem wpItemDB = wpItemService.getById(wpItemVO.getId());
WorkPlan wpi = workPlanMapper.selectById(wpItemDB.getWpId()); WorkPlan wpi = workPlanMapper.selectById(wpItemDB.getWpId());
if(null != wpi){ if (null != wpi) {
WorkOrder order = workOrderMapper.selectById(wpi.getWoId()); WorkOrder order = workOrderMapper.selectById(wpi.getWoId());
if(null != order){ if (null != order) {
YieldOrder yieldOrder = yieldOrderMapper.selectById(order.getYoId()); YieldOrder yieldOrder = yieldOrderMapper.selectById(order.getYoId());
String[] arr = new String[]{"YH","CASTH","YB","YC","SAST","CISS","EK"}; String[] arr = new String[]{"YH", "CASTH", "YB", "YC", "SAST", "CISS", "EK"};
String[] chrr = new String[]{"董以青","王跃伟","刘旭","张琼琼","张楠","朱辉","高博","宁亚美","党哲","左帅通","赵亚丽"}; String[] chrr = new String[]{"董以青", "王跃伟", "刘旭", "张琼琼", "张楠", "朱辉", "高博", "宁亚美", "党哲", "左帅通", "赵亚丽"};
for (String s : arr) { for (String s : arr) {
if (s == yieldOrder.getProductIdent()){ if (s == yieldOrder.getProductIdent()) {
for (String s1 : chrr) { for (String s1 : chrr) {
if (s1 == AuthUtil.getNickName()){ if (s1 == AuthUtil.getNickName()) {
// throw new BusinessException("当前用户无当前等级检验资质!"); // throw new BusinessException("当前用户无当前等级检验资质!");
return R.fail("当前用户无当前等级检验资质!"); return R.fail("当前用户无当前等级检验资质!");
} }
@ -545,7 +544,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// //
if(null != wpItemVO.getWpItemDetailList() && wpItemVO.getWpItemDetailList().size() > 0){ if (null != wpItemVO.getWpItemDetailList() && wpItemVO.getWpItemDetailList().size() > 0) {
QueryWrapper<WorkPlanItemDetail> qw = new QueryWrapper<>(); QueryWrapper<WorkPlanItemDetail> qw = new QueryWrapper<>();
qw.eq("WORK_PLAN_ITEM_ID", wpItemDB.getId()); qw.eq("WORK_PLAN_ITEM_ID", wpItemDB.getId());
wpItemDetailService.remove(qw); wpItemDetailService.remove(qw);
@ -568,7 +567,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
if(null != wpItemVO.getThicknessList() && wpItemVO.getThicknessList().size() > 0){ if (null != wpItemVO.getThicknessList() && wpItemVO.getThicknessList().size() > 0) {
for (WorkPlanItemThicknessVO wpItemDetailVO : wpItemVO.getThicknessList()) { for (WorkPlanItemThicknessVO wpItemDetailVO : wpItemVO.getThicknessList()) {
WorkPlanThicknessDetail wpItemDetail = new WorkPlanThicknessDetail(); WorkPlanThicknessDetail wpItemDetail = new WorkPlanThicknessDetail();
BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail); BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail);
@ -590,7 +589,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
@Override @Override
public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) { public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) {
List<InspectionTaskListVO> listVO = baseMapper.listSearch(page, search); List<InspectionTaskListVO> listVO = baseMapper.listSearch(page, search);
@ -651,8 +649,8 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
QueryWrapper<DsPartEntity> qwpart = new QueryWrapper<>(); QueryWrapper<DsPartEntity> qwpart = new QueryWrapper<>();
qwpart.eq("PART_CODE", pjYieldOrder.getPartCode()); qwpart.eq("PART_CODE", pjYieldOrder.getPartCode());
List<DsPartEntity> partList = partService.list(qwpart); List<DsPartEntity> partList = partService.list(qwpart);
DsPartEntity dsPart = new DsPartEntity(); DsPartEntity dsPart = new DsPartEntity();
if(partList != null && partList.size() > 0){ if (partList != null && partList.size() > 0) {
dsPart = partList.get(0); dsPart = partList.get(0);
} }
@ -735,7 +733,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
QueryWrapper<AuditFile> qw = new QueryWrapper<>(); QueryWrapper<AuditFile> qw = new QueryWrapper<>();
qw.eq("WC_ID", workPlan.getId()); qw.eq("WC_ID", workPlan.getId());
List<AuditFile> auditFileList = auditFileService.list(qw); List<AuditFile> auditFileList = auditFileService.list(qw);
if(auditFileList != null && auditFileList.size() > 0){ if (auditFileList != null && auditFileList.size() > 0) {
workPlan.setAuditFile(auditFileList.get(0)); workPlan.setAuditFile(auditFileList.get(0));
} }
@ -799,10 +797,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// 操作者(工序接收人) // 操作者(工序接收人)
// 如果是场内班组 // 如果是场内班组
// zxh 20241217 电子档案场内工序操作者取值改为报工人 // zxh 20241217 电子档案场内工序操作者取值改为报工人
if (null != workPlan.getOcId() && workPlan.getOcId() >0 && workPlan.getReceiveMan() != null ) { if (null != workPlan.getOcId() && workPlan.getOcId() > 0 && workPlan.getReceiveMan() != null) {
R<User> user = userClient.userInfoById(workPlan.getReceiveMan()); R<User> user = userClient.userInfoById(workPlan.getReceiveMan());
if(null != user && null != user.getData() && null != user.getData().getAccount()){ if (null != user && null != user.getData() && null != user.getData().getAccount()) {
// workPlan.setCreateMan(workPlan.getReceiveMan().getUserName()); // workPlan.setCreateMan(workPlan.getReceiveMan().getUserName());
MakeRec prMakeRec = workPlanMapper.getByWpId(workPlan.getId()); MakeRec prMakeRec = workPlanMapper.getByWpId(workPlan.getId());
if (prMakeRec != null) { if (prMakeRec != null) {
@ -814,7 +812,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
} else if (workPlan.getOcId() != null) { // 外协 } else if (workPlan.getOcId() != null) { // 外协
Oem oem = oemMapper.selectById(workPlan.getOcId()); Oem oem = oemMapper.selectById(workPlan.getOcId());
if(oem != null){ if (oem != null) {
workPlan.setCreateMan(oem.getCode()); workPlan.setCreateMan(oem.getCode());
} }
} }
@ -844,7 +842,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
List<MesQcProduceRunEntity> prList; List<MesQcProduceRunEntity> prList;
List<MesRbFilePreserveSlotEntity> dsRbFilePreserveSlotList = new ArrayList<>(); List<MesRbFilePreserveSlotEntity> dsRbFilePreserveSlotList = new ArrayList<>();
QueryWrapper<CenterTeam> qwteam= new QueryWrapper<>(); QueryWrapper<CenterTeam> qwteam = new QueryWrapper<>();
qwteam.eq("TS_ID", workPlan.getMakeTeam()); qwteam.eq("TS_ID", workPlan.getMakeTeam());
List<CenterTeam> teamList = centerTeamService.list(qwteam); List<CenterTeam> teamList = centerTeamService.list(qwteam);
CenterTeam bsCenterTeam = null; CenterTeam bsCenterTeam = null;
@ -852,7 +850,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
bsCenterTeam = teamList.get(0); bsCenterTeam = teamList.get(0);
} }
// CenterTeam bsCenterTeam = bsCenterTeamService.getByTsId(workPlan.getMakeTeam().getTsId()); // CenterTeam bsCenterTeam = bsCenterTeamService.getByTsId(workPlan.getMakeTeam().getTsId());
if (bsCenterTeam != null && bsCenterTeam.getWcId()!= null) { if (bsCenterTeam != null && bsCenterTeam.getWcId() != null) {
MacToolUse prMacToolUse; MacToolUse prMacToolUse;
List<MesRbFilePreserveSlotEntity> preserveSlotList; List<MesRbFilePreserveSlotEntity> preserveSlotList;
MesQcProduceRunEntity boxInfo = new MesQcProduceRunEntity(); MesQcProduceRunEntity boxInfo = new MesQcProduceRunEntity();
@ -885,7 +883,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// 烘箱信息(从设备,工装使用记录获取) // 烘箱信息(从设备,工装使用记录获取)
// boxInfo = workPlanMapper.getBoxInfoByWpIdMtnCode(workPlan.getId()); // boxInfo = workPlanMapper.getBoxInfoByWpIdMtnCode(workPlan.getId());
List<MesQcProduceRunEntity> runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); List<MesQcProduceRunEntity> runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId());
if(runs != null && runs.size() > 0){ if (runs != null && runs.size() > 0) {
boxInfo = runs.get(0); boxInfo = runs.get(0);
} }
if (StringUtils.isNotBlank(boxInfo.getInDate())) { if (StringUtils.isNotBlank(boxInfo.getInDate())) {
@ -927,9 +925,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// } // }
List<ProReTemplate> dsRbFilePreserveList = null; List<ProReTemplate> dsRbFilePreserveList = null;
if (workPlan.getPpsId() != null){ if (workPlan.getPpsId() != null) {
BsProcessSetEntity process = processSetService.getById(workPlan.getPpsId()); BsProcessSetEntity process = processSetService.getById(workPlan.getPpsId());
if("喷砂".equals(process.getName()) || "涂色标".equals(process.getName())) { if ("喷砂".equals(process.getName()) || "涂色标".equals(process.getName())) {
dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(null, dsRbFilePreserveList = workPlanMapper.getDataByWcIdAndPpsId(null,
workPlan.getPpsId(), Boolean.TRUE); workPlan.getPpsId(), Boolean.TRUE);
} else { } else {
@ -944,7 +942,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
preserveSlotList = workPlanMapper.getByRfpId(dsRbFilePreserveList.get(0).getId()); preserveSlotList = workPlanMapper.getByRfpId(dsRbFilePreserveList.get(0).getId());
qcProduceRunsList = workPlanMapper.listPrByWpIdIndex(workPlan.getId(), 2, Boolean.TRUE); qcProduceRunsList = workPlanMapper.listPrByWpIdIndex(workPlan.getId(), 2, Boolean.TRUE);
List<MesQcProduceRunEntity> runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); List<MesQcProduceRunEntity> runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId());
if(runs != null && runs.size() > 0){ if (runs != null && runs.size() > 0) {
boxInfo = runs.get(0); boxInfo = runs.get(0);
} }
// 烘箱信息(从设备,工装使用记录获取) // 烘箱信息(从设备,工装使用记录获取)
@ -978,7 +976,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
//222222222222222222222222222222222222222222222 //222222222222222222222222222222222222222222222
// 根据电子档案维护组装数据(线下) // 根据电子档案维护组装数据(线下)
@ -1010,7 +1007,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// boxInfo = prMacToolUseService.getBoxInfoByWpIdMtnCode(workPlan.getId()); // boxInfo = prMacToolUseService.getBoxInfoByWpIdMtnCode(workPlan.getId());
List<MesQcProduceRunEntity> runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId()); List<MesQcProduceRunEntity> runs = workPlanMapper.getBoxInfoByWpIdMtnCodeList(workPlan.getId());
if(runs != null && runs.size() > 0){ if (runs != null && runs.size() > 0) {
boxInfo = runs.get(0); boxInfo = runs.get(0);
} }
@ -1536,10 +1533,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
task.setCheckUserId(AuthUtil.getUserId()); task.setCheckUserId(AuthUtil.getUserId());
task.setCheckDate(LocalDateTime.now()); task.setCheckDate(LocalDateTime.now());
this.computeOrderQty(wp, wo, sumCheckQ, sumTestQty, sumLossQty, 0); this.computeOrderQty(wp, task, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
// this.qualified(wp, wc, wo);
IWorkOrderService workOrderService = context.getBean(IWorkOrderService.class); 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 } else if (countNA == itemList.size()) { // 全部item NA
checkResult = InspectionTaskConst.CHECK_RESULT_NA; checkResult = InspectionTaskConst.CHECK_RESULT_NA;
} else if (countNO >= 0 && countNO <= itemList.size()) { // 不合格 } else if (countNO >= 0 && countNO <= itemList.size()) { // 不合格
@ -1572,8 +1568,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
public void setApplicationContext(ApplicationContext context) { public void setApplicationContext(ApplicationContext context) {
this.context = 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) { if (wo != null) {
wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty)); wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty));
wo.setTestQty(wo.getTestQty() + testQty); wo.setTestQty(wo.getTestQty() + testQty);
@ -1601,14 +1603,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
private JSONObject glassCake(Long woId) { private JSONObject glassCake(Long woId) {
JSONObject obj = new JSONObject(); JSONObject obj = new JSONObject();
// 子件订单信息 // 子件订单信息
WorkOrder prWorkOrder =workOrderMapper.selectById(woId); WorkOrder prWorkOrder = workOrderMapper.selectById(woId);
YieldOrder yieldOrder = yieldOrderMapper.selectById(prWorkOrder.getYoId()); YieldOrder yieldOrder = yieldOrderMapper.selectById(prWorkOrder.getYoId());
// DsPartEntity dsPart = dsPartService.getByPartCode(prWorkOrder.getPjYieldOrder().getPartCode()); // DsPartEntity dsPart = dsPartService.getByPartCode(prWorkOrder.getPjYieldOrder().getPartCode());
QueryWrapper<DsPartEntity> queryWrapper = new QueryWrapper<>(); QueryWrapper<DsPartEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("part_code", yieldOrder.getPartCode()); queryWrapper.eq("part_code", yieldOrder.getPartCode());
List<DsPartEntity> dsPartList = partService.list(queryWrapper); List<DsPartEntity> dsPartList = partService.list(queryWrapper);
DsPartEntity dsPart = new DsPartEntity(); DsPartEntity dsPart = new DsPartEntity();
if(null != dsPartList && dsPartList.size() > 0){ if (null != dsPartList && dsPartList.size() > 0) {
dsPart = dsPartList.get(0); dsPart = dsPartList.get(0);
} }
@ -1641,10 +1643,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
printChildCheck.setTestName(prWorkPlanItem.getItemName()); printChildCheck.setTestName(prWorkPlanItem.getItemName());
printChildCheck.setTrialStandard(prWorkPlanItem.getStandardName()); printChildCheck.setTrialStandard(prWorkPlanItem.getStandardName());
printChildCheck.setCheckResult(prWorkPlanItem.getCheckResult() == -1 ? "未检验" : prWorkPlanItem.getCheckResult() == 1 ? "合格" : printChildCheck.setCheckResult(prWorkPlanItem.getCheckResult() == -1 ? "未检验" : prWorkPlanItem.getCheckResult() == 1 ? "合格" :
prWorkPlanItem.getCheckResult() == 2 ? "不合格" : prWorkPlanItem.getCheckResult() == 3 ? "NA" : ""); prWorkPlanItem.getCheckResult() == 2 ? "不合格" : prWorkPlanItem.getCheckResult() == 3 ? "NA" : "");
if (prWorkPlanItem.getCheckUserId() != null) { if (prWorkPlanItem.getCheckUserId() != null) {
R<User> user = userClient.userInfoById(prWorkPlanItem.getCheckUserId()); R<User> user = userClient.userInfoById(prWorkPlanItem.getCheckUserId());
if(null != user && null != user.getData()){ if (null != user && null != user.getData()) {
printChildCheck.setCheckName(user.getData().getRealName()); printChildCheck.setCheckName(user.getData().getRealName());
} }
} }
@ -1699,7 +1701,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
private JSONObject glassSealing(Long woId, List<Boolean> planList, List<Boolean> moduleList) { private JSONObject glassSealing(Long woId, List<Boolean> planList, List<Boolean> moduleList) {
JSONObject obj = new JSONObject(); JSONObject obj = new JSONObject();
// 订单信息 // 订单信息
WorkOrder prWorkOrder =workOrderMapper.selectById(woId); WorkOrder prWorkOrder = workOrderMapper.selectById(woId);
List<WorkOrder> subPrWorkOrderList = this.checkOrderSj(prWorkOrder); List<WorkOrder> subPrWorkOrderList = this.checkOrderSj(prWorkOrder);
YieldOrder yieldOrder = yieldOrderMapper.selectById(prWorkOrder.getYoId()); YieldOrder yieldOrder = yieldOrderMapper.selectById(prWorkOrder.getYoId());
@ -1708,7 +1710,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
queryWrapper.eq("part_code", yieldOrder.getPartCode()); queryWrapper.eq("part_code", yieldOrder.getPartCode());
List<DsPartEntity> dsPartList = partService.list(queryWrapper); List<DsPartEntity> dsPartList = partService.list(queryWrapper);
DsPartEntity dsPart = new DsPartEntity(); DsPartEntity dsPart = new DsPartEntity();
if(null != dsPartList && dsPartList.size() > 0){ if (null != dsPartList && dsPartList.size() > 0) {
dsPart = dsPartList.get(0); dsPart = dsPartList.get(0);
} }
obj.put("prWorkOrder", prWorkOrder); obj.put("prWorkOrder", prWorkOrder);
@ -1761,6 +1763,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
return obj; return obj;
} }
public List<PrintChildCheck> getCheckListDetail(List<PrintChildCheck> checkList, List<WorkPlanItem> piLst, Boolean eleOrPrint) { public List<PrintChildCheck> getCheckListDetail(List<PrintChildCheck> checkList, List<WorkPlanItem> piLst, Boolean eleOrPrint) {
if (piLst != null && piLst.size() > 0) { if (piLst != null && piLst.size() > 0) {
@ -1789,16 +1792,16 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// 230310新增试验数量 // 230310新增试验数量
cc.setTestQty(pi.getTestQty() != null && pi.getTestQty() > 0 ? pi.getTestQty().toString() : ""); cc.setTestQty(pi.getTestQty() != null && pi.getTestQty() > 0 ? pi.getTestQty().toString() : "");
// 检验结果 // 检验结果
if(0==pi.getCheckResult()){ if (0 == pi.getCheckResult()) {
cc.setCheckResult("未检验"); cc.setCheckResult("未检验");
} }
if(1==pi.getCheckResult()){ if (1 == pi.getCheckResult()) {
cc.setCheckResult("合格"); cc.setCheckResult("合格");
} }
if(2==pi.getCheckResult()){ if (2 == pi.getCheckResult()) {
cc.setCheckResult("不合格"); cc.setCheckResult("不合格");
} }
if(-1==pi.getCheckResult()){ if (-1 == pi.getCheckResult()) {
cc.setCheckResult("NA"); cc.setCheckResult("NA");
} }
// cc.setCheckResult(!"未检验".equals(pi.getCheckResult()) ? pi.getCheckResult() : null); // cc.setCheckResult(!"未检验".equals(pi.getCheckResult()) ? pi.getCheckResult() : null);
@ -1806,14 +1809,13 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
if (pi.getCheckUserId() != null) { if (pi.getCheckUserId() != null) {
R<User> user = userClient.userInfoById(pi.getCheckUserId()); R<User> user = userClient.userInfoById(pi.getCheckUserId());
String userName = user.getData().getAccount(); String userName = user.getData().getAccount();
if(null != user && user.getData() != null){ if (null != user && user.getData() != null) {
cc.setCheckName(user.getData().getRealName()); cc.setCheckName(user.getData().getRealName());
} }
//zxh 20250212 从nerp获取检验员印章 //zxh 20250212 从nerp获取检验员印章
String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName); String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName);
if (eleOrPrint) { if (eleOrPrint) {
cc.setImgUrl(checkManByNewErp); cc.setImgUrl(checkManByNewErp);
} else { } else {
@ -1823,7 +1825,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
} }
if(null != pi.getCheckDate()){ if (null != pi.getCheckDate()) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDateTime = pi.getCheckDate().format(formatter); String formattedDateTime = pi.getCheckDate().format(formatter);
cc.setCheckDate(formattedDateTime); cc.setCheckDate(formattedDateTime);
@ -1889,7 +1891,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
@Override @Override
public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) { public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) {
@ -1971,8 +1972,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
List<MesRbFilePreserveDetailEntity> list = workPlanMapper.getByRfpsIdMesNew(id); List<MesRbFilePreserveDetailEntity> list = workPlanMapper.getByRfpsIdMesNew(id);
return list; return list;
} }
@Override @Override
public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo,Long rfpId){ public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo, Long rfpId) {
Map<String, Long> slotNameCountMap = submitList.stream() Map<String, Long> slotNameCountMap = submitList.stream()
// 按slotName分组,key=slotName,value=该名称的元素数量 // 按slotName分组,key=slotName,value=该名称的元素数量
.collect(Collectors.groupingBy(MesRbFilePreserveSlotEntity::getSlotName, Collectors.counting())); .collect(Collectors.groupingBy(MesRbFilePreserveSlotEntity::getSlotName, Collectors.counting()));
@ -1989,7 +1991,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
dsRbFilePreserveSlot.setKeepMan(curUserInfo.getNickName()); dsRbFilePreserveSlot.setKeepMan(curUserInfo.getNickName());
dsRbFilePreserveSlot.setDsRbFilePreserve(dsRbFilePreserve); dsRbFilePreserveSlot.setDsRbFilePreserve(dsRbFilePreserve);
dsRbFilePreserveSlot.setRfpId(rfpId); dsRbFilePreserveSlot.setRfpId(rfpId);
if(StringUtils.isBlank(dsRbFilePreserveSlot.getSlotName())){ if (StringUtils.isBlank(dsRbFilePreserveSlot.getSlotName())) {
throw new RuntimeException("请将槽号/工位填写完成"); throw new RuntimeException("请将槽号/工位填写完成");
} }
if (dsRbFilePreserveSlot.getId() != null) { if (dsRbFilePreserveSlot.getId() != null) {
@ -2048,7 +2050,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
QueryWrapper<AuditFile> qw = new QueryWrapper<>(); QueryWrapper<AuditFile> qw = new QueryWrapper<>();
qw.eq("WC_ID", prWorkPlan.getId()); qw.eq("WC_ID", prWorkPlan.getId());
List<AuditFile> auditFileList = auditFileService.list(qw); List<AuditFile> auditFileList = auditFileService.list(qw);
if(auditFileList != null && auditFileList.size() > 0){ if (auditFileList != null && auditFileList.size() > 0) {
prWorkPlan.setAuditFile(auditFileList.get(0)); prWorkPlan.setAuditFile(auditFileList.get(0));
} }
// 同槽信息 // 同槽信息
@ -2082,10 +2084,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
printChildCheck.setTrialStandard(prWorkPlanItem.getStandardName()); printChildCheck.setTrialStandard(prWorkPlanItem.getStandardName());
printChildCheck.setCheckResult(prWorkPlanItem.getCheckResult() == -1 ? "未检验" : prWorkPlanItem.getCheckResult() == 1 ? "合格" : printChildCheck.setCheckResult(prWorkPlanItem.getCheckResult() == -1 ? "未检验" : prWorkPlanItem.getCheckResult() == 1 ? "合格" :
prWorkPlanItem.getCheckResult() == 2 ? "不合格" : prWorkPlanItem.getCheckResult() == 3 ? "NA" : ""); prWorkPlanItem.getCheckResult() == 2 ? "不合格" : prWorkPlanItem.getCheckResult() == 3 ? "NA" : "");
if (prWorkPlanItem.getCheckUserId() != null) { if (prWorkPlanItem.getCheckUserId() != null) {
R<User> user = userClient.userInfoById(prWorkPlanItem.getCheckUserId()); R<User> user = userClient.userInfoById(prWorkPlanItem.getCheckUserId());
if(null != user && null != user.getData()){ if (null != user && null != user.getData()) {
printChildCheck.setCheckName(user.getData().getRealName()); printChildCheck.setCheckName(user.getData().getRealName());
} }
} }
@ -2110,10 +2112,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
rs.setStatus(ReviewSheetConst.STATUS.S_INIT); rs.setStatus(ReviewSheetConst.STATUS.S_INIT);
rs.setStatus(ReviewSheetConst.STATUS.S_NEW); rs.setStatus(ReviewSheetConst.STATUS.S_NEW);
rs.setReviewStatus(ReviewSheetConst.ERP_REVIEW_S.REVIEW_STATUS_INIT); rs.setReviewStatus(ReviewSheetConst.ERP_REVIEW_S.REVIEW_STATUS_INIT);
WorkPlan plan = workPlanMapper.selectById(task.getWpId()); WorkPlan plan = workPlanMapper.selectById(task.getWpId());
// WorkPlan plan = workPlanService.getById(task.getWpId()); // WorkPlan plan = workPlanService.getById(task.getWpId());
if(plan != null){ if (plan != null) {
rs.setPpsId(plan.getPpsId()); rs.setPpsId(plan.getPpsId());
} }

@ -1,6 +1,3 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.impl; package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; 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.constant.BaseValue;
import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl; import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl;
import org.springblade.desk.basic.util.IdUtil; 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.produce.service.IWorkPlanService;
import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.constant.ReviewSheetConst; import org.springblade.desk.quality.constant.ReviewSheetConst;
import org.springblade.desk.quality.excel.ReviewSheetExcel; import org.springblade.desk.quality.excel.ReviewSheetExcel;
import org.springblade.desk.quality.mapper.ReviewSheetMapper; import org.springblade.desk.quality.mapper.ReviewSheetMapper;
import org.springblade.desk.quality.pojo.dto.*; import org.springblade.desk.quality.pojo.dto.*;
import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.*;
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.request.ReviewSheetErpSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch;
import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.service.IInspectionTaskService; import org.springblade.desk.quality.service.*;
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.wrapper.ReviewSheetDetailWrapper; import org.springblade.desk.quality.wrapper.ReviewSheetDetailWrapper;
import org.springblade.erpdata.feign.IErpMesRbPkpqryClient; import org.springblade.erpdata.feign.IErpMesRbPkpqryClient;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.ISysClient; import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.entity.UserInfo; 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.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
@ -73,12 +72,9 @@ import org.springframework.http.MediaType;
*/ */
@Service @Service
@Data @Data
//@AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Slf4j @Slf4j
//@RefreshScope public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper, ReviewSheet> implements IReviewSheetService {
public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper, ReviewSheet>
implements IReviewSheetService {
@Value("${request.newErp.url}") @Value("${request.newErp.url}")
private String newErpUrl; private String newErpUrl;
@Resource @Resource
@ -99,6 +95,18 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
@Resource @Resource
private IErpMesRbPkpqryClient erpMesRbPkpqryClient; 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 @Override
public IPage<ReviewSheetDetailVO> selectReviewSheetPage(IPage<ReviewSheetDetailVO> page, ReviewSheetDetailVO reviewSheet) { public IPage<ReviewSheetDetailVO> selectReviewSheetPage(IPage<ReviewSheetDetailVO> page, ReviewSheetDetailVO reviewSheet) {
return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet)); return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet));
@ -283,28 +291,128 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
} }
@Override @Override
public void reviewResult(String trialId, Short resultStatus, String reviewMan, String liabilityPart, public void reviewResult(String trialId, Short resultStatus, String reviewMan, String liabilityPart, Integer scrapQty, Integer reworkQty, Integer concedeQty, String memo) throws Exception {
Integer scrapQty, Integer reworkQty, Integer concedeQty, String memo) throws Exception {
ReviewSheet rs = getByTrialId(trialId); ReviewSheet rs = getByTrialId(trialId);
if (rs == null) { if (rs == null) {
throw new BusinessException("审理单信息不存在!"); throw new BusinessException("审理单信息不存在!");
} }
InspectionTask wc = taskService.getById(rs.getTaskId()); 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.setMemo(memo);
rs.setReviewDate(LocalDateTime.now()); rs.setReviewDate(LocalDateTime.now());
rs.setReviewStatus((int) resultStatus); // todo: rs.setReviewStatus(resultStatus);
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
// 装配模式 // 装配模式
if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) { 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 审理结论为让步接收时,将检验记录中不合格数清零,检验状态改为合格 //zxh 20250617 审理结论为让步接收时,将检验记录中不合格数清零,检验状态改为合格
@ -312,15 +420,57 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
wc.setUnqualifiedQty(0d); wc.setUnqualifiedQty(0d);
wc.setCheckResult(InspectionTaskConst.CHECK_RESULT_OK); 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 @Override
public void deleteReviewOrder(String trialId) throws Exception { public void deleteReviewOrder(String trialId) {
ReviewSheet reviewSheet = getByTrialId(trialId); ReviewSheet reviewSheet = getByTrialId(trialId);
if (reviewSheet == null) { if (reviewSheet == null) {
throw new BusinessException("审理单信息不存在!"); throw new ServiceException("审理单信息不存在!");
}
//责任零件
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);
}
}
} }
// todo: mes v1 this.removeById(reviewSheet);
} }
@Override @Override
@ -494,10 +644,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
if(1==selfReviewFlag){ if(1==selfReviewFlag){
//通过 //通过
rs.setReviewStatus(3); rs.setReviewStatus((short) 3);
}else{ }else{
//驳回 //驳回
rs.setReviewStatus(4); rs.setReviewStatus((short) 4);
} }
BladeUser bu = AuthUtil.getUser(); BladeUser bu = AuthUtil.getUser();
log.info("ReviewSheet bu = {}", bu); 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)); 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