Browse Source

新增打卡其他信息

anderx 4 months ago
parent
commit
2af1027ef2

+ 133 - 8
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -34,8 +34,10 @@ import org.springframework.web.socket.TextMessage;
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper> implements PublicReleaseService {
@@ -1065,7 +1067,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	 * @param id
 	 * @param status 状态 0驳回 1发起 2同意 3 撤销 4技术驳回
 	 * @param remarks
-	 * @param examineType 0上级审核 1营销员审核 2技术审核
+	 * @param examineType 0上级审核 1营销员审核 2技术审核 3二级审核
 	 * @param evaluateType 0不存指导意见 1存指导意见
 	 * @return
 	 */
@@ -1114,14 +1116,58 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			}else if(status==2){
 				str=str.append("同意,");
 				addpublicLog(id, status, remarks);
-				//如果是协单公出主公出,在审核通过
-				if (use.getAssist()==1){
-					pushPublicReleaseAssist(use, p, date, a);
-
-				}else if (use.getAssist()==0){
-					publicReleaseMapper.updateStatusByMainId(3,use.getId(),null,null);
-				}
 				content=content.append("已通过审核!");
+				//新增二级审核
+				List<AdminPublicReviewerBo> adminPublicReviewerBos = adminPublicReviewerMapper.selectByAid(use.getAid());
+				adminPublicReviewerBos=adminPublicReviewerBos.stream().filter(e -> e.getType() == 4).collect(Collectors.toList());
+				if (adminPublicReviewerBos.isEmpty()){
+					p.setStatus(2);
+					//如果是协单公出主公出,在审核通过
+					if (use.getAssist()==1){
+						pushPublicReleaseAssist(use, p, date, a);
+					}else if (use.getAssist()==0){
+						publicReleaseMapper.updateStatusByMainId(3,use.getId(),null,null);
+					}
+					addpublicLog(id, status, "无需二级审核直接通过");
+				}else {
+                    //需要审核的情况下,看是否有审核通过
+                    List<outPublicReleaseLog> outPublicReleaseLogs = publicReleaseLogMapper.listPublicReleaseLog(use.getId(), null);
+                    //先看有没有驳回
+                    int reject = 0;
+                    //标记审核
+                    AtomicInteger flag = new AtomicInteger();
+                    List<outPublicReleaseLog> collect = outPublicReleaseLogs.stream().filter(e -> e.getStatus() == 0 || e.getStatus() == 4).collect(Collectors.toList());
+                    //没有的的情况下看有没有审核 通过
+					long time;
+                    if (collect.isEmpty()) {
+                        time = 0;
+                        adminPublicReviewerBos.stream().forEach(e -> {
+                            outPublicReleaseLogs.stream().forEach(e1 -> {
+                                if (e1.getAid().equals(e.getAid())) {
+                                    flag.set(1);
+                                }
+                            });
+                        });
+                    } else {
+						time = collect.stream()
+								.mapToLong(e -> e.getCreateTime().getTime())
+								.max().orElse(0L);
+					}
+					//获取驳回或者撤销后的列表
+					Stream<outPublicReleaseLog> outPublicReleaseLogStream = outPublicReleaseLogs.stream().filter(e -> e.getCreateTime().getTime() > time);
+					//有审核的情况下可以直接跳过
+                    if (flag.get() == 1) {
+						p.setStatus(2);
+						//如果是协单公出主公出,在审核通过
+						if (use.getAssist()==1){
+							pushPublicReleaseAssist(use, p, date, a);
+						}else if (use.getAssist()==0){
+							publicReleaseMapper.updateStatusByMainId(3,use.getId(),null,null);
+						}
+						addpublicLog(use.getId(), status, "审核人已审核,跳过二级审核");
+                    }
+                    p.setStatus(1);
+                }
 			}
 			str=str.append(remarks);
 			p.setAuditInfo(str.toString());
