质检模块。

develop-QA
Tom Li 3 months ago
parent 9e048089fb
commit 2ec97a38d6
  1. 11
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/IotHardness.java
  2. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  3. 15
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/request/ReviewSheetInitSearch.java
  4. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionItemVO.java
  5. 7
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskDetailVO.java
  6. 16
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskListVO.java
  7. 35
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/InspectionTaskSubPartVO.java
  8. 39
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/ReviewSheetInitListVO.java
  9. 10
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/WorkPlanItemVO.java
  10. 25
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionTaskController.java
  11. 362
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotHardnessController.java
  12. 336
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/IotThicknessController.java
  13. 89
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/ReviewSheetController.java
  14. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTaskMapper.xml
  15. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/IotHardnessMapper.xml
  16. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java
  17. 63
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  18. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java

@ -68,6 +68,10 @@ public class IotHardness extends BaseEntity {
* [设备]id * [设备]id
*/ */
public static final String COL_EQUIPMENT_ID = "EQUIPMENT_ID"; public static final String COL_EQUIPMENT_ID = "EQUIPMENT_ID";
/**
* IP
*/
public static final String COL_IP = "IP";
/** /**
* 编码 * 编码
@ -118,5 +122,10 @@ public class IotHardness extends BaseEntity {
* [设备]id * [设备]id
*/ */
@Schema(description = "[设备]id") @Schema(description = "[设备]id")
private BigDecimal equipmentId; private Long equipmentId;
/**
* [设备]id
*/
@Schema(description = "ip")
private String ip;
} }

@ -229,7 +229,7 @@ public class ReviewSheet extends BaseEntity {
* 不合格数量 * 不合格数量
*/ */
@Schema(description = "不合格数量") @Schema(description = "不合格数量")
private Short unqualifiedQty; private Double unqualifiedQty;
/** /**
* 上级编号 * 上级编号
*/ */

@ -0,0 +1,15 @@
package org.springblade.desk.quality.pojo.request;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode()
public class ReviewSheetInitSearch {
}

@ -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.InspectionItem; import org.springblade.desk.quality.pojo.entity.InspectionItem;
@ -21,4 +22,6 @@ public class InspectionItemVO extends InspectionItem {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "检验类型 名称")
private String itemTypeName = "检验类型A";
} }

@ -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.InspectionTask; import org.springblade.desk.quality.pojo.entity.InspectionTask;
@ -27,6 +28,12 @@ public class InspectionTaskDetailVO extends InspectionTask {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* todo:
*/
@Schema(description = "工序名称")
private String processName = "工序名称A";
private InspectionTaskListVO orderInfo; private InspectionTaskListVO orderInfo;
private List<RemindMsg> remindMsgList; private List<RemindMsg> remindMsgList;

@ -3,6 +3,7 @@
*/ */
package org.springblade.desk.quality.pojo.vo; package org.springblade.desk.quality.pojo.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@ -56,10 +57,14 @@ public class InspectionTaskListVO extends InspectionTask {
private String batchNo = "XXXX12345"; private String batchNo = "XXXX12345";
@Schema(description = "分批号") @Schema(description = "分批号")
private String poBatchNo = "XXXX12345"; private String poBatchNo = "XXXX12345";
@Schema(description = "当前工序") @Schema(description = "当前[工序]名称")
private String currentProcessName = "XXXX12345"; private String currentProcessName = "XXXX12345";
@Schema(description = "下个工序") @Schema(description = "当前[工序]id")
private Long currentProcessId = 100L;
@Schema(description = "下个[工序]名称")
private String nextProcessName = "XXXX12345"; private String nextProcessName = "XXXX12345";
@Schema(description = "下个[工序]id")
private Long nextProcessId = 100L;
@Schema(description = "面积") @Schema(description = "面积")
private Double area = 100.10; private Double area = 100.10;
@Schema(description = "总面积") @Schema(description = "总面积")
@ -69,6 +74,7 @@ public class InspectionTaskListVO extends InspectionTask {
@Schema(description = "接收时间") @Schema(description = "接收时间")
private LocalDateTime receiveDate = LocalDateTime.now(); private LocalDateTime receiveDate = LocalDateTime.now();
@Schema(description = "订单-产品号") @Schema(description = "订单-产品号")
private String prodCode = "XXXX12345"; private String prodCode = "XXXX12345";
@Schema(description = "订单-产品型号") @Schema(description = "订单-产品型号")
@ -95,4 +101,10 @@ public class InspectionTaskListVO extends InspectionTask {
private String remark; private String remark;
@Schema(description = "订单-提醒内容") @Schema(description = "订单-提醒内容")
private String remindContent; private String remindContent;
// todo:
@Schema(description = "同槽编号/同炉编号")
private String sameNo = "tank-1001";
// todo:
@Schema(description = "材料")
private String material = "铜";
} }

@ -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;
@Data
@EqualsAndHashCode()
public class InspectionTaskSubPartVO {
@Schema(description = "子件号")
private String subPartCode;
@Schema(description = "子件名称")
private String subPartName;
@Schema(description = "数量")
private String qty;
@Schema(description = "产品型号")
private String prodTypeName;
@Schema(description = "子件类型")
private String subPartTypeName;
@Schema(description = "镀种")
private String plateName;
@Schema(description = "材料")
private String material;
@Schema(description = "面积")
private String area;
@Schema(description = "总面积")
private String totalArea;
@Schema(description = "镀层代码")
private String matCode;
@Schema(description = "镀层厚度")
private String thickness;
@Schema(description = "备注")
private String remark;
}

@ -0,0 +1,39 @@
package org.springblade.desk.quality.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import org.springblade.desk.basic.pojo.vo.BaseEntityVO;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
public class ReviewSheetInitListVO 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 Short unqualifiedQty;
@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.InspectionItem; import org.springblade.desk.quality.pojo.entity.InspectionItem;
@ -25,9 +26,14 @@ public class WorkPlanItemVO extends WorkPlanItem {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Schema(description = "检验员 真名")
private String checkUserRealName;
@Schema(description = "检验项目 Obj")
private InspectionItemVO item; private InspectionItemVO item;
@Schema(description = "检验标准 Obj")
private StandardVO standard; private StandardVO standard;
// @Schema(description = "工序对象 Obj")
// private DsProcessEntity process;
@Schema(description = "wp详情 List")
private List<WorkPlanItemDetailVO> wpItemDetailList; private List<WorkPlanItemDetailVO> wpItemDetailList;
} }

@ -170,22 +170,23 @@ public class InspectionTaskController extends BladeController {
} }
/** /**
* [检验任务] 同槽 检验结果应用 * [检验任务] 查询同槽/同炉
*/ */
@GetMapping("/sameTankResultCopy") @GetMapping("/getSameList")
@ApiOperationSupport(order = 101) @ApiOperationSupport(order = 7)
@Operation(summary = "同槽结果应用", description = "传入inspectionTask id") @Operation(summary = "查询同槽/同炉", description = "id")
public R sameTankResultCopy(@Parameter(hidden = true) @RequestParam Long id) { public R getSameList(@Parameter(description = "主键", required = true) @RequestParam Long id) {
return null; return service.getSamePlace(id);
} }
/** /**
* [检验任务] 检验结果应用 * [检验任务] 检验结果应用
*/ */
@GetMapping("/sameFurnaceResultCopy") @GetMapping("/sameResultCopy")
@ApiOperationSupport(order = 102) @ApiOperationSupport(order = 101)
@Operation(summary = "同槽结果应用", description = "传入inspectionTask id") @Operation(summary = "同槽/同炉结果应用", description = "传入inspectionTask id")
public R sameFurnaceResultCopy(@Parameter(hidden = true) @RequestParam Long id) { public R sameResultCopy(@Parameter(hidden = true) @RequestParam Long sourceId,
return null; @Parameter(hidden = true) @RequestParam Long targetId) {
return service.sameResultCopy(sourceId, targetId);
} }
} }

