Ver código fonte

公出修改、撤销BUG修复

anderx 3 anos atrás
pai
commit
b908973ac8

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

@@ -45,7 +45,7 @@ public interface PublicReleaseMapper {
 
     List<OutPublicRelease> publicByOrder(String orderNo);
 
-    List<OutPublicRelease> selectByMainId(Integer mainId);
+    List<PublicRelease> selectByMainId(Integer mainId);
 
 
     void updateStatusByMainId(@Param("status") Integer status, @Param("mainId") Integer mainId);

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

@@ -481,7 +481,7 @@
   select  a.id,b.nickname ,c.name  aname,date_format(a.release_start,'%Y-%m-%d %H:%i:%S') releaseStarts,a.user_name userName,a.aid,
   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.latitude ,a.longitude ,a.clock_in clockIn,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.type
+a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_name mainName
   from public_release a left join `user` b on a.uid =b.id left join admin c on a.aid =c.id
   <if test="type==2">
     left join department d on c.department_id =d.id
@@ -491,15 +491,19 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type
     and a.assist = #{assist}
     </if>
 	<if test="type==0">
+    and a.assist in(0,1)
 	and a.aid= #{aid}
 	</if>
 	<if test="type==1">
+      and a.assist in(0,1)
 	and c.reviewer = #{aid}
 	</if>
     <if test="type==2">
+      and a.assist in(0,1)
       and d.manager_id = #{aid}
     </if>
     <if test="type==3">
+        and a.assist=2
         <if test="aid !=null">
         and a.aid= #{aid}
         </if>
@@ -536,15 +540,19 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type
       and a.assist = #{assist}
     </if>
     <if test="type==0">
+      and a.assist in(0,1)
       and a.aid= #{aid}
     </if>
     <if test="type==1">
+      and a.assist in(0,1)
       and c.reviewer = #{aid}
     </if>
     <if test="type==2">
+      and a.assist in(0,1)
       and d.manager_id = #{aid}
     </if>
     <if test="type==3">
+      and a.assist=2
       <if test="aid !=null">
         and a.aid= #{aid}
       </if>
@@ -572,7 +580,8 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type
     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.annex_url annexUrl ,a.remarks,a.duration ,a.valid_date validDate ,a.latitude ,a.longitude ,a.aid ,c.superior_id suprId,a.uid,
     a.clock_in clockIn ,a.plan ,a.expected_effect expectedEffect,a.next_plan nextPlan,c.reviewer,a.type,a.order_no orderNo,d.contract_no contractNo,
-    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
+    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
     from public_release a left join `user` b on a.uid =b.id left join admin c on a.aid =c.id
     left join t_order_new d on a.order_no=d.order_no
     where 1=1
@@ -632,7 +641,8 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type
     date_format(a.clock_in_time ,'%Y-%m-%d %H:%i:%S') clockInTimes,a.clock_in clockIn,a.remarks,a.supplement,a.type,
     date_format(a.create_time ,'%Y-%m-%d %H:%i:%S') createTimes,a.audit_info auditInfo,d.name sname,
     date_format(a.release_start,'%Y-%m-%d %H:%i:%S') releaseStarts,date_format(a.release_end ,'%Y-%m-%d %H:%i:%S') releaseEnds,
-    a.plan ,a.next_plan nextPlan ,a.expected_effect expectedEffect,a.update_status updateStatus
+    a.plan ,a.next_plan nextPlan ,a.expected_effect expectedEffect,a.update_status updateStatus,a.assist_aid_name assistAidName,
+    a.main_name mainName
     from public_release a left join `user` b on a.uid=b.id left join admin c on a.aid =c.id
     left join admin d on b.aid=d.id where 1=1
     <if test="publicType != null">

+ 20 - 0
src/main/java/com/goafanti/weChat/bo/OutPublicDtails.java

@@ -12,7 +12,11 @@ public class OutPublicDtails {
 	@Excel(name = "跟单人")
 	private String sname;
 	@Excel(name = "公出申请人")
+	private String mainName;
+	@Excel(name = "公出打卡人")
 	private String aname;
+	@Excel(name = "协单人")
+	private String assistAidName;
 	@Excel(name = "公出时长",width = 8)
 	private String duration;
 	@Excel(name = "状态" ,readConverterExp = "0=驳回,1=待审核,2=同意,3=撤销",width = 8)
@@ -46,6 +50,22 @@ public class OutPublicDtails {
 	@Excel(name = "修改标识",readConverterExp = "0=否,1=是",width = 8)
 	private Integer updateStatus;
 
+	public String getMainName() {
+		return mainName;
+	}
+
+	public void setMainName(String mainName) {
+		this.mainName = mainName;
+	}
+
+	public String getAssistAidName() {
+		return assistAidName;
+	}
+
+	public void setAssistAidName(String assistAidName) {
+		this.assistAidName = assistAidName;
+	}
+
 	public Integer getUpdateStatus() {
 		return updateStatus;
 	}

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

@@ -20,6 +20,15 @@ public class OutPublicReleaseList {
 	private Integer assist;
 	private String 	assistAid;
 	private String 	assistAidName;
+	private String	mainName;
+
+	public String getMainName() {
+		return mainName;
+	}
+
+	public void setMainName(String mainName) {
+		this.mainName = mainName;
+	}
 
 	public String getAid() {
 		return aid;

+ 37 - 13
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -84,14 +84,30 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		if (u.getAid().equals(TokenManager.getAdminId())){
 			in.setMainStatus(1);
 		}
-		if (in.getAssist()==1)in.setAssistAidName(getAssistAidName(in.getAssistAid()));
-		publicReleaseMapper.insertSelective(in);
 		AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
+		if (in.getAssist()==1){
+			in.setAssistAidName(getAssistAidName(in.getAssistAid()));
+			in.setMainName(my.getName());
+		}
+		publicReleaseMapper.insertSelective(in);
+		Map<String, Object> map=addPublicReleaseLog(my, in,PublicReleaseLog.states.fq.getCode(),u.getNickname(),date);
+		return map;
+	}
+
+	/**
+	 *
+	 * @param my 我的相关人员
+	 * @param in 公出信息
+	 * @param logStatus 公出状态
+	 * @param nickname	客户名称
+	 * @param date	时间
+	 */
+	private Map<String, Object> addPublicReleaseLog(AdminListBo my,InputPublicRelease in,Integer logStatus,String nickname,Date date ) {
 		Admin a=adminMapper.selectByPrimaryKey(my.getReviewer());
-		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),PublicReleaseLog.states.fq.getCode(),"发起外出申请",new Date());
+		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),logStatus,"发起外出申请",new Date());
 		publicReleaseLogMapper.insertSelective(log);
 		String openid=a.getOpenId();
-		String str="["+my.getName()+"]发起["+u.getNickname()+"]的外出申请,请及时审核。";
+		String str="["+my.getName()+"]发起["+nickname+"]的外出申请,请及时审核。";
 		sendNoticeAndSoucket(a.getId(),NoticeStatus.PUBLIC_RELEASE_START.getCode(),str);
 		Map<String, Object>map=new HashMap<String, Object>();
 		map.put("data", publicReleaseMapper.selectDtails(in.getId(),null));
@@ -145,6 +161,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 
 	@Override
 	public int updatePublicRelease(InputPublicRelease in) {
+		Date date = new Date();
 		try {
 			if(in.getReleaseStarts()!=null)in.setReleaseStart(DateUtils.parseDate(in.getReleaseStarts(), AFTConstants.YYYYMMDDHHMMSS));
 			if(in.getReleaseEnds()!=null)in.setReleaseEnd(DateUtils.parseDate(in.getReleaseEnds(), AFTConstants.YYYYMMDDHHMMSS));
@@ -160,16 +177,22 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		if (u!=null&&u.getAid().equals(TokenManager.getAdminId())){
 			in.setMainStatus(1);
 		}
-		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),null,in.getReason(),new Date());
+		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),null,in.getReason(),date);
 		if(in.getStatus()==null||in.getStatus()!=3) {
 			in.setStatus(1);
 			log.setStatus(PublicReleaseLog.states.xg.getCode());
 			in.setUpdateStatus(1);
-			if(in.getAssist()==1)in.setAssistAidName(getAssistAidName(in.getAssistAid()));
+			if(in.getAssist()==1){
+				in.setAssistAidName(getAssistAidName(in.getAssistAid()));
+				publicReleaseMapper.updateStatusByMainId(1,in.getId());
+			}
+			AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
+			addPublicReleaseLog(my,in,PublicReleaseLog.states.xg.getCode(),u.getNickname(),date);
+
 		}else {
 			log.setStatus(PublicReleaseLog.states.cx.getCode());
-			List<OutPublicRelease> list = publicReleaseMapper.selectByMainId(in.getId());
-			for (OutPublicRelease out : list) {
+			List<PublicRelease> list = publicReleaseMapper.selectByMainId(in.getId());
+			for (PublicRelease out : list) {
 				PublicReleaseLog log2 = new PublicReleaseLog(out.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.sc.getCode(), "修改撤销协单", new Date());
 				publicReleaseLogMapper.insertSelective(log2);
 			}
@@ -259,10 +282,10 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	private void pushPublicReleaseAssist(PublicRelease use) {
 		Integer useId=use.getId();
 		if (use.getAssistAid()!=null){
-			List<OutPublicRelease> list = publicReleaseMapper.selectByMainId(use.getId());
+			List<PublicRelease> list = publicReleaseMapper.selectByMainId(use.getId());
 			String []ss=use.getAssistAid().split(",");
 			//数据库与传入比对,如果不存在就标记撤销 ,如果存在就修改成
-			for (OutPublicRelease out : list) {
+			for (PublicRelease out : list) {
 				boolean flag=false;
 				for (String s : ss) {
 					if (out.getAid().equals(s)){
@@ -278,21 +301,22 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 					publicReleaseLogMapper.insertSelective(log);
 				}else {
 					use.setId(out.getId());
-					use.setClockIn(null);
+					use.setAid(out.getAid());
+					use.setStatus(1);
+					use.setClockIn(0);
 					use.setClockInTime(null);
 					publicReleaseMapper.updateByPrimaryKey(use);
 				}
 			}
 			for (String s : ss) {
 				boolean flag2 = false;
-				for (OutPublicRelease o : list) {
+				for (PublicRelease o : list) {
 					if (s.equals(o.getAid())) {
 						flag2 = true;
 					}
 				}
 				if (!flag2) {
 					use.setAssist(2);
-					use.setAssistAid(null);
 					use.setAid(s);
 					use.setStatus(2);
 					use.setType(3);