anderx 1 год назад
Родитель
Сommit
bc8760f42d

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

@@ -5,7 +5,7 @@ import com.goafanti.common.model.TOrderPublicReleaseCount;
 /**
 * @author Administrator
 * @description 针对表【t_order_public_release_count(订单公出信息表)】的数据库操作Mapper
-* @createDate 2024-04-25 14:37:55
+* @createDate 2024-06-17 10:18:34
 * @Entity com.goafanti.common.model.TOrderPublicReleaseCount
 */
 public interface TOrderPublicReleaseCountMapper {

+ 12 - 4
src/main/java/com/goafanti/common/mapper/TOrderPublicReleaseCountMapper.xml

@@ -14,12 +14,14 @@
             <result property="peopleCount" column="people_count" jdbcType="INTEGER"/>
             <result property="frequency" column="frequency" jdbcType="INTEGER"/>
             <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="sumYear" column="sum_year" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id,order_no,status,
         max_duration,actual_duration,exceed_duration,
-        people_count,frequency,create_time
+        people_count,frequency,create_time,
+        sum_year
     </sql>
 
     <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -38,11 +40,11 @@
         ( id,order_no,status
         ,max_duration,actual_duration,exceed_duration
         ,people_count,frequency,create_time
-        )
+        ,sum_year)
         values (#{id,jdbcType=INTEGER},#{orderNo,jdbcType=VARCHAR},#{status,jdbcType=INTEGER}
         ,#{maxDuration,jdbcType=DOUBLE},#{actualDuration,jdbcType=DOUBLE},#{exceedDuration,jdbcType=DOUBLE}
         ,#{peopleCount,jdbcType=INTEGER},#{frequency,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP}
-        )
+        ,#{sumYear,jdbcType=VARCHAR})
     </insert>
     <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TOrderPublicReleaseCount" useGeneratedKeys="true">
         insert into t_order_public_release_count
@@ -56,6 +58,7 @@
                 <if test="peopleCount != null">people_count,</if>
                 <if test="frequency != null">frequency,</if>
                 <if test="createTime != null">create_time,</if>
+                <if test="sumYear != null">sum_year,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
                 <if test="id != null">#{id,jdbcType=INTEGER},</if>
@@ -67,6 +70,7 @@
                 <if test="peopleCount != null">#{peopleCount,jdbcType=INTEGER},</if>
                 <if test="frequency != null">#{frequency,jdbcType=INTEGER},</if>
                 <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
+                <if test="sumYear != null">#{sumYear,jdbcType=VARCHAR},</if>
         </trim>
     </insert>
     <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderPublicReleaseCount">
@@ -96,6 +100,9 @@
                 <if test="createTime != null">
                     create_time = #{createTime,jdbcType=TIMESTAMP},
                 </if>
+                <if test="sumYear != null">
+                    sum_year = #{sumYear,jdbcType=VARCHAR},
+                </if>
         </set>
         where   id = #{id,jdbcType=INTEGER} 
     </update>
@@ -109,7 +116,8 @@
             exceed_duration =  #{exceedDuration,jdbcType=DOUBLE},
             people_count =  #{peopleCount,jdbcType=INTEGER},
             frequency =  #{frequency,jdbcType=INTEGER},
-            create_time =  #{createTime,jdbcType=TIMESTAMP}
+            create_time =  #{createTime,jdbcType=TIMESTAMP},
+            sum_year =  #{sumYear,jdbcType=VARCHAR}
         where   id = #{id,jdbcType=INTEGER} 
     </update>
     <update id="updateByOrderNo">

+ 19 - 0
src/main/java/com/goafanti/common/model/TOrderPublicReleaseCount.java

@@ -53,6 +53,11 @@ public class TOrderPublicReleaseCount implements Serializable {
      */
     private Date createTime;
 
+    /**
+     * 统计年份
+     */
+    private String sumYear;
+
     private static final long serialVersionUID = 1L;
 
     /**
@@ -180,4 +185,18 @@ public class TOrderPublicReleaseCount implements Serializable {
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
+
+    /**
+     * 统计年份
+     */
+    public String getSumYear() {
+        return sumYear;
+    }
+
+    /**
+     * 统计年份
+     */
+    public void setSumYear(String sumYear) {
+        this.sumYear = sumYear;
+    }
 }