@ -10,6 +10,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -21,6 +22,7 @@ import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
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;
@ -31,6 +33,8 @@ import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springblade.desk.quality.pojo.vo.IotHardnessVO; import org.springblade.desk.quality.pojo.vo.IotHardnessVO;
import org.springblade.desk.quality.service.IIotHardnessService; import org.springblade.desk.quality.service.IIotHardnessService;
import org.springblade.desk.quality.wrapper.IotHardnessWrapper; import org.springblade.desk.quality.wrapper.IotHardnessWrapper;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.UserInfo;
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;
@ -55,184 +59,228 @@ import java.util.stream.Collectors;
public class IotHardnessController extends BladeController { public class IotHardnessController extends BladeController {
@Resource @Resource
private IIotHardnessService service; private IIotHardnessService service;
/** @Resource
* [IOT硬度] 详情 private IUserClient iUserClient;
*/
@GetMapping("/detail") /**
@ApiOperationSupport(order = 10) * [IOT硬度] 详情
@Operation(summary = "详情", description = "传入IotHardness Obj") */
public R<IotHardnessVO> detail(IotHardness iotHardness) { @GetMapping("/detail")
QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(iotHardness); @ApiOperationSupport(order = 10)
IotHardness detail = service.getOne(qw); @Operation(summary = "详情", description = "传入IotHardness Obj")
IotHardnessVO detailVO = IotHardnessWrapper.build().entityVO(detail); public R<IotHardnessVO> detail(IotHardness iotHardness) {
service.setVOValue(detailVO); QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(iotHardness);
return R.data(detailVO); IotHardness detail = service.getOne(qw);
} IotHardnessVO detailVO = IotHardnessWrapper.build().entityVO(detail);
service.setVOValue(detailVO);
/** return R.data(detailVO);
* [IOT硬度] list分页 }
*/
@GetMapping("/list") /**
@ApiOperationSupport(order = 20) * [IOT硬度] list分页
@Operation(summary = "list分页", description = "传入IotHardness Obj") */
public R<IPage<IotHardnessVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> iotHardness, @GetMapping("/list")
Query query) { @ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入IotHardness Obj")
public R<IPage<IotHardnessVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> iotHardness,
Query query) {
QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(iotHardness, IotHardness.class); QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(iotHardness, IotHardness.class);
IPage<IotHardness> pages = service.page(Condition.getPage(query), qw); IPage<IotHardness> pages = service.page(Condition.getPage(query), qw);
IPage<IotHardnessVO> pagesVO = IotHardnessWrapper.build().pageVO(pages); IPage<IotHardnessVO> pagesVO = IotHardnessWrapper.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);
} }
/** @GetMapping("/getDataFirst")
* [IOT硬度] page分页 @ApiOperationSupport(order = 20)
*/ @Operation(summary = "获取硬度检测值 getData", description = "传入IotHardness Obj")
@GetMapping("/page") public R<List<IotHardness>> getDataFirst(HttpServletRequest request,
@ApiOperationSupport(order = 21) @Parameter(hidden = true) @RequestParam Map<String, Object> map) {
@Operation(summary = "page分页", description = "传入IotHardness Obj") // 根据ip关联查询
public R<IPage<IotHardnessVO>> page(IotHardnessVO iotHardness, Query query) {
IPage<IotHardnessVO> pagesVO = service.selectIotHardnessPage( // todo:
Condition.getPage(query), iotHardness
); // BladeUser loginUser = AuthUtil.getUser();
return R.data(pagesVO); // Long userId = loginUser.getUserId();
} // R<UserInfo> rUI = iUserClient.userInfo(userId);
// if (rUI.isSuccess() && rUI.getData() != null) {
/** //
// }
QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(map, IotHardness.class);
List<IotHardness> list = service.list(qw);
return R.data(list);
}
@GetMapping("/getDataRefresh")
@ApiOperationSupport(order = 20)
@Operation(summary = "获取硬度检测值 getData", description = "传入IotHardness Obj")
public R<List<IotHardness>> getDataRefresh(HttpServletRequest request,
@Parameter(hidden = true) @RequestParam Map<String, Object> map) {
// 根据ip关联查询
// todo:
// BladeUser loginUser = AuthUtil.getUser();
// Long userId = loginUser.getUserId();
// R<UserInfo> rUI = iUserClient.userInfo(userId);
// if (rUI.isSuccess() && rUI.getData() != null) {
//
// }
QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(map, IotHardness.class);
List<IotHardness> list = service.list(qw);
return R.data(list);
}
/**
* [IOT硬度] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入IotHardness Obj")
public R<IPage<IotHardnessVO>> page(IotHardnessVO iotHardness, Query query) {
IPage<IotHardnessVO> pagesVO = service.selectIotHardnessPage(
Condition.getPage(query), iotHardness
);
return R.data(pagesVO);
}
/**
* [IOT硬度] list下拉选择 * [IOT硬度] list下拉选择
*/ */
@GetMapping("/listForSelect") @GetMapping("/listForSelect")
@ApiOperationSupport(order = 22) @ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "") @Operation(summary = "list下拉选择", description = "")
public R<List<IotHardnessVO>> listForSelect() { public R<List<IotHardnessVO>> listForSelect() {
List<IotHardness> list = service.list(); List<IotHardness> list = service.list();
List<IotHardnessVO> listVO = IotHardnessWrapper.build().listVO(list); List<IotHardnessVO> listVO = IotHardnessWrapper.build().listVO(list);
return R.data(listVO); return R.data(listVO);
} }
/** /**
* [IOT硬度] 新增一条 * [IOT硬度] 新增一条
*/ */
@PostMapping("/save") @PostMapping("/save")
@ApiOperationSupport(order = 30) @ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入IotHardness Obj") @Operation(summary = "新增一条", description = "传入IotHardness Obj")
public R save(@Valid @RequestBody IotHardness addOne) { public R save(@Valid @RequestBody IotHardness addOne) {
addOne.setId(null); addOne.setId(null);
return R.status(service.save(addOne)); return R.status(service.save(addOne));
} }
/** /**
* [IOT硬度] 新增批量 * [IOT硬度] 新增批量
*/ */
@PostMapping("/saveBat") @PostMapping("/saveBat")
@ApiOperationSupport(order = 31) @ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入IotHardness List") @Operation(summary = "新增批量", description = "传入IotHardness List")
public R saveBat(@Valid @RequestBody List<IotHardness> addList) { public R saveBat(@Valid @RequestBody List<IotHardness> addList) {
addList.forEach(one -> { addList.forEach(one -> {
one.setId(null); one.setId(null);
}); });
return R.status(service.saveBatch(addList)); return R.status(service.saveBatch(addList));
} }
/** /**
* [IOT硬度] 修改一条 * [IOT硬度] 修改一条
*/ */
@PostMapping("/update") @PostMapping("/update")
@ApiOperationSupport(order = 40) @ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入IotHardness Obj") @Operation(summary = "修改一条", description = "传入IotHardness Obj")
public R update(@Valid @RequestBody IotHardness updateOne) { public R update(@Valid @RequestBody IotHardness updateOne) {
return R.status(service.updateById(updateOne)); return R.status(service.updateById(updateOne));
} }
/** /**
* [IOT硬度] 修改批量 * [IOT硬度] 修改批量
*/ */
@PostMapping("/updateBat") @PostMapping("/updateBat")
@ApiOperationSupport(order = 41) @ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入IotHardness List") @Operation(summary = "修改批量", description = "传入IotHardness List")
public R updateBat(@Valid @RequestBody List<IotHardness> updateList) { public R updateBat(@Valid @RequestBody List<IotHardness> updateList) {
return R.status(service.updateBatchById(updateList)); return R.status(service.updateBatchById(updateList));
} }
/** /**
* [IOT硬度] 新增或修改一条 * [IOT硬度] 新增或修改一条
*/ */
@PostMapping("/submit") @PostMapping("/submit")
@ApiOperationSupport(order = 50) @ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入IotHardness Obj") @Operation(summary = "新增或修改一条", description = "传入IotHardness Obj")
public R submit(@Valid @RequestBody IotHardness mergeOne) { public R submit(@Valid @RequestBody IotHardness mergeOne) {
return R.status(service.saveOrUpdate(mergeOne)); return R.status(service.saveOrUpdate(mergeOne));
} }
/** /**
* [IOT硬度] 新增或修改批量 * [IOT硬度] 新增或修改批量
*/ */
@PostMapping("/submitBat") @PostMapping("/submitBat")
@ApiOperationSupport(order = 51) @ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入IotHardness List") @Operation(summary = "新增或修改批量", description = "传入IotHardness List")
public R submitBat(@Valid @RequestBody List<IotHardness> mergeList) { public R submitBat(@Valid @RequestBody List<IotHardness> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList)); return R.status(service.saveOrUpdateBatch(mergeList));
} }
/** /**
* [IOT硬度] 逻辑删除 * [IOT硬度] 逻辑删除
*/ */
@PostMapping("/remove") @PostMapping("/remove")
@ApiOperationSupport(order = 61) @ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids))); return R.status(service.deleteLogic(Func.toLongList(ids)));
} }
/** /**
* [IOT硬度] 导出Excel * [IOT硬度] 导出Excel
*/ */
@GetMapping("/exportExcel") @GetMapping("/exportExcel")
@ApiOperationSupport(order = 70) @ApiOperationSupport(order = 70)
@Operation(summary = "导出Excel", description = "传入IotHardness") @Operation(summary = "导出Excel", description = "传入IotHardness")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> iotHardness, public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> iotHardness,
BladeUser bladeUser, HttpServletResponse response) { BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(iotHardness, IotHardness.class); QueryWrapper<IotHardness> qw = Condition.getQueryWrapper(iotHardness, IotHardness.class);
//if (!AuthUtil.isAdministrator()) { //if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(IotHardness::getTenantId, bladeUser.getTenantId()); // queryWrapper.lambda().eq(IotHardness::getTenantId, bladeUser.getTenantId());
//} //}
//queryWrapper.lambda().eq(IotHardnessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); //queryWrapper.lambda().eq(IotHardnessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<IotHardnessExcel> list = service.exportIotHardness(qw); List<IotHardnessExcel> list = service.exportIotHardness(qw);
ExcelUtil.export(response, "[IOT硬度]数据" + DateUtil.time(), ExcelUtil.export(response, "[IOT硬度]数据" + DateUtil.time(),
"[IOT硬度]数据表", list, IotHardnessExcel.class); "[IOT硬度]数据表", list, IotHardnessExcel.class);
} }
/** /**
* [IOT硬度] 下载Excel模板 * [IOT硬度] 下载Excel模板
*/ */
@GetMapping("/downloadExcelTemplate") @GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71) @ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/ImportTemplate-CycleTestItem.xls",
"导入模版-周期试验项目.xls"); "导入模版-周期试验项目.xls");
} }
/** /**
* [IOT硬度] 导入Excel * [IOT硬度] 导入Excel
*/ */
@PostMapping("/importExcel") @PostMapping("/importExcel")
@ApiOperationSupport(order = 72) @ApiOperationSupport(order = 72)
@Operation(summary = "导入Excel", description = "MultipartFile") @Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) { public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file); R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) { if (checkR != null) {
return checkR; return checkR;
} }
List<IotHardness> importList = ExcelUtil.read( List<IotHardness> importList = ExcelUtil.read(
file, 0, 1, IotHardness.class file, 0, 1, IotHardness.class
); );
return R.status(service.saveBatch(importList)); return R.status(service.saveBatch(importList));
} }
} }

