Browse Source

新增时间重复判定,一起协单,单独协单与非协单修改

anderx 1 year ago
parent
commit
5e64e8e9e3

+ 2 - 0
src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java

@@ -144,5 +144,7 @@ public interface PublicReleaseMapper {
     List<PublicReleaseDetails> selectDetailsByPrid(Integer prid);
 
     void updateAssist(InputPublicRelease in);
+
+    List<PublicRelease> checkTech(@Param("aid")String aid, @Param("start") Date start, @Param("end")Date end);
 }
 

+ 11 - 1
src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml

@@ -994,7 +994,7 @@
     <select id="checkTime" resultType="java.lang.Integer">
         select id from public_release where aid=#{aid} and status in (0,1,2)
         and (alone in (0,1) or (alone=2 and assist=2))
-        and ( (release_start &gt;= #{start} and release_start &lt; #{end})
+        and ( (release_start &gt;= #{start} and release_start &lt;= #{end})
                 or  (release_start &lt; #{start} and release_end &gt; #{start})
                 or  (release_start &lt; #{end} and release_end &gt; #{end}))
     </select>
@@ -1188,5 +1188,15 @@
         from public_release_details a
         where a.prid = #{prid}
     </select>
+    <select id="checkTech" resultType="com.goafanti.common.model.PublicRelease">
+        SELECT id
+        from public_release
+        where status =1 and `type` =0 and assist =1
+          and FIND_IN_SET(#{aid},assist_aid)
+          and ( (release_start &gt;= #{start} and release_start &lt;= #{end})
+            or  (release_start &lt; #{start} and release_end &gt; #{start})
+            or  (release_start &lt; #{end} and release_end &gt; #{end}))
+    </select>
+
 </mapper>
 

+ 31 - 16
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -1974,23 +1974,12 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				return 1;
 //				return true;
 			}
-			String[] split = in.getAssistAid().split(",");
-			for (String s : split) {
-				if(checkPublicTime(s, in)){
-					//第二种,协单人时间重复
-				return 2;
-//					return true;
-				}
-			}
+
+			Integer x = checkTech(in);
+			if (x != null) return x;
 		}else if(in.getAssist()==1&&in.getAlone()==2){
-			String[] split = in.getAssistAid().split(",");
-			for (String s : split) {
-				if(checkPublicTime(s, in)){
-					//第二种,协单人时间重复
-				return 2;
-//					return true;
-				}
-			}
+			Integer x = checkTech(in);
+			if (x != null) return x;
 		}else {
 			//判定当前发起人能发起不
 			if(checkPublicTime(TokenManager.getAdminId(), in)){
@@ -2003,6 +1992,32 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		return 0;
 	}
 
+	private Integer checkTech(InputPublicRelease in) {
+		String[] split = in.getAssistAid().split(",");
+		for (String s : split) {
+			if(checkPublicTime(s, in)){
+				//第二种,协单人时间重复
+				return 2;
+//					return true;
+			}
+			List<PublicRelease> is = publicReleaseMapper.checkTech(s,in.getReleaseStart(),in.getReleaseEnd());
+			if (is.size()>1) {
+				return 2;
+			}else  if(is.size()==1){
+				//如果id为新增那么直接不允许时间重复
+				if (in.getId()==null){
+					return 2;
+				}else {
+					//如果有id,与获取id一直,则为当前修改可以
+					if (in.getId().equals(is.get(0))){
+						return 0;
+					}
+				}
+			}
+		}
+		return 0;
+	}
+
 	/**
 	 *
 	 * @param aid