生产质量检验 生产处置单页面查询

liweidong
pangyang 1 month ago
parent 53fd8c9ac9
commit ee68008b43
  1. 1
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/RaiseHand.java
  2. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  3. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitVO.java
  4. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetRedoScrapVO.java
  5. 90
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java
  6. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java
  7. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml
  8. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.java
  9. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  10. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IReviewSheetService.java
  11. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  12. 55
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java

@ -33,6 +33,7 @@ public class RaiseHand extends BaseEntity {
*/
@Schema(description = "提出人")
private Long reportUserId;
private String reportUserName;
/**
* 岗位
*/

@ -417,4 +417,10 @@ public class ReviewSheet extends BaseEntity {
*/
@Schema(description = "提请审批时间")
private LocalDateTime toReviewDate;
private Long toReviewUserId;
private String toReviewUserName;
//当前工序id
private Long ppsId;
}

@ -38,5 +38,13 @@ public class ReviewSheetInitVO extends ReviewSheet {
private String reviewStatusName;
@Schema(description = "审理[用户]真名")
private String reviewUserRealName;
@Schema(description = "发现工序")
private String findPrecessName;
@Schema(description = "[物料]名称")
private String materialName;
@Schema(description = "[物料]编号")
private String materialCode;
private Long ppsId;
}

@ -24,4 +24,6 @@ public class ReviewSheetRedoScrapVO extends ReviewSheet {
private String oemName;
@Schema(description = "镀前价格")
private String priceBeforePlate;
@Schema(description = "物料名称")
private String partName;
}

@ -3,6 +3,7 @@
*/
package org.springblade.desk.quality.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@ -26,16 +27,23 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.device.service.IEquipmentService;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.excel.IotThicknessExcel;
import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springblade.desk.quality.pojo.entity.IotThickness;
import org.springblade.desk.quality.pojo.vo.IotThicknessVO;
import org.springblade.desk.quality.service.IIotThicknessService;
import org.springblade.desk.quality.wrapper.IotThicknessWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -57,7 +65,8 @@ public class IotThicknessController extends BladeController {
@Resource
private IIotThicknessService service;
@Autowired
private IEquipmentService equipmentService;
/**
* [IOT厚度] 详情
*/
@ -109,6 +118,85 @@ public class IotThicknessController extends BladeController {
}
@GetMapping(value = "/queryChyData")
public R queryChyData(@RequestBody JSONObject data) throws Exception {
InetAddress inetAddress = InetAddress.getLocalHost();
String ip = inetAddress.getHostAddress();
ip = "192.168.134.115";
QueryWrapper<EquipmentEntity> qw = new QueryWrapper<>();
qw.eq("DEVICE_IP",ip);
EquipmentEntity card = equipmentService.getOne(qw);
//根据ip查询设备
if (card == null) {
return R.fail(-2, "ip未找到对应的测量仪设备!" + ip);
}
String deviceCode = card.getDeviceCode();
log.info("找到设备,设备编码: {}", deviceCode);
Date startTime = data.getDate("startTime");
Date endTime = data.getDate("endTime");
Boolean allData = data.getBoolean("allData");
List<IotThickness> qcHardnessIotList = new ArrayList<>();
if (allData) {
// sb.append(" and not_use = 0");
QueryWrapper<IotThickness> qwhard = new QueryWrapper<>();
qwhard.eq("EQUIPMENT_CODE",card.getDeviceCode());
qwhard.eq("FLAG_READ",0);
if(startTime != null && endTime != null){
qwhard.between("CREATE_TIME", startTime, endTime);
}
qwhard.orderByDesc("CREATE_TIME");
qcHardnessIotList = service.list(qwhard);
}else {
// sb.append(" and not_use = 1");
QueryWrapper<IotThickness> qwhard = new QueryWrapper<>();
qwhard.eq("EQUIPMENT_CODE",card.getDeviceCode());
qwhard.eq("FLAG_READ",1);
if(startTime != null && endTime != null){
qwhard.between("CREATE_TIME", startTime, endTime);
}
qwhard.orderByDesc("CREATE_TIME");
qcHardnessIotList = service.list(qwhard);
}
List<JSONObject> resultList = new ArrayList<>();
// 记录查询到的数据数量
if (qcHardnessIotList != null) {
log.info("查询到 {} 条硬度数据", qcHardnessIotList.size());
} else {
log.info("未查询到硬度数据");
}
boolean hasNewData = qcHardnessIotList != null && !qcHardnessIotList.isEmpty();
if (hasNewData) {
log.info("设备[{}]查询到 {} 条新数据", deviceCode, qcHardnessIotList.size());
for (IotThickness iot : qcHardnessIotList) {
if(null != iot.getData()){
resultList.add(JSONObject.parseObject(iot.getData()));
}
if (allData) {
iot.setFlagRead(1);
}else{
iot.setFlagRead(2);
}
service.updateById(iot);
}
// 查到数据后,重置标记(返回null,前端下次请求不带标记)
// timeMarker = null;
} else {
log.info("设备[{}]未查询到新数据", deviceCode);
}
return R.data(resultList);
}
/**
* [IOT厚度] page分页
*/

@ -86,6 +86,18 @@ public class ReviewSheetController extends BladeController {
return R.data(detaiinit);
}
@GetMapping("/getByCardNo")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入ReviewSheet Obj")
public R<ReviewSheetDetailVO> getByCardNo(ReviewSheetDetailVO reviewSheet) {
ReviewSheetDetailVO list = service.getByCardNo(reviewSheet.getId(),reviewSheet.getCardNo());
return R.data(list);
}
/**
* [生产处置单] list分页
*/

@ -80,7 +80,7 @@
--ts.TS_NAME,oem.OC_NAME,
yo.PRODUCT_TYPE as prodType,yo.PART_NAME as prodName,yo.PLATE as platingInfo,
yo.USE_DEPT as needDeptName,wo.batch_no as batchNo,wo.batch_no as poBatchNo,
yo.USE_DEPT as needDeptName,wo.batch_no as batchNo,wo.batch_no as poBatchNo,ps.NAME as processName,
ps.NAME as currentProcessName,ps01.NAME as nextProcessName,wo.MAKE_QTY as poQty,
yo.YP_AREA * wo.MAKE_QTY as areaTotal,yo.YP_AREA as area,yo.PRODUCT_IDENT as prodIdent,
t.*,wo.WO_CODE as woCode,

@ -48,6 +48,11 @@ public interface ReviewSheetMapper extends BaseMapper<ReviewSheet> {
ReviewSheetInitVO getById(Long id);
// ReviewSheetInitVO getByCardNo(String woCode);
List<ReviewSheetInitVO> getByCardNo(String woCode,Long ppsId);
List<ReviewSheetRedoScrapVO> listReviewRedoScrap(IPage<ReviewSheetRedoScrapVO> page,
@Param("q") ReviewSheetRedoScrapSearch search);

@ -68,7 +68,8 @@
<select id="getById"
resultType="org.springblade.desk.quality.pojo.vo.ReviewSheetInitVO">
SELECT rs.*,
par.PRODUCT_TYPE as prodTypeName,yo.PART_NAME as prodName,yo.PLATE as platingInfo,ps.NAME as findPrecessName,
par.PRODUCT_TYPE as prodTypeName,yo.PART_NAME as prodName,yo.PART_NAME as materialName,yo.PART_CODE as materialCode,
yo.PLATE as platingInfo,ps.NAME as findPrecessName,
yo.USE_DEPT as needDeptName,yo.PRODUCT_IDENT as prodIdent,wo.MAKE_QTY as poQty,wo.MAKE_QTY as totalNum,
wo.WO_CODE AS woCode,wo.CARD_NO AS cardNo,yo.PART_CODE AS prodCode,wo.batch_no as batchNo,yo.YO_CODE as docCode
FROM QA_REVIEW_SHEET rs
@ -98,6 +99,19 @@
</select>
<select id="getByCardNo"
resultType="org.springblade.desk.quality.pojo.vo.ReviewSheetInitVO">
SELECT
wp.id as wpId,wp.PPS_ID as ppsId
FROM MES_WORK_ORDER wo
LEFT JOIN MES_WORK_PLAN wp ON wp.WO_ID = wo.ID
WHERE (
wo.IS_DELETED = 0 and wo.CARD_NO = #{woCode} and wp.PPS_ID = #{ppsId}
)
</select>
<select id="listInit"
@ -190,12 +204,16 @@
<select id="listReviewRedoScrap"
resultType="org.springblade.desk.quality.pojo.vo.ReviewSheetRedoScrapVO">
SELECT rs.*
SELECT rs.*,yo.PART_CODE AS partCode,yo.PART_NAME AS partName,
wo.MAKE_QTY as poQty,oem.CODE AS oemCode,oem.OC_NAME AS oemName,
wo.WO_CODE AS woCode,wo.CARD_NO AS cardNo,wo.batch_no as batchNo
FROM QA_REVIEW_SHEET rs
-- 车间作业计划 wp
LEFT JOIN MES_WORK_PLAN wp ON rs.WP_ID = wp.ID
-- 车间订单 wo
LEFT JOIN MES_WORK_ORDER wo ON rs.WO_ID = wo.ID
-- 生产订单 yo
LEFT JOIN MES_YIELD_ORDER yo ON wo.YO_ID = yo.ID
-- 外协厂商 oem
LEFT JOIN BS_OEM oem ON wp.OC_ID = oem.ID
WHERE (

@ -33,6 +33,7 @@ public interface IReviewSheetService extends EnBaseService<ReviewSheet> {
* @return IPage<ReviewSheetVO>
*/
IPage<ReviewSheetDetailVO> selectReviewSheetPage(IPage<ReviewSheetDetailVO> page, ReviewSheetDetailVO reviewSheet);
ReviewSheetDetailVO getByCardNo(Long id,String woCode);
/**
* 导出数据

@ -26,6 +26,9 @@ import org.springblade.desk.basic.constant.BaseRequest;
import org.springblade.desk.basic.constant.BaseValue;
import org.springblade.desk.basic.util.IdUtil;
import org.springblade.desk.basic.util.StatusCountMap;
import org.springblade.desk.produce.mapper.WorkPlanMapper;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.service.IWorkPlanService;
import org.springblade.desk.quality.constant.InspectionItemConst;
import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.constant.ReviewSheetConst;
@ -39,6 +42,7 @@ import org.springblade.desk.quality.service.*;
import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -65,6 +69,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
private IWorkPlanItemService wpItemService;
@Resource
private IWorkPlanItemDetailService wpItemDetailService;
// @Lazy
// @Resource
// private IWorkPlanService workPlanService;
@Resource
private IReviewSheetSubService rsSubService;
@Resource
@ -76,6 +84,8 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
@Resource
private IRemindMsgService service;
@Resource
private WorkPlanMapper workPlanMapper;
@Override
public InspectionTaskListVO detailById(InspectionTask inspectionTask) {
@ -453,6 +463,13 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// rs.setRsCode("RS" + System.currentTimeMillis());
rs.setStatus(ReviewSheetConst.STATUS.S_INIT);
rs.setReviewStatus(ReviewSheetConst.ERP_REVIEW_S.REVIEW_STATUS_INIT);
WorkPlan plan = workPlanMapper.selectById(task.getWpId());
// WorkPlan plan = workPlanService.getById(task.getWpId());
if(plan != null){
rs.setPpsId(plan.getPpsId());
}
// wp id
rs.setWpId(task.getWpId());
// wo id

@ -7,6 +7,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
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.Wrappers;
import jakarta.annotation.Resource;
@ -21,10 +22,13 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.constant.BaseCol;
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.produce.pojo.entity.WorkPlan;
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;
@ -41,6 +45,7 @@ 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.wrapper.ReviewSheetDetailWrapper;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient;
@ -48,6 +53,7 @@ import org.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
@ -83,6 +89,52 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet));
}
@Resource
IWorkPlanService workPlanService;
@Override
public ReviewSheetDetailVO getByCardNo(Long id,String woCode) {
ReviewSheet vo = baseMapper.getById(id);
Long ppsId = vo.getPpsId();
List<ReviewSheetInitVO> listplan = baseMapper.getByCardNo(woCode,ppsId);
ReviewSheetDetailVO detaiinit = new ReviewSheetDetailVO() ;
// Long ppsId = vo.getPpsId();
// List<ReviewSheetDetailVO> detailVOList = new ArrayList<>();
// QueryWrapper<WorkPlan> qwplan = new QueryWrapper<>();
// qwplan.eq("PPS_ID", ppsId);
// List<WorkPlan> listplan = workPlanService.list(qwplan);
if(listplan != null && listplan.size() > 0){
List<Long> ids = listplan.stream().map(ReviewSheetInitVO::getWpId).toList();
QueryWrapper<ReviewSheet> qw = new QueryWrapper<>();
qw.in("WP_ID", ids);
qw.ne(BaseCol.ID, id);
qw.orderByDesc("CREATE_TIME");
List<ReviewSheet> list = list(qw);
if(list != null && list.size() > 0){
ReviewSheet rs = list.get(0);
ReviewSheetInitVO detailVO = baseMapper.getById( rs.getId());
detaiinit = ReviewSheetDetailWrapper.build().entityVO(detailVO);
setDetailVOValue(detaiinit);
return detaiinit;
}
// for(ReviewSheet rs : list){
// ReviewSheetInitVO detailVO = baseMapper.getById( rs.getId());
// ReviewSheetDetailVO detaiinit = ReviewSheetDetailWrapper.build().entityVO(detailVO);
// setDetailVOValue(detaiinit);
//// detailVOList.add(detaiinit);
// }
}
return null;
}
@Override
public List<ReviewSheetExcel> exportReviewSheet(Wrapper<ReviewSheet> queryWrapper) {
List<ReviewSheetExcel> reviewSheetList = baseMapper.exportReviewSheet(queryWrapper);
@ -303,6 +355,9 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setReviewStatus(ReviewSheetConst.ERP_REVIEW_S.REVIEW_STATUS_INIT);
}
}
rs.setToReviewDate(rs.getToReviewDate() == null ? LocalDateTime.now() : rs.getToReviewDate());
rs.setToReviewUserId(rs.getToReviewUserId() == null ? AuthUtil.getUserId() : rs.getToReviewUserId());
rs.setToReviewUserName(rs.getToReviewUserName() == null ? AuthUtil.getUser().getNickName() : rs.getToReviewUserName());
// 保存标记位
rs.setHasSaved(BaseValue.YES);
// 处置单

Loading…
Cancel
Save