liu
6 天以前 f8ccc5ab312ab7c5d6c7eb7fac4e37924f513869
src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
@@ -2,7 +2,11 @@
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;
@@ -15,6 +19,7 @@
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;
@@ -23,6 +28,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Objects;
/**
 * 原材料检验/过程检验/出厂检验
@@ -41,6 +47,12 @@
    private IQualityInspectFileService qualityInspectFileService;
    @Autowired
    private ProcurementRecordService procurementRecordService;
    @Resource
    private ISysUserService sysUserService;
    @Resource
    private SysUserMapper sysUserMapper;
    /**
@@ -108,6 +120,48 @@
            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("检验记录ID不能为空");
        }
        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));
    }
    /** 仅返回当前租户中正常、未删除的系统用户,供质检员分配使用。 */
    @GetMapping("/inspectorCandidates")
    public AjaxResult inspectorCandidates() {
        Long tenantId = SecurityUtils.isAdmin(SecurityUtils.getUserId())
                ? null : SecurityUtils.getLoginUser().getTenantId();
        return AjaxResult.success(sysUserMapper.selectActiveUsers(tenantId));
    }
    /**
@@ -187,6 +241,12 @@
                return "请填写“" + parameter.getParameterItem() + "”的检验值";
            }
        }
        if ("合格".equals(inspect.getCheckResult())) {
            String valueMessage = QualityInspectionValueValidator.validateQualified(inspect.getQualityInspectParams());
            if (valueMessage != null) {
                return valueMessage;
            }
        }
        return null;
    }
}