质量模块 ,基础数据班组。

develop-QA
Tom Li 3 months ago
parent 2ec97a38d6
commit fcdaee413a
  1. 24
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/dto/RelTeamSetUserDTO.java
  2. 49
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/RelTeamSetUser.java
  3. 20
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/TeamSet.java
  4. 24
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/RelTeamSetUserVO.java
  5. 15
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/TeamSetVO.java
  6. 15
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/vo/UrlVO.java
  7. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  8. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetErpSearch.java
  9. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java
  10. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetRedoSearch.java
  11. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetScrapSearch.java
  12. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetSelfSearch.java
  13. 27
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskSubPartVO.java
  14. 7
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewFaultVO.java
  15. 35
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetErpListVO.java
  16. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitListVO.java
  17. 24
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetRedoListVO.java
  18. 29
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetScrapListVO.java
  19. 41
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetSelfListVO.java
  20. 18
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetVO.java
  21. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemDetailVO.java
  22. 237
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/RelTeamSetUserController.java
  23. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java
  24. 45
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/excel/RelTeamSetUserExcel.java
  25. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/RelTeamSetUserMapper.java
  26. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/RelTeamSetUserMapper.xml
  27. 44
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IRelTeamSetUserService.java
  28. 58
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/ITeamSetService.java
  29. 61
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/RelTeamSetUserServiceImpl.java
  30. 64
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/TeamSetServiceImpl.java
  31. 36
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/wrapper/RelTeamSetUserWrapper.java
  32. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java
  33. 35
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java
  34. 125
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java
  35. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IReviewDutyService.java
  36. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IReviewFaultService.java
  37. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IReviewSheetService.java
  38. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  39. 17
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewDutyServiceImpl.java
  40. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewFaultServiceImpl.java
  41. 54
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java
  42. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java
  43. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ReviewSheetErpListWrapper.java
  44. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ReviewSheetInitListWrapper.java
  45. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ReviewSheetRedoListWrapper.java
  46. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ReviewSheetScrapListWrapper.java
  47. 37
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/wrapper/ReviewSheetSelfListWrapper.java

@ -0,0 +1,24 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import java.io.Serial;
/**
* [班组用户关联] 数据传输对象实体类
*
* @author Tom Shuo
* @since 2026-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RelTeamSetUserDTO extends RelTeamSetUser {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,49 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* [班组用户关联] 实体类
*
* @author Tom Shuo
* @since 2026-01-13
*/
@Data
@TableName("BA_REL_TEAM_SET_USER")
@Schema(description = "RelTeamSetUser Entity对象")
@EqualsAndHashCode(callSuper = true)
public class RelTeamSetUser extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* [班组]id
*/
public static final String COL_TEAM_SET_ID = "TEAM_SET_ID";
/**
* [用户]id
*/
public static final String COL_USER_ID = "USER_ID";
/**
* [班组]id
*/
@Schema(description = "[班组]id")
private Long teamSetId;
/**
* [用户]id
*/
@Schema(description = "[用户]id")
private Long userId;
}

@ -40,7 +40,7 @@ public class TeamSet extends BaseEntity {
*/ */
public static final String COL_DISPATCHER = "DISPATCHER"; public static final String COL_DISPATCHER = "DISPATCHER";
/** /**
* 班组长;外键人员 * 班组长[用户]id
*/ */
public static final String COL_TEAM_LEADER = "TEAM_LEADER"; public static final String COL_TEAM_LEADER = "TEAM_LEADER";
/** /**
@ -80,7 +80,7 @@ public class TeamSet extends BaseEntity {
*/ */
public static final String COL_EX_CHANGE_TIME = "EX_CHANGE_TIME"; public static final String COL_EX_CHANGE_TIME = "EX_CHANGE_TIME";
/** /**
* 类型;1针孔2壳体3烧结4园区5外协 * 类型-[1]针孔;[2]-壳体;[3]烧结;[4]:园区;[5]:外协;
*/ */
public static final String COL_TS_TYPE = "TS_TYPE"; public static final String COL_TS_TYPE = "TS_TYPE";
/** /**
@ -106,7 +106,7 @@ public class TeamSet extends BaseEntity {
/** /**
* 班组长;外键人员 * 班组长;外键人员
*/ */
@Schema(description = "班组长;外键(人员)") @Schema(description = "班组长[用户]id")
private Long teamLeader; private Long teamLeader;
/** /**
* 班次;外键班次 * 班次;外键班次
@ -129,34 +129,34 @@ public class TeamSet extends BaseEntity {
@Schema(description = "作业中心") @Schema(description = "作业中心")
private Long wcId; private Long wcId;
/** /**
* * 特殊标识
*/ */
@Schema(description = "") @Schema(description = "")
private String special; private String special;
/** /**
* * 计划员[用户]id
*/ */
@Schema(description = "") @Schema(description = "")
private Long planner; private Long planner;
/** /**
* * 班组成员
*/ */
@Schema(description = "") @Schema(description = "")
private String teamMember; private String teamMember;
/** /**
* * 特殊日分派时间
*/ */
@Schema(description = "") @Schema(description = "")
private String specDayPutDueTime; private String specDayPutDueTime;
/** /**
* * 轮换时间
*/ */
@Schema(description = "") @Schema(description = "")
private String exChangeTime; private String exChangeTime;
/** /**
* 类型;1针孔2壳体3烧结4园区5外协 * 类型-[1]针孔;[2]-壳体;[3]烧结;[4]:园区;[5]:外协;
*/ */
@Schema(description = "类型;1、针孔,2、壳体,3、烧结,4、园区,5、外协") @Schema(description = "类型-[1]针孔;[2]-壳体;[3]烧结;[4]:园区;[5]:外协;")
private Short tsType; private Short tsType;
/** /**
* 备注 * 备注

@ -0,0 +1,24 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.pojo.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import java.io.Serial;
/**
* [班组用户关联] 视图实体类
*
* @author Tom Shuo
* @since 2026-01-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class RelTeamSetUserVO extends RelTeamSetUser {
@Serial
private static final long serialVersionUID = 1L;
}

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.basic.pojo.vo; package org.springblade.desk.basic.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
@ -21,4 +22,18 @@ public class TeamSetVO extends TeamSet {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "班组长[用户]真名")
private String teamLeaderRealName;
@Schema(description = "计划员[用户]真名")
private Long plannerRealName;
@Schema(description = "调度员[用户]真名")
private Long dispatcherRealName;
@Schema(description = "[班次]名称")
private String shiftsName;
@Schema(description = "类型分类")
private String tsTypeName;
} }

@ -0,0 +1,15 @@
package org.springblade.desk.basic.pojo.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode()
public class UrlVO {
public UrlVO(String url) {
this.url = url;
}
private String url = "";
}

@ -125,7 +125,7 @@ public class ReviewSheet extends BaseEntity {
*/ */
public static final String COL_REVIEW_STATUS = "REVIEW_STATUS"; public static final String COL_REVIEW_STATUS = "REVIEW_STATUS";
/** /**
* 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理返修;[4]:ERP审理报废; * 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;
*/ */
public static final String COL_BIZ_TYPE = "BIZ_TYPE"; public static final String COL_BIZ_TYPE = "BIZ_TYPE";
/** /**
@ -304,7 +304,7 @@ public class ReviewSheet extends BaseEntity {
* 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理; * 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;
*/ */
@Schema(description = "业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;") @Schema(description = "业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;")
private Short bizType; private Integer bizType;
/** /**
* 物料号 * 物料号
*/ */

@ -0,0 +1,13 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* todo:
*/
@Data
@EqualsAndHashCode()
public class ReviewSheetErpSearch {
}

@ -2,14 +2,13 @@ package org.springblade.desk.quality.pojo.request;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
/**
* todo:
*/
@Data @Data
@EqualsAndHashCode() @EqualsAndHashCode(callSuper = false)
public class ReviewSheetInitSearch { public class ReviewSheetInitSearch extends ReviewSheet {
} }

@ -0,0 +1,13 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* todo:
*/
@Data
@EqualsAndHashCode()
public class ReviewSheetRedoSearch {
}

@ -0,0 +1,13 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* todo:
*/
@Data
@EqualsAndHashCode()
public class ReviewSheetScrapSearch {
}

@ -0,0 +1,13 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* todo:
*/
@Data
@EqualsAndHashCode()
public class ReviewSheetSelfSearch {
}

@ -8,28 +8,31 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode() @EqualsAndHashCode()
public class InspectionTaskSubPartVO { public class InspectionTaskSubPartVO {
// todo:
@Schema(description = "子件号") @Schema(description = "子件号")
private String subPartCode; private String subPartCode = "SU11";
@Schema(description = "子件名称") @Schema(description = "子件名称")
private String subPartName; private String subPartName = "XS";
@Schema(description = "数量") @Schema(description = "数量")
private String qty; private Double qty = 100d;
@Schema(description = "产品型号") @Schema(description = "产品型号")
private String prodTypeName; private String prodTypeName = "iw100";
@Schema(description = "子件类型") @Schema(description = "子件类型")
private String subPartTypeName; private String subPartTypeName = "subX1";
@Schema(description = "镀种") @Schema(description = "镀种")
private String plateName; private String plateName = "镀金";
@Schema(description = "材料") @Schema(description = "材料")
private String material; private String material = "Au";
@Schema(description = "面积") @Schema(description = "面积")
private String area; private Double area = 100d;
@Schema(description = "总面积") @Schema(description = "总面积")
private String totalArea; private Double totalArea = 100d;
@Schema(description = "镀层代码") @Schema(description = "镀层代码")
private String matCode; private String matCode = "mat100";
@Schema(description = "镀层厚度") @Schema(description = "镀层厚度")
private String thickness; private Long thickness = 10L;
@Schema(description = "备注") @Schema(description = "备注")
private String remark; private String remark = "";
@Schema(description = "修改人")
private String updateUserRealName = "";
} }

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.quality.pojo.vo; package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.ReviewFault; import org.springblade.desk.quality.pojo.entity.ReviewFault;
@ -21,4 +22,10 @@ public class ReviewFaultVO extends ReviewFault {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "故障类别[缺陷]名称")
private String ngType2Name;
@Schema(description = "问题大类[缺陷]名称")
private String ngType3Name;
@Schema(description = "问题小类[缺陷]名称")
private String ngType4Name;
} }