+ 38 - 21
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -52,6 +52,8 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
@@ -654,18 +656,41 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 	public void pushOrderPublicReleaseCount(String orderNo) {
-			List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNo);
-			TOrderNewBo t = tOrderNewMapper.getOrderNewDetail(orderNo);
-			BigDecimal durationCount = BigDecimal.ZERO;
-			int count=0;
-			List<String> peopleList = new ArrayList<>();
+		List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNo);
+		TOrderNewBo t = tOrderNewMapper.getOrderNewDetail(orderNo);
+		List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(t.getOrderNo());
+		BigDecimal durationCount = BigDecimal.ZERO;
+		int count=0;
+		int yearSum=1;
+		List<String> peopleList = new ArrayList<>();
+		LocalDateTime startDate = LocalDateTime.now().withDayOfMonth(1).withMonth(1);
+		//分成会员统计和非会员统计
+		if (!tTaskMembers.isEmpty()){
+			LocalDateTime endDate = LocalDateTime.now().withDayOfMonth(31).withMonth(12);
 			for (PublicRelease e : list) {
-				durationCount=durationCount.add(BigDecimal.valueOf(e.getDuration()));
-				if (!peopleList.contains(e.getAid())){
-					peopleList.add(e.getAid());
+				LocalDateTime date = LocalDateTime.parse(e.getReleaseStart().toString(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+				if (date.isAfter(startDate)&&date.isBefore(endDate)){
+					durationCount=durationCount.add(BigDecimal.valueOf(e.getDuration()));
+					if (!peopleList.contains(e.getAid())){
+						peopleList.add(e.getAid());
+					}
+					count++;
+				}
+			}
+			for (TTaskMember e : tTaskMembers) {
+				if(e.getYearSum()!=null&&e.getYearSum()>1){
+					yearSum=e.getYearSum();
 				}
-				count++;
 			}
+		}else {
+			for (PublicRelease e : list) {
+					durationCount=durationCount.add(BigDecimal.valueOf(e.getDuration()));
+					if (!peopleList.contains(e.getAid())){
+						peopleList.add(e.getAid());
+					}
+					count++;
+			}
+		}
 		TOrderPublicReleaseCount out = tOrderPublicReleaseCountMapper.selectByOrderNo(orderNo);
 			if (out==null){
 				out=new TOrderPublicReleaseCount();
@@ -674,7 +699,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				out.setActualDuration(durationCount.doubleValue());
 				out.setPeopleCount(peopleList.size());
 				out.setFrequency(count);
-				pushMaxDuration(t,out);
+				out.setSumYear(String.valueOf(startDate.getYear()));
+				pushMaxDuration(t,out,yearSum);
 				tOrderPublicReleaseCountMapper.insertSelective(out);
 			}else {
 				out.setOrderNo(orderNo);
@@ -682,7 +708,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				out.setActualDuration(durationCount.doubleValue());
 				out.setPeopleCount(peopleList.size());
 				out.setFrequency(count);
-				pushMaxDuration(t,out);
+				pushMaxDuration(t,out,yearSum);
 				tOrderPublicReleaseCountMapper.updateByPrimaryKeySelective(out);
 			}
 
@@ -737,16 +763,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
-	private void pushMaxDuration(TOrderNewBo t,TOrderPublicReleaseCount out ) {
+	private void pushMaxDuration(TOrderNewBo t,TOrderPublicReleaseCount out ,int yearSum) {
 		BigDecimal res=BigDecimal.ZERO;
-		//新增如果有会员年份,计算金额改为总金额除以年份
-		List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(t.getOrderNo());
-		int yearSum=1;
-		for (TTaskMember e : tTaskMembers) {
-			if(e.getYearSum()!=null&&e.getYearSum()>1){
-				yearSum=e.getYearSum();
-			}
-		}
 		BigDecimal totalAmount=t.getTotalAmount();
 		if (yearSum>1){
 			totalAmount=totalAmount.divide(BigDecimal.valueOf(yearSum),2, RoundingMode.HALF_UP);
@@ -770,7 +788,6 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}
 		out.setMaxDuration(res.doubleValue());
 		out.setStatus(status);
-
 	}
 
 

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

@@ -1,8 +1,8 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
 
-static.host=//static.jishutao.com/1.3.17
-#static.host=//172.16.1.187/1.3.17
+#static.host=//static.jishutao.com/1.3.17
+static.host=//172.16.1.187/1.3.17
 
 #jdbc.url=jdbc\:mysql://localhost:3306/aft20240430?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