@ -3,13 +3,16 @@
*/ */
package org.springblade.desk.quality.controller; package org.springblade.desk.quality.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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 com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -21,12 +24,15 @@ import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
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.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.excel.IotThicknessExcel; import org.springblade.desk.quality.excel.IotThicknessExcel;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.IotHardness;
import org.springblade.desk.quality.pojo.entity.IotThickness; import org.springblade.desk.quality.pojo.entity.IotThickness;
import org.springblade.desk.quality.pojo.vo.IotThicknessVO; import org.springblade.desk.quality.pojo.vo.IotThicknessVO;
import org.springblade.desk.quality.service.IIotThicknessService; import org.springblade.desk.quality.service.IIotThicknessService;
@ -55,184 +61,202 @@ import java.util.stream.Collectors;
public class IotThicknessController extends BladeController { public class IotThicknessController extends BladeController {
@Resource @Resource
private IIotThicknessService service; private IIotThicknessService service;
/** /**
* [IOT厚度] 详情 * [IOT厚度] 详情
*/ */
@GetMapping("/detail") @GetMapping("/detail")
@ApiOperationSupport(order = 10) @ApiOperationSupport(order = 10)
@Operation(summary = "详情", description = "传入IotThickness Obj") @Operation(summary = "详情", description = "传入IotThickness Obj")
public R<IotThicknessVO> detail(IotThickness iotThickness) { public R<IotThicknessVO> detail(IotThickness iotThickness) {
QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(iotThickness); QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(iotThickness);
IotThickness detail = service.getOne(qw); IotThickness detail = service.getOne(qw);
IotThicknessVO detailVO = IotThicknessWrapper.build().entityVO(detail); IotThicknessVO detailVO = IotThicknessWrapper.build().entityVO(detail);
service.setVOValue(detailVO); service.setVOValue(detailVO);
return R.data(detailVO); return R.data(detailVO);
} }
/** /**
* [IOT厚度] list分页 * [IOT厚度] list分页
*/ */
@GetMapping("/list") @GetMapping("/list")
@ApiOperationSupport(order = 20) @ApiOperationSupport(order = 20)
@Operation(summary = "list分页", description = "传入IotThickness Obj") @Operation(summary = "list分页", description = "传入IotThickness Obj")
public R<IPage<IotThicknessVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> iotThickness, public R<IPage<IotThicknessVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> iotThickness,
Query query) { Query query) {
QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(iotThickness, IotThickness.class); QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(iotThickness, IotThickness.class);
IPage<IotThickness> pages = service.page(Condition.getPage(query), qw); IPage<IotThickness> pages = service.page(Condition.getPage(query), qw);
IPage<IotThicknessVO> pagesVO = IotThicknessWrapper.build().pageVO(pages); IPage<IotThicknessVO> pagesVO = IotThicknessWrapper.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);
} }
@GetMapping("/getData")
/** @ApiOperationSupport(order = 20)
* [IOT厚度] page分页 @Operation(summary = "获取厚度检测值 getData", description = "传入IotHardness Obj")
*/ public R<List<IotThickness>> getData(HttpServletRequest request,
@GetMapping("/page") @Parameter(hidden = true) @RequestParam Map<String, Object> map) {
@ApiOperationSupport(order = 21) // 根据ip关联查询
@Operation(summary = "page分页", description = "传入IotThickness Obj")
public R<IPage<IotThicknessVO>> page(IotThicknessVO iotThickness, Query query) { // BladeUser loginUser = AuthUtil.getUser();
IPage<IotThicknessVO> pagesVO = service.selectIotThicknessPage( // Long userId = loginUser.getUserId();
Condition.getPage(query), iotThickness // R<UserInfo> rUI = iUserClient.userInfo(userId);
); // if (rUI.isSuccess() && rUI.getData() != null) {
return R.data(pagesVO); //
} // }
QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(map, IotThickness.class);
/** List<IotThickness> list = service.list(qw);
return R.data(list);
}
/**
* [IOT厚度] page分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 21)
@Operation(summary = "page分页", description = "传入IotThickness Obj")
public R<IPage<IotThicknessVO>> page(IotThicknessVO iotThickness, Query query) {
IPage<IotThicknessVO> pagesVO = service.selectIotThicknessPage(
Condition.getPage(query), iotThickness
);
return R.data(pagesVO);
}
/**
* [IOT厚度] list下拉选择 * [IOT厚度] list下拉选择
*/ */
@GetMapping("/listForSelect") @GetMapping("/listForSelect")
@ApiOperationSupport(order = 22) @ApiOperationSupport(order = 22)
@Operation(summary = "list下拉选择", description = "") @Operation(summary = "list下拉选择", description = "")
public R<List<IotThicknessVO>> listForSelect() { public R<List<IotThicknessVO>> listForSelect() {
List<IotThickness> list = service.list(); List<IotThickness> list = service.list();
List<IotThicknessVO> listVO = IotThicknessWrapper.build().listVO(list); List<IotThicknessVO> listVO = IotThicknessWrapper.build().listVO(list);
return R.data(listVO); return R.data(listVO);
}
/**
* [IOT厚度] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入IotThickness Obj")
public R save(@Valid @RequestBody IotThickness addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
} }
/** /**
* [IOT厚度] 新增一条
*/
@PostMapping("/save")
@ApiOperationSupport(order = 30)
@Operation(summary = "新增一条", description = "传入IotThickness Obj")
public R save(@Valid @RequestBody IotThickness addOne) {
addOne.setId(null);
return R.status(service.save(addOne));
}
/**
* [IOT厚度] 新增批量 * [IOT厚度] 新增批量
*/ */
@PostMapping("/saveBat") @PostMapping("/saveBat")
@ApiOperationSupport(order = 31) @ApiOperationSupport(order = 31)
@Operation(summary = "新增批量", description = "传入IotThickness List") @Operation(summary = "新增批量", description = "传入IotThickness List")
public R saveBat(@Valid @RequestBody List<IotThickness> addList) { public R saveBat(@Valid @RequestBody List<IotThickness> addList) {
addList.forEach(one -> { addList.forEach(one -> {
one.setId(null); one.setId(null);
}); });
return R.status(service.saveBatch(addList)); return R.status(service.saveBatch(addList));
} }
/** /**
* [IOT厚度] 修改一条 * [IOT厚度] 修改一条
*/ */
@PostMapping("/update") @PostMapping("/update")
@ApiOperationSupport(order = 40) @ApiOperationSupport(order = 40)
@Operation(summary = "修改一条", description = "传入IotThickness Obj") @Operation(summary = "修改一条", description = "传入IotThickness Obj")
public R update(@Valid @RequestBody IotThickness updateOne) { public R update(@Valid @RequestBody IotThickness updateOne) {
return R.status(service.updateById(updateOne)); return R.status(service.updateById(updateOne));
} }
/** /**
* [IOT厚度] 修改批量 * [IOT厚度] 修改批量
*/ */
@PostMapping("/updateBat") @PostMapping("/updateBat")
@ApiOperationSupport(order = 41) @ApiOperationSupport(order = 41)
@Operation(summary = "修改批量", description = "传入IotThickness List") @Operation(summary = "修改批量", description = "传入IotThickness List")
public R updateBat(@Valid @RequestBody List<IotThickness> updateList) { public R updateBat(@Valid @RequestBody List<IotThickness> updateList) {
return R.status(service.updateBatchById(updateList)); return R.status(service.updateBatchById(updateList));
} }
/** /**
* [IOT厚度] 新增或修改一条 * [IOT厚度] 新增或修改一条
*/ */
@PostMapping("/submit") @PostMapping("/submit")
@ApiOperationSupport(order = 50) @ApiOperationSupport(order = 50)
@Operation(summary = "新增或修改一条", description = "传入IotThickness Obj") @Operation(summary = "新增或修改一条", description = "传入IotThickness Obj")
public R submit(@Valid @RequestBody IotThickness mergeOne) { public R submit(@Valid @RequestBody IotThickness mergeOne) {
return R.status(service.saveOrUpdate(mergeOne)); return R.status(service.saveOrUpdate(mergeOne));
} }
/** /**
* [IOT厚度] 新增或修改批量 * [IOT厚度] 新增或修改批量
*/ */
@PostMapping("/submitBat") @PostMapping("/submitBat")
@ApiOperationSupport(order = 51) @ApiOperationSupport(order = 51)
@Operation(summary = "新增或修改批量", description = "传入IotThickness List") @Operation(summary = "新增或修改批量", description = "传入IotThickness List")
public R submitBat(@Valid @RequestBody List<IotThickness> mergeList) { public R submitBat(@Valid @RequestBody List<IotThickness> mergeList) {
return R.status(service.saveOrUpdateBatch(mergeList)); return R.status(service.saveOrUpdateBatch(mergeList));
} }
/** /**
* [IOT厚度] 逻辑删除 * [IOT厚度] 逻辑删除
*/ */
@PostMapping("/remove") @PostMapping("/remove")
@ApiOperationSupport(order = 61) @ApiOperationSupport(order = 61)
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(service.deleteLogic(Func.toLongList(ids))); return R.status(service.deleteLogic(Func.toLongList(ids)));
} }
/** /**
* [IOT厚度] 导出Excel * [IOT厚度] 导出Excel
*/ */
@GetMapping("/exportExcel") @GetMapping("/exportExcel")
@ApiOperationSupport(order = 70) @ApiOperationSupport(order = 70)
@Operation(summary = "导出Excel", description = "传入IotThickness") @Operation(summary = "导出Excel", description = "传入IotThickness")
public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> iotThickness, public void exportExcel(@Parameter(hidden = true) @RequestParam Map<String, Object> iotThickness,
BladeUser bladeUser, HttpServletResponse response) { BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(iotThickness, IotThickness.class); QueryWrapper<IotThickness> qw = Condition.getQueryWrapper(iotThickness, IotThickness.class);
//if (!AuthUtil.isAdministrator()) { //if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(IotThickness::getTenantId, bladeUser.getTenantId()); // queryWrapper.lambda().eq(IotThickness::getTenantId, bladeUser.getTenantId());
//} //}
//queryWrapper.lambda().eq(IotThicknessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); //queryWrapper.lambda().eq(IotThicknessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<IotThicknessExcel> list = service.exportIotThickness(qw); List<IotThicknessExcel> list = service.exportIotThickness(qw);
ExcelUtil.export(response, "[IOT厚度]数据" + DateUtil.time(), ExcelUtil.export(response, "[IOT厚度]数据" + DateUtil.time(),
"[IOT厚度]数据表", list, IotThicknessExcel.class); "[IOT厚度]数据表", list, IotThicknessExcel.class);
} }
/** /**
* [IOT厚度] 下载Excel模板 * [IOT厚度] 下载Excel模板
*/ */
@GetMapping("/downloadExcelTemplate") @GetMapping("/downloadExcelTemplate")
@ApiOperationSupport(order = 71) @ApiOperationSupport(order = 71)
@Operation(summary = "下载Excel模板", description = "") @Operation(summary = "下载Excel模板", description = "")
public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() { public ResponseEntity<org.springframework.core.io.Resource> downloadExcelTemplate() {
return ExcelExtUtil.downloadXlsTemplate( return ExcelExtUtil.downloadXlsTemplate(
"Excel/QA/ImportTemplate-CycleTestItem.xls", "Excel/QA/ImportTemplate-CycleTestItem.xls",
"导入模版-周期试验项目.xls"); "导入模版-周期试验项目.xls");
} }
/** /**
* [IOT厚度] 导入Excel * [IOT厚度] 导入Excel
*/ */
@PostMapping("/importExcel") @PostMapping("/importExcel")
@ApiOperationSupport(order = 72) @ApiOperationSupport(order = 72)
@Operation(summary = "导入Excel", description = "MultipartFile") @Operation(summary = "导入Excel", description = "MultipartFile")
public R importExcel(@RequestParam("file") MultipartFile file) { public R importExcel(@RequestParam("file") MultipartFile file) {
R checkR = ExcelExtUtil.importExcelCheck(file); R checkR = ExcelExtUtil.importExcelCheck(file);
if (checkR != null) { if (checkR != null) {
return checkR; return checkR;
} }
List<IotThickness> importList = ExcelUtil.read( List<IotThickness> importList = ExcelUtil.read(
file, 0, 1, IotThickness.class file, 0, 1, IotThickness.class
); );
return R.status(service.saveBatch(importList)); return R.status(service.saveBatch(importList));
} }
} }