@ -0,0 +1,35 @@
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.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewSheetErpListVO extends ReviewSheet {
@Schema(description = "BaseEntityVO")
private BaseEntityVO base;
@Schema(description = "审理状态 名称")
private String reviewStatusName;
@Schema(description = "审理[用户]真名")
private String reviewUserRealName;
@Schema(description = "打回[用户]真名")
private String backUserRealName;
@Schema(description = "责任零件")
private String dutyPart;
@Schema(description = "责任批号")
private String dutyBatNo;
@Schema(description = "工序号")
private String processNo;
@Schema(description = "工序名称")
private String processName;
@Schema(description = "发生单位")
private String ngOrg;
@Schema(description = "责任部门")
private String dutyDeptName;
@Schema(description = "零件号")
private String partCode;
}

@ -1,9 +1,13 @@
package org.springblade.desk.quality.pojo.vo; package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.basic.pojo.vo.BaseEntityVO; import org.springblade.desk.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewSheetInitListVO extends ReviewSheet { public class ReviewSheetInitListVO extends ReviewSheet {
@Schema(description = "BaseEntityVO") @Schema(description = "BaseEntityVO")
@ -26,8 +30,6 @@ public class ReviewSheetInitListVO extends ReviewSheet {
private String cardNo; private String cardNo;
@Schema(description = "生产数量") @Schema(description = "生产数量")
private Double poQty; private Double poQty;
@Schema(description = "不合格数量")
private Short unqualifiedQty;
@Schema(description = "[生产处置单]模式 名称") @Schema(description = "[生产处置单]模式 名称")
private String reviewOrderModeName; private String reviewOrderModeName;
@Schema(description = "打回[用户]真名") @Schema(description = "打回[用户]真名")

@ -0,0 +1,24 @@
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.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewSheetRedoListVO extends ReviewSheet {
@Schema(description = "BaseEntityVO")
private BaseEntityVO base;
@Schema(description = "审理状态 名称")
private String reviewStatusName;
@Schema(description = "审理[用户]真名")
private String reviewUserRealName;
@Schema(description = "打回[用户]真名")
private String backUserRealName;
@Schema(description = "车间订单号")
private String woCode;
}

@ -0,0 +1,29 @@
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.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewSheetScrapListVO extends ReviewSheet {
@Schema(description = "BaseEntityVO")
private BaseEntityVO base;
@Schema(description = "审理状态 名称")
private String reviewStatusName;
@Schema(description = "审理[用户]真名")
private String reviewUserRealName;
@Schema(description = "打回[用户]真名")
private String backUserRealName;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "供应商代码")
private String oemCode;
@Schema(description = "供应商名称")
private String oemName;
@Schema(description = "镀前价格")
private String priceBeforePlate;
}

@ -0,0 +1,41 @@
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.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewSheetSelfListVO extends ReviewSheet {
@Schema(description = "BaseEntityVO")
private BaseEntityVO base;
@Schema(description = "单据编号")
private String docCode;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "产品编号")
private String prodCode;
@Schema(description = "产品名称")
private String prodName;
@Schema(description = "产品型号名称")
private String prodTypeName;
@Schema(description = "生产标识")
private String prodIdent;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "生产数量")
private Double poQty;
@Schema(description = "[生产处置单]模式 名称")
private String reviewOrderModeName;
@Schema(description = "打回[用户]真名")
private String backUserRealName;
@Schema(description = "审理状态 名称")
private String reviewStatusName;
@Schema(description = "审理[用户]真名")
private String reviewUserRealName;
}

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.quality.pojo.vo; package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@ -11,7 +12,7 @@ import java.io.Serial;
import java.util.List; import java.util.List;
/** /**
* [生产处置单] 视图实体类 * [生产处置单] 视图实体类 detail详情
* *
* @author Tom Shuo * @author Tom Shuo
* @since 2026-01-06 * @since 2026-01-06
@ -22,13 +23,12 @@ public class ReviewSheetVO extends ReviewSheet {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private List<ReviewDutyVO> dutyList; @Schema(description = "故障list")
private String dutyDeleteIds;
private List<ReviewFaultVO> faultList; private List<ReviewFaultVO> faultList;
@Schema(description = "故障删除ids")
private String faultDeleteIds; private String faultDeleteIds = "";
@Schema(description = "责任零件list")
private Integer submitErpType; private List<ReviewDutyVO> dutyList;
@Schema(description = "责任零件删除ids")
private String dutyDeleteIds = "";
} }

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.quality.pojo.vo; package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail;
@ -21,4 +22,6 @@ public class WorkPlanItemDetailVO extends WorkPlanItemDetail {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "[量具]名称")
private String mtName = "标尺1";
} }

@ -0,0 +1,237 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
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.excel.RelTeamSetUserExcel;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.vo.RelTeamSetUserVO;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.basic.wrapper.RelTeamSetUserWrapper;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* [班组用户关联] 控制器
*
* @author Tom Shuo
* @since 2026-01-13
*/
@RestController
@RequestMapping("/RelTeamSetUser")
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
@Tag(name = "[班组用户关联]", description = "[班组用户关联]接口")
public class RelTeamSetUserController extends BladeController {
@Resource
private IRelTeamSetUserService service;
/**
* [班组用户关联] 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入RelTeamSetUser Obj")
public R<RelTeamSetUserVO> detail(RelTeamSetUser relTeamSetUser) {
QueryWrapper<RelTeamSetUser> qw = Condition.getQueryWrapper(relTeamSetUser);
RelTeamSetUser detail = service.getOne(qw);
RelTeamSetUserVO detailVO = RelTeamSetUserWrapper.build().entityVO(detail);
service.setVOValue(detailVO);
return R.data(detailVO);
}
/**
* [班组用户关联] list分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入RelTeamSetUser Obj")
public R<IPage<RelTeamSetUserVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> relTeamSetUser,
Query query) {
QueryWrapper<RelTeamSetUser> qw = Condition.getQueryWrapper(relTeamSetUser, RelTeamSetUser.class);
IPage<RelTeamSetUser> pages = service.page(Condition.getPage(query), qw);
IPage<RelTeamSetUserVO> pagesVO = RelTeamSetUserWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [班组用户关联] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入RelTeamSetUser Obj")
public R<IPage<RelTeamSetUserVO>> page(RelTeamSetUserVO relTeamSetUser, Query query) {
IPage<RelTeamSetUserVO> pagesVO = service.selectRelTeamSetUserPage(
Condition.getPage(query), relTeamSetUser
);
return R.data(pagesVO);
}
/**
* [班组用户关联] list下拉选择
*/
@GetMapping("/listForSelect")
@ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "")
public R<List<RelTeamSetUserVO>> listForSelect() {
List<RelTeamSetUser> list = service.list();
List<RelTeamSetUserVO> listVO = RelTeamSetUserWrapper.build().listVO(list);
return R.data(listVO);
}
/**
* [班组用户关联] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入RelTeamSetUser Obj")
public R save(@Valid @RequestBody RelTeamSetUser addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
/**
* [班组用户关联] 新增批量
*/
@PostMapping("/saveBat")
@ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入RelTeamSetUser List")
public R saveBat(@Valid @RequestBody List<RelTeamSetUser> addList) {
addList.forEach(one -> {
one.setId(null);
});
return R.status(service.saveBatch(addList));
}
/**
* [班组用户关联] 修改一条
*/
@PostMapping("/update")
@ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入RelTeamSetUser Obj")
public R update(@Valid @RequestBody RelTeamSetUser updateOne) {
return R.status(service.updateById(updateOne));
}
/**
* [班组用户关联] 修改批量
*/
@PostMapping("/updateBat")
@ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入RelTeamSetUser List")
public R updateBat(@Valid @RequestBody List<RelTeamSetUser> updateList) {
return R.status(service.updateBatchById(updateList));
}
/**
* [班组用户关联] 新增或修改一条
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入RelTeamSetUser Obj")
public R submit(@Valid @RequestBody RelTeamSetUser mergeOne) {
return R.status(service.saveOrUpdate(mergeOne));
}
/**
* [班组用户关联] 新增或修改批量
*/
@PostMapping("/submitBat")
@ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入RelTeamSetUser List")
public R submitBat(@Valid @RequestBody List<RelTeamSetUser> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList));
}
/**
* [班组用户关联] 逻辑删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids)));
}
/**
* [班组用户关联] 导出Excel
*/
@GetMapping("/exportExcel")
@ApiOperationSupport(order = 70)
@Operation(summary = "导出Excel", description = "传入RelTeamSetUser")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> relTeamSetUser,
BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<RelTeamSetUser> qw = Condition.getQueryWrapper(relTeamSetUser, RelTeamSetUser.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(RelTeamSetUser::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(RelTeamSetUserEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<RelTeamSetUserExcel> list = service.exportRelTeamSetUser(qw);
ExcelUtil.export(response, "[班组用户关联]数据" + DateUtil.time(),
"[班组用户关联]数据表", list, RelTeamSetUserExcel.class);
}
/**
* [班组用户关联] 下载Excel模板
*/
@GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls",
"导入模版-周期试验项目.xls");
}
/**
* [班组用户关联] 导入Excel
*/
@PostMapping("/importExcel")
@ApiOperationSupport(order = 72)
@Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) {
return checkR;
}
List<RelTeamSetUser> importList = ExcelUtil.read(
file, 0, 1, RelTeamSetUser.class
);
return R.status(service.saveBatch(importList));
}
}