@@ -1181,6 +1227,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				sendNoticeAndSoucket(a.getId(),status,content.toString());
 			}
 		}else if (examineType==2){
+			//技术审核
 			if (status==2){//审核通过
 				str=str.append("同意公出我的企业,").append(remarks);
 				content=content.append("已通过审核,请尽快审核。");
@@ -1222,6 +1269,84 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				addpublicLog(id, 0, str.toString());
 				sendNoticeAndSoucket(a.getId(),status,content.toString());
 			}
+		}else if (examineType==3){
+			p.setStatus(status);
+			if (status==0){
+				addpublicLog(id, status, remarks);
+				str=str.append("驳回,");
+				if (use.getAssist()==2){
+					content=content.append("技术协单被[").append(ad.getName()).append("]拒绝!");
+				}else {
+					content=content.append("未通过公出审核!");
+				}
+				if(use.getPublicType()>1){
+					p.setPublicType(1);
+					PublicExamine inpe=new PublicExamine();
+					inpe.setStatus(0);
+					inpe.setPrid(use.getId());
+					publicExamineMapper.updateStatusByPrid(inpe);
+				}
+			}else if(status==2){
+				str=str.append("同意,");
+				addpublicLog(id, status, remarks);
+				content=content.append("已通过审核!");
+				//新增二级审核
+				List<AdminPublicReviewerBo> adminPublicReviewerBos = adminPublicReviewerMapper.selectByAid(use.getAid());
+				adminPublicReviewerBos=adminPublicReviewerBos.stream().filter(e -> e.getType() == 4).collect(Collectors.toList());
+				if (adminPublicReviewerBos.isEmpty()){
+					p.setStatus(2);
+					//如果是协单公出主公出,在审核通过
+					if (use.getAssist()==1){
+						pushPublicReleaseAssist(use, p, date, a);
+					}else if (use.getAssist()==0){
+						publicReleaseMapper.updateStatusByMainId(3,use.getId(),null,null);
+					}
+				}else {
+					//需要审核的情况下,看是否有审核通过
+					List<outPublicReleaseLog> outPublicReleaseLogs = publicReleaseLogMapper.listPublicReleaseLog(use.getId(), null);
+					//先看有没有驳回
+					int reject = 0;
+					//标记审核
+					AtomicInteger flag = new AtomicInteger();
+					List<outPublicReleaseLog> collect = outPublicReleaseLogs.stream().filter(e -> e.getStatus() == 0 || e.getStatus() == 4).collect(Collectors.toList());
+					//没有的的情况下看有没有审核 通过
+					long time;
+					if (collect.isEmpty()) {
+						time = 0;
+						adminPublicReviewerBos.stream().forEach(e -> {
+							outPublicReleaseLogs.stream().forEach(e1 -> {
+								if (e1.getAid().equals(e.getAid())) {
+									flag.set(1);
+								}
+							});
+						});
+					} else {
+						time = collect.stream()
+								.mapToLong(e -> e.getCreateTime().getTime())
+								.max().orElse(0L);
+					}
+					//获取驳回或者撤销后的列表
+					Stream<outPublicReleaseLog> outPublicReleaseLogStream = outPublicReleaseLogs.stream().filter(e -> e.getCreateTime().getTime() > time);
+					//有审核的情况下可以直接跳过
+					if (flag.get() == 1) {
+						p.setStatus(2);
+						//如果是协单公出主公出,在审核通过
+						if (use.getAssist()==1){
+							pushPublicReleaseAssist(use, p, date, a);
+						}else if (use.getAssist()==0){
+							publicReleaseMapper.updateStatusByMainId(3,use.getId(),null,null);
+						}
+						addpublicLog(use.getId(), status, "审核人已审核,跳过二级审核");
+					}
+					p.setStatus(1);
+				}
+			}
+			str=str.append(remarks);
+			p.setAuditInfo(str.toString());
+			p.setAuditTime(date);
+			p.setRejectName(ad.getName());
+			sendNoticeAndSoucket(a.getId(),status,content.toString());
+
 		}
 		AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
 		if (p.getStatus()!=null||p.getPublicType()!=null||p.getTechStartProcess()!=null){