feat: 过程检验 总体判定结果校验

This commit is contained in:
luochen 2024-12-16 20:26:05 +08:00
parent c72ba6302e
commit c5735e3688
6 changed files with 106 additions and 0 deletions

View File

@ -273,6 +273,18 @@ public class QmsInspecJob extends Model<QmsInspecJob> {
@ApiModelProperty(value = "检验批")
private String inspectionBatch;
/**
* 复核人
*/
@ApiModelProperty(value = "复核人")
private String checkUser;
/**
* 复核时间
*/
@ApiModelProperty(value = "复核时间")
private LocalDateTime checkDateTime;
/**
* 引用物料性检验任务BO
*/

View File

@ -348,6 +348,19 @@ public class QmsInspecJobController {
return R.ok(qmsInspecJobService.selectPropertyInspectResult(dto));
}
/**
* 过程检验资质校验
*/
@ApiOperation(value = "过程检验资质校验",notes = "过程检验资质校验")
@GetMapping("/selectQualification")
public R selectQualification(@RequestParam("user")String user,
@RequestParam("password")String password,
@RequestParam("qualification")String qualification,
@RequestParam("operationBo")String operationBo){
qmsInspecJobService.selectQualification(user,password,qualification,operationBo);
return R.ok();
}
@GlobalTransactional
@ApiOperation(value = "根据operationBo+targetBo查询检验任务", notes = "根据operationBo+targetBo查询检验任务")

View File

@ -201,5 +201,10 @@ public interface QmsInspecJobService extends IService<QmsInspecJob> {
*/
QmsInspecJobDTO selectByHandle(String handle);
/**
* 资质校验
*/
void selectQualification (String user,String password,String qualification,String operationBo);
List<QmsInspecJob> getQmsInspecJobList(String site, String operationBo, String targetBo);
}

View File

@ -25,6 +25,9 @@ import com.foreverwin.iep.common.spc.constant.SpcMethod;
import com.foreverwin.iep.common.utils.HandleBoProcessor;
import com.foreverwin.iep.common.utils.ListUtils;
import com.foreverwin.iep.common.utils.SidUtils;
import com.foreverwin.iep.hrs.dto.QualiFicationDto;
import com.foreverwin.iep.hrs.entity.Qualification;
import com.foreverwin.iep.hrs.feign.RemoteQualificationService;
import com.foreverwin.iep.integration.feign.RemoteInvokeService;
import com.foreverwin.iep.prd.constant.NextNumberTypeEnum;
import com.foreverwin.iep.prd.domain.GenerateNextNumberRequest;
@ -88,6 +91,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static org.apache.commons.collections4.CollectionUtils.isEmpty;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
/**
* 产品检验任务作业-主文件
@ -160,6 +165,8 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
private final QmsProcessInspectionService qmsProcessInspectionService;
private final RemoteQualificationService remoteQualificationService;
private static final String OK = "1";
private static final String NG = "0";
@ -1559,6 +1566,9 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
}
List<QmsInspecDetailDTO> inspecDetailList = dto.getInspecDetailList();
saveAllInspecAndDetailResult(dto);
if (!StringUtil.isEmpty(dto.getCheckUser())) {
dto.setCheckDateTime(LocalDateTime.now());
}
String inspecJobBo = inspecDetailList.get(0).getInspecJobBo();
super.update(Wrappers.lambdaUpdate(QmsInspecJob.class)
.set(QmsInspecJob::getResult, dto.getResult())
@ -1569,6 +1579,8 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
.set(QmsInspecJob::getCompleteDateTime,LocalDateTime.now())
.set(QmsInspecJob::getJudgeUser, SecurityUtils.getUserName())
.set(QmsInspecJob::getJudgeDateTime,LocalDateTime.now())
.set(QmsInspecJob::getCheckUser,dto.getCheckUser())
.set(QmsInspecJob::getCheckDateTime,dto.getCheckDateTime())
.eq(QmsInspecJob::getHandle,inspecJobBo));
// 调用【基膜加严检验频率切换】逻辑
updateQcPlan(dto);
@ -2027,6 +2039,57 @@ public class QmsInspecJobServiceImpl extends ServiceImpl<QmsInspecJobMapper, Qms
return qmsInspecJobMapper.getQmsInspecJobList(site, operationBo, targetBo, qcSubCategories);
}
@Override
public void selectQualification(String user, String password,String qualification,String operationBo) {
String site = TenantContextHolder.getTenantId();
//查询用户
List<Map<String, String>> mapList = baseMapper.selectUserRole(user);
if (mapList.isEmpty()) {
throw BusinessException.build("用户不存在");
}
boolean flag = new BCryptPasswordEncoder().matches(password, mapList.get(0).get("PASSWORD"));
if (!flag) {
throw BusinessException.build("密码错误");
}
//查询资质
QualiFicationDto quaData = remoteQualificationService.getApiById(Qualification.genHandle(site, qualification)).getData();
if (quaData == null) {
throw BusinessException.build("资质["+qualification+"]不存在");
}
//校验角色
List<String> roleCodeList = quaData.getRoleCodeList();
List<String> relevanceHandleList = quaData.getRelevanceHandleList();
boolean stopRoleFlag = false;
boolean stopHandleFlag = false;
for (int i = 0; i < mapList.size(); i++) {
Map<String, String> map = mapList.get(i);
for (String roleCode : roleCodeList) {
if (map.get("ROLE_CODE").equals(roleCode)) {
stopRoleFlag = true;
break;
}
}
for (String relevaceHandle : relevanceHandleList ) {
if (relevaceHandle.equals(operationBo)) {
stopHandleFlag = true;
break;
}
}
if (stopRoleFlag) {
break;
}
if (stopHandleFlag) {
break;
}
}
if (!stopRoleFlag) {
throw BusinessException.build("用户["+user+"]没有资质["+qualification+"]的权限");
}
if (!stopHandleFlag) {
throw BusinessException.build("工序["+HandleBoProcessor.trimHandle(operationBo)+"]不在["+qualification+"]资质下");
}
}
/**
* 创建检验作业

View File

@ -8,6 +8,7 @@ import com.foreverwin.iep.qms.domain.ReceiptInfo;
import com.foreverwin.iep.qms.domain.Resource;
import com.foreverwin.iep.qms.dto.QmsInspecJobDTO;
import com.foreverwin.iep.qms.entity.QmsInspecJob;
import com.foreverwin.mom.admin.api.entity.SysUser;
import com.foreverwin.mom.common.data.datascope.MomBaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -65,6 +66,8 @@ public interface QmsInspecJobMapper extends MomBaseMapper<QmsInspecJob> {
List<String> selectLotNoByShop(@Param("shopOrderBo")String shopOrderBo,@Param("site")String site);
//根据handle查询全部
QmsInspecJobDTO selectByHandle(@Param("handle")String handle);
//查询用户是否存在
List<Map<String,String>> selectUserRole(@Param("userName")String userName);
// 根据工序+生产批号查询检验细类为ZHPD,检验结果不为空的数据
List<QmsInspecJob> getQmsInspecJobList(@Param("site") String site, @Param("operationBo")String operationBo, @Param("targetBo")String targetBo, @Param("qcSubCategories") String qcSubCategories);

View File

@ -37,6 +37,8 @@
<result property="physicsResult" column="PHYSICS_RESULT"/>
<result property="storageLocationBo" column="STORAGE_LOCATION_BO"/>
<result property="physicsJobBo" column="PHYSICS_JOB_BO"/>
<result property="checkUser" column="CHECK_USER"/>
<result property="checkDateTime" column="CHECK_DATE_TIME"/>
</resultMap>
<resultMap id="full" type="com.foreverwin.iep.qms.dto.QmsInspecJobDTO" extends="qmsInspecJobMap">
<result property="qcPlan" column="QC_PLAN"/>
@ -578,4 +580,12 @@
order by qij.DATE_CREATE desc
</select>
<select id="selectUserRole" resultType="java.util.HashMap">
SELECT sr.USERNAME ,sr.PASSWORD ,sl.ROLE_NAME ,sl.ROLE_CODE
from momx.SYS_USER sr
join momx.SYS_USER_ROLE se on se.USER_ID = sr.USER_ID
join momx.SYS_ROLE sl on sl.ROLE_ID = se.ROLE_ID
where USERNAME = #{userName}
</select>
</mapper>