@ -127,6 +127,19 @@ public class TeamSetController extends BladeController {
return R.data(listVO); return R.data(listVO);
} }
/**
* [班组] getOneByUserId
*/
@GetMapping("/getOneByUserId")
@ApiOperationSupport(order = 23)
@Operation(summary = "getOneByUserId", description = "")
public R<TeamSetVO> getOneByUserId(
@Parameter(description = "用户id", required = true) @RequestParam Long userId) {
TeamSet one = service.getOneByUserId(userId);
TeamSetVO vo = TeamSetWrapper.build().entityVO(one);
return R.data(vo);
}
/** /**
* [班组] 新增一条 * [班组] 新增一条
*/ */

@ -0,0 +1,45 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* [班组用户关联] Excel实体类
*
* @author Tom Shuo
* @since 2026-01-13
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class RelTeamSetUserExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* [班组]id
*/
@ColumnWidth(20)
@ExcelProperty("[班组]id")
private BigDecimal teamSetId;
/**
* [用户]id
*/
@ColumnWidth(20)
@ExcelProperty("[用户]id")
private BigDecimal userId;
}

@ -0,0 +1,40 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.basic.excel.RelTeamSetUserExcel;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.vo.RelTeamSetUserVO;
import java.util.List;
/**
* [班组用户关联] Mapper 接口
*
* @author Tom Shuo
* @since 2026-01-13
*/
public interface RelTeamSetUserMapper extends BaseMapper<RelTeamSetUser> {
/**
* 自定义分页
*
* @param page 分页参数
* @param relTeamSetUser 查询参数
* @return List<RelTeamSetUserVO>
*/
List<RelTeamSetUserVO> selectRelTeamSetUserPage(IPage page, RelTeamSetUserVO relTeamSetUser);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<RelTeamSetUserExcel>
*/
List<RelTeamSetUserExcel> exportRelTeamSetUser(@Param("ew") Wrapper<RelTeamSetUser> queryWrapper);
}

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.basic.mapper.RelTeamSetUserMapper">
<!-- 通用查询映射结果 -->
<resultMap id="relTeamSetUserResultMap" type="org.springblade.desk.basic.pojo.entity.RelTeamSetUser">
<result column="TEAM_SET_ID" property="teamSetId"/>
<result column="USER_ID" property="userId"/>
</resultMap>
<select id="selectRelTeamSetUserPage" resultMap="relTeamSetUserResultMap">
SELECT * FROM BA_REL_TEAM_SET_USER WHERE is_deleted = 0
</select>
<select id="exportRelTeamSetUser" resultType="org.springblade.desk.basic.excel.RelTeamSetUserExcel">
SELECT * FROM BA_REL_TEAM_SET_USER ${ew.customSqlSegment}
</select>
</mapper>

