bug修改

This commit is contained in:
tqzhang 2024-03-22 10:04:03 +08:00
parent a582236519
commit edd012bc76
4 changed files with 69 additions and 11 deletions

View File

@ -62,6 +62,8 @@ public class AmProcessType implements Serializable {
* 会签类型 单人:1 多人:2 * 会签类型 单人:1 多人:2
*/ */
private String countersignType; private String countersignType;
private String beforeAuditId;
private String nextAuditId;
} }

View File

@ -80,4 +80,8 @@ public interface New_CheckManageDao {
void updateToolsStatus(String auditId, String isActive); void updateToolsStatus(String auditId, String isActive);
String getAuditProcessId(CheckManageBean o); String getAuditProcessId(CheckManageBean o);
AmProcessType getIfCountersign(CheckManageBean o);
List<AmProcessType> getSortList(CheckManageBean o);
} }

View File

@ -1272,16 +1272,52 @@ public class New_SubCheckManageServiceImpl implements New_SubCheckManageService
//1.1 判断是固定流程还是动态流程 //1.1 判断是固定流程还是动态流程
if (!"-1".equals(o.getProcessType()) && !"1".equals(o.getIfFinal())) { //固定流程 if (!"-1".equals(o.getProcessType()) && !"1".equals(o.getIfFinal())) { //固定流程
//写一个SQL 查询出下一级别审核人 //判断当前流程是否多人审核
AmProcessType firstBean = checkManageDao.getIfCountersign(o);
List<AmProcessType> sortList = checkManageDao.getSortList(o);
boolean tf = false;
for (int i = 0; i < sortList.size(); i++) {
String phone = sortList.get(i).getPhone();
String checkPhone = UserUtil.getLoginUser().getPhone();
if(phone.contains(checkPhone) && (i+1) == sortList.size()){
tf = true;
}
}
if (firstBean == null){
AmProcessType amProcessType = checkManageDao.getFixeNextAuditId(o); AmProcessType amProcessType = checkManageDao.getFixeNextAuditId(o);
if (amProcessType == null || "null".equals(amProcessType.getPhone())) { if (amProcessType == null || "null".equals(amProcessType.getPhone())) {
o.setIfFinal("1"); o.setIfFinal("1");
} else { } else {
o.setNextAuditId(Objects.requireNonNull(amProcessType).getPhone()); o.setNextAuditId(Objects.requireNonNull(amProcessType).getPhone());
o.setCountersignType(Objects.requireNonNull(amProcessType).getCountersignType()); o.setCountersignType(Objects.requireNonNull(amProcessType).getCountersignType());
} }
}else if("2".equals(firstBean.getCountersignType()) && tf){
//判断当前是否最后一个人
String[] nextAuditId = firstBean.getNextAuditId().split(",");
String[] beforeAuditId = {UserUtil.getLoginUser().getPhone()};
if (!StringHelper.isEmpty(firstBean.getBeforeAuditId())){
String[] newArr = new String[firstBean.getBeforeAuditId().split(",").length + 1];
System.arraycopy(firstBean.getBeforeAuditId().split(","), 0, newArr, 0, firstBean.getBeforeAuditId().split(",").length);
newArr[newArr.length - 1] = UserUtil.getLoginUser().getPhone();
beforeAuditId = newArr;
}
if(nextAuditId.length == beforeAuditId.length) {
o.setIfFinal("1");
}else{
o.setNextAuditId(firstBean.getNextAuditId());
o.setCountersignType(firstBean.getCountersignType());
}
}else {
AmProcessType amProcessType = checkManageDao.getFixeNextAuditId(o);
if (amProcessType == null || "null".equals(amProcessType.getPhone())) {
o.setIfFinal("1");
} else {
o.setNextAuditId(Objects.requireNonNull(amProcessType).getPhone());
o.setCountersignType(Objects.requireNonNull(amProcessType).getCountersignType());
}
}
//写一个SQL 查询出下一级别审核人
} }
String phone = Objects.requireNonNull(UserUtil.getLoginUser()).getPhone(); String phone = Objects.requireNonNull(UserUtil.getLoginUser()).getPhone();
String orgId = Objects.requireNonNull(UserUtil.getLoginUser()).getOrgId(); String orgId = Objects.requireNonNull(UserUtil.getLoginUser()).getOrgId();

View File

@ -418,7 +418,8 @@
`am_process_type` `am_process_type`
WHERE WHERE
type = #{processType} type = #{processType}
AND phone NOT IN ( SELECT next_audit_id FROM audit_processon WHERE audit_id = #{auditId} and create_time >( AND phone NOT IN ( SELECT next_audit_id FROM audit_processon WHERE audit_id = #{auditId} and
create_time >(
SELECT create_time from audit_processon WHERE audit_id = #{auditId} and audit_remark ='发起' ORDER BY id desc limit 1 SELECT create_time from audit_processon WHERE audit_id = #{auditId} and audit_remark ='发起' ORDER BY id desc limit 1
)) ))
ORDER BY ORDER BY
@ -433,6 +434,21 @@
select id from audit_processon where audit_id = #{auditId} and cons_id = #{id} and project_id = #{proId} select id from audit_processon where audit_id = #{auditId} and cons_id = #{id} and project_id = #{proId}
order by id desc limit 1 order by id desc limit 1
</select> </select>
<select id="getIfCountersign" resultType="com.bonus.nxdt.energy.basic.entity.AmProcessType">
select
ap.before_audit_id as beforeAuditId,
ap.next_audit_id as nextAuditId,
ap.countersign_type as countersignType
from am_process_type t
left join audit_pross_child apr on apr.process_type = t.type
left join audit_processon ap on apr.audit_process = ap.audit_id
where audit_id = #{auditId} and type = #{processType}
order by ap.id desc
limit 1
</select>
<select id="getSortList" resultType="com.bonus.nxdt.energy.basic.entity.AmProcessType">
select phone,sort from am_process_type where type = #{processType} and is_active = '1'
</select>
<update id="updateProcessType" parameterType="string"> <update id="updateProcessType" parameterType="string">
update audit_pross_child set process_type = #{processType} where id = #{childId} update audit_pross_child set process_type = #{processType} where id = #{childId}