From 4fbe2431794ce4842a4a7d1a7242d53db86182ef Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期三, 03 七月 2024 15:06:54 +0800
Subject: [PATCH] add quality and test items Api
---
pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java | 145 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 116 insertions(+), 29 deletions(-)
diff --git a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
index e3b6538..cbd6c1e 100644
--- a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
+++ b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
@@ -1,9 +1,13 @@
package com.dy.pmsStation.assemblyStep;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.dy.pmsGlobal.daoPlt.PltProductQualityInspectionItemsMapper;
+import com.dy.pmsGlobal.daoPlt.PltProductTestInspectionItemsMapper;
import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper;
import com.dy.pmsGlobal.daoPr.PrProductionNodeMapper;
import com.dy.pmsGlobal.daoSta.*;
+import com.dy.pmsGlobal.pojoPlt.PltProductQualityInspectionItems;
+import com.dy.pmsGlobal.pojoPlt.PltProductTestInspectionItems;
import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan;
import com.dy.pmsGlobal.pojoPr.PrProductionNode;
import com.dy.pmsGlobal.pojoSta.*;
@@ -12,6 +16,7 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@@ -29,42 +34,68 @@
private StaDeviceProductionLogMapper deviceProductionLogDao;
private StaAssemblyWorkLastMapper assemblyWorkLastDao;
private PrAssemblyPlanMapper assemblyPlanDao;
-// private PrProductionProcessMapper processDao;
+ // private PrProductionProcessMapper processDao;
private PrProductionNodeMapper nodeDao;
+ private StaRepairInfoMapper repairInfoDao;
+ private PltProductQualityInspectionItemsMapper qualityItemsDao;
+ private PltProductTestInspectionItemsMapper testItemsDao;
+
@Autowired
public void setDeviceLastDao(StaDeviceLastMapper deviceLastDao) {
this.deviceLastDao = deviceLastDao;
}
+
@Autowired
public void setDeviceLifeDao(StaDeviceLifeMapper deviceLifeDao) {
this.deviceLifeDao = deviceLifeDao;
}
+
@Autowired
public void setWipSnExDao(StaWipSnExMapper wipSnExDao) {
this.wipSnExDao = wipSnExDao;
}
+
@Autowired
public void setDeviceProductionLogDao(StaDeviceProductionLogMapper deviceProductionLogDao) {
this.deviceProductionLogDao = deviceProductionLogDao;
}
+
@Autowired
public void setAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao) {
this.assemblyWorkLastDao = assemblyWorkLastDao;
}
+
@Autowired
public void setAssemblyPlanDao(PrAssemblyPlanMapper assemblyPlanDao) {
this.assemblyPlanDao = assemblyPlanDao;
}
+
@Autowired
public void setNodeDao(PrProductionNodeMapper nodeDao) {
this.nodeDao = nodeDao;
}
+ @Autowired
+ public void setRepairInfoDao(StaRepairInfoMapper repairInfoDao) {
+ this.repairInfoDao = repairInfoDao;
+ }
+
+ @Autowired
+ public void setQualityItemsDao(PltProductQualityInspectionItemsMapper qualityItemsDao) {
+ this.qualityItemsDao = qualityItemsDao;
+ }
+
+ @Autowired
+ public void setTestItemsDao(PltProductTestInspectionItemsMapper testItemsDao) {
+ this.testItemsDao = testItemsDao;
+ }
+
+ @Transactional
public int save(QueryVo params) {
- long taskId = Long.parseLong(params.taskId);
- StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(taskId);
+ long workId = Long.parseLong(params.workId);
+ StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId);
if (workLast == null) {
- throw new RuntimeException("宸ュ崟涓嶅瓨鍦�");
+ throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�");//宸ュ崟涓嶅瓨鍦�
}
PrAssemblyPlan plan = assemblyPlanDao.selectByPrimaryKey(workLast.getPlanId());
// 楠岃瘉骞跺鐞嗚澶囧彿鍜岀墿鏂欏彿
@@ -82,13 +113,13 @@
});
if (deviceList.isEmpty()) {
- throw new RuntimeException("璁惧鍙蜂笉灞炰簬褰撳墠浠诲姟璁″垝");
+ throw new RuntimeException("璁惧鍙�(" + params.deviceNo + ")鍧囦笉灞炰簬褰撳墠浠诲姟璁″垝");
}
if (deviceList.size() > 1) {
- throw new RuntimeException("璁惧鍙锋湁涓斿彧鑳芥湁涓�涓�");
+ throw new RuntimeException("璁惧鍙锋湁涓斿彧鑳芥湁涓�涓睘浜庡綋鍓嶄换鍔¤鍒�");
}
- StaDeviceLast deviceLast = saveDeviceLast(params, workLast, deviceList);
+ StaDeviceLast deviceLast = buildDeviceLast(params, workLast, deviceList.get(0));
int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
deviceLastDao.updateByPrimaryKeySelective(deviceLast);
@@ -117,22 +148,22 @@
deviceLifeDao.insertSelective(life);
}
- private StaDeviceLast saveDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, List<String> deviceList){
+ private StaDeviceLast buildDeviceLast(QueryVo params, StaAssemblyWorkLast workLast, String deviceNo) {
//缁勮鏁版嵁
StaDeviceLast record = new StaDeviceLast();
- StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceList.get(0));
- if(preRecord != null){
+ StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceNo);
+ if (preRecord != null) {
record.id = preRecord.id;
record.inTime = preRecord.outTime;
}
record.outTime = new Date();
- record.setPlanId(workLast.planId);
- record.setClaimId(Long.parseLong(params.taskId));
- record.setStationId(workLast.stationId);
- record.setEquipNo(deviceList.get(0));
- record.setCurrNode(workLast.nodeId);
+ record.planId = workLast.planId;
+ record.workId = Long.parseLong(params.workId);
+ record.stationId = workLast.stationId;
+ record.equipNo = deviceNo;
+ record.currNode = workLast.nodeId;
// record.setNextNode(getNextNode(params.status,workLast.nodeId));
record.updatedBy = workLast.userId;
@@ -140,34 +171,90 @@
PrProductionNode node = nodeDao.selectByPrimaryKey(workLast.nodeId);
record.nodeContent = node.content;
- if(node.isRecord){
+ if (node.isRecord) {
record.equipCycleContent = node.equipCycleContent;
}
- record.status = getStatus(params.status,node.isEnd);
+ record.status = getStatus(params.status, node.isEnd);
return record;
}
- private int saveSnEx(StaAssemblyWorkLast workLast, List<String> deviceList,List<String> materialList, PrAssemblyPlan plan){
- StaWipSnEx snEx = new StaWipSnEx();
- snEx.deviceNo = deviceList.get(0);
- snEx.productNo = plan.batchNo;
- snEx.deviceNo = materialList.get(0);
- snEx.createTime = workLast.startTime;
- snEx.createBy = workLast.userId;
- snEx.productName = plan.proName;
- return wipSnExDao.insertSelective(snEx);
+
+ private void saveSnEx(StaAssemblyWorkLast workLast, List<String> deviceList, List<String> materialList, PrAssemblyPlan plan) {
+ for (String material : materialList) {
+ StaWipSnEx snEx = new StaWipSnEx();
+ snEx.deviceNo = deviceList.get(0);
+ snEx.productId = plan.process.proId;
+ snEx.productNo = material;
+ snEx.createTime = workLast.startTime;
+ snEx.createBy = workLast.userId;
+ snEx.productName = plan.proName;
+ wipSnExDao.insertSelective(snEx);
+ }
}
+
/**
* 鐘舵��: 1:缁勮涓�,2:瀹屾垚,3:缁翠慨,4:鎶ュ簾
- * @param status 鐘舵��
+ *
+ * @param status 鐘舵��
* @param isEndNode 鏄惁缁撴潫鑺傜偣
* @return 鐘舵��
*/
- private int getStatus(String status,boolean isEndNode){
+ private int getStatus(String status, boolean isEndNode) {
return switch (status) {
- case QrCodeConstant.MarkOk -> isEndNode? STATUS_COMPLETE:STATUS_OK;
+ case QrCodeConstant.MarkOk -> isEndNode ? STATUS_COMPLETE : STATUS_OK;
case QrCodeConstant.MarkUnqualified -> STATUS_REPAIR;
case QrCodeConstant.MarkWaste -> STATUS_WASTE;
default -> throw new RuntimeException("鐘舵�侀敊璇�");
};
}
+
+ public int repair(QueryVo vo) {
+ long workId = Long.parseLong(vo.workId);
+ StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(workId);
+ if (workLast == null) {
+ throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�");
+ }
+ StaDeviceLast preDeviceRecord = deviceLastDao.selectByDeviceNo(vo.deviceNo);
+ StaRepairInfo repairInfo = new StaRepairInfo();
+ repairInfo.workId = workId;
+ repairInfo.equipNo = vo.deviceNo;
+ repairInfo.repairTime = new Date();
+ repairInfo.repairBy = workLast.userId;
+ repairInfo.repairReason = vo.errorMsg;
+ repairInfo.fromNode = preDeviceRecord.currNode;
+ repairInfoDao.insertSelective(repairInfo);
+
+ StaDeviceLast deviceLast = new StaDeviceLast();
+ BeanUtils.copyProperties(preDeviceRecord, deviceLast);
+ deviceLast.repairId = repairInfo.id;
+ deviceLast.errorCode = vo.errorMsg;
+ deviceLast.assistants = vo.assistants;
+ //濡傛灉鍘熻妭鐐规槸缁撴潫鑺傜偣鎴栦箣鍚庣殑鑺傜偣锛屾槸鍒欐洿鏂颁负瀹屾垚,鍚﹀垯鏇存柊涓虹粍瑁呬腑(榛樿缁翠慨鑺傜偣鐨勭姸鎬佸彧鑳戒负 纭畾鎴� 鎶ュ簾)
+ boolean isEndNode = nodeDao.isEndNode(preDeviceRecord.currNode);
+ if (QrCodeConstant.MarkWaste.equals(vo.status)) {
+ deviceLast.status = STATUS_WASTE;
+ } else {
+ deviceLast.status = isEndNode ? STATUS_COMPLETE : STATUS_OK;
+ }
+ int count = deviceLast.id == null ? deviceLastDao.insertSelective(deviceLast) :
+ deviceLastDao.updateByPrimaryKeySelective(deviceLast);
+ saveDeviceProductionLog(deviceLast);
+
+ if (isEndNode) {
+ saveDeviceLife(deviceLast);
+ }
+ return count;
+ }
+
+ public List<PltProductQualityInspectionItems> getQualityItems(String proId) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("proId", proId);//item start count
+ //鏌ヨ绗﹀悎鏉′欢鐨勮褰�
+ return qualityItemsDao.selectSome(params);
+ }
+
+ public List<PltProductTestInspectionItems> getTestItems(String proId) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("proId", proId);
+ return testItemsDao.selectSome(params);
+ }
}
--
Gitblit v1.8.0