From f8ccc5ab312ab7c5d6c7eb7fac4e37924f513869 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期二, 03 十一月 2026 19:25:29 +0800
Subject: [PATCH] fix: 完善质量检验接口与质检员分配
---
src/main/java/com/ruoyi/quality/controller/QualityInspectController.java | 156 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 149 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java b/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
index 717044e..3d9a177 100644
--- a/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
+++ b/src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
@@ -2,7 +2,15 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.project.system.service.ISysUserService;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
+import com.ruoyi.procurementrecord.service.ProcurementRecordService;
+import com.ruoyi.procurementrecord.service.impl.ProcurementRecordServiceImpl;
+import com.ruoyi.quality.dto.QualityInspectDto;
import com.ruoyi.quality.pojo.QualityInspect;
import com.ruoyi.quality.pojo.QualityInspectFile;
import com.ruoyi.quality.pojo.QualityInspectParam;
@@ -11,12 +19,16 @@
import com.ruoyi.quality.service.IQualityInspectParamService;
import com.ruoyi.quality.service.IQualityInspectService;
import com.ruoyi.quality.service.IQualityUnqualifiedService;
+import com.ruoyi.quality.util.QualityInspectionValueValidator;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
+import java.util.Objects;
/**
* 鍘熸潗鏂欐楠�/杩囩▼妫�楠�/鍑哄巶妫�楠�
@@ -33,16 +45,28 @@
@Resource
private IQualityInspectFileService qualityInspectFileService;
+ @Autowired
+ private ProcurementRecordService procurementRecordService;
+
+ @Resource
+ private ISysUserService sysUserService;
+
+ @Resource
+ private SysUserMapper sysUserMapper;
/**
* 鏂板
- * @param qualityInspect
+ * @param qualityInspectDto
* @return
*/
@PostMapping("/add")
- public AjaxResult add(@RequestBody QualityInspect qualityInspect) {
- return AjaxResult.success(qualityInspectService.add(qualityInspect));
+ public AjaxResult add(@RequestBody QualityInspectDto qualityInspectDto) {
+ String validationMessage = validateInspect(qualityInspectDto, false);
+ if (validationMessage != null) {
+ return AjaxResult.error(validationMessage);
+ }
+ return AjaxResult.success(qualityInspectService.add(qualityInspectDto));
}
/**
@@ -61,6 +85,8 @@
//鍒犻櫎妫�楠岄檮浠�
qualityInspectFileService.remove(Wrappers.<QualityInspectFile>lambdaQuery()
.in(QualityInspectFile::getInspectId,ids));
+ //鍒犻櫎鍏ュ簱璁板綍
+ procurementRecordService.remove(Wrappers.<ProcurementRecordStorage>lambdaQuery().in(ProcurementRecordStorage::getQualityInspectId,ids));
//鍒犻櫎妫�楠屽崟
return AjaxResult.success(qualityInspectService.removeBatchByIds(ids));
}
@@ -72,17 +98,70 @@
*/
@GetMapping("/{id}")
public AjaxResult QualityInspectDetail(@PathVariable("id") Integer id) {
- return AjaxResult.success(qualityInspectService.getById(id));
+ return AjaxResult.success(qualityInspectService.getDetailById(id));
}
/**
* 淇敼
- * @param qualityInspect
+ * @param qualityInspectDto
* @return
*/
@PostMapping("/update")
- public AjaxResult update(@RequestBody QualityInspect qualityInspect) {
- return AjaxResult.success(qualityInspectService.updateQualityInspect(qualityInspect));
+ public AjaxResult update(@RequestBody QualityInspectDto qualityInspectDto) {
+ String validationMessage = validateInspect(qualityInspectDto, true);
+ if (validationMessage != null) {
+ return AjaxResult.error(validationMessage);
+ }
+ QualityInspect stored = qualityInspectService.getById(qualityInspectDto.getId());
+ if (stored == null) {
+ return AjaxResult.error("妫�楠岃褰曚笉瀛樺湪");
+ }
+ if (Integer.valueOf(1).equals(stored.getInspectState())) {
+ return AjaxResult.error("宸叉彁浜ょ殑妫�楠岃褰曚笉鑳戒慨鏀�");
+ }
+ return AjaxResult.success(qualityInspectService.updateQualityInspect(qualityInspectDto));
+ }
+
+ /** 浠呭垎閰嶆楠屽憳锛岄伩鍏嶈Е鍙戞暣寮犳楠屽崟鐨勫繀濉牎楠屻�� */
+ @PostMapping("/assignInspector")
+ public AjaxResult assignInspector(@RequestBody QualityInspect inspect) {
+ if (inspect == null || inspect.getId() == null) {
+ return AjaxResult.error("妫�楠岃褰旾D涓嶈兘涓虹┖");
+ }
+ if (inspect.getCheckUserId() == null) {
+ return AjaxResult.error("璇烽�夋嫨妫�楠屽憳");
+ }
+ QualityInspect stored = qualityInspectService.getById(inspect.getId());
+ if (stored == null) {
+ return AjaxResult.error("妫�楠岃褰曚笉瀛樺湪");
+ }
+ if (Integer.valueOf(1).equals(stored.getInspectState())) {
+ return AjaxResult.error("宸叉彁浜ょ殑妫�楠岃褰曚笉鑳介噸鏂板垎閰嶆楠屽憳");
+ }
+ SysUser inspector = sysUserService.selectUserById(inspect.getCheckUserId());
+ if (inspector == null || "2".equals(inspector.getDelFlag())) {
+ return AjaxResult.error("鎵�閫夌敤鎴蜂笉瀛樺湪鎴栧凡鍒犻櫎");
+ }
+ if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())
+ && !Objects.equals(SecurityUtils.getLoginUser().getTenantId(), inspector.getTenantId())) {
+ return AjaxResult.error("鍙兘鍒嗛厤缁欏綋鍓嶅叕鍙哥敤鎴�");
+ }
+ if (!"0".equals(inspector.getStatus())) {
+ return AjaxResult.error("鎵�閫夌敤鎴峰凡鍋滅敤");
+ }
+ QualityInspect update = new QualityInspect();
+ update.setId(inspect.getId());
+ update.setCheckUserId(inspector.getUserId());
+ update.setCheckName(StringUtils.defaultIfBlank(inspector.getNickName(), inspector.getUserName()));
+ return AjaxResult.success(qualityInspectService.updateById(update));
+ }
+
+ /** 浠呰繑鍥炲綋鍓嶇鎴蜂腑姝e父銆佹湭鍒犻櫎鐨勭郴缁熺敤鎴凤紝渚涜川妫�鍛樺垎閰嶄娇鐢ㄣ�� */
+ @GetMapping("/inspectorCandidates")
+ public AjaxResult inspectorCandidates() {
+ Long tenantId = SecurityUtils.isAdmin(SecurityUtils.getUserId())
+ ? null : SecurityUtils.getLoginUser().getTenantId();
+ return AjaxResult.success(sysUserMapper.selectActiveUsers(tenantId));
}
/**
@@ -106,5 +185,68 @@
qualityInspectService.qualityInspectExport(response, qualityInspect);
}
+ /**
+ * 鎻愪氦
+ * @param qualityInspect
+ * @return
+ */
+ @PostMapping("/submit")
+ public AjaxResult submit(@RequestBody QualityInspect qualityInspect) {
+ return AjaxResult.success(qualityInspectService.submit(qualityInspect));
+ }
+ /**
+ * 涓嬭浇
+ * @param response
+ * @param qualityInspect
+ */
+ @PostMapping("/down")
+ public void down(HttpServletResponse response,@RequestBody QualityInspect qualityInspect) {
+ qualityInspectService.down(response, qualityInspect);
+ }
+
+ private String validateInspect(QualityInspectDto inspect, boolean requireId) {
+ if (inspect == null) {
+ return "妫�楠屾暟鎹笉鑳戒负绌�";
+ }
+ if (requireId && inspect.getId() == null) {
+ return "妫�楠岃褰旾D涓嶈兘涓虹┖";
+ }
+ if (inspect.getInspectType() == null || inspect.getInspectType() < 0 || inspect.getInspectType() > 2) {
+ return "妫�楠岀被鍒笉姝g‘";
+ }
+ if (inspect.getProductId() == null) {
+ return "璇烽�夋嫨浜у搧";
+ }
+ if (inspect.getCheckTime() == null) {
+ return "璇烽�夋嫨妫�娴嬫棩鏈�";
+ }
+ if (inspect.getQuantity() == null || inspect.getQuantity().signum() <= 0) {
+ return "妫�楠屾暟閲忓繀椤诲ぇ浜�0";
+ }
+ if (!"鍚堟牸".equals(inspect.getCheckResult()) && !"涓嶅悎鏍�".equals(inspect.getCheckResult())) {
+ return "璇烽�夋嫨鏈夋晥鐨勬娴嬬粨鏋�";
+ }
+ if (inspect.getInspectType() == 1 && StringUtils.isBlank(inspect.getProcess())) {
+ return "杩囩▼妫�楠屽繀椤婚�夋嫨宸ュ簭";
+ }
+ if (CollectionUtils.isEmpty(inspect.getQualityInspectParams())) {
+ return "褰撳墠浜у搧鏈厤缃楠屾寚鏍囷紝璇峰厛缁存姢鎸囨爣";
+ }
+ for (QualityInspectParam parameter : inspect.getQualityInspectParams()) {
+ if (StringUtils.isBlank(parameter.getParameterItem())) {
+ return "妫�楠岄」鐩笉鑳戒负绌�";
+ }
+ if (StringUtils.isBlank(parameter.getTestValue())) {
+ return "璇峰~鍐欌��" + parameter.getParameterItem() + "鈥濈殑妫�楠屽��";
+ }
+ }
+ if ("鍚堟牸".equals(inspect.getCheckResult())) {
+ String valueMessage = QualityInspectionValueValidator.validateQualified(inspect.getQualityInspectParams());
+ if (valueMessage != null) {
+ return valueMessage;
+ }
+ }
+ return null;
+ }
}
--
Gitblit v1.9.3