소스 검색

发起单独协单修改

anderx 1 년 전
부모
커밋
9ff8379f6e

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 63 - 178
src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml


+ 54 - 42
src/main/java/com/goafanti/common/model/PublicRelease.java

@@ -8,172 +8,176 @@ import java.util.Date;
  * 公出表(PublicRelease)实体类
  *
  * @author makejava
- * @since 2024-08-07 09:44:55
+ * @since 2024-08-22 13:58:19
  */
 public class PublicRelease implements Serializable {
-    private static final long serialVersionUID = 315905429186420690L;
+    private static final long serialVersionUID = -39921259134751252L;
 
     private Integer id;
-    /**
+/**
      * 公出人
      */
     private String aid;
-    /**
+/**
      * 公出开始时间
      */
     private Date releaseStart;
-    /**
+/**
      * 公出结束时间
      */
     private Date releaseEnd;
-    /**
+/**
      * 公出目标
      */
     private String remarks;
-    /**
+/**
      * 附件
      */
     private String annexUrl;
-    /**
+/**
      * 状态 0驳回 1发起 2同意 3 撤销 4技术驳回
      */
     private Integer status;
-    /**
+/**
      * 发起时间
      */
     private Date createTime;
-    /**
+/**
      * 项目编号
      */
     private String pid;
-    /**
+/**
      * 项目名称
      */
     private String pname;
-    /**
+/**
      * 时长
      */
     private Double duration;
-    /**
+/**
      * 有效日期
      */
     private String validDate;
-    /**
+/**
      * 本次总结
      */
     private String supplement;
-    /**
+/**
      * 审核信息
      */
     private String auditInfo;
-    /**
+/**
      * 公出计划
      */
     private String plan;
-    /**
+/**
      * 预计效果
      */
     private String expectedEffect;
-    /**
+/**
      * 下次计划
      */
     private String nextPlan;
-    /**
+/**
      * 分类 0业务 1技术 2行政 3 技术协单 4 技术助手
      */
     private Integer type;
-    /**
+/**
      * 订单编号
      */
     private String orderNo;
-    /**
+/**
      * 修改时间
      */
     private Date updateTime;
-    /**
+/**
      * 修改状态 0=否 1=是
      */
     private Integer updateStatus;
-    /**
+/**
      * 0否 1主公出 2协助公出
      */
     private Integer assist;
-    /**
+/**
      * 协单人员
      */
     private String assistAid;
-    /**
+/**
      * 协单人员
      */
     private String assistAidName;
-    /**
+/**
      * 主要公出编号
      */
     private Integer mainId;
-    /**
+/**
      * 主要公出发起人
      */
     private String mainName;
-    /**
+/**
      * 驳回人员
      */
     private String rejectName;
-    /**
+/**
      * 协单助手
      */
     private String assistantAid;
-    /**
+/**
      * 协单助手名称
      */
     private String assistantName;
-    /**
+/**
      * 再次公出
      */
     private Integer publicAgain;
-    /**
+/**
      * 审核时间
      */
     private Date auditTime;
-    /**
+/**
      * 客户类型 0新客户 1老客户
      */
     private String newUser;
-    /**
+/**
      * 签单数
      */
     private String signSum;
-    /**
+/**
      * 公司名称
      */
     private String userNames;
-    /**
+/**
      * 公出对象 0企业 1园区
      */
     private Integer objectType;
-    /**
+/**
      * 公出分类 0不含他人客户 1待审核 2已审核
      */
     private Integer publicType;
-    /**
+/**
      * 公出企业地址
      */
     private String districtName;
-    /**
+/**
      * 打卡状态 0未打卡 1已打卡 2异常打卡(冗余)
      */
     private Integer clockIn;
-    /**
+/**
      * 0无需审核 1需要审核 2营销审核通过 3营销审核驳回
      */
     private Integer techStartProcess;
-    /**
+/**
      * 公出企业地址
      */
     private String addressName;
-    /**
+/**
      * 协单审核 0非协单 1协单未审核 2协单部分审核 3协单完全审核 4协单驳回
      */
     private Integer assistProcess;
+/**
+     * 单独协单 0否 1是
+     */
+    private Integer alone;
 
 
     public Integer getId() {
@@ -504,5 +508,13 @@ public class PublicRelease implements Serializable {
         this.assistProcess = assistProcess;
     }
 
+    public Integer getAlone() {
+        return alone;
+    }
+
+    public void setAlone(Integer alone) {
+        this.alone = alone;
+    }
+
 }
 

+ 52 - 0
src/main/java/com/goafanti/weChat/bo/sendListBo.java

@@ -0,0 +1,52 @@
+package com.goafanti.weChat.bo;
+
+public class sendListBo {
+    //信息接受者
+    private String aid;
+    private String assistAid;
+    private Integer prid;
+
+    private String userNames;
+
+    public Integer getPrid() {
+        return prid;
+    }
+
+    public void setPrid(Integer prid) {
+        this.prid = prid;
+    }
+
+    public sendListBo(String aid, String assistAid, Integer prid, String userNames) {
+        this.aid = aid;
+        this.assistAid = assistAid;
+        this.prid = prid;
+        this.userNames = userNames;
+    }
+
+    public sendListBo() {
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public String getAssistAid() {
+        return assistAid;
+    }
+
+    public void setAssistAid(String assistAid) {
+        this.assistAid = assistAid;
+    }
+
+    public String getUserNames() {
+        return userNames;
+    }
+
+    public void setUserNames(String userNames) {
+        this.userNames = userNames;
+    }
+}

+ 101 - 32
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -102,33 +102,112 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		in.setPublicType(0);
 		in.setTechStartProcess(0);
 		in.setStatus(1);
-		in.setAid(TokenManager.getAdminId());
 		AdminListBo my = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
-		if (in.getAssist()==1){
-//			in.setAssistAidName(getAssistAidName(in.getAssistAid()));
-			in.setMainName(my.getName());
-			in.setAssistProcess(1);
-		}
 		Map checkOrderNo =null;
-		if (in.getType() == 1) {
-			//技术公出
-			checkOrderNo = checkOrderNoDuration(in,my,1);
-			boolean isValid = (boolean) checkOrderNo.get("code");
-			if (isValid){
-				in.setTechStartProcess(0);
-			}else {
-				in.setTechStartProcess(1);
-			}
-		}
-
-		publicReleaseMapper.insertSelective(in);
-		if (in.getOrderNo()!=null){
-			TOrderNew tOrderNew = tOrderNewMapper.selectByPrimaryKey(in.getOrderNo());
-			orderNewService.pushOrderPublicReleaseCount(tOrderNew);
-		}
 		List<PublicReleaseDetails> prdList=new ArrayList<>();
 		List<User> users=new ArrayList<>();
 		StringBuilder str =new StringBuilder();
+		//判定是单独协单还是一起协单
+		if (in.getType()==0&&in.getAssist()==4){
+			String[] split = in.getAssistAid().split(",");
+			List<sendListBo> aidList = new ArrayList<>();
+			String userNames=null;
+			//每一个协单都是单独的一份
+			for (String s : split) {
+				Admin publicAdmin = adminMapper.selectByPrimaryKey(s);
+				in.setAid(s);
+				in.setMainName(my.getName());
+				in.setAssistProcess(1);
+				publicReleaseMapper.insertSelective(in);
+				addPRD(in, users, str, prdList);
+				addPublicReleaseDateClock(in);
+				userNames=str.substring(0,str.length()-1);
+				in.setUserNames(userNames);
+				PublicRelease updateName=new PublicRelease();
+				updateName.setId(in.getId());
+				updateName.setUserNames(userNames);
+				publicReleaseMapper.update(updateName);
+				addpublicLog(in.getId(), PublicReleaseLog.states.fq.getCode(), "发起[仅技术协单公出]申请");
+				List<AdminPublicReviewerBo> adminPublicReviewerBos = adminPublicReviewerMapper.selectByAid(in.getAid());
+//				pushNoticeAndSoucketAndEmail(my, in, date, admin, str, map);
+
+				//通知技术协单人审核人
+				sendNoticeAndSoucket(my.getId(),1, "["+my.getName()+"]发起["+userNames+"]的发起[仅技术协单公出]邀请。");
+				//
+				adminPublicReviewerBos=adminPublicReviewerBos.stream().filter(e -> e.getType() == 1).collect(Collectors.toList());
+
+				for (AdminPublicReviewerBo adminPublicReviewerBo : adminPublicReviewerBos) {
+					if (aidList.contains(adminPublicReviewerBo.getAid())==false){
+						sendListBo bo =new sendListBo(adminPublicReviewerBo.getAid(),
+								s,in.getId(),userNames);
+
+					}
+				}
+
+			}
+			Map<String, Object> map = new HashMap<>();
+			for (sendListBo e : aidList) {
+
+				Admin a = adminMapper.selectByPrimaryKey(e.getAid());
+				sendNoticeAndSoucket(e.getAid(),1, "["+my.getName()+"]发起["+userNames+"]仅技术协单公出申请,请及时审核。");
+				if (a.getOpenId() !=null) {
+					Integer res= weChatUtils.addNotice(a.getOpenId(), in.getStatus(), e.getPrid(), date, my.getName(),"["+ my.getName()+"]发起仅协单申请");
+					if (res!=0) {
+						sendEmail(my, a,1);
+					}
+					//返回微信错误码
+					map.put("code", res);
+				}else {
+					//返回没有绑定微信
+					sendEmail(my, a,1);
+					map.put("code", 2);
+				}
+			}
+			return map;
+		}else {
+			in.setAid(TokenManager.getAdminId());
+			if (in.getAssist()==1){
+//			in.setAssistAidName(getAssistAidName(in.getAssistAid()));
+				in.setMainName(my.getName());
+				in.setAssistProcess(1);
+			}
+			if (in.getType() == 1) {
+				//技术公出
+				checkOrderNo = checkOrderNoDuration(in,my,1);
+				boolean isValid = (boolean) checkOrderNo.get("code");
+				if (isValid){
+					in.setTechStartProcess(0);
+				}else {
+					in.setTechStartProcess(1);
+				}
+			}
+			publicReleaseMapper.insertSelective(in);
+			if (in.getType()==1&&in.getOrderNo()!=null){
+				TOrderNew tOrderNew = tOrderNewMapper.selectByPrimaryKey(in.getOrderNo());
+				orderNewService.pushOrderPublicReleaseCount(tOrderNew);
+			}
+			addPRD(in, users, str, prdList);
+			addPublicReleaseDateClock(in);
+			String userNames=str.substring(0,str.length()-1);
+			in.setUserNames(userNames);
+			PublicRelease updateName=new PublicRelease();
+			updateName.setId(in.getId());
+			updateName.setUserNames(userNames);
+			publicReleaseMapper.update(updateName);
+			addpublicLog(in.getId(), PublicReleaseLog.states.fq.getCode(), "发起外出申请");
+			pushPublicCarbonCopy(in, my, userNames);
+			return (Map<String, Object>) addPublicReleaseLog(my, in,userNames,date,users,checkOrderNo);
+		}
+
+
+
+
+
+
+
+	}
+
+	private void addPRD(InputPublicRelease in, List<User> users, StringBuilder str, List<PublicReleaseDetails> prdList) {
 		if (in.getUids()!=null){
 			List<String> split = Arrays.asList(in.getUids().split(","));
 			int userCount=split.size();
@@ -175,16 +254,6 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			}
 			publicReleaseDetailsMapper.insertBatch(prdList);
 		}
-		addPublicReleaseDateClock(in);
-		String userNames=str.substring(0,str.length()-1);
-		in.setUserNames(userNames);
-		PublicRelease updateName=new PublicRelease();
-		updateName.setId(in.getId());
-		updateName.setUserNames(userNames);
-		publicReleaseMapper.update(updateName);
-		addpublicLog(in.getId(), PublicReleaseLog.states.fq.getCode(), "发起外出申请");
-		pushPublicCarbonCopy(in, my, userNames);
-		return (Map<String, Object>) addPublicReleaseLog(my, in,userNames,date,users,checkOrderNo);
 	}
 
 	private void pushPublicCarbonCopy(InputPublicRelease in, AdminListBo my, String userNames) {