Browse Source

Merge branch 'test' of jishutao/kede-server into prod

anderx 3 years ago
parent
commit
b9357ff249
20 changed files with 557 additions and 158 deletions
  1. 24 25
      src/main/java/com/goafanti/common/controller/PublicController.java
  2. 2 2
      src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java
  3. 63 18
      src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml
  4. 4 17
      src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml
  5. 1 0
      src/main/java/com/goafanti/common/model/InvoiceLog.java
  6. 27 1
      src/main/java/com/goafanti/common/model/PublicRelease.java
  7. 4 2
      src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java
  8. 1 0
      src/main/java/com/goafanti/order/bo/NewOrderChangeBo.java
  9. 1 1
      src/main/java/com/goafanti/order/bo/OutInvoiceLog.java
  10. 0 1
      src/main/java/com/goafanti/order/controller/OrderProjectApiController.java
  11. 4 1
      src/main/java/com/goafanti/order/controller/OutsourceOrgApiController.java
  12. 0 1
      src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java
  13. 1 0
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  14. 20 1
      src/main/java/com/goafanti/weChat/bo/OutPublicDtails.java
  15. 18 0
      src/main/java/com/goafanti/weChat/bo/OutPublicReleaseList.java
  16. 45 0
      src/main/java/com/goafanti/weChat/controller/AdminReleaseApiController.java
  17. 8 0
      src/main/java/com/goafanti/weChat/service/PublicReleaseService.java
  18. 331 85
      src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java
  19. 2 2
      src/main/resources/props/config_local.properties
  20. 1 1
      src/main/resources/props/config_test.properties