@ -0,0 +1,44 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.basic.excel.RelTeamSetUserExcel;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.vo.RelTeamSetUserVO;
import java.util.List;
/**
* [班组用户关联] 服务类
*
* @author Tom Shuo
* @since 2026-01-13
*/
public interface IRelTeamSetUserService extends BaseService<RelTeamSetUser> {
/**
* 自定义分页
*
* @param page 分页参数
* @param relTeamSetUser 查询参数
* @return IPage<RelTeamSetUserVO>
*/
IPage<RelTeamSetUserVO> selectRelTeamSetUserPage(IPage<RelTeamSetUserVO> page, RelTeamSetUserVO relTeamSetUser);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<RelTeamSetUserExcel>
*/
List<RelTeamSetUserExcel> exportRelTeamSetUser(Wrapper<RelTeamSetUser> queryWrapper);
/**
* VO
* @param vo
*/
void setVOValue(RelTeamSetUserVO vo);
}

@ -6,9 +6,11 @@ package org.springblade.desk.basic.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.excel.TeamSetExcel; import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.vo.TeamSetVO; import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.system.pojo.entity.User;
import java.util.List; import java.util.List;
@ -35,4 +37,60 @@ public interface ITeamSetService extends BaseService<TeamSet> {
* @return List<TeamSetExcel> * @return List<TeamSetExcel>
*/ */
List<TeamSetExcel> exportTeamSet(Wrapper<TeamSet> queryWrapper); List<TeamSetExcel> exportTeamSet(Wrapper<TeamSet> queryWrapper);
/**
*
* @param id [班组]id
* @return 用户 list
*/
List<User> listUserByTeamId(Long id);
/**
*
* @param userId [用户]id
* @return 用户所在班组 list
*/
List<TeamSet> listByUserId(Long userId);
/**
*
* @param userId [用户]id
* @return 用户所在班组
*/
TeamSet getOneByUserId(Long userId);
/**
* 设置 班组成员
*
* @param ids
* @return
*/
R setUsers(String ids);
/**
* 设置 日分派时间
*
* @param id
* @param dayPutDueTime
* @return
*/
R setDayPutDueTime(Long id, String dayPutDueTime);
/**
* 设置 特殊日分派时间
*
* @param id
* @param specDayPutDueTime
* @return
*/
R setSpecDayPutDueTime(Long id, String specDayPutDueTime);
/**
* 设置 轮换时间
*
* @param id
* @param exChangeTime
* @return
*/
R setExChangeTime(Long id, String exChangeTime);
} }

@ -0,0 +1,61 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.basic.excel.RelTeamSetUserExcel;
import org.springblade.desk.basic.mapper.RelTeamSetUserMapper;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.vo.RelTeamSetUserVO;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* [班组用户关联] 服务实现类
*
* @author Tom Shuo
* @since 2026-01-13
*/
@Service
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Slf4j
public class RelTeamSetUserServiceImpl extends BaseServiceImpl<RelTeamSetUserMapper, RelTeamSetUser> implements IRelTeamSetUserService {
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Override
public IPage<RelTeamSetUserVO> selectRelTeamSetUserPage(IPage<RelTeamSetUserVO> page, RelTeamSetUserVO relTeamSetUser) {
return page.setRecords(baseMapper.selectRelTeamSetUserPage(page, relTeamSetUser));
}
@Override
public List<RelTeamSetUserExcel> exportRelTeamSetUser(Wrapper<RelTeamSetUser> queryWrapper) {
List<RelTeamSetUserExcel> relTeamSetUserList = baseMapper.exportRelTeamSetUser(queryWrapper);
//relTeamSetUserList.forEach(relTeamSetUser -> {
// relTeamSetUser.setTypeName(DictCache.getValue(DictEnum.YES_NO, RelTeamSetUser.getType()));
//});
return relTeamSetUserList;
}
@Override
public void setVOValue(RelTeamSetUserVO vo) {
}
}

@ -4,18 +4,30 @@
package org.springblade.desk.basic.service.impl; package org.springblade.desk.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.excel.TeamSetExcel; import org.springblade.desk.basic.excel.TeamSetExcel;
import org.springblade.desk.basic.mapper.TeamSetMapper; import org.springblade.desk.basic.mapper.TeamSetMapper;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.vo.TeamSetVO; import org.springblade.desk.basic.pojo.vo.TeamSetVO;
import org.springblade.desk.basic.service.IRelTeamSetUserService;
import org.springblade.desk.basic.service.ITeamSetService; import org.springblade.desk.basic.service.ITeamSetService;
import org.springblade.desk.order.pojo.entity.YieldPlan;
import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -30,6 +42,9 @@ import java.util.List;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class TeamSetServiceImpl extends BaseServiceImpl<TeamSetMapper, TeamSet> implements ITeamSetService { public class TeamSetServiceImpl extends BaseServiceImpl<TeamSetMapper, TeamSet> implements ITeamSetService {
@Resource
private IRelTeamSetUserService relTeamSetUserService;
@Override @Override
public IPage<TeamSetVO> selectTeamSetPage(IPage<TeamSetVO> page, TeamSetVO teamSet) { public IPage<TeamSetVO> selectTeamSetPage(IPage<TeamSetVO> page, TeamSetVO teamSet) {
return page.setRecords(baseMapper.selectTeamSetPage(page, teamSet)); return page.setRecords(baseMapper.selectTeamSetPage(page, teamSet));
@ -43,4 +58,53 @@ public class TeamSetServiceImpl extends BaseServiceImpl<TeamSetMapper, TeamSet>
//}); //});
return teamSetList; return teamSetList;
} }
@Override
public List<User> listUserByTeamId(Long teamId) {
return List.of();
}
@Override
public List<TeamSet> listByUserId(Long userId) {
LambdaQueryWrapper<RelTeamSetUser> qw = Wrappers.lambdaQuery(RelTeamSetUser.class)
.ne(RelTeamSetUser::getUserId, userId);
List<RelTeamSetUser> rList = relTeamSetUserService.list(qw);
List<TeamSet> tsList = new ArrayList<>();
for (RelTeamSetUser rel : rList) {
TeamSet ts = getById(rel.getTeamSetId());
tsList.add(ts);
}
return tsList;
}
@Override
public TeamSet getOneByUserId(Long userId) {
return listByUserId(userId).get(0);
}
@Override
public R setUsers(String ids) {
return null;
}
@Override
public R setDayPutDueTime(Long id, String dayPutDueTime) {
TeamSet f = getById(id);
f.setDayPutDueTime(dayPutDueTime);
return R.status(updateById(f));
}
@Override
public R setSpecDayPutDueTime(Long id, String specDayPutDueTime) {
TeamSet f = getById(id);
f.setSpecDayPutDueTime(specDayPutDueTime);
return R.status(updateById(f));
}
@Override
public R setExChangeTime(Long id, String exChangeTime) {
TeamSet f = getById(id);
f.setExChangeTime(exChangeTime);
return R.status(updateById(f));
}
} }

@ -0,0 +1,36 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.basic.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.basic.pojo.entity.RelTeamSetUser;
import org.springblade.desk.basic.pojo.vo.RelTeamSetUserVO;
import java.util.Objects;
/**
* [班组用户关联] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2026-01-13
*/
public class RelTeamSetUserWrapper extends BaseEntityWrapper<RelTeamSetUser, RelTeamSetUserVO> {
public static RelTeamSetUserWrapper build() {
return new RelTeamSetUserWrapper();
}
@Override
public RelTeamSetUserVO entityVO(RelTeamSetUser relTeamSetUser) {
RelTeamSetUserVO VO = Objects.requireNonNull(BeanUtil.copyProperties(relTeamSetUser, RelTeamSetUserVO.class));
//User createUser = UserCache.getUser(relTeamSetUser.getCreateUser());
//User updateUser = UserCache.getUser(relTeamSetUser.getUpdateUser());
//relTeamSetUserVO.setCreateUserName(createUser.getName());
//relTeamSetUserVO.setUpdateUserName(updateUser.getName());
return VO;
}
}

