Просмотр исходного кода

修改公出申请接口修改,避免公出时段重复

anderx лет назад: 3
Родитель
Сommit
6f2afa913f

+ 14 - 1
src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java

@@ -25,7 +25,20 @@ public interface PublicReleaseMapper {
 
     OutPublicRelease selectDtails(@Param("id") Integer id, @Param("ufid")String ufid);
 
-    int checkTime(@Param("aid")String aid, @Param("start") Date start, @Param("end")Date end);
+    /**
+     * and ( (release_start >= #{start} and release_start < #{end})
+     *   or  (release_start < #{start} and release_end > #{start})
+     *   or  (release_start < #{end} and release_end > #{end}))
+     * 需要比对申请人其他公出时间,选择出重复的时间来判断是否生效。
+     * 1 已有发起时间大于选择发起小于选择结束
+     * 2 已有发起小于选择发起大于选择结束
+     * 3 已有发起小于选择结束和已有结束大于选择结束
+     * @param aid 申请人
+     * @param start 开始时间
+     * @param end 结束时间
+     * @return
+     */
+    List<Integer> checkTime(@Param("aid")String aid, @Param("start") Date start, @Param("end")Date end);
 
     void updateSignByAidAndUid(@Param("uid") String buyerId, @Param("aid") String salesmanId);
 

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

@@ -629,7 +629,7 @@
   </select>
 
   <select id="checkTime" resultType="java.lang.Integer">
- select count(*) from public_release where aid=#{aid} and status in (0,1,2)
+ select id from public_release where aid=#{aid} and status in (0,1,2)
  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}))

+ 23 - 20
src/main/java/com/goafanti/weChat/controller/AdminReleaseApiController.java

@@ -28,7 +28,7 @@ import com.goafanti.weChat.service.PublicReleaseService;
 @RestController
 @RequestMapping(value = "/api/admin/release")
 public class AdminReleaseApiController extends CertifyApiController{
-	
+
 	@Resource
 	private PublicReleaseService publicReleaseService;
 
@@ -36,7 +36,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 	private String					uploadPath			= null;
 
 
-	
+
 	/**
 	 * 发起外出申请
 	 */
@@ -59,11 +59,11 @@ public class AdminReleaseApiController extends CertifyApiController{
 			res.getError().add(buildError("公出时段已经被使用!","公出时段已经被使用!"));
 			return res;
 		}
-		
+
 		res.setData(publicReleaseService.addPublicRelease(in));
 		return res;
 	}
-	
+
 	/**
 	 * 修改外出申请
 	 * @return
@@ -71,7 +71,10 @@ public class AdminReleaseApiController extends CertifyApiController{
 	@RequestMapping(value = "/updatePublicRelease", method = RequestMethod.POST)
 	public Result updatePublicRelease(InputPublicRelease in){
 		Result res = new Result();
-		
+		if (publicReleaseService.checkTime(in)) {
+			res.getError().add(buildError("公出时段已经被使用!","公出时段已经被使用!"));
+			return res;
+		}
 		res.setData(publicReleaseService.updatePublicRelease(in));
 		return res;
 	}
@@ -96,8 +99,8 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.setData(publicReleaseService.dtails(id));
 		return res;
 	}
-	
-	
+
+
 	/**
 	 * 外出申请详情
 	 * @return
@@ -108,7 +111,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.setData(publicReleaseService.followDtails(id));
 		return res;
 	}
-	
+
 	/**
 	 * 外出申请列表
 	 * @return
@@ -119,7 +122,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.setData(publicReleaseService.listPublicRelease(in));
 		return res;
 	}
-	
+
 	/**
 	 * 外出审核
 	 * @return
@@ -142,7 +145,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.setData(publicReleaseService.pushExaminePublicRelease( id , status, remarks,duration));
 		return res;
 	}
-	
+
 	/**
 	 * 外出审核日志列表
 	 * @return
@@ -153,9 +156,9 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.data(publicReleaseService.listPublicReleaseLog(id,ufid));
 		return res;
 	}
-	
-	
-	
+
+
+
 	/**
 	 * 公出统计
 	 * @return
@@ -166,7 +169,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.data(publicReleaseService.publicReleaseStatistics(in));
 		return res;
 	}
-	
+
 	/**
 	 * 公出统计导出
 	 * @return
@@ -177,8 +180,8 @@ public class AdminReleaseApiController extends CertifyApiController{
       	NewExcelUtil<OutPublicStatistics>excel=new NewExcelUtil<>(OutPublicStatistics.class);
   		 return  excel.exportExcel(list,"公出统计列表",response);
 	}
-	
-	
+
+
 	/**
 	 * 公出详情列表
 	 * @return
@@ -189,7 +192,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.data(publicReleaseService.publicReleaseListDtails(in));
 		return res;
 	}
-	
+
 	/**
 	 * 公出详情列表
 	 * @return
@@ -200,7 +203,7 @@ public class AdminReleaseApiController extends CertifyApiController{
 		NewExcelUtil<OutPublicDtails>excel=new NewExcelUtil<>(OutPublicDtails.class);
  		 return  excel.exportExcel(list,"公出详细列表",uploadPath);
 	}
-	
+
 	/** 上传图片 **/
 	@RequestMapping(value = "/upload", method = RequestMethod.POST)
 	public Result uploadOrderInvoiceFile(HttpServletRequest req){
@@ -259,6 +262,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 		res.data(publicReleaseService.publicByOrder(orderNo));
 		return res;
 	}
-	
-	
+
+
 }

+ 6 - 2
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -404,9 +404,13 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			e.printStackTrace();
 			throw new BusinessException("转换异常");
 		}
-		int i=publicReleaseMapper.checkTime(TokenManager.getAdminId(),in.getReleaseStart(),in.getReleaseEnd());
-		if (i>0) {
+		List<Integer> is=publicReleaseMapper.checkTime(TokenManager.getAdminId(),in.getReleaseStart(),in.getReleaseEnd());
+		if (is.size()>1) {
 			return true;
+		}else  if(is.size()==1){
+			if (in.getId()!=null && !in.getId().equals(is.get(0))){
+				return true;
+			}
 		}
 		return false;
 	}

+ 1 - 1
src/main/resources/props/config_local.properties

@@ -50,7 +50,7 @@ user_channel_days=90
 #avatar.host=//172.16.0.253
 
 #avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.2.08
+static.host=//static.jishutao.com/1.2.09
 avatar.host=//172.16.0.255:3000
 #static.host=//172.16.0.255:3000/1.2.05
 #static.host=http://172.16.1.187/prod/1.2.05

+ 1 - 1
src/main/resources/props/config_test.properties

@@ -43,7 +43,7 @@ user_remind_days=15
 #提前提醒天数
 user_channel_days=90
 
-static.host=//static.jishutao.com/1.2.08
+static.host=//static.jishutao.com/1.2.09
 portal.host=//static.jishutao.com/portal/2.0.6
 avatar.host=//static.jishutao.com
 avatar.upload.host=//static.jishutao.com/upload