Преглед изворни кода

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

anderx пре 1 година
родитељ
комит
5536392537

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

@@ -678,7 +678,7 @@
         date_format(a.release_end ,'%Y-%m-%d %H:%i:%S') releaseEnds,date_format(a.create_time ,'%Y-%m-%d %H:%i:%S') createTimes,a.status,
         date_format(a.update_time ,'%Y-%m-%d %H:%i:%S') updateTimes,a.update_status updateStatus,a.district_name districtName,
         a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_name mainName,a.reject_name rejectName,
-        a.assistant_aid assistantAid ,a.assistant_name assistantName,a.public_again publicAgain,a.user_names userNames,
+        a.assistant_aid assistantAid ,a.assistant_name assistantName,a.public_again publicAgain,a.user_names userNames,a.alone,
         ea.total_amount expenseAmount ,a.clock_in clockIn,a.assist_process assistProcess,a.tech_start_process techStartProcess
         from public_release a  left join admin c on a.aid =c.id
         left join expense_account ea ON a.id = ea.prid AND ea.status IN (0, 1, 2, 3)
@@ -817,7 +817,7 @@
     <select id="selectDtails" resultType="com.goafanti.weChat.bo.OutPublicRelease">
         select  a.id,c.name  aname,date_format(a.release_start,'%Y-%m-%d %H:%i:%S') releaseStarts,a.update_time updateTime,a.user_names userNames,
         date_format(a.release_end ,'%Y-%m-%d %H:%i:%S') releaseEnds,date_format(a.create_time ,'%Y-%m-%d %H:%i:%S') createTimes,a.status,a.assist_process assistProcess,
-        a.annex_url annexUrl ,a.remarks,a.duration ,a.valid_date validDate ,a.aid ,c.superior_id suprId,a.tech_start_process techStartProcess,
+        a.annex_url annexUrl ,a.remarks,a.duration ,a.valid_date validDate ,a.aid ,c.superior_id suprId,a.tech_start_process techStartProcess,a.alone,
         a.plan ,a.expected_effect expectedEffect,a.next_plan nextPlan,c.reviewer,a.type,a.order_no orderNo,d.contract_no contractNo,a.address_name addressName,
         date_format(a.update_time ,'%Y-%m-%d %H:%i:%S') updateTimes,a.update_Status updateStatus,a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,
         a.main_name mainName,a.assistant_aid assistantAid,a.assistant_name assistantName,a.public_again publicAhain,x.uids,a.public_type publicType,c2.name reviewerName

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