@ -5,6 +5,16 @@ package org.springblade.desk.quality.constant;
*/ */
public interface ReviewSheetConst { public interface ReviewSheetConst {
Integer S_INIT = 0;
// [1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;
interface BizType {
Integer T_1 = 1;
Integer T_2 = 2;
Integer T_3 = 3;
}
interface ERP {
/** /**
* 新建 * 新建
*/ */
@ -22,21 +32,6 @@ public interface ReviewSheetConst {
*/ */
Integer S_COMPLETE = 10; Integer S_COMPLETE = 10;
/**
* 零件模式
*/
Integer MODE_PART = 1;
/**
* 装配模式
*/
Integer MODE_ASSEMBLY = 2;
/**
* 售后模式
*/
Integer MODE_AFTER_SALES = 3;
/** /**
* 让步接收 * 让步接收
*/ */
@ -65,4 +60,19 @@ public interface ReviewSheetConst {
* 退回 * 退回
*/ */
Integer REVIEW_STATUS_15 = 15; Integer REVIEW_STATUS_15 = 15;
}
/**
* 零件模式
*/
Integer MODE_PART = 1;
/**
* 装配模式
*/
Integer MODE_ASSEMBLY = 2;
/**
* 售后模式
*/
Integer MODE_AFTER_SALES = 3;
} }

@ -22,6 +22,7 @@ import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.pojo.vo.UrlVO;
import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.constant.QAModuleConst;
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;
@ -29,11 +30,14 @@ import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
import org.springblade.desk.quality.pojo.request.InspectionTaskStartNew; import org.springblade.desk.quality.pojo.request.InspectionTaskStartNew;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO; import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO; import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.desk.quality.pojo.vo.InspectionTaskSubPartVO;
import org.springblade.desk.quality.service.IInspectionTaskService; import org.springblade.desk.quality.service.IInspectionTaskService;
import org.springblade.desk.quality.service.InspectionTaskService2; import org.springblade.desk.quality.service.InspectionTaskService2;
import org.springblade.desk.quality.wrapper.InspectionTaskDetailWrapper; import org.springblade.desk.quality.wrapper.InspectionTaskDetailWrapper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.view.RedirectView;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -189,4 +193,35 @@ public class InspectionTaskController extends BladeController {
@Parameter(hidden = true) @RequestParam Long targetId) { @Parameter(hidden = true) @RequestParam Long targetId) {
return service.sameResultCopy(sourceId, targetId); return service.sameResultCopy(sourceId, targetId);
} }
/**
* 工序名称为 烧结包装防护页面展示内容
* [检验任务] 特殊 子件列表
*/
@GetMapping("/subPartList")
@ApiOperationSupport(order = 101)
@Operation(summary = "烧结包装防护-子件列表", description = "传入inspectionTask id")
public R subPartList(@Parameter(hidden = true) @RequestParam Long id) {
// todo: 车间订单关联查询
List<InspectionTaskSubPartVO> list = new ArrayList<>();
list.add(new InspectionTaskSubPartVO());
list.add(new InspectionTaskSubPartVO());
return R.data(list);
}
@GetMapping("/toQaRecord")
@ApiOperationSupport(order = 101)
@Operation(summary = "跳转-质量记录", description = "传入inspectionTask id")
public R toQaRecord(@Parameter(hidden = true) @RequestParam Long id) {
String url = "https://www.baidu.com" + "?id=" + id;
return R.data(new UrlVO(url));
}
@GetMapping("/toCertificate")
@ApiOperationSupport(order = 101)
@Operation(summary = "跳转-合格证", description = "传入inspectionTask id")
public R toCertificate(@Parameter(hidden = true) @RequestParam Long id) {
String url = "https://www.baidu.com" + "?id=" + id;
return R.data(new UrlVO(url));
}
} }

