生产质量检验

liweidong
maxiangong 2 days ago
parent 63677ac813
commit 872df89038
  1. 33
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/PdaProRelevantVO.java
  2. 12
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItem.java
  3. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/WorkPlanItemDetail.java
  4. 54
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java
  5. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PdaLoadController.java
  6. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java
  7. 74
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  8. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemDetailMapper.xml
  9. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml
  10. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java
  11. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java
  12. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  13. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java

@ -1,9 +1,13 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO;
import java.util.List;
/**
* @ClassName PdaProRelevant
@ -67,5 +71,34 @@ public class PdaProRelevantVO {
*/
private Double makeQty;
/**
* 检测项目List
*/
private List<WorkPlanItemVO> wpItemList;
/**
* 材料
*/
private String material;
/**
* 生产标识
*/
private String prodIdent;
/**
* 订单-镀种信息
*/
private String platingInfo;
/**
* 镀种代码
*/
private String plateCode;
/**
* 配置码
*/
private String configCode;
}

@ -119,4 +119,16 @@ public class WorkPlanItem extends BaseEntity {
*/
@Schema(description = "特殊类型-[0]:普通;[1]:测厚;[2]:测硬;[3]:尺寸;")
private Integer specialType;
@Schema(description = "镀层类型-[1]:表层;[2]:底镀层;")
private Integer coatingType;
@Schema(description = "来源类型-[1]:实测值;[2]:共享值;")
private Integer sourceType;
@Schema(description = "来源车间订单号")
private String sourceWoCode;
@Schema(description = "来源工序号")
private String sourceOrders;
}

