质量模块。

develop-QA
Tom Li 3 months ago
parent 9a799ba08a
commit e0e672ccce
  1. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewFault.java
  2. 5
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  3. 14
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoScrapSearch.java
  4. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java
  5. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetHisWOVO.java
  6. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetRedoScrapVO.java
  7. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/SupplyInspectionVO.java
  8. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/constant/BaseRequest.java
  9. 60
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java
  10. 46
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java
  11. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  12. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  13. 43
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java

@ -4,6 +4,8 @@
package org.springblade.desk.quality.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -60,21 +62,25 @@ public class ReviewFault extends BaseEntity {
* [生产处置单]id
*/
@Schema(description = "[生产处置单]id")
@JsonSerialize(using = ToStringSerializer.class)
private Long reviewSheetId;
/**
* 故障类别[缺陷]id
*/
@Schema(description = "故障类别[缺陷]id")
@JsonSerialize(using = ToStringSerializer.class)
private Long ngType2Id;
/**
* 问题大类[缺陷]id
*/
@Schema(description = "问题大类[缺陷]id")
@JsonSerialize(using = ToStringSerializer.class)
private Long ngType3Id;
/**
* 问题小类[缺陷]id
*/
@Schema(description = "问题小类[缺陷]id")
@JsonSerialize(using = ToStringSerializer.class)
private Long ngType4Id;
/**
* 比例

@ -395,4 +395,9 @@ public class ReviewSheet extends BaseEntity {
*/
@Schema(description = "不良描述")
private String poorDesc;
/**
* 复制引用[车间订单]id
*/
@Schema(description = "复制引用[车间订单]id")
private Long refWoId;
}

@ -12,13 +12,9 @@ import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@EqualsAndHashCode(callSuper = false)
public class ReviewSheetRedoScrapSearch extends ReviewSheet {
@Schema(description = "业务类型-[1]:内部审理返修;[2]:内部审理报废;")
private Integer bizType;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "创建时间-开始")
@Schema(description = "创建提请时间-开始")
private String createTimeStart;
@Schema(description = "创建时间-结束")
@Schema(description = "创建提请时间-结束")
private String createTimeEnd;
@Schema(description = "提请人员[用户]真名")
private String createUserRealName;
@ -28,6 +24,8 @@ public class ReviewSheetRedoScrapSearch extends ReviewSheet {
private String oemCode;
@Schema(description = "供应商名称")
private String oemName;
@Schema(description = "生产标识")
private String prodIdent;
@Schema(description = "审理时间-开始")
private String reviewTimeStart;
@Schema(description = "审理时间-结束")
private String reviewTimeEnd;
}

@ -24,4 +24,10 @@ public class ReviewSheetSelfSearch extends ReviewSheet {
private String reviewTimeStart;
@Schema(description = "审理时间-结束")
private String reviewTimeEnd;
@Schema(description = "物料名称")
private String materialName;
@Schema(description = "需求数量")
private Long needQty;
@Schema(description = "故障原因")
private String faultReason;
}

@ -12,11 +12,11 @@ import lombok.EqualsAndHashCode;
public class ReviewSheetHisWOVO {
@Schema(description = "车间订单id")
private Long woId = 1000L;
private Long woId;
@Schema(description = "车间订单编码")
private String woCode = "CJ1000";
private String woCode;
@Schema(description = "车间订单下拉显示信息")
private String woInfo = "CJ1000";
private String woInfo;
}