@ -28,22 +28,30 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.util.ExcelExtUtil; import org.springblade.desk.basic.util.ExcelExtUtil;
import org.springblade.desk.quality.constant.QAModuleConst; import org.springblade.desk.quality.constant.QAModuleConst;
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.pojo.entity.ReviewDuty; import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.entity.ReviewFault; import org.springblade.desk.quality.pojo.entity.ReviewFault;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetRedoSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetScrapSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetSelfSearch;
import org.springblade.desk.quality.pojo.vo.ReviewDutyVO; import org.springblade.desk.quality.pojo.vo.ReviewDutyVO;
import org.springblade.desk.quality.pojo.vo.ReviewFaultVO; import org.springblade.desk.quality.pojo.vo.ReviewFaultVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetInitListVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetVO; import org.springblade.desk.quality.pojo.vo.ReviewSheetVO;
import org.springblade.desk.quality.service.IReviewDutyService; import org.springblade.desk.quality.service.IReviewDutyService;
import org.springblade.desk.quality.service.IReviewFaultService; import org.springblade.desk.quality.service.IReviewFaultService;
import org.springblade.desk.quality.service.IReviewSheetService; import org.springblade.desk.quality.service.IReviewSheetService;
import org.springblade.desk.quality.wrapper.ReviewDutyWrapper; import org.springblade.desk.quality.wrapper.ReviewDutyWrapper;
import org.springblade.desk.quality.wrapper.ReviewSheetInitListWrapper;
import org.springblade.desk.quality.wrapper.ReviewSheetWrapper; import org.springblade.desk.quality.wrapper.ReviewSheetWrapper;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -87,48 +95,56 @@ public class ReviewSheetController extends BladeController {
/** /**
* [生产处置单] list分页 * [生产处置单] list分页
*/ */
@GetMapping("/list") // @GetMapping("/list")
@ApiOperationSupport(order = 20) // @ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入ReviewSheet Obj") // @Operation(summary = "list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet, // public R<IPage<ReviewSheetVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) { // Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); // QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw); // IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages); // IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords() // pagesVO.getRecords()
.stream() // .stream()
.peek(service::setVOValue) // .peek(service::setVOValue)
.collect(Collectors.toList()); // .collect(Collectors.toList());
return R.data(pagesVO); // return R.data(pagesVO);
} // }
/** /**
*
*
* [生产处置单] list分页 * [生产处置单] list分页
*/ */
@GetMapping("/listInit") @PostMapping("/listInit")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj") @Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listInit(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet, public R<IPage<ReviewSheetInitListVO>> listInit(@Parameter(hidden = true) @RequestParam(required = false)
Query query) { ReviewSheetInitSearch search, Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); Map demo = new HashMap();
demo.put("status", ReviewSheetConst.S_INIT);
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw); IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages); IPage<ReviewSheetInitListVO> pagesVO = ReviewSheetInitListWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream() // todo:
.peek(service::setVOValue) // pagesVO.getRecords()
.collect(Collectors.toList()); // .stream()
// .peek(service::setVOValue)
// .collect(Collectors.toList());
return R.data(pagesVO); return R.data(pagesVO);
} }
/** /**
* [生产处置单] list分页 * [生产处置单] 返工审理list分页
*/ */
@GetMapping("/listRedo") @PostMapping("/listRedo")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj") @Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listRedo(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet, public R<IPage<ReviewSheetVO>> listRedo(@Parameter(hidden = true) @RequestParam(required = false)
Query query) { ReviewSheetRedoSearch search, Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); Map demo = new HashMap();
demo.put("bizType", ReviewSheetConst.BizType.T_1);
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw); IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages); IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
@ -139,14 +155,16 @@ public class ReviewSheetController extends BladeController {
} }
/** /**
* [生产处置单] list分页 * [生产处置单] 返工审理list分页
*/ */
@GetMapping("/listScrap") @PostMapping("/listScrap")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj") @Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listScrap(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet, public R<IPage<ReviewSheetVO>> listScrap(@Parameter(hidden = true) @RequestParam(required = false)
Query query) { ReviewSheetScrapSearch search, Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); Map demo = new HashMap();
demo.put("bizType", ReviewSheetConst.BizType.T_2);
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw); IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages); IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
@ -159,12 +177,14 @@ public class ReviewSheetController extends BladeController {
/** /**
* [生产处置单] list分页 * [生产处置单] list分页
*/ */
@GetMapping("/listInternal") @PostMapping("/listSelf")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "内部list分页", description = "传入ReviewSheet Obj") @Operation(summary = "内部list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listInternal(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet, public R<IPage<ReviewSheetVO>> listSelf(@Parameter(hidden = true) @RequestParam(required = false)
Query query) { ReviewSheetSelfSearch search, Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); Map demo = new HashMap();
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(demo, ReviewSheet.class);
qw.in("bizType", ReviewSheetConst.BizType.T_1, ReviewSheetConst.BizType.T_2);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw); IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages); IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
@ -177,12 +197,13 @@ public class ReviewSheetController extends BladeController {
/** /**
* [生产处置单] list分页 * [生产处置单] list分页
*/ */
@GetMapping("/listErp") @PostMapping("/listErp")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "ERPlist分页", description = "传入ReviewSheet Obj") @Operation(summary = "ERPlist分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listErp(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet, public R<IPage<ReviewSheetVO>> listErp(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) { Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class); QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
qw.eq("bizType", ReviewSheetConst.BizType.T_3);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw); IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages); IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords() pagesVO.getRecords()
@ -195,15 +216,15 @@ public class ReviewSheetController extends BladeController {
/** /**
* [生产处置单] page分页 * [生产处置单] page分页
*/ */
@GetMapping("/page") // @GetMapping("/page")
@ApiOperationSupport(order = 21) // @ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入ReviewSheet Obj") // @Operation(summary = "page分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> page(ReviewSheetVO reviewSheet, Query query) { // public R<IPage<ReviewSheetVO>> page(ReviewSheetVO reviewSheet, Query query) {
IPage<ReviewSheetVO> pagesVO = service.selectReviewSheetPage( // IPage<ReviewSheetVO> pagesVO = service.selectReviewSheetPage(
Condition.getPage(query), reviewSheet // Condition.getPage(query), reviewSheet
); // );
return R.data(pagesVO); // return R.data(pagesVO);
} // }
/** /**
* [生产处置单] list下拉选择 * [生产处置单] list下拉选择
@ -379,4 +400,14 @@ public class ReviewSheetController extends BladeController {
); );
return R.status(service.saveBatch(importList)); return R.status(service.saveBatch(importList));
} }
/**
* [生产处置单] 修改一条
*/
@PostMapping("/fill")
@ApiOperationSupport(order = 40)
@Operation(summary = "fill", description = "ReviewSheetVO Obj")
public R fill(@Valid @RequestBody ReviewSheetVO vo) {
return service.fill(vo);
}
} }

@ -9,6 +9,7 @@ import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.quality.excel.ReviewDutyExcel; import org.springblade.desk.quality.excel.ReviewDutyExcel;
import org.springblade.desk.quality.pojo.entity.ReviewDuty; import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.vo.ReviewDutyVO; import org.springblade.desk.quality.pojo.vo.ReviewDutyVO;
import org.springblade.desk.quality.pojo.vo.ReviewFaultVO;
import java.util.List; import java.util.List;
@ -54,4 +55,6 @@ public interface IReviewDutyService extends BaseService<ReviewDuty> {
* @date 2022-12-20 15:01 * @date 2022-12-20 15:01
*/ */
List<ReviewDuty> listByRsId(Long rsId); List<ReviewDuty> listByRsId(Long rsId);
List<ReviewDutyVO> listVOByRsId(Long rsId);
} }

@ -53,4 +53,6 @@ public interface IReviewFaultService extends BaseService<ReviewFault> {
* @date 2022-12-20 15:06 * @date 2022-12-20 15:06
*/ */
List<ReviewFault> listByRsId(Long rsId); List<ReviewFault> listByRsId(Long rsId);
List<ReviewFaultVO> listVOByRsId(Long rsId);
} }

@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.service.en.EnBaseService; import org.springblade.desk.basic.service.en.EnBaseService;
import org.springblade.desk.quality.excel.ReviewSheetExcel; import org.springblade.desk.quality.excel.ReviewSheetExcel;
import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.ReviewSheet;
@ -131,5 +132,7 @@ public interface IReviewSheetService extends EnBaseService<ReviewSheet> {
*/ */
void deleteReviewOrder(String trialId) throws Exception; void deleteReviewOrder(String trialId) throws Exception;
R fill(ReviewSheetVO vo);
} }

@ -221,17 +221,25 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
if (!InspectionTaskConst.CHECK_RESULT_TODO.equals(wpItem.getCheckResult())) { if (!InspectionTaskConst.CHECK_RESULT_TODO.equals(wpItem.getCheckResult())) {
BladeUser bu = AuthUtil.getUser(); BladeUser bu = AuthUtil.getUser();
if (bu != null) { if (bu != null) {
log.info("bu = {}", bu);
wpItem.setCheckUserId(bu.getUserId()); wpItem.setCheckUserId(bu.getUserId());
} }
wpItem.setCheckDate(LocalDateTime.now()); wpItem.setCheckDate(LocalDateTime.now());
} }
// 更新 WorkPlanItem // 更新 WorkPlanItem
wpItemService.updateById(wpItem); wpItemService.updateById(wpItem);
//
for (WorkPlanItemDetailVO wpItemDetailVO : wpItemVO.getWpItemDetailList()) { for (WorkPlanItemDetailVO wpItemDetailVO : wpItemVO.getWpItemDetailList()) {
WorkPlanItemDetail wpItemDetail = new WorkPlanItemDetail(); WorkPlanItemDetail wpItemDetail = new WorkPlanItemDetail();
BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail); BeanUtil.copyProperties(wpItemDetailVO, wpItemDetail);
wpItemDetail.setWorkPlanItemId(wpItem.getId());
if (IdUtil.isValid(wpItemDetail.getId())) {
// 更新 WorkPlanItemDetail // 更新 WorkPlanItemDetail
wpItemDetailService.updateById(wpItemDetail); wpItemDetailService.updateById(wpItemDetail);
} else {
// 保存
wpItemDetailService.save(wpItemDetail);
}
} }
} }
// //

