ソースを参照

公出修改开发

anderx 3 年 前
コミット
d35a0e5afd

+ 1 - 1
src/main/java/com/goafanti/common/constant/AFTConstants.java

@@ -25,7 +25,7 @@ public class AFTConstants {
 	public static final String	CED_ASSISTANT						= "99988";
 	/**	集团副总 */
 	public static final String	VICE_CEO							= "99997";
-	/** 技术管理员 */
+	/** 技术财税管理员 */
 	public static final String  TECH_FINANCE_DIRECTOR                = "9994";
 	/** 技术管理员 */
 	public static final String  TECH_ADMIN                          = "9998";

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

@@ -44,4 +44,9 @@ public interface PublicReleaseMapper {
     List<OutPublicReleaseCount > getTimeUserFollow(@Param("date")Date date, @Param("now")Date now);
 
     List<OutPublicRelease> publicByOrder(String orderNo);
+
+    List<OutPublicRelease> selectByMainId(Integer mainId);
+
+
+    void updateStatusByMainId(@Param("status") Integer status, @Param("mainId") Integer mainId);
 }

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

@@ -37,13 +37,14 @@
     <result column="assist" jdbcType="INTEGER" property="assist" />
     <result column="assist_aid" jdbcType="VARCHAR" property="assistAid" />
     <result column="assist_aid_name" jdbcType="VARCHAR" property="assistAidName" />
+    <result column="main_id" jdbcType="INTEGER" property="mainId" />
   </resultMap>
   <sql id="Base_Column_List">
     id, `uid`, aid, release_start, release_end, remarks, annex_url, user_name, longitude,
     latitude, `status`, create_time, clock_in, clock_in_time, photo_url, pid, pname,
     ufid, duration, valid_date, new_user, sign_sum, main_status, supplement, audit_info,
     `plan`, expected_effect, next_plan, `type`, order_no, update_time, update_status,
-    assist, assist_aid, assist_aid_name
+    assist, assist_aid, assist_aid_name, main_id
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
     select
@@ -55,6 +56,7 @@
     delete from public_release
     where id = #{id,jdbcType=INTEGER}
   </delete>
+
   <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.PublicRelease" useGeneratedKeys="true">
     insert into public_release (id, `uid`, aid,
       release_start, release_end, remarks,
@@ -67,7 +69,7 @@
       `plan`, expected_effect, next_plan,
       `type`, order_no, update_time,
       update_status, assist, assist_aid,
-      assist_aid_name)
+      assist_aid_name, main_id)
     values (#{id,jdbcType=INTEGER}, #{uid,jdbcType=VARCHAR}, #{aid,jdbcType=VARCHAR},
       #{releaseStart,jdbcType=TIMESTAMP}, #{releaseEnd,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR},
       #{annexUrl,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{longitude,jdbcType=VARCHAR},
@@ -79,7 +81,7 @@
       #{plan,jdbcType=VARCHAR}, #{expectedEffect,jdbcType=VARCHAR}, #{nextPlan,jdbcType=VARCHAR},
       #{type,jdbcType=INTEGER}, #{orderNo,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
       #{updateStatus,jdbcType=INTEGER}, #{assist,jdbcType=INTEGER}, #{assistAid,jdbcType=VARCHAR},
-      #{assistAidName,jdbcType=VARCHAR})
+      #{assistAidName,jdbcType=VARCHAR}, #{mainId,jdbcType=INTEGER})
   </insert>
 
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.PublicRelease" useGeneratedKeys="true">
@@ -190,6 +192,9 @@
       <if test="assistAidName != null">
         assist_aid_name,
       </if>
+      <if test="mainId != null">
+        main_id,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -297,6 +302,9 @@
       <if test="assistAidName != null">
         #{assistAidName,jdbcType=VARCHAR},
       </if>
+      <if test="mainId != null">
+        #{mainId,jdbcType=INTEGER},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.PublicRelease">
@@ -404,6 +412,9 @@
       <if test="assistAidName != null">
         assist_aid_name = #{assistAidName,jdbcType=VARCHAR},
       </if>
+      <if test="mainId != null">
+        main_id = #{mainId,jdbcType=INTEGER},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -442,7 +453,8 @@
       update_status = #{updateStatus,jdbcType=INTEGER},
       assist = #{assist,jdbcType=INTEGER},
       assist_aid = #{assistAid,jdbcType=VARCHAR},
-      assist_aid_name = #{assistAidName,jdbcType=VARCHAR}
+      assist_aid_name = #{assistAidName,jdbcType=VARCHAR},
+      main_id = #{mainId,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
 
@@ -453,11 +465,12 @@
     where a.aid =#{aid} and a.uid =#{uid} and a.main_status =1 and a.create_time =b.create_time
   </update>
 
+
   <select id="listPublicRelease" resultType="com.goafanti.weChat.bo.OutPublicReleaseList">
   select  a.id,b.nickname ,c.name  aname,date_format(a.release_start,'%Y-%m-%d %H:%i:%S') releaseStarts,a.user_name userName,
   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,a.assist_aid assistAid,a.assist_aid_name assistAidName
   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
@@ -694,4 +707,14 @@ a.assist,a.assist_aid assistAid
                           left join admin c on a.aid =c.id
     where a.order_no = #{orderNo}
     </select>
+  <select id="selectByMainId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from public_release
+    where main_id = #{mainId}
+  </select>
+  <update id="updateStatusByMainId">
+    update public_release set status= #{status}
+    where main_id= #{mainId}
+  </update>
 </mapper>

+ 13 - 0
src/main/java/com/goafanti/common/model/PublicRelease.java

@@ -180,6 +180,11 @@ public class PublicRelease implements Serializable {
      */
     private String assistAidName;
 
+    /**
+     * 主要公出编号
+     */
+    private Integer mainId;
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {
@@ -461,4 +466,12 @@ public class PublicRelease implements Serializable {
     public void setAssistAidName(String assistAidName) {
         this.assistAidName = assistAidName;
     }
+
+    public Integer getMainId() {
+        return mainId;
+    }
+
+    public void setMainId(Integer mainId) {
+        this.mainId = mainId;
+    }
 }

+ 26 - 1
src/main/java/com/goafanti/common/model/PublicReleaseLog.java

@@ -1,5 +1,8 @@
 package com.goafanti.common.model;
 
+import com.goafanti.common.enums.AdminFields;
+import org.springframework.beans.factory.annotation.Value;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -185,4 +188,26 @@ public class PublicReleaseLog implements Serializable {
 		this.remarks=remarks;
 		this.createTime=date;
 	}
-}
+//状态 0驳回 1发起 2同意 3打卡 4 撤销 5修改
+	public enum states {
+		bh(0,"驳回"),
+		fq(1,"发起"),
+		ty(2,"同意"),
+		dk(3,"打卡"),
+		cx(4,"撤销"),
+		xg(5,"修改"),
+		sc(6,"删除");
+		Integer code;
+		String desc;
+
+	private states(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	public Integer getCode() {
+		return this.code;
+	}
+
+}
+}

+ 49 - 18
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -1,11 +1,7 @@
 package com.goafanti.weChat.service.impl;
 
 import java.text.ParseException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 
 import com.goafanti.common.dao.*;
@@ -91,7 +87,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		publicReleaseMapper.insertSelective(in);
 		AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
 		Admin a=adminMapper.selectByPrimaryKey(my.getReviewer());
-		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),1,"发起外出申请",new Date());
+		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),PublicReleaseLog.states.fq.getCode(),"发起外出申请",new Date());
 		publicReleaseLogMapper.insertSelective(log);
 		String openid=a.getOpenId();
 		String str="["+my.getName()+"]发起["+u.getNickname()+"]的外出申请,请及时审核。";