@@ -59,7 +59,7 @@ id, uid, aid, content, create_time
         values (#{uid}, #{aid}, #{content})
     </insert>
 
-    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+    <insert id="insertBatch" >
         insert into user_super_evaluate(uid, aid, content, create_time)
         values
         <foreach collection="entities" item="entity" separator=",">

+ 10 - 0
src/main/java/com/goafanti/weChat/bo/OutPublicReleaseList.java

@@ -39,10 +39,20 @@ public class OutPublicReleaseList {
 
 	private Integer publicAssistAdvice;
 	private Integer assistProcess;
+	private Integer alone;
 
 
 	private List<OutPublicReleaseDetails> prdList;
 
+
+	public Integer getAlone() {
+		return alone;
+	}
+
+	public void setAlone(Integer alone) {
+		this.alone = alone;
+	}
+
 	public Integer getAssistProcess() {
 		return assistProcess;
 	}

+ 17 - 5
src/main/java/com/goafanti/weChat/controller/AdminReleaseApiController.java

@@ -52,8 +52,13 @@ public class AdminReleaseApiController extends CertifyApiController{
 			res.getError().add(buildErrorMessageParams(ErrorConstants.PARAM_EMPTY_ERROR,"公出地点"));
 			return res;
 		}
-		if (publicReleaseService.checkTime(in)) {
-			res.getError().add(buildError("公出时段已经被使用!","公出时段已经被使用!"));
+		int i = publicReleaseService.checkTime(in);
+		if (i==1) {
+			res.getError().add(buildError("发起人公出时段已经被使用!","发起人公出时段已经被使用!"));
+			return res;
+		}
+		if (i==2) {
+			res.getError().add(buildError("协单人公出时段已经被使用!","协单人公出时段已经被使用!"));
 			return res;
 		}
 		if(in.getAssist()==null)in.setAssist(0);
@@ -93,9 +98,16 @@ public class AdminReleaseApiController extends CertifyApiController{
 			res.getError().add(buildErrorMessageParams(ErrorConstants.PARAM_EMPTY_ERROR,"编号"));
 			return res;
 		}
-		if (in.getStatus()!=3&&publicReleaseService.checkTime(in)) {
-			res.getError().add(buildError("公出时段已经被使用!","公出时段已经被使用!"));
-			return res;
+		if (in.getStatus()!=3) {
+			int i = publicReleaseService.checkTime(in);
+			if (i==1) {
+				res.getError().add(buildError("发起人公出时段已经被使用!","发起人公出时段已经被使用!"));
+				return res;
+			}
+			if (i==2) {
+				res.getError().add(buildError("协单人公出时段已经被使用!","协单人公出时段已经被使用!"));
+				return res;
+			}
 		}
 		res.setData(publicReleaseService.updatePublicRelease(in));
 		return res;

+ 1 - 1
src/main/java/com/goafanti/weChat/service/PublicReleaseService.java

@@ -31,7 +31,7 @@ public interface PublicReleaseService {
 
 	OutPublicReleaseAndDetails followDtails(String id);
 
-	boolean checkTime(InputPublicRelease in);
+	int checkTime(InputPublicRelease in);
 
 	List<OutPublicStatistics> publicReleaseStatisticsList(InputPublicStatistics in);
 

+ 82 - 10
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -92,6 +92,8 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	private UserArchivesMapper userArchivesMapper;
 	@Autowired
 	private OrganizationIdentityMapper organizationIdentityMapper;
+	@Autowired
+	private UserSuperEvaluateMapper userSuperEvaluateMapper;
 
 	@Override
 	@Transactional
@@ -917,10 +919,12 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			p.setAuditTime(date);
 			p.setRejectName(ad.getName());
 			sendNoticeAndSoucket(a.getId(),status,content.toString());
+			List<OutPublicReleaseDetails> outPublicReleaseDetails = publicReleaseDetailsMapper.selectByPrid(id);
+			//添加上级评价
+			addUserSuperEvaluate(remarks, outPublicReleaseDetails, date);
 			//营销员审核
 		}else if (examineType==1){
 			//通知公出人切换成公出人审核人
-
 			if (status==2){
 			List<AdminPublicReviewerBo> adminPublicReviewerBos = adminPublicReviewerMapper.selectByAid(a.getId());
 			adminPublicReviewerBos=adminPublicReviewerBos.stream().filter(e -> e.getType() == 0).collect(Collectors.toList());
@@ -1026,6 +1030,25 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			return 1;
 	}
 
+	/**
+	 * 添加上级评价
+	 * @param remarks
+	 * @param outPublicReleaseDetails
+	 * @param date
+	 */
+	private void addUserSuperEvaluate(String remarks, List<OutPublicReleaseDetails> outPublicReleaseDetails, Date date) {
+		List<UserSuperEvaluate> addLsit=new ArrayList<>();
+		for (OutPublicReleaseDetails e : outPublicReleaseDetails) {
+			UserSuperEvaluate addUSE=new UserSuperEvaluate();
+			addUSE.setAid(TokenManager.getAdminId());
+			addUSE.setUid(e.getUid());
+			addUSE.setContent(remarks);
+			addUSE.setCreateTime(date);
+			addLsit.add(addUSE);
+		}
+		userSuperEvaluateMapper.insertBatch(addLsit);
+	}
+
 
 	@Override
 	public Object updateAssistExamine(Integer id, Integer status, String remarks) {
@@ -1080,6 +1103,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				publicReleaseMapper.update(newPublic2);
 			}
 		}
+
 		return 1;
 	}
 
@@ -1661,19 +1685,18 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 					for (AdminPublicReviewerBo e2 : collect2) {
 						if (e2.getReviewerId().equals(aid)){
 							flag=false;
-							flag2=true;
+//							flag2=true;
 							break;
 						}
 					}
 				}
 			}else if(out.getType()==3){
-				//如果是协单,如果是审核人则可以查看
+				//如果是协单,如果是审核人则可以查看
 				if (adminPublicReviewerBos==null)adminPublicReviewerBos = adminPublicReviewerMapper.selectByAid(out.getAid());
 				List<AdminPublicReviewerBo> collect = adminPublicReviewerBos.stream().filter(e -> e.getType() == 1).collect(Collectors.toList());
 				for (AdminPublicReviewerBo e : collect) {
 					if (e.getReviewerId().equals(aid)){
 						flag=false;
-						flag2=true;
 						break;
 					}
 				}
@@ -1935,7 +1958,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 
 
 	@Override
-	public boolean checkTime(InputPublicRelease in) {
+	public int checkTime(InputPublicRelease in) {
 		try {
 			in.setReleaseStart(DateUtils.parseDate(in.getReleaseStarts(), AFTConstants.YYYYMMDDHHMMSS));
 			in.setReleaseEnd(DateUtils.parseDate(in.getReleaseEnds(), AFTConstants.YYYYMMDDHHMMSS));
@@ -1943,7 +1966,51 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			e.printStackTrace();
 			throw new BusinessException("转换异常");
 		}
-		List<Integer> is=publicReleaseMapper.checkTime(TokenManager.getAdminId(),in.getReleaseStart(),in.getReleaseEnd());
+		//如果主协单且一起公出
+		if(in.getAssist()==1&&in.getAlone()==1){
+			//判定当前发起人能发起不
+			if(checkPublicTime(TokenManager.getAdminId(), in)){
+				//第一种,发起人时间重复
+				return 1;
+//				return true;
+			}
+			String[] split = in.getAssistAid().split(",");
+			for (String s : split) {
+				if(checkPublicTime(s, in)){
+					//第二种,协单人时间重复
+				return 2;
+//					return true;
+				}
+			}
+		}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;
+				}
+			}
+		}else {
+			//判定当前发起人能发起不
+			if(checkPublicTime(TokenManager.getAdminId(), in)){
+				//第一种,发起人时间重复
+				return 1;
+//				return true;
+			}
+		}
+
+		return 0;
+	}
+
+	/**
+	 *
+	 * @param aid
+	 * @param in
+	 * @return true 已经发起   false 未发起
+	 */
+	private boolean checkPublicTime(String aid, InputPublicRelease in) {
+		List<Integer> is=publicReleaseMapper.checkTime(aid,in.getReleaseStart(),in.getReleaseEnd());
 		if (is.size()>1) {
 			return true;
 		}else  if(is.size()==1){
@@ -1984,15 +2051,20 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			long nowTime=System.currentTimeMillis();
 			long time = Math.abs(nowTime-e.getReleaseStart().getTime())/(1000*60);
 			long time2 = Math.abs(e.getReleaseEnd().getTime()-nowTime)/(1000*60);
+
 			//距离当前时间近的开始时间,不大于当前时间
 			if (time<count&&e.getReleaseStart().getTime()<nowTime){
-				count=time;
-				id=e.getId();
+				if (e.getAlone()!=1 && e.getAssist()!=1){
+					count=time;
+					id=e.getId();
+				}
 			}
 			//距离当前时间近的结束时间,不小于当前时间
 			if (time2<count&&e.getReleaseEnd().getTime()>nowTime){
-				count=time2;
-				id=e.getId();
+				if (e.getAlone()!=1 && e.getAssist()!=1){
+					count=time2;
+					id=e.getId();
+				}
 			}
 		}
 		if (id==null)id=myPublic.get(0).getId();