@ -18,8 +18,12 @@ import org.springblade.desk.order.pojo.entity.YieldOrderCraft;
import org.springblade.desk.quality.excel.ReviewDutyExcel; import org.springblade.desk.quality.excel.ReviewDutyExcel;
import org.springblade.desk.quality.mapper.ReviewDutyMapper; import org.springblade.desk.quality.mapper.ReviewDutyMapper;
import org.springblade.desk.quality.pojo.entity.ReviewDuty; import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.entity.ReviewFault;
import org.springblade.desk.quality.pojo.vo.ReviewDutyVO; import org.springblade.desk.quality.pojo.vo.ReviewDutyVO;
import org.springblade.desk.quality.pojo.vo.ReviewFaultVO;
import org.springblade.desk.quality.service.IReviewDutyService; import org.springblade.desk.quality.service.IReviewDutyService;
import org.springblade.desk.quality.wrapper.ReviewDutyWrapper;
import org.springblade.desk.quality.wrapper.ReviewFaultWrapper;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -71,4 +75,17 @@ public class ReviewDutyServiceImpl extends BaseServiceImpl<ReviewDutyMapper, Rev
.eq(ReviewDuty::getIsDeleted, CommonConstant.DELETE_FALSE); .eq(ReviewDuty::getIsDeleted, CommonConstant.DELETE_FALSE);
return baseMapper.selectList(queryWrapper); return baseMapper.selectList(queryWrapper);
} }
@Override
public List<ReviewDutyVO> listVOByRsId(Long rsId) {
LambdaQueryWrapper<ReviewDuty> queryWrapper = Wrappers.lambdaQuery(ReviewDuty.class)
.eq(ReviewDuty::getReviewSheetId, rsId)
.eq(ReviewDuty::getIsDeleted, CommonConstant.DELETE_FALSE);
List<ReviewDuty> list = baseMapper.selectList(queryWrapper);
List<ReviewDutyVO> listVO = ReviewDutyWrapper.build().listVO(list);
for (ReviewDutyVO vo : listVO) {
setVOValue(vo);
}
return listVO;
}
} }

@ -19,12 +19,15 @@ import org.springblade.desk.quality.mapper.ReviewFaultMapper;
import org.springblade.desk.quality.pojo.entity.ReviewDuty; import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.entity.ReviewFault; import org.springblade.desk.quality.pojo.entity.ReviewFault;
import org.springblade.desk.quality.pojo.vo.ReviewFaultVO; import org.springblade.desk.quality.pojo.vo.ReviewFaultVO;
import org.springblade.desk.quality.service.INgService;
import org.springblade.desk.quality.service.IReviewFaultService; import org.springblade.desk.quality.service.IReviewFaultService;
import org.springblade.desk.quality.wrapper.ReviewFaultWrapper;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* [生产处置单-问题故障] 服务实现类 * [生产处置单-问题故障] 服务实现类
@ -44,6 +47,8 @@ public class ReviewFaultServiceImpl extends BaseServiceImpl<ReviewFaultMapper, R
private IUserClient userClient; private IUserClient userClient;
@Resource @Resource
private IDictClient dictClient; private IDictClient dictClient;
@Resource
private INgService ngService;
@Override @Override
public IPage<ReviewFaultVO> selectReviewFaultPage(IPage<ReviewFaultVO> page, ReviewFaultVO reviewFault) { public IPage<ReviewFaultVO> selectReviewFaultPage(IPage<ReviewFaultVO> page, ReviewFaultVO reviewFault) {
@ -61,7 +66,9 @@ public class ReviewFaultServiceImpl extends BaseServiceImpl<ReviewFaultMapper, R
@Override @Override
public void setVOValue(ReviewFaultVO vo) { public void setVOValue(ReviewFaultVO vo) {
vo.setNgType2Name(ngService.getById(vo.getNgType2Id()).getName());
vo.setNgType3Name(ngService.getById(vo.getNgType3Id()).getName());
vo.setNgType4Name(ngService.getById(vo.getNgType4Id()).getName());
} }
@Override @Override
@ -71,4 +78,17 @@ public class ReviewFaultServiceImpl extends BaseServiceImpl<ReviewFaultMapper, R
.eq(ReviewFault::getIsDeleted, CommonConstant.DELETE_FALSE); .eq(ReviewFault::getIsDeleted, CommonConstant.DELETE_FALSE);
return baseMapper.selectList(queryWrapper); return baseMapper.selectList(queryWrapper);
} }
@Override
public List<ReviewFaultVO> listVOByRsId(Long rsId) {
LambdaQueryWrapper<ReviewFault> queryWrapper = Wrappers.lambdaQuery(ReviewFault.class)
.eq(ReviewFault::getReviewSheetId, rsId)
.eq(ReviewFault::getIsDeleted, CommonConstant.DELETE_FALSE);
List<ReviewFault> list = baseMapper.selectList(queryWrapper);
List<ReviewFaultVO> listVO = ReviewFaultWrapper.build().listVO(list);
for (ReviewFaultVO vo : listVO) {
setVOValue(vo);
}
return listVO;
}
} }

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.quality.service.impl; package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -15,28 +16,28 @@ 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.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
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.device.pojo.entity.FeiBaSetEntity;
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.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.InspectionTask;
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.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.PpmReportDetailModel; import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.pojo.vo.PrintChildReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetVO;
import org.springblade.desk.quality.service.IInspectionTaskService; 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.service.IReviewSheetService;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -55,6 +56,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
@Resource @Resource
private IInspectionTaskService taskService; private IInspectionTaskService taskService;
@Resource
private IReviewFaultService faultService;
@Resource
private IReviewDutyService dutyService;
@Resource @Resource
private IUserClient userClient; private IUserClient userClient;
@ -77,7 +82,8 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
@Override @Override
public void setVOValue(ReviewSheetVO vo) { public void setVOValue(ReviewSheetVO vo) {
vo.setFaultList(faultService.listVOByRsId(vo.getId()));
vo.setDutyList(dutyService.listVOByRsId(vo.getId()));
} }
/** /**
@ -103,7 +109,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
} }
LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery(); LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery();
qw.eq(ReviewSheet::getWcId, wcId); qw.eq(ReviewSheet::getWcId, wcId);
qw.in(ReviewSheet::getStatus, ReviewSheetConst.S_NEW, ReviewSheetConst.S_HEAR); qw.in(ReviewSheet::getStatus, ReviewSheetConst.ERP.S_NEW, ReviewSheetConst.ERP.S_HEAR);
qw.orderByAsc(ReviewSheet::getRsCode); qw.orderByAsc(ReviewSheet::getRsCode);
return baseMapper.selectList(qw); return baseMapper.selectList(qw);
} }
@ -115,7 +121,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
} }
LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery(); LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery();
qw.eq(ReviewSheet::getWpId, wpId); qw.eq(ReviewSheet::getWpId, wpId);
qw.eq(ReviewSheet::getStatus, ReviewSheetConst.S_HEAR); qw.eq(ReviewSheet::getStatus, ReviewSheetConst.ERP.S_HEAR);
return baseMapper.selectOne(qw); return baseMapper.selectOne(qw);
} }
@ -145,7 +151,7 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setMemo(memo); rs.setMemo(memo);
rs.setReviewDate(LocalDateTime.now()); rs.setReviewDate(LocalDateTime.now());
rs.setReviewStatus((int) resultStatus); // todo: rs.setReviewStatus((int) resultStatus); // todo:
rs.setStatus(ReviewSheetConst.S_COMPLETE); rs.setStatus(ReviewSheetConst.ERP.S_COMPLETE);
// 装配模式 // 装配模式
if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) { if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) {
@ -174,6 +180,32 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
// todo: // todo:
} }
@Override
public R fill(ReviewSheetVO vo) {
// 关联rsId
for (ReviewFaultVO voF : vo.getFaultList()) {
voF.setReviewSheetId(vo.getId());
}
if (StringUtils.isNotBlank(vo.getFaultDeleteIds())) {
faultService.deleteLogic(Func.toLongList(vo.getFaultDeleteIds()));
}
List<ReviewFault> listF = BeanUtil.copyToList(vo.getFaultList(), ReviewFault.class);
faultService.saveOrUpdateBatch(listF);
// 关联rsId
for (ReviewDutyVO voD : vo.getDutyList()) {
voD.setReviewSheetId(vo.getId());
}
if (StringUtils.isNotBlank(vo.getDutyDeleteIds())) {
dutyService.deleteLogic(Func.toLongList(vo.getDutyDeleteIds()));
}
List<ReviewDuty> listD = BeanUtil.copyToList(vo.getDutyList(), ReviewDuty.class);
dutyService.saveOrUpdateBatch(listD);
ReviewSheet bs = BeanUtil.copyProperties(vo, ReviewSheet.class);
// ReviewSheetVO
saveOrUpdate(bs);
return R.success("");
}
@Override @Override
public ReviewSheet getByRsCode(String rsCode) { public ReviewSheet getByRsCode(String rsCode) {
LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery(); LambdaQueryWrapper<ReviewSheet> qw = Wrappers.lambdaQuery();

@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.util.IdUtil;
import org.springblade.desk.quality.constant.InspectionItemConst; import org.springblade.desk.quality.constant.InspectionItemConst;
import org.springblade.desk.quality.excel.WorkPlanItemExcel; import org.springblade.desk.quality.excel.WorkPlanItemExcel;
import org.springblade.desk.quality.mapper.WorkPlanItemMapper; import org.springblade.desk.quality.mapper.WorkPlanItemMapper;
@ -82,10 +83,12 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
@Override @Override
public void setVOValue(WorkPlanItemVO vo) { public void setVOValue(WorkPlanItemVO vo) {
if (IdUtil.isValid(vo.getCheckUserId())) {
R<UserInfo> rUI = userClient.userInfo(vo.getCheckUserId()); R<UserInfo> rUI = userClient.userInfo(vo.getCheckUserId());
if (rUI != null && rUI.isSuccess() && rUI.getData().getUser() != null) { if (rUI != null && rUI.isSuccess() && rUI.getData().getUser() != null) {
vo.setCheckUserRealName(rUI.getData().getUser().getRealName()); vo.setCheckUserRealName(rUI.getData().getUser().getRealName());
} }
}
{ {
InspectionItem item = inspectionItemService.getById(vo.getItemId()); InspectionItem item = inspectionItemService.getById(vo.getItemId());
InspectionItemVO itemVO = InspectionItemWrapper.build().entityVO(item); InspectionItemVO itemVO = InspectionItemWrapper.build().entityVO(item);

@ -0,0 +1,37 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetErpListVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetInitListVO;
import java.util.Objects;
/**
* [生产处置单] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2026-01-06
*/
public class ReviewSheetErpListWrapper extends BaseEntityWrapper<ReviewSheet, ReviewSheetErpListVO> {
public static ReviewSheetErpListWrapper build() {
return new ReviewSheetErpListWrapper();
}
@Override
public ReviewSheetErpListVO entityVO(ReviewSheet reviewSheet) {
ReviewSheetErpListVO VO = Objects.requireNonNull(BeanUtil.copyProperties(reviewSheet, ReviewSheetErpListVO.class));
//User createUser = UserCache.getUser(reviewSheet.getCreateUser());
//User updateUser = UserCache.getUser(reviewSheet.getUpdateUser());
//reviewSheetVO.setCreateUserName(createUser.getName());
//reviewSheetVO.setUpdateUserName(updateUser.getName());
return VO;
}
}