@ -97,6 +97,9 @@ public class WorkPlanItemDetail extends BaseEntity {
@Schema(description = "[量具]名称")
private String mtName;
@Schema(description = "序列号")
private Integer seqNo;
@TableField(exist = false)
private String trialItem;

@ -3,13 +3,12 @@ package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.InspectionItem;
import org.springblade.desk.quality.pojo.entity.Standard;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail;
import java.io.Serial;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* [工序检验项] 视图实体类
@ -23,6 +22,41 @@ public class WorkPlanItemVO extends WorkPlanItem {
@Serial
private static final long serialVersionUID = 1L;
/**
* 表层
*/
private static Integer SURFACE_COAT = 1;
/**
* 底镀层
*/
private static Integer UNDER_COAT = 2;
private static Map<Integer, String> coatTypeMap = new HashMap<>(3);
static {
coatTypeMap.put(SURFACE_COAT, "表层");
coatTypeMap.put(UNDER_COAT, "底镀层");
}
/**
* 实测值
*/
private static Integer ACTUAL_SOURCE = 1;
/**
* 共享值
*/
private static Integer SHARE_SOURCE = 2;
private static Map<Integer, String> sourceTypeMap = new HashMap<>(3);
static {
sourceTypeMap.put(ACTUAL_SOURCE, "实测值");
sourceTypeMap.put(SHARE_SOURCE, "共享值");
}
@Schema(description = "检验员 真名")
private String checkUserRealName;
@Schema(description = "检验项目 Obj")
@ -37,4 +71,18 @@ public class WorkPlanItemVO extends WorkPlanItem {
private List<WorkPlanItemThicknessVO> thicknessList;
@Schema(description = "检验员账号")
private String checkUserAccount;
@Schema(description = "镀层类型值")
private String coatingTypeValue;
@Schema(description = "来源类型值")
private String sourceTypeValue;
public String getCoatingTypeValue(){
return coatTypeMap.get(getCoatingType());
}
public String getSourceTypeValue() {
return sourceTypeMap.get(getSourceType());
}
}

@ -15,7 +15,7 @@ import org.springblade.desk.device.pojo.entity.RackSetEntity;
import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.produce.service.IPdaLoadService;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -97,7 +97,7 @@ public class PdaLoadController {
@PostMapping(value = "/saveProCheck")
@ApiOperationSupport(order = 9)
@Operation(summary = "工序检验保存")
public R saveProCheck(@RequestBody InspectionTask inspectionTask) {
public R saveProCheck(@RequestBody InspectionTaskDetailVO inspectionTask) {
// SaveProCheckDTO下次修改为SaveProCheckDTO实体类接收
return R.status(pdaLoadService.saveProCheck(inspectionTask));
}

@ -6,15 +6,13 @@ import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity;
import org.springblade.desk.device.pojo.entity.RackSetEntity;
import org.springblade.desk.energy.pojo.entity.BsEpciuPatrolInspectionEntity;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.quality.pojo.dto.SaveProCheckDTO;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import java.util.List;
@ -72,7 +70,7 @@ public interface IPdaLoadService extends BaseService<WorkPlan> {
void handleBaoZhuangWorkPlan(List<WorkPlan> wpList, YieldOrder yo);
boolean saveProCheck(InspectionTask inspectionTask);
boolean saveProCheck(InspectionTaskDetailVO inspectionTask);
List<JSONObject> getHangNum(String deviceCode);

@ -1,6 +1,8 @@
package org.springblade.desk.produce.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.servlet.http.HttpServletRequest;
@ -35,10 +37,19 @@ import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.produce.service.*;
import org.springblade.desk.quality.pojo.entity.InspectionItem;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO;
import org.springblade.desk.quality.service.IInspectionItemService;
import org.springblade.desk.quality.service.IInspectionTaskService;
import org.springblade.desk.quality.service.IWorkPlanItemDetailService;
import org.springblade.desk.quality.service.IWorkPlanItemService;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -97,6 +108,10 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private final IWorkPlanItemService workPlanItemService;
private final IInspectionItemService inspectionItemService;
private final IWorkPlanItemDetailService workPlanItemDetailService;
// @Value("${request.device.prefixId}")
private String prefixId;
@ -210,6 +225,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
@Override
public PdaProRelevantVO loadProTestWorkPlan(String cardNo) {
WorkOrder prWorkOrder = this.checkPrWorkOrder(cardNo);
YieldOrder yieldOrder = yieldOrderService.getById(prWorkOrder.getYoId());
WorkPlan prWorkPlan = this.getOne(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getId, prWorkOrder.getWpId()));
List<Long> ppsId = new ArrayList<>(List.of(prWorkPlan.getPpsId()));
WorkPlan frontWorkPlan = this.getById(prWorkPlan.getFrontWpId());
@ -221,6 +237,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
// 将processSets根据主键ID转换为Map
Map<Long, BsProcessSetEntity> processSetMap = processSets.stream().collect(Collectors.toMap(BsProcessSetEntity::getId, processSet -> processSet));
BsTeamSetEntity teamSet = bsTeamSetService.getById(prWorkPlan.getSubsidiaryTeam() != null ? prWorkPlan.getSubsidiaryTeam() : prWorkPlan.getMakeTeam());
List<WorkPlanItemVO> wpItemList = workPlanItemService.listVOByWpIdAndItemName(prWorkPlan.getId(), "厚度检测");
PdaProRelevantVO jsonObj = PdaProRelevantVO.builder()
.cardNo(cardNo)
.woCode(prWorkOrder.getWoCode())
@ -233,7 +250,20 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
.makeQty(prWorkOrder.getMakeQty())
.orders(prWorkPlan.getOrders())
.ppsName(processSetMap.get(prWorkPlan.getPpsId()).getName())
.makeTeam(teamSet.getTsName()).build();
.makeTeam(teamSet.getTsName())
.wpItemList(wpItemList)
.material(part.getMaterial())
.prodIdent(yieldOrder.getProductIdent())
.platingInfo(part.getPlate())
.plateCode(part.getPlateCode())
.configCode(part.getConfigCode())
.build();
// orderInfo.material
// orderInfo.prodIdent
// orderInfo.platingInfo
// orderInfo.plateCode
// orderInfo.configCode
return jsonObj;
}
@ -367,14 +397,52 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveProCheck(InspectionTask inspectionTask) {
public boolean saveProCheck(InspectionTaskDetailVO inspectionTask) {
// InspectionTask inspectionTask = saveProCheckDTO.getInspectionTask();
inspectionTask.setReviewStatus((short) 0);
if (inspectionTask.getId() == null) {
inspectionTask.setCheckUserId(AuthUtil.getUserId());
inspectionTask.setCheckDate(LocalDateTime.now());
}
if(inspectionTask.getWpId() != null){
WorkPlan workPlan = workPlanService.getById(inspectionTask.getWpId());
if(workPlan != null){
WorkOrder workOrder = workOrderService.getById(workPlan.getWoId());
if(workOrder != null){
inspectionTask.setWoId(workOrder.getId());
inspectionTask.setWoCode(workOrder.getWoCode());
}
}
}
boolean save = inspectionTaskService.save(inspectionTask);
if (CollectionUtils.isNotEmpty(inspectionTask.getWpItemList())) {
List<InspectionItem> inspectionItems = inspectionItemService.list();
for (WorkPlanItemVO workPlanItemVO : inspectionTask.getWpItemList()) {
WorkPlanItem workPlanItem = new WorkPlanItem();
BeanUtils.copyProperties(workPlanItemVO, workPlanItem);
workPlanItem.setTaskId(inspectionTask.getId());
// 检验项目基础数据中项目名称匹配
for (InspectionItem inspectionItem : inspectionItems) {
if (inspectionItem.getName().equals(workPlanItem.getItemName())) {
workPlanItem.setItemId(inspectionItem.getId());
break;
}
}
workPlanItemService.save(workPlanItem);
if (CollectionUtils.isNotEmpty(workPlanItemVO.getWpItemDetailList())) {
for (WorkPlanItemDetailVO wpItemDetailVO : workPlanItemVO.getWpItemDetailList()) {
WorkPlanItemDetail wpItemDetail = new WorkPlanItemDetail();
BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail);
wpItemDetail.setWorkPlanItemId(workPlanItem.getId());
workPlanItemDetailService.save(wpItemDetail);
}
}
}
}
// 不合格生成生产处置单
if (InspectionTask.CHECK_RESULT_NO.equals(inspectionTask.getCheckResult())) {
inspectionTaskService.addRsSheet(inspectionTask.getId());
}
// 保存镀后检验数据
// if (save) {
// WorkPlanItemVO workPlanItemVO = saveProCheckDTO.getWorkPlanItemVO();
@ -450,7 +518,7 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
}
@Override
public Object getInspectionByEcCode(String code,Boolean flag, HttpServletRequest request) {
public Object getInspectionByEcCode(String code, Boolean flag, HttpServletRequest request) {
Long userId = AuthUtil.getUserId();
if (StringUtils.isBlank(code) || flag == null) {
throw new RuntimeException("pda.dataFormat.incorrect", null);

@ -20,6 +20,7 @@
<result column="GAUGE_VALUE8" property="gaugeValue8"/>
<result column="MT_ID" property="mtId"/>
<result column="ACT_MT_ID" property="actMtId"/>
<result column="SEQ_NO" property="seqNo"/>
</resultMap>
<select id="selectWorkPlanItemDetailPage" resultMap="workPlanItemDetailResultMap">

@ -24,6 +24,10 @@
<result column="STANDARD_ID" property="standardId"/>
<result column="TEMPLATE_ID" property="templateId"/>
<result column="SPECIAL_TYPE" property="specialType"/>
<result column="COATING_TYPE" property="coatingType"/>
<result column="SOURCE_TYPE" property="sourceType"/>
<result column="SOURCE_WO_CODE" property="sourceWoCode"/>
<result column="SOURCE_ORDERS" property="sourceOrders"/>
</resultMap>
<select id="selectWorkPlanItemPage" resultMap="workPlanItemResultMap">

@ -136,4 +136,6 @@ public interface IInspectionTaskService extends BaseService<InspectionTask> {
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);
void addRsSheet(Long id);
}

@ -63,4 +63,6 @@ public interface IWorkPlanItemService extends BaseService<WorkPlanItem> {
List<WorkPlanItem> listByWoId(Long woId);
List<WorkPlanItemVO> listByWoIdNotNG(Long woId);
List<WorkPlanItemVO> listVOByWpIdAndItemName(Long wpId, String itemName);
}

@ -2890,6 +2890,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
return obj;
}
@Override
public void addRsSheet(Long id) {
InspectionTask task = getById(id);
if (InspectionTaskConst.CHECK_RESULT_NG.equals(task.getCheckResult())) {
@ -2913,13 +2914,15 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
rs.setWoCode(task.getWoCode());
// task id
rs.setTaskId(id);
rs.setPoorReason(task.getPoorReason());
rs.setPoorDesc(task.getPoorMemo());
rsSubService.save(rs);
//
// todo: fake data
// rs.setUpCode("UPT" + id);
// rs.setRsCode("RS" + rs.getId());
// todo:fake data
rsSubService.updateById(rs);
// rsSubService.updateById(rs);
}
}
}

@ -123,6 +123,9 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
}
}
vo.setCoatingTypeValue(vo.getCoatingTypeValue());
vo.setSourceTypeValue(vo.getSourceTypeValue());
// if (vo.getItem() != null && vo.getItem().getSpecialType() != null) {
// if (InspectionItemConst.SPECIAL_TYPE_THICK.equals(vo.getItem().getSpecialType()) ||
// InspectionItemConst.SPECIAL_TYPE_HARD.equals(vo.getItem().getSpecialType()) ||
@ -248,4 +251,18 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
public List<WorkPlanItemVO> listByWoIdNotNG(Long woId) {
return baseMapper.listByWoIdNotNG(woId);
}
@Override
public List<WorkPlanItemVO> listVOByWpIdAndItemName(Long wpId, String itemName){
LambdaQueryWrapper<WorkPlanItem> qw = Wrappers.lambdaQuery();
qw.eq(WorkPlanItem::getWpId, wpId);
qw.eq(WorkPlanItem::getItemName, itemName);
qw.orderByAsc(WorkPlanItem::getItemCode);
List<WorkPlanItem> list = list(qw);
List<WorkPlanItemVO> listVO = WorkPlanItemWrapper.build().listVO(list);
for (WorkPlanItemVO vo : listVO) {
setVOValue(vo);
}
return listVO;
}
}

Loading…
Cancel
Save