@ -102,6 +102,95 @@ public class ReviewSheetController extends BladeController {
return R.data(pagesVO); return R.data(pagesVO);
} }
/**
* [生产处置单] list分页
*/
@GetMapping("/listInit")
@ApiOperationSupport(order = 20)
@Operation(summary = "生产处置单list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listInit(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [生产处置单] list分页
*/
@GetMapping("/listRedo")
@ApiOperationSupport(order = 20)
@Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listRedo(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [生产处置单] list分页
*/
@GetMapping("/listScrap")
@ApiOperationSupport(order = 20)
@Operation(summary = "返工审理list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listScrap(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [生产处置单] list分页
*/
@GetMapping("/listInternal")
@ApiOperationSupport(order = 20)
@Operation(summary = "内部list分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listInternal(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/**
* [生产处置单] list分页
*/
@GetMapping("/listErp")
@ApiOperationSupport(order = 20)
@Operation(summary = "ERPlist分页", description = "传入ReviewSheet Obj")
public R<IPage<ReviewSheetVO>> listErp(@Parameter(hidden = true) @RequestParam Map<String, Object> reviewSheet,
Query query) {
QueryWrapper<ReviewSheet> qw = Condition.getQueryWrapper(reviewSheet, ReviewSheet.class);
IPage<ReviewSheet> pages = service.page(Condition.getPage(query), qw);
IPage<ReviewSheetVO> pagesVO = ReviewSheetWrapper.build().pageVO(pages);
pagesVO.getRecords()
.stream()
.peek(service::setVOValue)
.collect(Collectors.toList());
return R.data(pagesVO);
}
/** /**
* [生产处置单] page分页 * [生产处置单] page分页

@ -90,6 +90,6 @@
<if test="q.fromType != null"> <if test="q.fromType != null">
AND task.FROM_TYPE = #{q.fromType} AND task.FROM_TYPE = #{q.fromType}
</if> </if>
ORDER BY ID DESC ORDER BY task.ID DESC
</select> </select>
</mapper> </mapper>

@ -16,6 +16,7 @@
<result column="REMARK" property="remark"/> <result column="REMARK" property="remark"/>
<result column="UPLOAD_DATE" property="uploadDate"/> <result column="UPLOAD_DATE" property="uploadDate"/>
<result column="EQUIPMENT_ID" property="equipmentId"/> <result column="EQUIPMENT_ID" property="equipmentId"/>
<result column="IP" property="ip"/>
</resultMap> </resultMap>
<select id="selectIotHardnessPage" resultMap="iotHardnessResultMap"> <select id="selectIotHardnessPage" resultMap="iotHardnessResultMap">

@ -1,10 +1,12 @@
/** /**
* Author: Tom Shuo * Author: Tom Shuo
*/ */
package org.springblade.desk.quality.service; package org.springblade.desk.quality.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 io.swagger.v3.oas.annotations.Parameter;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -14,6 +16,7 @@ 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.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
@ -108,5 +111,9 @@ public interface IInspectionTaskService extends BaseService<InspectionTask> {
IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search); IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search);
R getSamePlace(Long id);
R sameResultCopy(Long sourceId, Long targetId);
Integer refreshStatusAndQty(Long id); Integer refreshStatusAndQty(Long id);
} }

@ -13,10 +13,13 @@ import jakarta.annotation.Resource;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.CommonConstant;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.basic.constant.BaseCol; import org.springblade.desk.basic.constant.BaseCol;
import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.constant.BaseValue;
@ -29,11 +32,9 @@ import org.springblade.desk.quality.mapper.InspectionTaskMapper;
import org.springblade.desk.quality.pojo.entity.*; import org.springblade.desk.quality.pojo.entity.*;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; 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.*;
import org.springblade.desk.quality.pojo.vo.InspectionTaskListVO;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemDetailVO;
import org.springblade.desk.quality.pojo.vo.WorkPlanItemVO;
import org.springblade.desk.quality.service.*; import org.springblade.desk.quality.service.*;
import org.springblade.desk.quality.wrapper.IndicatorYearWrapper;
import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper; import org.springblade.desk.quality.wrapper.InspectionTaskListWrapper;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
@ -42,6 +43,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* [检验任务] 服务实现类 * [检验任务] 服务实现类
@ -183,14 +185,17 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
// 关联 // 关联
wpItem.setItemId(iItem.getId()); wpItem.setItemId(iItem.getId());
wpItem.setTaskId(task.getId()); wpItem.setTaskId(task.getId());
// todo:
wpItem.setWpId(1L); wpItem.setWpId(1L);
wpItem.setStandardId(2000482194736316418L);
wpItem.setCheckQty(0d); wpItem.setCheckQty(0d);
wpItem.setTestQty(0d); wpItem.setTestQty(0d);
wpItem.setLossQty(0d); wpItem.setLossQty(0d);
// 新插入 WorkPlanItem // 新插入 WorkPlanItem
wpItemService.save(wpItem); wpItemService.save(wpItem);
if (InspectionItemConst.SPECIAL_TYPE_1.equals(iItem.getSpecialType()) || if (InspectionItemConst.SPECIAL_TYPE_1.equals(iItem.getSpecialType())) {
InspectionItemConst.SPECIAL_TYPE_2.equals(iItem.getSpecialType()) || // 测厚 不创建 WorkPlanItemDetail
} else if (InspectionItemConst.SPECIAL_TYPE_2.equals(iItem.getSpecialType()) ||
InspectionItemConst.SPECIAL_TYPE_3.equals(iItem.getSpecialType())) { InspectionItemConst.SPECIAL_TYPE_3.equals(iItem.getSpecialType())) {
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
WorkPlanItemDetail wpItemDetail = new WorkPlanItemDetail(); WorkPlanItemDetail wpItemDetail = new WorkPlanItemDetail();
@ -213,6 +218,13 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
for (WorkPlanItemVO wpItemVO : detailVO.getWpItemList()) { for (WorkPlanItemVO wpItemVO : detailVO.getWpItemList()) {
WorkPlanItem wpItem = new WorkPlanItem(); WorkPlanItem wpItem = new WorkPlanItem();
BeanUtil.copyProperties(wpItemVO, wpItem); BeanUtil.copyProperties(wpItemVO, wpItem);
if (!InspectionTaskConst.CHECK_RESULT_TODO.equals(wpItem.getCheckResult())) {
BladeUser bu = AuthUtil.getUser();
if (bu != null) {
wpItem.setCheckUserId(bu.getUserId());
}
wpItem.setCheckDate(LocalDateTime.now());
}
// 更新 WorkPlanItem // 更新 WorkPlanItem
wpItemService.updateById(wpItem); wpItemService.updateById(wpItem);
for (WorkPlanItemDetailVO wpItemDetailVO : wpItemVO.getWpItemDetailList()) { for (WorkPlanItemDetailVO wpItemDetailVO : wpItemVO.getWpItemDetailList()) {
@ -232,6 +244,45 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
return page.setRecords(baseMapper.listSearch(page, search)); return page.setRecords(baseMapper.listSearch(page, search));
} }
@Override
public R getSamePlace(Long id) {
LambdaQueryWrapper<InspectionTask> qw = Wrappers.lambdaQuery();
// todo: 需要生产支持
qw.eq(InspectionTask::getId, 2010526540823642113L);
List<InspectionTask> list = baseMapper.selectList(qw);
List<InspectionTaskListVO> listVO = InspectionTaskListWrapper.build().listVO(list);
for (InspectionTaskListVO one : listVO) {
setListVOValue(one);
}
return R.data(listVO);
}
@SneakyThrows
@Override
public R sameResultCopy(Long sourceId, Long targetId) {
InspectionTask source = null;
InspectionTask target = null;
{
LambdaQueryWrapper<InspectionTask> qw1 = Wrappers.lambdaQuery();
qw1.eq(InspectionTask::getId, sourceId);
source = baseMapper.selectById(qw1);
}
{
LambdaQueryWrapper<InspectionTask> qw2 = Wrappers.lambdaQuery();
qw2.eq(InspectionTask::getId, targetId);
target = baseMapper.selectById(qw2);
}
log.info("source = {}", source);
log.info("target = {}", target);
if (source == null || target == null) {
return R.fail("失败");
}
// todo: copy 赋值
// throw new IllegalAccessException("");
return R.success();
}
@Override @Override
public Integer refreshStatusAndQty(Long id) { public Integer refreshStatusAndQty(Long id) {
InspectionTask task = getById(id); InspectionTask task = getById(id);

@ -14,6 +14,7 @@ import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; 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.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;
@ -32,6 +33,7 @@ import org.springblade.desk.quality.wrapper.StandardWrapper;
import org.springblade.desk.quality.wrapper.WorkPlanItemWrapper; import org.springblade.desk.quality.wrapper.WorkPlanItemWrapper;
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.springblade.system.pojo.entity.UserInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -51,10 +53,6 @@ import java.util.stream.Collectors;
public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper, WorkPlanItem> public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper, WorkPlanItem>
implements IWorkPlanItemService { implements IWorkPlanItemService {
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Resource @Resource
private IInspectionItemService inspectionItemService; private IInspectionItemService inspectionItemService;
@Resource @Resource
@ -62,6 +60,12 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
@Resource @Resource
private IStandardService standardService; private IStandardService standardService;
@Resource
private IUserClient userClient;
@Resource
private IDictClient dictClient;
@Override @Override
public IPage<WorkPlanItemVO> selectWorkPlanItemPage(IPage<WorkPlanItemVO> page, WorkPlanItemVO workPlanItem) { public IPage<WorkPlanItemVO> selectWorkPlanItemPage(IPage<WorkPlanItemVO> page, WorkPlanItemVO workPlanItem) {
return page.setRecords(baseMapper.selectWorkPlanItemPage(page, workPlanItem)); return page.setRecords(baseMapper.selectWorkPlanItemPage(page, workPlanItem));
@ -78,6 +82,10 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
@Override @Override
public void setVOValue(WorkPlanItemVO vo) { public void setVOValue(WorkPlanItemVO vo) {
R<UserInfo> rUI = userClient.userInfo(vo.getCheckUserId());
if (rUI != null && rUI.isSuccess() && rUI.getData().getUser() != null) {
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);

Loading…
Cancel
Save