@ -0,0 +1,37 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetInitListVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetVO;
import java.util.Objects;
/**
* [生产处置单] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2026-01-06
*/
public class ReviewSheetInitListWrapper extends BaseEntityWrapper<ReviewSheet, ReviewSheetInitListVO> {
public static ReviewSheetInitListWrapper build() {
return new ReviewSheetInitListWrapper();
}
@Override
public ReviewSheetInitListVO entityVO(ReviewSheet reviewSheet) {
ReviewSheetInitListVO VO = Objects.requireNonNull(BeanUtil.copyProperties(reviewSheet, ReviewSheetInitListVO.class));
//User createUser = UserCache.getUser(reviewSheet.getCreateUser());
//User updateUser = UserCache.getUser(reviewSheet.getUpdateUser());
//reviewSheetVO.setCreateUserName(createUser.getName());
//reviewSheetVO.setUpdateUserName(updateUser.getName());
return VO;
}
}

@ -0,0 +1,37 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetErpListVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetRedoListVO;
import java.util.Objects;
/**
* [生产处置单] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2026-01-06
*/
public class ReviewSheetRedoListWrapper extends BaseEntityWrapper<ReviewSheet, ReviewSheetRedoListVO> {
public static ReviewSheetRedoListWrapper build() {
return new ReviewSheetRedoListWrapper();
}
@Override
public ReviewSheetRedoListVO entityVO(ReviewSheet reviewSheet) {
ReviewSheetRedoListVO VO = Objects.requireNonNull(BeanUtil.copyProperties(reviewSheet, ReviewSheetRedoListVO.class));
//User createUser = UserCache.getUser(reviewSheet.getCreateUser());
//User updateUser = UserCache.getUser(reviewSheet.getUpdateUser());
//reviewSheetVO.setCreateUserName(createUser.getName());
//reviewSheetVO.setUpdateUserName(updateUser.getName());
return VO;
}
}

@ -0,0 +1,37 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetRedoListVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetScrapListVO;
import java.util.Objects;
/**
* [生产处置单] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2026-01-06
*/
public class ReviewSheetScrapListWrapper extends BaseEntityWrapper<ReviewSheet, ReviewSheetScrapListVO> {
public static ReviewSheetScrapListWrapper build() {
return new ReviewSheetScrapListWrapper();
}
@Override
public ReviewSheetScrapListVO entityVO(ReviewSheet reviewSheet) {
ReviewSheetScrapListVO VO = Objects.requireNonNull(BeanUtil.copyProperties(reviewSheet, ReviewSheetScrapListVO.class));
//User createUser = UserCache.getUser(reviewSheet.getCreateUser());
//User updateUser = UserCache.getUser(reviewSheet.getUpdateUser());
//reviewSheetVO.setCreateUserName(createUser.getName());
//reviewSheetVO.setUpdateUserName(updateUser.getName());
return VO;
}
}

@ -0,0 +1,37 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.vo.ReviewSheetScrapListVO;
import org.springblade.desk.quality.pojo.vo.ReviewSheetSelfListVO;
import java.util.Objects;
/**
* [生产处置单] 包装类,返回视图层所需的字段
*
* @author Tom Shuo
* @since 2026-01-06
*/
public class ReviewSheetSelfListWrapper extends BaseEntityWrapper<ReviewSheet, ReviewSheetSelfListVO> {
public static ReviewSheetSelfListWrapper build() {
return new ReviewSheetSelfListWrapper();
}
@Override
public ReviewSheetSelfListVO entityVO(ReviewSheet reviewSheet) {
ReviewSheetSelfListVO VO = Objects.requireNonNull(BeanUtil.copyProperties(reviewSheet, ReviewSheetSelfListVO.class));
//User createUser = UserCache.getUser(reviewSheet.getCreateUser());
//User updateUser = UserCache.getUser(reviewSheet.getUpdateUser());
//reviewSheetVO.setCreateUserName(createUser.getName());
//reviewSheetVO.setUpdateUserName(updateUser.getName());
return VO;
}
}
Loading…
Cancel
Save