+ 24 - 25
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -79,7 +79,7 @@ public class PublicController extends CertifyApiController {
 
 	@Value(value = "${mobileCodeTemplate}")
 	private String					mobileCodeTemplate	= null;
-	
+
 	@Value(value = "${mobileRemindCodeTemplate}")
 	private String					mobileRemindCodeTemplate	= null;
 	@Value(value = "${wx.clockInRange}")
@@ -92,7 +92,7 @@ public class PublicController extends CertifyApiController {
 	private AttachmentService			aftFileService;
 	@Resource
 	private AdminService	adminService;
-	
+
 	@Resource
 	private FieldGlossoryService			fieldGlossoryService;
 
@@ -108,7 +108,7 @@ public class PublicController extends CertifyApiController {
 	@Resource(name = "passwordUtil")
 	private PasswordUtil			passwordUtil;
 
-	
+
 	/** 上传图片 **/
 	@RequestMapping(value = "/upload", method = RequestMethod.POST)
 	public Result uploadOrderInvoiceFile(HttpServletRequest req){
@@ -119,7 +119,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 获取验证码
-	 * 
+	 *
 	 * @param response
 	 */
 	@RequestMapping(value = "/getVCode", method = RequestMethod.GET)
@@ -129,7 +129,6 @@ public class PublicController extends CertifyApiController {
 			response.setHeader("Cache-Control", "no-cache");
 			response.setDateHeader("Expires", 0);
 			response.setContentType("image/jpg");
-
 			// 生成随机字串
 			String verifyCode = VerifyCodeUtils.generateVerifyCode(4);
 			// 存入Shiro会话session
@@ -144,7 +143,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 手机验证码
-	 * 
+	 *
 	 * @param mobile
 	 * @param sign
 	 *            是否用与找回密码
@@ -189,7 +188,7 @@ public class PublicController extends CertifyApiController {
 	}
 
 	/**
-	 * 
+	 *
 	 * @param mobile
 	 * @param res
 	 * @return
@@ -213,7 +212,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 下载图片
-	 * 
+	 *
 	 * @param response
 	 * @param path
 	 * @param request
@@ -268,7 +267,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 删除图片文件(public图片)
-	 * 
+	 *
 	 * @param path
 	 * @return
 	 */
@@ -300,7 +299,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 下载文件
-	 * 
+	 *
 	 * @param fileName
 	 * @param response
 	 * @param path
@@ -314,7 +313,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 下载模版文件
-	 * 
+	 *
 	 * @param response
 	 * @return
 	 */
@@ -408,7 +407,7 @@ public class PublicController extends CertifyApiController {
 	}
 
 	/**
-	 * 
+	 *
 	 * @param mobileCode
 	 * @return
 	 */
@@ -444,7 +443,7 @@ public class PublicController extends CertifyApiController {
 
 	/**
 	 * 重置密码
-	 * 
+	 *
 	 * @param resetCode
 	 * @param mobile
 	 * @param type
@@ -503,7 +502,7 @@ public class PublicController extends CertifyApiController {
 		VerifyCodeUtils.clearMobileCode();
 		VerifyCodeUtils.clearMobileCodeTime();
 	}
-	
+
 	@RequestMapping(value = "/getRegisterMCode", method = RequestMethod.GET )
 	@ResponseBody
 	public Result getRegisterMCode(String mobile){
@@ -520,7 +519,7 @@ public class PublicController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	@RequestMapping(value = "/getResetMCode", method = RequestMethod.GET )
 	@ResponseBody
 	public Result getResetMCode(String mobile, Integer type) {
@@ -541,7 +540,7 @@ public class PublicController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	/** 省市区查询 **/
 	@RequestMapping(value = "/listAllProvince" , method = RequestMethod.POST)
 	@ResponseBody
@@ -557,8 +556,8 @@ public class PublicController extends CertifyApiController {
 		res.setData(adminService.getListDefaultPassword(depId));
 		return res;
 	}
-	
-	
+
+
 	/** 省市区查询 **/
 	@RequestMapping(value = "/sendWeb" , method = RequestMethod.POST)
 	@ResponseBody
@@ -570,8 +569,8 @@ public class PublicController extends CertifyApiController {
 		res.setData(1);
 		return res;
 	}
-	
-	
+
+
     /**
      * 导入流水
      * @param file
@@ -692,10 +691,10 @@ public class PublicController extends CertifyApiController {
           }
           return cellValue;
           }
-    
+
           /**
            * 	通用下载请求
-           * 
+           *
            * @param fileName 文件名称
            * @param delete 是否删除
            */
@@ -725,8 +724,8 @@ public class PublicController extends CertifyApiController {
               {
                   LoggerUtils.error(PublicController.class,"下载文件失败", e);
               }
-          }    
-           
+          }
+
           @RequestMapping("/getWxConfig")
           public Result getWxConfig() {
         	  Result res =new Result();
@@ -735,7 +734,7 @@ public class PublicController extends CertifyApiController {
         	  res.data(config);
 			return res;
           }
-          
+
           @RequestMapping("/getUser")
           public Result getUser() {
         	  List<OutUser> list=userService.getuser();

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

@@ -43,8 +43,8 @@ public interface PublicReleaseMapper {
 
     List<OutPublicRelease> publicByOrder(String orderNo);
 
-    List<PublicRelease> selectByMainId(Integer mainId);
+    List<PublicRelease> selectByMainId(@Param("mainId") Integer mainId,@Param("type") Integer type,@Param("aid") String aid);
 
 
-    void updateStatusByMainId(@Param("status") Integer status, @Param("mainId") Integer mainId);
+    void updateStatusByMainId(@Param("status") Integer status, @Param("type") Integer type,@Param("mainId") Integer mainId,@Param("aid") String aid);
 }

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

@@ -41,13 +41,16 @@
     <result column="main_name" jdbcType="VARCHAR" property="mainName" />
     <result column="clock_in_remarks" jdbcType="VARCHAR" property="clockInRemarks" />
     <result column="reject_name" jdbcType="VARCHAR" property="rejectName" />
+    <result column="assistant_aid" jdbcType="VARCHAR" property="assistantAid" />
+    <result column="assistant_name" jdbcType="VARCHAR" property="assistantName" />
   </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, main_id, main_name, clock_in_remarks, reject_name
+    assist, assist_aid, assist_aid_name, main_id, main_name, clock_in_remarks, reject_name,
+    assistant_aid, assistant_name
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
     select
@@ -209,6 +212,12 @@
       <if test="rejectName != null">
         reject_name,
       </if>
+      <if test="assistantAid != null">
+        assistant_aid,
+      </if>
+      <if test="assistantName != null">
+        assistant_name,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -328,6 +337,12 @@
       <if test="rejectName != null">
         #{rejectName,jdbcType=VARCHAR},
       </if>
+      <if test="assistantAid != null">
+        #{assistantAid,jdbcType=VARCHAR},
+      </if>
+      <if test="assistantName != null">
+        #{assistantName,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.PublicRelease">
@@ -447,6 +462,12 @@
       <if test="rejectName != null">
         reject_name = #{rejectName,jdbcType=VARCHAR},
       </if>
+      <if test="assistantAid != null">
+        assistant_aid = #{assistantAid,jdbcType=VARCHAR},
+      </if>
+      <if test="assistantName != null">
+        assistant_name = #{assistantName,jdbcType=VARCHAR},
+      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -489,7 +510,9 @@
       main_id = #{mainId,jdbcType=INTEGER},
       main_name = #{mainName,jdbcType=VARCHAR},
       clock_in_remarks = #{clockInRemarks,jdbcType=VARCHAR},
-      reject_name = #{rejectName,jdbcType=VARCHAR}
+      reject_name = #{rejectName,jdbcType=VARCHAR},
+      assistant_aid = #{assistantAid,jdbcType=VARCHAR},
+      assistant_name = #{assistantName,jdbcType=VARCHAR}
     where id = #{id,jdbcType=INTEGER}
   </update>
 
@@ -502,25 +525,29 @@
 
 
   <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,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.main_name mainName,a.reject_name rejectName
-  from public_release a left join `user` b on a.uid =b.id left join admin c on a.aid =c.id
+    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.main_name mainName,a.reject_name rejectName,
+    a.assistant_aid assistantAid ,a.assistant_name assistantName
+    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
   </if>
       where 1=1
     <if test="type==0">
-        <if test="assist == 2">
-          and a.assist    =2
-        </if>
-        <if test="assist !=2 and assistType !=1">
+      <if test="assist == 2">
+        and a.assist    =2
+      </if>
+      <if test="assist == 3">
+        and a.assist    =3
+      </if>
+      <if test="assist ==4">
+        and a.assist in (2,3)
+      </if>
+        <if test="assist !=2 and assist !=3 and assist !=4 and assistType !=1">
           and a.assist in(0,1)
         </if>
-      <if test="assistType ==1">
-        and a.assist in(0,1,2)
-      </if>
         <if test="aid !=null">
         and a.aid= #{aid}
         </if>
@@ -534,7 +561,7 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_na
       and d.manager_id = #{aid}
     </if>
     <if test="type==3">
-        and a.assist=2
+        and a.assist in (2,3)
         <if test="aid !=null">
         and a.aid= #{aid}
         </if>
@@ -578,7 +605,13 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_na
       <if test="assist == 2">
         and a.assist    =2
       </if>
-      <if test="assist !=2 and assistType !=1">
+      <if test="assist == 3">
+        and a.assist    =3
+      </if>
+      <if test="assist ==4">
+        and a.assist in (2,3)
+      </if>
+      <if test="assist !=2 and assist !=3 and assist !=4 and assistType !=1">
         and a.assist in(0,1)
       </if>
       <if test="assistType ==1">
@@ -626,7 +659,7 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_na
     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,
-    a.main_name mainName
+    a.main_name mainName,a.assistant_aid assistantAid,a.assistant_name assistantName
     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
@@ -687,7 +720,7 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_na
     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.assist_aid_name assistAidName,
-    a.main_name mainName,a.assist
+    a.main_name mainName,a.assist,a.assistant_aid assistantAid, a.assistant_name assistantName
     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">
@@ -796,9 +829,21 @@ a.assist,a.assist_aid assistAid,a.assist_aid_name assistAidName,a.type,a.main_na
     <include refid="Base_Column_List" />
     from public_release
     where main_id = #{mainId}
+    <if test="type !=null">
+      and type= #{type}
+    </if>
+    <if test="aid !=null">
+      and aid= #{aid}
+    </if>
   </select>
   <update id="updateStatusByMainId">
     update public_release set status= #{status}
     where main_id= #{mainId}
+    <if test="type !=null">
+      and type= #{type}
+    </if>
+    <if test="aid !=null">
+      and aid= #{aid}
+    </if>
   </update>
 </mapper>

+ 4 - 17
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -1772,20 +1772,14 @@
       left join department d on b.order_dep =d.id
     </if>
     where  b.delete_sign in (0,2) and b.approval in (0,1,2)
-    <if test="shiroType ==0">
-      and a.process_status in (1,2,3,4)
-    </if>
+    and a.process_status in (1,2,3,4)
     <if test="shiroType ==1">
-      and a.process_status in (1,2,3,4)
-      and b.salesman_id = #{aid}
+        and b.salesman_id = #{aid}
     </if>
     <if test="shiroType ==2">
-      and a.process_status in (1,2,3)
       and d.finance_id  = #{aid}
     </if>
-    <if test="shiroType ==3">
-      and a.process_status in (1,2,3)
-    </if>
+
     <if test="orderNo != null">
       and a.order_no = #{orderNo}
     </if>
@@ -1843,20 +1837,13 @@
         left join department d on b.order_dep =d.id
       </if>
       where  b.delete_sign in (0,2) and b.approval in (0,1,2)
-      <if test="shiroType ==0">
-        and a.process_status in (1,2,3,4)
-      </if>
+      and a.process_status in (1,2,3,4)
       <if test="shiroType ==1">
-        and a.process_status in (1,2,3,4)
         and b.salesman_id = #{aid}
       </if>
       <if test="shiroType ==2">
-        and a.process_status in (1,2,3)
         and d.finance_id  = #{aid}
       </if>
-      <if test="shiroType ==3">
-        and a.process_status in (1,2,3)
-      </if>
       <if test="orderNo != null">
         and a.order_no = #{orderNo}
       </if>

+ 1 - 0
src/main/java/com/goafanti/common/model/InvoiceLog.java

@@ -8,6 +8,7 @@ import java.util.Date;
  * @author
  */
 public class InvoiceLog implements Serializable {
+
     /**
      * 日志id
      */

+ 27 - 1
src/main/java/com/goafanti/common/model/PublicRelease.java

@@ -56,7 +56,7 @@ public class PublicRelease implements Serializable {
     private String latitude;
 
     /**
-     * 状态 0驳回 1发起 2同意 3 撤销
+     * 状态 0驳回 1发起 2同意 3 撤销 4技术驳回
      */
     private Integer status;
 
@@ -200,6 +200,16 @@ public class PublicRelease implements Serializable {
      */
     private String rejectName;
 
+    /**
+     * 协单助手
+     */
+    private String assistantAid;
+
+    /**
+     * 协单助手名称
+     */
+    private String assistantName;
+
     private static final long serialVersionUID = 1L;
 
     public Integer getId() {
@@ -513,4 +523,20 @@ public class PublicRelease implements Serializable {
     public void setRejectName(String rejectName) {
         this.rejectName = rejectName;
     }
+
+    public String getAssistantAid() {
+        return assistantAid;
+    }
+
+    public void setAssistantAid(String assistantAid) {
+        this.assistantAid = assistantAid;
+    }
+
+    public String getAssistantName() {
+        return assistantName;
+    }
+
+    public void setAssistantName(String assistantName) {
+        this.assistantName = assistantName;
+    }
 }

+ 4 - 2
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -1009,7 +1009,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	@Override
 	public void checkCustomer(Set<CustomerExcelBo> boSet, Set<Integer> existRows, Set<Integer> filterRows) {
 		List<User> list = null;
-		CustomerExcelBo[] bos = (CustomerExcelBo[]) boSet.toArray(new CustomerExcelBo[] {});
+		CustomerExcelBo[] bos = boSet.toArray(new CustomerExcelBo[] {});
 		for (int i = 0; i < bos.length; i++) {
 			CustomerExcelBo bo = bos[i];
 			CustomerExcelBo ceb = null;
@@ -2399,7 +2399,9 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			if(in.getDepId()!=null)map.put("depId",in.getDepId());
 		}
 		map.put("shiroType",in.getShiroType());
-		return (Pagination<OutUserMianProducts>) findPage("findMainProductsList","findMainProductsCount",map,in.getPageNo(),in.getPageSize());
+
+		Pagination<OutUserMianProducts> p=(Pagination<OutUserMianProducts>) findPage("findMainProductsList","findMainProductsCount",map,in.getPageNo(),in.getPageSize());
+		return p;
 	}
 
 	@Override

+ 1 - 0
src/main/java/com/goafanti/order/bo/NewOrderChangeBo.java

@@ -7,6 +7,7 @@ import com.goafanti.common.bo.OrderExamineBo;
 import com.goafanti.common.model.NewOrderChange;
 
 public class NewOrderChangeBo extends NewOrderChange {
+	private static final long serialVersionUID = 1L;
 	private String createTimes;
 	private BigDecimal arrears;
 	private String paymentTimes;

+ 1 - 1
src/main/java/com/goafanti/order/bo/OutInvoiceLog.java

@@ -5,7 +5,7 @@ import com.goafanti.common.model.InvoiceLog;
 import java.util.Date;
 
 public class OutInvoiceLog extends InvoiceLog {
-
+    private static final long serialVersionUID = 1L;
     private String  createTimes;
 
     private String  adminName;

+ 0 - 1
src/main/java/com/goafanti/order/controller/OrderProjectApiController.java

@@ -543,7 +543,6 @@ public class OrderProjectApiController extends CertifyApiController {
 	public Result memberList(InputMemberList in){
 		Result res = new Result();
 		return res.data(orderProjectService.memberList(in));
-
 	}
 
 	/**

+ 4 - 1
src/main/java/com/goafanti/order/controller/OutsourceOrgApiController.java

@@ -136,12 +136,15 @@ public class OutsourceOrgApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "项目外包信息","项目外包信息"));
 			return res;
 		}
-		if(o.getType()==1&&orderNewService.checkOfficialType(o)){
+		//项目发起并且不是外包。
+		if(o.getType()==1&&o.getStartType()==1&&
+				orderNewService.checkOfficialType(o)){
 			res.getError().add(buildError(ErrorConstants.DATA_EMPTY_ERROR, "后台官费分类","后台官费分类"));
 			return res;
 		}
 		return res.data(orderNewService.pushOutsourceProjectAudit(o));
 	}
+
 	/**
 	 * 外包审核列表
 	 */

+ 0 - 1
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -740,7 +740,6 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				ot.setCommodityPrice(cd.getCommodityPrice());
 				ot.setCommodityQuantity(cd.getCommodityQuantity());
 				tOrderTaskMapper.updateByPrimaryKeySelective(ot);
-
 			}else if(cd.getType()==3) {
 				tOrderTaskMapper.deleteByPrimaryKey(cd.getTid());
 			}

+ 1 - 0
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -1528,6 +1528,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Override
 	public boolean checkOfficialType(TOrderOutsource o) {
 		TOrderTaskDetailBo t=tOrderTaskMapper.getOrderTaskDetail(o.getTid().toString());
+		//项目类型是专利不是转让就需要获取专利官费
 		if(t.getPatentTransfer()==0){
 			if(t.getBpType()==1) {
 				OfficialFeePrice of=officialFeePriceMapper.selectBytype(o.getPatentNameType(), t.getPatentType());

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

@@ -31,7 +31,7 @@ public class OutPublicDtails  {
 	private String clockInTimes;
 	@Excel(name = "创建时间" )
 	private String createTimes;
-	@Excel(name = "公出类型",readConverterExp = "0=业务公出,1=技术公出,2=行政公出,3=技术协单",width = 8)
+	@Excel(name = "公出类型",readConverterExp = "0=业务公出,1=技术公出,2=行政公出,3=技术协单,4=协单助手",width = 8)
 	private Integer type;
 	@Excel(name = "公出目标" )
 	private String remarks;
@@ -50,8 +50,27 @@ public class OutPublicDtails  {
 	@Excel(name = "修改标识",readConverterExp = "0=否,1=是",width = 8)
 	private Integer updateStatus;
 
+	private String assistantAid;
+	@Excel(name = "协单助手" )
+	private String assistantName;
 	private Integer assist;
 
+	public String getAssistantAid() {
+		return assistantAid;
+	}
+
+	public void setAssistantAid(String assistantAid) {
+		this.assistantAid = assistantAid;
+	}
+
+	public String getAssistantName() {
+		return assistantName;
+	}
+
+	public void setAssistantName(String assistantName) {
+		this.assistantName = assistantName;
+	}
+
 	public Integer getAssist() {
 		return assist;
 	}

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

@@ -22,6 +22,24 @@ public class OutPublicReleaseList {
 	private String 	assistAidName;
 	private String	mainName;
 	private String rejectName;
+	private String assistantAid;
+	private String assistantName;
+
+	public String getAssistantAid() {
+		return assistantAid;
+	}
+
+	public void setAssistantAid(String assistantAid) {
+		this.assistantAid = assistantAid;
+	}
+
+	public String getAssistantName() {
+		return assistantName;
+	}
+
+	public void setAssistantName(String assistantName) {
+		this.assistantName = assistantName;
+	}
 
 	public String getRejectName() {
 		return rejectName;

+ 45 - 0
src/main/java/com/goafanti/weChat/controller/AdminReleaseApiController.java

@@ -9,6 +9,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.goafanti.common.bo.Error;
 import com.goafanti.common.error.BusinessException;
 import com.goafanti.weChat.bo.*;
 import org.apache.commons.beanutils.BeanUtils;
@@ -320,4 +321,48 @@ public class AdminReleaseApiController extends CertifyApiController{
 		return res;
 	}
 
+	/**
+	 * 新增协单助手
+	 * @param id 公出编号
+	 * @param aid 协单助手编号
+	 * @return
+	 */
+	@RequestMapping(value = "/addAssistant",method = RequestMethod.POST)
+	public Result addAssistant (Integer id,String aid){
+		Result res =new Result();
+		if (id==null||aid==null){
+			res.getError().add(new Error(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号与人员编号"));
+			return res;
+		}
+		if (publicReleaseService.checkaddAssistant(id,aid)){
+			res.getError().add(new Error("协单助手已经存在"));
+			return res;
+		}
+		res.data(publicReleaseService.addAssistant(id,aid));
+		return res;
+	}
+
+	/**
+	 * 删除协单助手
+	 * @param id 公出编号
+	 * @param aid 协单助手编号
+	 * @return
+	 */
+	@RequestMapping(value = "/deleteAssistant",method = RequestMethod.POST)
+	public Result deleteAssistant (Integer id,String aid){
+		Result res =new Result();
+		if (id==null||aid==null){
+			res.getError().add(new Error(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号与人员编号"));
+			return res;
+		}
+		if (publicReleaseService.checkdeleteAssistant(id,aid)){
+			res.getError().add(new Error("协单助手已经打卡,无法删除"));
+			return res;
+		}
+		res.data(publicReleaseService.deleteAssistant(id,aid));
+		return res;
+	}
+
+
+
 }

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

@@ -51,4 +51,12 @@ public interface PublicReleaseService {
     Object getMyNewPublic();
 
 	int pushTechReject(Integer id, String remarks);
+
+    int addAssistant(Integer id,String aid);
+
+	int deleteAssistant(Integer id, String aid);
+
+    boolean checkdeleteAssistant(Integer id, String aid);
+
+	boolean checkaddAssistant(Integer id, String aid);
 }

+ 331 - 85
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -3,9 +3,9 @@ package com.goafanti.weChat.service.impl;
 import java.text.ParseException;
 import java.util.*;
 
-
 import com.goafanti.common.dao.*;
 import com.goafanti.order.service.OrderService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -106,7 +106,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		Admin a=adminMapper.selectByPrimaryKey(my.getReviewer());
 		String openid=a.getOpenId();
 		String str="["+my.getName()+"]发起["+nickname+"]的外出申请,请及时审核。";
-		sendNoticeAndSoucket(a.getId(),NoticeStatus.PUBLIC_RELEASE_START.getCode(),str);
+		sendNoticeAndSoucket(a.getId(),1,str);
 		Map<String, Object>map=new HashMap<String, Object>();
 		map.put("data", publicReleaseMapper.selectDtails(in.getId(),null));
 		if (openid!=null) {
@@ -137,11 +137,14 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 
 
 	private void sendNoticeAndSoucket(String id,Integer type,String content) {
+		Integer noticeType=NoticeStatus.PUBLIC_RELEASE_START.getCode();
+		if(type==0)noticeType=NoticeStatus.PUBLIC_RELEASE_NO.getCode();
+			else if (type==2)noticeType=NoticeStatus.PUBLIC_RELEASE_YES.getCode();
 		systemWebSocketHandler.sendMessageToUser(id, new TextMessage("unread"));
 		Notice n =new Notice();
 		n.setId(UUID.randomUUID().toString());
 		n.setAid(id);
-		n.setNoticeType(type);
+		n.setNoticeType(noticeType);
 		n.setContent(content);
 		n.setReaded(0);//未读
 		asyncUtils.addNotice(n);
@@ -154,11 +157,12 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	 * @param type 类型
 	 */
 	private void sendEmail(AdminListBo my, Admin a,Integer type) {
-		String title="外出申请提醒";
-		if (type==0) title="外出申请驳回提醒";
-		else if (type==2) title="外出申请同意提醒";
+		StringBuffer title=new StringBuffer();
+		if (type==0) title=title.append("外出申请驳回提醒");
+		else if (type==1) title=title.append("外出申请提醒");
+		else if (type==2) title=title.append("外出申请同意提醒");
 		if (SendEmailUtil.isEmail(a.getEmail())) {
-			EmailBo email=new EmailBo(title,a.getEmail() , my.getDepartmentName(), my.getName(),"详情请登录微信打卡小程序查看,谢谢!") ;
+			EmailBo email=new EmailBo(title.toString(),a.getEmail() , my.getDepartmentName(), my.getName(),"详情请登录微信打卡小程序查看,谢谢!") ;
 			asyncUtils.send(email);
 		}
 	}
@@ -182,30 +186,33 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			in.setMainStatus(1);
 		}
 		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()));
-			}else{
-				in.setAssistAidName("");
-
-			}
 			AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
 			//新增修改日志
-			publicReleaseLogMapper.insertSelective(log);
 			//重新发起
 			addPublicReleaseLog(my,in,u.getNickname(),date);
-
 		}else {
+			List<PublicRelease> list = publicReleaseMapper.selectByMainId(in.getId(),3,null);
+			List<PublicRelease> list2 = publicReleaseMapper.selectByMainId(in.getId(),4,null);
 			log.setStatus(PublicReleaseLog.states.cx.getCode());
-			List<PublicRelease> list = publicReleaseMapper.selectByMainId(in.getId());
 			for (PublicRelease out : list) {
 				addpublicLog(out.getId(), PublicReleaseLog.states.sc.getCode(), "修改撤销协单");
+				out.setStatus(3);
+				publicReleaseMapper.updateByPrimaryKeySelective(out);
+			}
+
+			for (PublicRelease out : list2) {
+				addpublicLog(out.getId(), PublicReleaseLog.states.sc.getCode(), "修改撤销协单助手");
+				out.setStatus(3);
+				publicReleaseMapper.updateByPrimaryKeySelective(out);
 			}
 
 		}
+		publicReleaseLogMapper.insertSelective(log);
 		return publicReleaseMapper.updateByPrimaryKeySelective(in);
 	}
 
@@ -245,16 +252,27 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		StringBuffer str=new StringBuffer();
 		Admin ad=adminMapper.selectByPrimaryKey(aid);
 		str=str.append("(").append(ad.getName()).append(")");
+		Integer type=0;
+		String content="";
+		User u=userMapper.selectByPrimaryKey(use.getUid());
+		Admin a=adminMapper.selectByPrimaryKey(use.getAid());
 		if (status==0){
 			str=str.append("驳回,");
+			if (use.getAssist()==2){
+				content="["+u.getNickname()+"]公司的外出申请,技术协单被["+ad.getName()+"]拒绝!";
+			}else {
+				content="["+u.getNickname()+"]公司的外出申请,未通过公出审核!";
+			}
 		}else if(status==2){
 			str=str.append("同意,");
 			//如果是协单公出主公出,在审核通过
 			if (use.getAssist()==1){
-				pushPublicReleaseAssist(use,status,date);
+				pushPublicReleaseAssist(use,status,date,u,a);
 			}else if (use.getAssist()==0){
-				publicReleaseMapper.updateStatusByMainId(3,use.getId());
+				publicReleaseMapper.updateStatusByMainId(3,use.getId(),null,null);
 			}
+
+			content="["+u.getNickname()+"]公司的外出申请,已通过审核!";
 		}
 		str=str.append(remarks);
 		p.setAuditInfo(str.toString());
@@ -262,23 +280,8 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		publicReleaseMapper.updateByPrimaryKeySelective(p);
 		addpublicLog(id, status, remarks);
 		AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
-		Admin a=adminMapper.selectByPrimaryKey(use.getAid());
-		Integer type=0;
-		String content="";
-		User u=userMapper.selectByPrimaryKey(use.getUid());
-		if (status==0) {
-			type=NoticeStatus.PUBLIC_RELEASE_NO.getCode();
 
-			if (use.getAssist()==2){
-				content="["+u.getNickname()+"]公司的外出申请,技术协单被["+ad.getName()+"]拒绝!";
-			}else {
-				content="["+u.getNickname()+"]公司的外出申请,未通过公出审核!";
-			}
-		}else if(status==2) {
-			type=NoticeStatus.PUBLIC_RELEASE_YES.getCode();
-			content="["+u.getNickname()+"]公司的外出申请,已通过审核!";
-		}
-		sendNoticeAndSoucket(a.getId(),type,content);
+		sendNoticeAndSoucket(a.getId(),status,content);
 		if (my.getOpenId()!=null) {
 			if (remarks.length()>19) {
 				remarks=remarks.substring(0, 15)+"...";
@@ -305,7 +308,6 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		PublicRelease mainPublic= publicReleaseMapper.selectByPrimaryKey(use.getMainId());
 		Admin ad=adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
 		StringBuffer str=new StringBuffer();
-		str=str.append("(").append(ad.getName()).append(")");
 		if (use.getAssist()!=2){
 			throw  new BusinessException("只有技术公出能发起技术驳回");
 		}
@@ -315,7 +317,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		newMain.setStatus(4);
 		newMain.setRejectName(ad.getName());
 		newMain.setAuditInfo(str.toString());
-		addpublicLog(mainPublic.getId(), status, remarks);
+		addWeChatNotice(mainPublic.getAid(),0,str.toString(),mainPublic.getId());
 		publicReleaseMapper.updateByPrimaryKeySelective(newMain);
 		PublicRelease up=new PublicRelease();
 		up.setId(id);
@@ -323,6 +325,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		up.setStatus(3);
 		addpublicLog(id, status, remarks);
 		publicReleaseMapper.updateByPrimaryKeySelective(up);
+		deleteAssistantPulicRelease(use,null);
 		return addNoticeAndWeChat(mainPublic.getId(), mainPublic.getAid(), str.toString(), status);
 	}
 
@@ -335,9 +338,6 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 	 * @return
 	 */
 	private Integer addNoticeAndWeChat(Integer id,String aid, String remarks,  Integer status) {
-		Integer noticeType=0;
-		if (status ==0)noticeType=NoticeStatus.PUBLIC_RELEASE_NO.getCode();
-		sendNoticeAndSoucket(aid,noticeType, remarks);
 		AdminListBo my = adminMapper.getDeptNameByAid(aid);
 		Admin a = adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
 		if (my.getOpenId()!=null) {
@@ -351,60 +351,128 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		}
 	}
 
-	private void pushPublicReleaseAssist(PublicRelease use,Integer status,Date date) {
-		Integer useId=use.getId();
+	/**
+	 *
+	 * @param use 原始公出信息
+	 * @param status 状态
+	 * @param date 时间
+	 * @param u 客户
+	 * @param a
+	 */
+	private void pushPublicReleaseAssist(PublicRelease use,Integer status,Date date,User u,Admin a) {
 		if (use.getAssistAid()!=null){
-			List<PublicRelease> list = publicReleaseMapper.selectByMainId(use.getId());
-			String []ss=use.getAssistAid().split(",");
-			//数据库与传入比对,如果不存在就标记撤销 ,如果存在就修改成
-			for (PublicRelease out : list) {
+			updatePushassist(use, status, date,u,a);
+			if(use.getAssistantAid()!=null){
+				updatepushAssistant(use,u,a);
+			}
+
+		}
+	}
+
+	/**
+	 * 处理技术协单
+	 * @param use
+	 * @param status
+	 * @param date
+	 */
+	private void updatePushassist(PublicRelease use, Integer status, Date date, User u,Admin a) {
+		//协单
+		List<PublicRelease> list = publicReleaseMapper.selectByMainId(use.getId(),3,null);
+		String []ss= use.getAssistAid().split(",");
+		//数据库与传入比对,如果不存在就标记撤销 ,如果存在就修改成
+		for (PublicRelease out : list) {
+			boolean flag=false;
+			for (String s : ss) {
+				if (out.getAid().equals(s)){
+					flag=true;
+					break;
+				}
+			}
+			if (!flag){
+				PublicRelease in = new PublicRelease();
+				in.setId(out.getId());
+				in.setStatus(3);
+				publicReleaseMapper.updateByPrimaryKeySelective(in);
+				StringBuffer str = new StringBuffer("[").append(a.getName()).append("]取消公出").append("[").append(u.getUsername()).append("]。");
+				PublicReleaseLog log = new PublicReleaseLog(in.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.cx.getCode(), str.toString(), date);
+				publicReleaseLogMapper.insertSelective(log);
+				sendNoticeAndSoucket(out.getAid(),in.getStatus(),str.toString());
+			}else {
+				PublicRelease np = new PublicRelease();
+				BeanUtils.copyProperties(use,np);
+				np.setId(out.getId());
+				np.setMainId(null);
+				np.setClockIn(null);
+				np.setClockInTime(null);
+				np.setType(null);
+				np.setAssist(2);
+				np.setStatus(status);
+				np.setAid(null);
+				publicReleaseMapper.updateByPrimaryKeySelective(np);
+				StringBuffer str = new StringBuffer("[").append(a.getName()).append("]修改了公出").append("[").append(u.getUsername()).append("]。");
+				PublicReleaseLog log = new PublicReleaseLog(np.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.xg.getCode(),str.toString(), date);
+				publicReleaseLogMapper.insertSelective(log);
+				sendNoticeAndSoucket(out.getAid(),np.getStatus(),str.toString());
+			}
+		}
+		for (String s : ss) {
+			boolean flag2 = false;
+			for (PublicRelease o : list) {
+				if (s.equals(o.getAid())) {
+					flag2 = true;
+				}
+			}
+			if (!flag2) {
+				PublicRelease np = new PublicRelease();
+				BeanUtils.copyProperties(use,np);
+				np.setAssist(2);
+				np.setAid(s);
+				np.setStatus(2);
+				np.setType(3);
+				np.setMainId(use.getMainId());
+				np.setId(null);
+				publicReleaseMapper.insertSelective(np);
+				StringBuffer str = new StringBuffer("[").append(a.getName()).append("]邀请你技术协单").append("[").append(u.getUsername()).append("]。");
+				PublicReleaseLog log = new PublicReleaseLog(np.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.fq.getCode(), str.toString(), date);
+				sendNoticeAndSoucket(np.getAid(),np.getStatus(),str.toString());
+				publicReleaseLogMapper.insertSelective(log);
+			}
+		}
+	}
+
+	/**
+	 * 处理技术助手
+	 * @param use
+	 */
+	private void updatepushAssistant(PublicRelease use,User u,Admin a) {
+		List<String> list=new ArrayList();
+		list =new ArrayList<>(Arrays.asList(use.getAssistantAid().split(",")));
+		List<PublicRelease> deletelist = publicReleaseMapper.selectByMainId(use.getId(),4,null);
+		for (PublicRelease p : deletelist) {
 				boolean flag=false;
-				for (String s : ss) {
-					if (out.getAid().equals(s)){
+				for (String s : list) {
+					if (p.getAid().equals(s)){
 						flag=true;
 						break;
 					}
 				}
-				if (!flag){
-					PublicRelease in = new PublicRelease();
-					in.setId(out.getId());
-					in.setStatus(3);
-					publicReleaseMapper.updateByPrimaryKeySelective(in);
-					PublicReleaseLog log = new PublicReleaseLog(in.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.ty.getCode(), "同意修改,撤销此协单", date);
-					publicReleaseLogMapper.insertSelective(log);
-				}else {
-					use.setId(out.getId());
-					use.setAid(out.getAid());
-					use.setMainId(null);
-					use.setClockIn(null);
-					use.setClockInTime(null);
-					use.setType(null);
-					use.setAssist(2);
-					use.setStatus(status);
-					publicReleaseMapper.updateByPrimaryKeySelective(use);
-					PublicReleaseLog log = new PublicReleaseLog(out.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.ty.getCode(), "同意协单信息", date);
-					publicReleaseLogMapper.insertSelective(log);
-				}
-			}
-			for (String s : ss) {
-				boolean flag2 = false;
-				for (PublicRelease o : list) {
-					if (s.equals(o.getAid())) {
-						flag2 = true;
+				if (flag){
+					if (!use.getUid().equals(p.getUid()))p.setUid(use.getUid());
+					if (!use.getUserName().equals(p.getUserName())){
+						p.setUserName(use.getUserName());
+						p.setLatitude(use.getLatitude());
+						p.setLongitude(use.getLongitude());
 					}
-				}
-				if (!flag2) {
-					use.setAssist(2);
-					use.setAid(s);
-					use.setStatus(2);
-					use.setType(3);
-					use.setMainId(useId);
-					use.setId(null);
-					publicReleaseMapper.insertSelective(use);
-					PublicReleaseLog log = new PublicReleaseLog(use.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.ty.getCode(), "同意协单信息", date);
+					if(!use.getReleaseStart().equals(p.getReleaseStart()))p.setReleaseStart(use.getReleaseStart());
+					if (!use.getReleaseEnd().equals(p.getReleaseEnd()))p.setReleaseEnd(use.getReleaseEnd());
+					p.setStatus(2);
+					publicReleaseMapper.updateByPrimaryKeySelective(p);
+					StringBuffer str = new StringBuffer("[").append(a.getName()).append("]修改了").append("[").append(u.getUsername()).append("]。");
+					PublicReleaseLog log = new PublicReleaseLog(p.getId(), TokenManager.getAdminId(), PublicReleaseLog.states.ty.getCode(), str.toString(), new Date());
+					sendNoticeAndSoucket(p.getAid(),p.getStatus(),str.toString());
 					publicReleaseLogMapper.insertSelective(log);
 				}
-			}
+
 		}
 	}
 
@@ -657,10 +725,188 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			String clockTime=DateUtils.formatDate(date,AFTConstants.YYYYMMDDHHMMSS);
 			map.put("clockTime",clockTime);
 		}
-		map.put("assistType",1);
 		map.put("aid",TokenManager.getAdminId());
 		List<OutPublicReleaseList> list = (List<OutPublicReleaseList>) findList("listPublicRelease",map,1,1);
 		return list;
 	}
 
+	@Override
+	public int addAssistant(Integer id,String aid) {
+		PublicRelease p = publicReleaseMapper.selectByPrimaryKey(id);
+		List<String> list=new ArrayList<>();
+		if (StringUtils.isNotEmpty(p.getAssistantAid())){
+			list =new ArrayList<>(Arrays.asList(p.getAssistantAid().split(",")));
+		}
+		String sname = pushAssistant(aid, list,0);
+		String said =String.join(",",list);
+		p.setAssistantAid(said);
+		p.setAssistantName(sname);
+		addAssistantPublicRelease(p,aid);
+		return updateAssistant(p, said, sname);
+	}
+
+	private void addAssistantPublicRelease(PublicRelease p, String aid) {
+		List<PublicRelease> list = publicReleaseMapper.selectByMainId(p.getMainId(), 4, aid);
+		PublicRelease newP= new PublicRelease();
+		if(list.isEmpty()){
+			BeanUtils.copyProperties(p,newP);
+			newP.setId(null);
+			newP.setAid(aid);
+			newP.setAssist(3);
+			newP.setType(4);
+			publicReleaseMapper.insertSelective(newP);
+		}else {
+			for (PublicRelease pr : list) {
+				if (pr.getAid().equals(aid)){
+					newP.setId(pr.getId());
+					newP.setStatus(2);
+					newP.setAssistantAid(pr.getAssistantAid());
+					newP.setAssistantName(pr.getAssistantName());
+					publicReleaseMapper.updateByPrimaryKeySelective(newP);
+				}
+
+			}
+		}
+
+		User u=userMapper.selectByPrimaryKey(p.getUid());
+		StringBuffer str=new StringBuffer();
+		str=str.append("公出").append("[").append(u.getUsername()).append("]").append("邀请你协助!");
+		addWeChatNotice( aid,1,str.toString(),newP.getId());
+	}
+
+	/**
+	 *	添加微信提示和站内消息
+	 * @param aid 接受者
+	 * @param type 状态 0驳回 1发起 2同意 3撤销
+	 * @param str 备注
+	 * @param prid 公出编号
+	 */
+	private void addWeChatNotice(String aid,Integer type,String str,Integer prid){
+		Admin recipient = adminMapper.selectByPrimaryKey(aid);
+		addWeChatNotice(  recipient, type, str, prid);
+	}
+
+	/**
+	 *	添加微信提示和站内消息
+	 * @param recipient 接受者
+	 * @param type 状态 0驳回 1发起 2同意 3撤销
+	 * @param str
+	 */
+	private Integer addWeChatNotice(Admin recipient,Integer type,String str,Integer prid){
+			AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
+			String openid=recipient.getOpenId();
+			str=new StringBuffer("[").append(my.getName()).append("]").append(str).toString();
+			if(type==3){
+				addpublicLog(prid,4,str);
+			}else {
+				addpublicLog(prid,type,str);
+			}
+			sendNoticeAndSoucket(recipient.getId(),type,str);
+			if (type==0||type==2){
+				if (openid!=null) {
+					Integer res= weChatUtils.addNotice(openid, type,prid,new Date(),my.getName(),str);
+					return res;
+				}else {
+					sendEmail(my, recipient,type);
+				}
+			}
+
+			return 0;
+	}
+
+	private int updateAssistant(PublicRelease p, String said, String sname) {
+		PublicRelease newPr=new PublicRelease();
+		newPr.setId(p.getId());
+		newPr.setAssistantAid(said);
+		newPr.setAssistantName(sname);
+		if (p.getMainId()!=null){
+			PublicRelease mianPr=new PublicRelease();
+			mianPr.setId(p.getMainId());
+			mianPr.setAssistantAid(said);
+			mianPr.setAssistantName(sname);
+			publicReleaseMapper.updateByPrimaryKeySelective(mianPr);
+		}
+		return publicReleaseMapper.updateByPrimaryKeySelective(newPr);
+	}
+
+	/**
+	 *
+	 * @param aid  元素
+	 * @param list 集合
+	 * @param type 0新增 1删除
+	 * @return
+	 */
+	private String pushAssistant(String aid, List<String> list,Integer type) {
+		StringBuffer sb=new StringBuffer();
+		if(type==0){
+			list.add(aid);
+		}else if (type==1){
+			Iterator<String > it =list.iterator();
+			while (it.hasNext()){
+				if (it.next().equals(aid))
+					it.remove();
+			}
+		}
+		for (String s : list) {
+			sb.append(adminMapper.selectByPrimaryKey(s).getName()).append(",");
+		}
+		return sb.length()>0?sb.substring(0,sb.length()-1):sb.toString();
+	}
+
+
+
+	@Override
+	public int deleteAssistant(Integer id, String aid) {
+		PublicRelease p = publicReleaseMapper.selectByPrimaryKey(id);
+		if (p.getAssistantAid()==null){
+			throw new BusinessException("人员不存在");
+		}
+		List<String> list=new ArrayList<>(Arrays.asList(p.getAssistantAid().split(",")));
+		if (!list.contains(aid)){
+			throw new BusinessException("人员不存在");
+		}
+		String sname = pushAssistant(aid, list,1);
+		String said =String.join(",",list);
+		deleteAssistantPulicRelease(p,aid);
+		return updateAssistant(p, said, sname);
+	}
+
+
+
+	private void deleteAssistantPulicRelease(PublicRelease p, String aid) {
+		publicReleaseMapper.updateStatusByMainId(3,4,p.getMainId(),aid);
+		List<PublicRelease> list = publicReleaseMapper.selectByMainId(p.getMainId(), 4, aid);
+		User u=userMapper.selectByPrimaryKey(p.getUid());
+		StringBuffer str=new StringBuffer();
+		str=str.append("公出").append("[").append(u.getUsername()).append("]").append("撤销了你的协助!");
+		for (PublicRelease pr : list) {
+			addWeChatNotice( pr.getAid(),3,str.toString(),pr.getId());
+		}
+	}
+
+	@Override
+	public boolean checkdeleteAssistant(Integer id, String aid) {
+		PublicRelease p = publicReleaseMapper.selectByPrimaryKey(id);
+		List<PublicRelease> list = publicReleaseMapper.selectByMainId(p.getMainId(), 4, aid);
+		for (PublicRelease use : list) {
+			if (use.getClockIn()==1){
+				return true;
+			}
+		}
+		return false;
+	}
+
+	@Override
+	public boolean checkaddAssistant(Integer id, String aid) {
+		PublicRelease p = publicReleaseMapper.selectByPrimaryKey(id);
+		List<PublicRelease> list = publicReleaseMapper.selectByMainId(p.getMainId(), 4, aid);
+		for (PublicRelease use : list) {
+			if (use.getAid().equals(aid)&&use.getStatus()!=3){
+				return true;
+			}
+		}
+		return false;
+	}
+
+
 }

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

@@ -1,7 +1,7 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
-#jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
 #jdbc.url=jdbc\:mysql://localhost:3306/aft20220318?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+#jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
 #jdbc.username=root
 #jdbc.password=123456
 jdbc.url=jdbc:mysql://101.37.32.31:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
@@ -46,7 +46,7 @@ user_remind_days=15
 user_channel_days=90
 
 avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.2.27
+static.host=//static.jishutao.com/1.2.29
 #avatar.host=//172.16.0.255:3000
 #static.host=//172.16.0.255:3000/1.2.27
 #static.host=http://172.16.1.187/prod/1.2.25

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

@@ -43,7 +43,7 @@ user_remind_days=15
 #\u63D0\u524D\u63D0\u9192\u5929\u6570
 user_channel_days=90
 
-static.host=//static.jishutao.com/1.2.27
+static.host=//static.jishutao.com/1.2.29
 portal.host=//static.jishutao.com/portal/2.0.6
 avatar.host=//static.jishutao.com
 avatar.upload.host=//static.jishutao.com/upload