Procházet zdrojové kódy

修改协单助手的新增和修改

anderx před 3 roky
rodič
revize
060b35aafd

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

@@ -618,20 +618,21 @@
 
   <select id="listPublicStatistics" resultType="com.goafanti.weChat.bo.OutPublicStatistics">
   	select y.aid,y.bh,y.dk,y.wsh,y.tg,y.duration,c.name from(select x.aid ,sum(x.bh)bh,sum(x.wsh)wsh,sum(x.tg)tg,sum(x.dk)dk,sum(x.duration)duration
-	from (select if(a.status=0,1,0)bh ,if(a.status=1,1,0)wsh,if(a.status=2,1,0)tg,if(a.clock_in=1,1,0) dk,a.aid
-  	,if(a.status=2,a.duration,0)duration    from  public_release a  left join admin b on a.aid=b.id
-	where 1=1
+	from (select a.aid, if(a.status=0,1,0)bh ,if(a.status=1,1,0)wsh,if(a.status=2,1,0)tg,b.dk ,a.duration
+    from public_release a inner join (select prid ,sum(if(clock_in=1,1,0))dk from public_release_details where 1=1
+    <if test="clockStart != null and clockEnd != null">
+      and clock_in_time  between #{clockStart} and #{clockEnd}
+    </if>
+    group by prid ) b on a.id =b.prid
+    left join admin c on a.aid=c.id where 1=1
 	<if test="aid != null">
 	and a.aid= #{aid}
 	</if>
-	<if test="clockStart != null and clockEnd != null">
-	and a.clock_in_time  between #{clockStart} and #{clockEnd}
-	</if>
 	<if test="createStart != null and createEnd !=null">
 	and a.create_time  between #{createStart} and #{createEnd}
 	</if>
 	<if test="depId != null">
-	and b.department_id = #{depId}
+	and c.department_id = #{depId}
 	</if>
 	)x  group by x.aid)y left join admin c on c.id=y.aid
 	<if test="page_sql!=null">
@@ -641,45 +642,46 @@
 
 
   <select id="countPublicStatistics" resultType="java.lang.Integer">
-  	select count(*) from (select aid from public_release a  left join admin b on a.aid=b.id
+  	select count(*) from (select aid from public_release a
+    inner join (select prid ,sum(if(clock_in=1,1,0))dk from public_release_details where 1=1
+    <if test="clockStart != null and clockEnd != null">
+      and clock_in_time  between #{clockStart} and #{clockEnd}
+    </if>
+    group by prid ) b on a.id =b.prid
+  	    left join admin c on a.aid=c.id
 	where 1=1
 	<if test="aid != null">
 	and a.aid= #{aid}
 	</if>
-	<if test="clockStart != null and clockEnd != null">
-	and a.clock_in_time  between #{clockStart} and #{clockEnd}
-	</if>
 	<if test="createStart != null and createEnd !=null">
 	and a.create_time  between #{createStart} and #{createEnd}
 	</if>
 	<if test="depId != null">
-	and b.department_id = #{depId}
+	and c.department_id = #{depId}
 	</if>
 	group by aid)x
   </select>
 
   <select id="listPublicDtails" resultType="com.goafanti.weChat.bo.OutPublicDtails">
-    select a.id ,a.district_name districtName,c.name aname,a.duration ,a.status,a.annex_url annexUrl,a.photo_url photoUrl,a.user_names userNames,
-    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,date_format(a.audit_time ,'%Y-%m-%d %H:%i:%S') auditTimes,
-    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.assistant_aid assistantAid, a.assistant_name assistantName,e.contract_no contractNo,
-    e.total_amount  totalAmout
-    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 left join t_order_new e on a.order_no =e.order_no
-    <if test="uid != null">
-    left join public_release_details prd on a.id=prd.prid
-    </if>
+    select b.id,a.district_name districtName ,c.name aname,a.duration ,b.status ,b.annex_url annexUrl,a.photo_url photoUrl,d.nickname userName,
+    date_format(a.clock_in_time ,'%Y-%m-%d %H:%i:%S') clockInTimes,a.clock_in clockIn ,b.remarks ,b.supplement ,b.`type` ,b.object_type ,
+    date_format(b.create_time ,'%Y-%m-%d %H:%i:%S') createTimes,b.audit_info auditInfo,date_format(b.audit_time ,'%Y-%m-%d %H:%i:%S') auditTimes,
+    e.name sname, date_format(b.release_start,'%Y-%m-%d %H:%i:%S') releaseStarts,date_format(b.release_end ,'%Y-%m-%d %H:%i:%S') releaseEnds,
+    b.plan ,b.next_plan nextPlan ,b.expected_effect expectedEffect,b.update_status updateStatus,b.assist_aid_name assistAidName,
+    b.main_name mainName,b.assist,b.assistant_aid assistantAid, b.assistant_name assistantName,f.contract_no contractNo,
+    f.total_amount  totalAmout
+    from public_release_details a left join public_release b on a.prid =b.id
+    left join admin c on b.aid =c.id left join `user` d on a.uid =d.id left join admin e on d.aid=e.id
+    left join t_order_new f on b.order_no =f.order_no
     where 1=1
     <if test="publicType != null">
-      and a.type= #{publicType}
+      and b.type= #{publicType}
     </if>
     <if test="aid != null">
-      and a.aid= #{aid}
+      and b.aid= #{aid}
     </if>
     <if test="sid != null">
-      and d.id= #{sid}
+      and e.id= #{sid}
     </if>
     <if test="deps !=null">
        and c.department_id in
@@ -688,21 +690,21 @@
       </foreach>
     </if>
 	<if test="uid != null">
-	and prd.uid = #{uid}
+	and a.uid = #{uid}
 	</if>
 	<if test="releaseStart != null and releaseEnd != null">
-	and (a.release_start  between #{releaseStart} and #{releaseEnd} or a.release_end  between #{releaseStart} and #{releaseEnd})
+	and (b.release_start  between #{releaseStart} and #{releaseEnd} or b.release_end  between #{releaseStart} and #{releaseEnd})
 	</if>
     <if test="createStart != null and createEnd != null">
-      and a.create_time  between #{createStart} and #{createEnd}
+      and b.create_time  between #{createStart} and #{createEnd}
     </if>
 	<if test="status != null">
-	and a.status = #{status}
+	and b.status = #{status}
 	</if>
 	<if test="clockIn !=null">
 	and a.clock_in= #{clockIn}
 	</if>
-    order by a.status,a.create_time desc
+    order by b.status,b.create_time desc
 	<if test="page_sql!=null">
 			${page_sql}
 	</if>
@@ -710,38 +712,38 @@
 
   <select id="countPublicDtails" resultType="java.lang.Integer">
   select count(*)
-	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
+    from public_release_details a left join public_release b on a.prid =b.id
+    left join admin c on b.aid =c.id left join `user` d on a.uid =d.id left join admin e on d.aid=e.id
     <if test="uid != null">
       left join public_release_details prd on a.id=prd.prid
     </if>
 	where 1=1
     <if test="publicType != null">
-      and a.type= #{publicType}
+      and b.type= #{publicType}
     </if>
     <if test="aid != null">
-      and a.aid= #{aid}
+      and b.aid= #{aid}
     </if>
     <if test="sid != null">
-      and d.id= #{sid}
+      and e.id= #{sid}
     </if>
-    <if test=" deps !=null">
+    <if test="deps !=null">
       and c.department_id in
       <foreach close=")" collection="deps" item="dep" open="(" separator=",">
         #{dep}
       </foreach>
     </if>
     <if test="uid != null">
-      and prd.uid = #{uid}
+      and a.uid = #{uid}
     </if>
     <if test="releaseStart != null and releaseEnd != null">
-      and (a.release_start  between #{releaseStart} and #{releaseEnd} or a.release_end  between #{releaseStart} and #{releaseEnd})
+      and (b.release_start  between #{releaseStart} and #{releaseEnd} or b.release_end  between #{releaseStart} and #{releaseEnd})
     </if>
     <if test="createStart != null and createEnd != null">
-      and a.create_time  between #{createStart} and #{createEnd}
+      and b.create_time  between #{createStart} and #{createEnd}
     </if>
     <if test="status != null">
-      and a.status = #{status}
+      and b.status = #{status}
     </if>
     <if test="clockIn !=null">
       and a.clock_in= #{clockIn}

+ 8 - 5
src/main/java/com/goafanti/weChat/bo/OutPublicReleaseList.java

@@ -8,7 +8,7 @@ public class OutPublicReleaseList {
 
 	private Integer id;
 	private String nickname;
-	private String userName;
+	private String districtName;
 	private String aid;
 	private String aname;
 	private String releaseStarts;
@@ -186,12 +186,15 @@ public class OutPublicReleaseList {
 	public void setStatus(Integer status) {
 		this.status = status;
 	}
-	public String getUserName() {
-		return userName;
+
+	public String getDistrictName() {
+		return districtName;
 	}
-	public void setUserName(String userName) {
-		this.userName = userName;
+
+	public void setDistrictName(String districtName) {
+		this.districtName = districtName;
 	}
+
 	public String getLatitude() {
 		return latitude;
 	}

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

@@ -91,6 +91,11 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				}else {
 					prd.setNewUser(0);
 				}
+				if (u.getAid().equals(in.getAid())){
+					prd.setMainStatus(1);
+				}else {
+					prd.setMainStatus(0);
+				}
 				prd.setPrid(in.getId());
 				prd.setUid(s);
 				prd.setSignSum(0);
@@ -218,11 +223,11 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			e.printStackTrace();
 			throw new BusinessException("转换异常");
 		}
-
+		PublicRelease use = publicReleaseMapper.selectByPrimaryKey(in.getId());
 		if (in.getUids()!=null){
 			List<String> split = Arrays.asList(in.getUids().split(","));
 			List<OutPublicReleaseDetails> prList = publicReleaseDetailsMapper.selectByPCid(in.getId());
-			addPRD(split,prList);
+			addPRD(split,prList,use);
 			deletePRD(split,prList);
 		}
 		String userNames=publicReleaseDetailsMapper.getNamesByPrid(in.getId());
@@ -271,7 +276,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		}
 	}
 
-	private void  addPRD(List<String> split, List<OutPublicReleaseDetails> prdList) {
+	private void  addPRD(List<String> split, List<OutPublicReleaseDetails> prdList,PublicRelease use) {
 		List<PublicReleaseDetails> addPrdList=new ArrayList<>();
 		for (String s : split) {
 			boolean flag=true;
@@ -294,6 +299,11 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				}else {
 					prd.setNewUser(0);
 				}
+				if (u.getAid().equals(use.getAid())){
+					prd.setMainStatus(1);
+				}else {
+					prd.setMainStatus(0);
+				}
 				prd.setPrid(id);
 				prd.setUid(s);
 				prd.setSignSum(0);
@@ -570,6 +580,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 			OutPublicReleaseDetails prd=new OutPublicReleaseDetails();
 			BeanUtils.copyProperties(out,prd);
 			prd.setPrid(id);
+			prd.setMainStatus(0);
 			publicReleaseDetailsMapper.insertSelective(prd);
 		}
 	}
@@ -704,10 +715,10 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 
 	@SuppressWarnings("unchecked")
 	@Override
-	@Cacheable(value = "publicReleaseStatistics#300", key = "'publicReleaseStatistics:" +
-			"aid:'+#in.aid+'depId:'+#in.depId+'clockStart:'+#in.clockStart+" +
-			"'clockEnd:'+#in.clockEnd+'createStart:'+#in.createStart+'createEnd'+#in.createEnd+" +
-			"'pageNo:'+#in.pageNo+'pageSzie:'+#in.pageSize")
+//	@Cacheable(value = "publicReleaseStatistics#300", key = "'publicReleaseStatistics:" +
+//			"aid:'+#in.aid+'depId:'+#in.depId+'clockStart:'+#in.clockStart+" +
+//			"'clockEnd:'+#in.clockEnd+'createStart:'+#in.createStart+'createEnd'+#in.createEnd+" +
+//			"'pageNo:'+#in.pageNo+'pageSzie:'+#in.pageSize")
 	public Object publicReleaseStatistics(InputPublicStatistics in) {
 		Map<String,Object> map =new HashMap<String, Object>();
 		if(in.getAid()!=null)map.put("aid", in.getAid());