@@ -161,10 +157,10 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		PublicReleaseLog log=new PublicReleaseLog(in.getId(),TokenManager.getAdminId(),null,in.getReason(),new Date());
 		if(in.getStatus()==null||in.getStatus()!=3) {
 			in.setStatus(1);
-			log.setStatus(5);
+			log.setStatus(PublicReleaseLog.states.xg.getCode());
 			in.setUpdateStatus(1);
 		}else {
-			log.setStatus(4);
+			log.setStatus(PublicReleaseLog.states.cx.getCode());
 		}
 		publicReleaseLogMapper.insertSelective(log);
 		return publicReleaseMapper.updateByPrimaryKeySelective(in);
@@ -220,6 +216,8 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			//如果是协单公出主公出,在审核通过
 			if (use.getAssist()==1){
 				pushPublicReleaseAssist(use);
+			}else if (use.getAssist()==0){
+				publicReleaseMapper.updateStatusByMainId(3,use.getId());
 			}
 		}
 		str=str.append(remarks);
@@ -255,18 +253,51 @@ 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());
 			String []ss=use.getAssistAid().split(",");
+			//数据库与传入比对,如果不存在就标记撤销 ,如果存在就修改成
+			for (OutPublicRelease out : list) {
+				boolean flag=false;
+				for (String s : ss) {
+					if (out.getAid().equals(s)){
+						flag=true;
+					}
+				}
+				if (!flag){
+					PublicRelease in = new PublicRelease();
+					in.setId(out.getId());
+					in.setStatus(3);
+					publicReleaseMapper.updateByPrimaryKey(in);
+					PublicReleaseLog log = new PublicReleaseLog(in.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.sc.getCode(), "修改撤销协单", new Date());
+					publicReleaseLogMapper.insertSelective(log);
+				}else {
+					use.setId(out.getId());
+					use.setClockIn(null);
+					use.setClockInTime(null);
+					publicReleaseMapper.updateByPrimaryKey(use);
+				}
+			}
 			for (String s : ss) {
-				use.setAssist(2);
-				use.setAssistAid(null);
-				use.setAid(s);
-				use.setStatus(2);
-				use.setType(3);
-				use.setId(null);
-				publicReleaseMapper.insert(use);
-				PublicReleaseLog log=new PublicReleaseLog(use.getId(),TokenManager.getAdminId(),2,"公出协单通过产生公出信息",new Date());
-				publicReleaseLogMapper.insertSelective(log);
+				boolean flag2 = false;
+				for (OutPublicRelease 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);
+					use.setMainId(useId);
+					use.setId(null);
+					publicReleaseMapper.insert(use);
+					PublicReleaseLog log = new PublicReleaseLog(use.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.ty.getCode(), "公出协单通过产生公出信息", new Date());
+					publicReleaseLogMapper.insertSelective(log);
+				}
 			}
 		}
 	}
@@ -305,7 +336,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		}else {
 			str="刷新打卡";
 		}
-		PublicReleaseLog log=new PublicReleaseLog(id,aid,3,str,new Date());
+		PublicReleaseLog log=new PublicReleaseLog(id,aid,PublicReleaseLog.states.dk.getCode(),str,new Date());
 		log.setPhotoUrl(photoUrl);
 		publicReleaseLogMapper.insertSelective(log);
 		publicReleaseMapper.updateByPrimaryKeySelective(p);