@ -17,9 +17,7 @@ public class ReviewSheetRedoScrapVO extends ReviewSheet {
@Schema(description = "审理[用户]真名")
private String reviewUserRealName;
@Schema(description = "打回[用户]真名")
private String backUserRealName;
@Schema(description = "车间订单号")
private String woCode;
private String backUserRealName;
@Schema(description = "供应商代码")
private String oemCode;
@Schema(description = "供应商名称")

@ -21,6 +21,4 @@ public class SupplyInspectionVO extends SupplyInspection {
@Serial
private static final long serialVersionUID = 1L;
}

@ -2,6 +2,8 @@ package org.springblade.desk.basic.constant;
public interface BaseRequest {
String STATUS = "status";
String ID = "id";
/**
* 创建[用户]-真名

@ -25,24 +25,38 @@ public interface ReviewSheetConst {
Integer T_ERP = 3;
}
interface ERP {
interface STATUS {
/**
* 新建
* 新建 内部 ERP 都用
*/
Integer S_NEW = 1;
/**
* 打回
* 待审理 内部用 ERP不用
*/
Integer S_JUDGE = 2;
/**
* 打回 ERP用
*/
Integer S_REPULSE = 3;
/**
* 审理中
* 审理中 ERP用
*/
Integer S_HEAR = 6;
/**
* 审理完成
* 审理完成 内部 ERP 都用
*/
Integer S_COMPLETE = 10;
/**
* 待完成 内部用 ERP不用
*/
Integer S_TODO = 11;
}
interface ERP_REVIEW_S {
/**
* 初始化
*/
Integer REVIEW_STATUS_0 = 0;
/**
* 让步接收
*/
@ -73,24 +87,24 @@ public interface ReviewSheetConst {
Integer REVIEW_STATUS_15 = 15;
}
interface SELF {
/**
* 编制中
*/
Integer S_NEW = 1;
/**
* 待审理
*/
Integer S_JUDGE = 2;
/**
* 待完成
*/
Integer S_TODO = 3;
/**
* 已完成
*/
Integer S_FINISH = 4;
}
// interface SELF {
// /**
// * 编制中
// */
// Integer S_NEW = 1;
// /**
// * 待审理
// */
// Integer S_JUDGE = 2;
// /**
// * 待完成
// */
// Integer S_TODO = 3;
// /**
// * 已完成
// */
// Integer S_FINISH = 4;
// }
/**
* 零件模式

@ -25,6 +25,7 @@ import org.springblade.core.secure.BladeUser;
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.constant.BaseRequest;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst;
import org.springblade.desk.quality.constant.ReviewSheetConst;
@ -116,7 +117,7 @@ public class ReviewSheetController extends BladeController {
public R<IPage<ReviewSheetInitVO>> listInit(@Parameter() @RequestBody
ReviewSheetInitSearch search, Query query) {
Map demo = new HashMap();
demo.put("status", ReviewSheetConst.S_INIT);
demo.put(BaseRequest.STATUS, ReviewSheetConst.S_INIT);
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetInitVO> pagesVO = ReviewSheetInitWrapper.build().pageVO(pages);
@ -126,6 +127,10 @@ public class ReviewSheetController extends BladeController {
// .stream()
// .peek(service::setVOValue)
// .collect(Collectors.toList());
for (ReviewSheetInitVO initVO : pagesVO.getRecords()) {
initVO.setDocCode("" + initVO.getId());
}
return R.data(pagesVO);
}
@ -137,10 +142,12 @@ public class ReviewSheetController extends BladeController {
@Operation(summary = "返工报废审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetRedoScrapVO>> listReviewRedoScrap(@Parameter() @RequestBody
ReviewSheetRedoScrapSearch search, Query query) {
// todo: mapper
Map demo = new HashMap();
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
qw.eq(ReviewSheet.COL_BIZ_TYPE, search.getBizType());
qw.eq(ReviewSheet.COL_REVIEW_STATUS, ReviewSheetConst.SELF.S_JUDGE);
Integer bizType = search.getBizType();
qw.eq((bizType != null && bizType != 0), ReviewSheet.COL_BIZ_TYPE, search.getBizType());
// qw.eq(ReviewSheet.COL_REVIEW_STATUS, ReviewSheetConst.SELF.S_JUDGE);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetRedoScrapVO> pagesVO = ReviewSheetRedoScrapWrapper.build().pageVO(pages);
pagesVO.getRecords()
@ -160,7 +167,7 @@ public class ReviewSheetController extends BladeController {
ReviewSheetSelfSearch search, Query query) {
Map demo = new HashMap();
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
qw.in("bizType", ReviewSheetConst.BizType.T_SELF_REDO, ReviewSheetConst.BizType.T_SELF_SCRAP);
qw.in(ReviewSheet.COL_BIZ_TYPE, ReviewSheetConst.BizType.T_SELF_REDO, ReviewSheetConst.BizType.T_SELF_SCRAP);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetSelfVO> pagesVO = ReviewSheetSelfWrapper.build().pageVO(pages);
pagesVO.getRecords()
@ -179,8 +186,9 @@ public class ReviewSheetController extends BladeController {
public R<IPage<ReviewSheetErpVO>> listErp(@Parameter() @RequestBody ReviewSheetErpSearch search,
Query query) {
Map demo = new HashMap();
// todo: mapper
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
qw.eq("bizType", ReviewSheetConst.BizType.T_ERP);
qw.eq(ReviewSheet.COL_BIZ_TYPE, ReviewSheetConst.BizType.T_ERP);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetErpVO> pagesVO = ReviewSheetErpWrapper.build().pageVO(pages);
pagesVO.getRecords()
@ -190,14 +198,32 @@ public class ReviewSheetController extends BladeController {
return R.data(pagesVO);
}
/**
* SELECT
* *
* FROM
* "QA_REVIEW_SHEET"
* ORDER BY
* WO_ID ASC
*
* @param search
* @param query
* @return
*/
@PostMapping("/getHisWOList")
@ApiOperationSupport(order = 20)
@Operation(summary = "历史已经完成的车间订单", description = "Obj")
public R<List<ReviewSheetHisWOVO>> getHisWOList(@Parameter() @RequestBody ReviewSheetErpSearch search,
Query query) {
Query query) {
List<ReviewSheetHisWOVO> list = new ArrayList<>();
list.add(new ReviewSheetHisWOVO());
list.add(new ReviewSheetHisWOVO());
ReviewSheetHisWOVO vo1 = new ReviewSheetHisWOVO();
vo1.setWoId(1000L);
vo1.setWoInfo("WO" + "1000L");
ReviewSheetHisWOVO vo2 = new ReviewSheetHisWOVO();
vo2.setWoId(1001L);
vo2.setWoInfo("WO" + "1001L");
list.add(vo1);
list.add(vo2);
return R.data(list);
}
@ -208,9 +234,7 @@ public class ReviewSheetController extends BladeController {
@Parameter(description = "车间订单Id") @RequestParam Long woId) {
// todo:
// 找到的历史审理单
Long rsId = 100L;
return R.success("");
return service.sameCopyFromHiWO(id, woId);
}
/**

@ -48,6 +48,7 @@
<result column="SELF_REVIEW_FLAG" property="selfReviewFlag"/>
<result column="POOR_REASON" property="poorReason"/>
<result column="POOR_DESC" property="poorDesc"/>
<result column="REF_WO_ID" property="refWoId"/>
</resultMap>
<select id="selectReviewSheetPage" resultMap="reviewSheetResultMap">

@ -103,7 +103,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
@Override
public void setListVOValue(InspectionTaskListVO vo) {
vo.setMainProcessingUnit(vo.getId() + "");
}
@Override
@ -251,7 +251,13 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
@Override
public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) {
return page.setRecords(baseMapper.listSearch(page, search));
List<InspectionTaskListVO> listVO = baseMapper.listSearch(page, search);
//
for (InspectionTaskListVO oneVO : listVO) {
refreshStatusAndQty(oneVO.getId());
setListVOValue(oneVO);
}
return page.setRecords(listVO);
}
@Override

@ -89,7 +89,8 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
@Override
public void setRedoScrapVOValue(ReviewSheetRedoScrapVO vo) {
vo.setRsCode("" + vo.getId());
vo.setWoCode("" + vo.getId());
}
@Override
@ -125,7 +126,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
}
LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery();
qw.eq(ReviewSheet::getWcId, wcId);
qw.in(ReviewSheet::getStatus, ReviewSheetConst.ERP.S_NEW, ReviewSheetConst.ERP.S_HEAR);
qw.in(ReviewSheet::getStatus, ReviewSheetConst.STATUS.S_NEW, ReviewSheetConst.STATUS.S_HEAR);
qw.orderByAsc(ReviewSheet::getRsCode);
return baseMapper.selectList(qw);
}
@ -137,7 +138,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
}
LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery();
qw.eq(ReviewSheet::getWpId, wpId);
qw.eq(ReviewSheet::getStatus, ReviewSheetConst.ERP.S_HEAR);
qw.eq(ReviewSheet::getStatus, ReviewSheetConst.STATUS.S_HEAR);
return baseMapper.selectOne(qw);
}
@ -167,7 +168,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setMemo(memo);
rs.setReviewDate(LocalDateTime.now());
rs.setReviewStatus((int) resultStatus); // todo:
rs.setStatus(ReviewSheetConst.ERP.S_COMPLETE);
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
// 装配模式
if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) {
@ -228,21 +229,21 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
ReviewSheetConst.BizType.T_SELF_SCRAP.equals(rs.getBizType())
) {
if (ReviewSheetConst.SUBMIT_TYPE.T_SELF.equals(submitType)) { // 提交
rs.setStatus(ReviewSheetConst.SELF.S_JUDGE);
rs.setStatus(ReviewSheetConst.STATUS.S_JUDGE);
} else if (ReviewSheetConst.SUBMIT_TYPE.T_SELF_TEMP.equals(submitType)) { // 暂存
rs.setStatus(ReviewSheetConst.STATUS.S_NEW);
}
}
// ERP
if (ReviewSheetConst.BizType.T_ERP.equals(rs.getBizType())) {
if (ReviewSheetConst.SUBMIT_TYPE.T_ERP_TEMP.equals(submitType)) { // 暂存
rs.setStatus(ReviewSheetConst.STATUS.S_NEW);
}
if (ReviewSheetConst.SUBMIT_TYPE.T_ERP_QA.equals(submitType) ||
ReviewSheetConst.SUBMIT_TYPE.T_ERP_CRAFT.equals(submitType) ||
ReviewSheetConst.SUBMIT_TYPE.T_ERP_DES.equals(submitType) ||
ReviewSheetConst.SUBMIT_TYPE.T_ERP_DES_CHANGE.equals(submitType)) { // 外部提交
rs.setStatus(ReviewSheetConst.STATUS.S_HEAR);
}
}
// 处置单
@ -260,14 +261,22 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
ReviewSheet rs = getById(id);
rs.setSelfReviewFlag(selfReviewFlag);
rs.setMemo(memo);
rs.setReviewStatus(ReviewSheetConst.SELF.S_FINISH);
rs.setReviewStatus(ReviewSheetConst.STATUS.S_COMPLETE);
updateById(rs);
Integer bizType = rs.getBizType();
if (ReviewSheetConst.BizType.T_SELF_REDO.equals(bizType)) { // 返工 todo
} else if (ReviewSheetConst.BizType.T_SELF_SCRAP.equals(bizType)) { // 报废 todo
}
return R.success();
}
@Override
public R sameCopyFromHiWO(Long id, Long woId) {
// todo:
ReviewSheet rsS = getOneByWoId(woId);
// 目标
ReviewSheet rsT = getById(id);
if (rsS == null || rsT == null) {
return R.fail("");
@ -275,14 +284,14 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
//
faultService.deleteByReviewSheetId(rsT.getId());
dutyService.deleteByReviewSheetId(rsS.getId());
//
// 问题故障 list
List<ReviewFault> listF = faultService.listByReviewSheetId(rsS.getId());
for (ReviewFault oneF : listF) {
oneF.setId(null);
oneF.setReviewSheetId(rsT.getId());
faultService.saveOrUpdate(oneF);
}
//
// 责任零件 list
List<ReviewDuty> listD = dutyService.listByReviewSheetId(rsT.getId());
for (ReviewDuty oneD : listD) {
oneD.setId(null);
@ -291,8 +300,16 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
}
// 更新rs
BeanUtil.copyProperties(rsS, rsT, BaseRequest.ID);
updateById(rsT);
return R.success();
// 目标生产处置单 字段处理
// 当前状态
rsT.setStatus(ReviewSheetConst.S_INIT);
rsT.setWoCode("");
rsT.setWoId(null);
// 审理状态
rsT.setReviewStatus(ReviewSheetConst.ERP_REVIEW_S.REVIEW_STATUS_0);
// 引用的 车间订单id
rsT.setRefWoId(woId);
return R.status(updateById(rsT));
}
@Override

Loading…
Cancel
Save