Browse Source

新增审核最大公出审核跳过公出审核

anderx 1 year ago
parent
commit
91dae0415e

+ 1 - 0
src/main/java/com/goafanti/common/dao/OrderPublicReleaseLogMapper.java

@@ -81,5 +81,6 @@ public interface OrderPublicReleaseLogMapper {
      */
     int deleteById(Integer id);
 
+    List<OrderPublicReleaseLog> queryByOrderNo(String orderNo);
 }
 

+ 7 - 0
src/main/java/com/goafanti/common/mapper/OrderPublicReleaseLogMapper.xml

@@ -186,5 +186,12 @@
         from order_public_release_log
         where id = #{id}
     </delete>
+
+    <select id="queryByOrderNo" resultMap="OrderPublicReleaseLogMap">
+        select
+        <include refid="OrderPublicReleaseLogAllSql"/>
+        from order_public_release_log
+        where order_no = #{orderNo}
+    </select>
 </mapper>
 

+ 41 - 4
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -1203,7 +1203,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		in.setMaxDuration(maxDuration);
 		in.setMaxProcess(1);
 		in.setMaxStatus(1);
-		addOrderPublicReleaseLog(orderNo,0,0,remarks);
+		addOrderPublicReleaseLog(orderNo,0,0,remarks,use.getMaxDuration(),maxDuration);
 		List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.TECH_ADMIN);
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(orderNo);
 		StringBuilder str=new StringBuilder();
@@ -1248,7 +1248,11 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			in.setMaxProcess(process);
 			if (examine==0||examine==2){
 				addOrderPublicReleaseLog(orderNo,status,1,remarks);
-				if (examine==0)addOrderPublicReleaseLog(orderNo,status,2,"相同审核人自动跳过。");
+				//如果是0
+				if (examine==0){
+					addOrderPublicReleaseLog(orderNo,status,2,"相同审核人自动跳过。");
+					pushCompleteMaxDuration(orderNo);
+				}
 				str.append("已通过。");
 				addNoticeAndEmail(order.getSalesmanId(),NoticeStatus.PUBLIC_MAX_DURATION_YES.getCode(), str.toString());
 			}else if (examine==1){
@@ -1259,7 +1263,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 					admins.forEach(e->{
 						addNoticeAndEmail(e.getId(),NoticeStatus.PUBLIC_MAX_DURATION_YES.getCode(), str.toString());
 					});
-
+					pushCompleteMaxDuration(orderNo);
 				}
 			}
 		}else if(status==2){
@@ -1270,6 +1274,35 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		return tOrderPublicReleaseCountMapper.updateByOrderNo(in);
 	}
 
+	private void pushCompleteMaxDuration(String orderNo) {
+		List<OrderPublicReleaseLog> orderPublicReleaseLogs = orderPublicReleaseLogMapper.queryByOrderNo(orderNo);
+		List<PublicRelease> publicReleases = publicReleaseMapper.selectByOrderNo(orderNo);
+		for (PublicRelease e : publicReleases) {
+			//只比对审核中的
+			if (e.getStatus()==1){
+				boolean flag = false;
+				//审核中的公出审核人,是公出审核人
+				List<AdminPublicReviewerBo> adminPublicReviewerBos = adminPublicReviewerMapper.selectByAid(e.getAid());
+				for (OrderPublicReleaseLog log : orderPublicReleaseLogs) {
+					for (AdminPublicReviewerBo e2 : adminPublicReviewerBos) {
+						if (log.getAuditor().equals(e2.getReviewerId())){
+							flag = true;
+							break;
+						}
+					}
+				}
+				if (flag){
+					//有审核人,需要审核
+					PublicRelease newP=new PublicRelease();
+					newP.setId(e.getId());
+					newP.setStatus(2);
+					addpublicLog(e.getId(),2,"公出审核人已经审核最大公出小时,跳过审核");
+					publicReleaseMapper.update(e);
+				}
+			}
+		}
+	}
+
 	private void addNoticeAndEmail(String aid, Integer noticeStatus, String remarks) {
 		asyncUtils.addNoticAndEmail(noticeStatus,aid,remarks);
 	}
@@ -1283,8 +1316,10 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		n.setReaded(0);//未读
 		asyncUtils.addNotice(n);
 	}
-
 	private void addOrderPublicReleaseLog(String orderNo, Integer status, Integer process, String remarks) {
+		addOrderPublicReleaseLog(orderNo,status,process,remarks,null,null);
+	}
+	private void addOrderPublicReleaseLog(String orderNo, Integer status, Integer process, String remarks,Double useDuration,Double newDuration) {
 		Admin admin = adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
 		OrderPublicReleaseLog log = new OrderPublicReleaseLog();
 		log.setOrderNo(orderNo);
@@ -1293,6 +1328,8 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		log.setAuditor(admin.getId());
 		log.setAuditorName(admin.getName());
 		log.setRemarks(remarks);
+		log.setNewDuration(newDuration);
+		log.setUseDuration(useDuration);
 		log.setCreateTime(new Date());
 		orderPublicReleaseLogMapper.insert(log);
 	}