LiRong 1 月之前
父節點
當前提交
d83388b827

+ 2 - 0
leromro-core/src/main/java/com/leromro/core/mapper/VolunteerWorkDateMapper.java

@@ -59,4 +59,6 @@ public interface VolunteerWorkDateMapper extends BaseMapper<VolunteerWorkDate>
      * @return 结果
      */
     public int deleteVolunteerWorkDateByVolunteerWorkDateIds(Long[] volunteerWorkDateIds);
+
+    void updateVolunteerWorkDatebyVolunteerId(List<VolunteerWorkDate> workDateList);
 }

+ 20 - 8
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -7,17 +7,17 @@ import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.*;
 import com.leromro.core.domain.dto.OrderRequestDTO;
 import com.leromro.core.domain.vo.MainOrdersVO;
-import com.leromro.core.mapper.MainOrdersMapper;
-import com.leromro.core.mapper.PlatformFinanceMapper;
-import com.leromro.core.mapper.SecondOrdersMapper;
-import com.leromro.core.mapper.ClientAccountMapper;
+import com.leromro.core.mapper.*;
 import com.leromro.core.service.IMainOrderService;
 import com.leromro.core.utils.DateTimeUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.Duration;
+import java.time.LocalTime;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,7 +30,7 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
     @Autowired
     private ClientAccountMapper clientAccountMapper;
     @Autowired
-    private VolunteerWorkDateServiceImpl workDateService;
+    private VolunteerWorkDateMapper workDateMapper;
     @Autowired
     private VolunteerReservationTimeServiceImpl volunteerReservationTimeService;
     @Autowired
@@ -55,6 +55,7 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
      * @param orderRequest
      */
     @Override
+    /*@Transactional*/
     public void createOrders(OrderRequestDTO orderRequest) {
         MainOrders orders = orderRequest.getOrders();
         List<VolunteerWorkDate> workDateList = orderRequest.getWorkDateList();
@@ -100,9 +101,12 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
                 .sourceType(1).volunteerId(orders.getVolunteerId()).build();
         platformFinance.setCreateTime(DateTimeUtil.getNowTime());
         List<PlatformFinance> platformFinanceList = new ArrayList<>();
+        //workDate 去计算 更新有预约 为1
         //修改志愿者预约时间表以及新增志愿者预约时间
         long number = 1;
-
+        //
+        List<VolunteerWorkDate> volunteerWorkDates = new ArrayList<>();
+        //
         for (VolunteerWorkDate workDate : workDateList) {
             //向secondOrder中添加数据
             long secondOrderIdL = snowflake.nextId();
@@ -119,10 +123,17 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
             platformFinanceList.add(platformFinance1);
             //向志愿者预约时间表中添加数据
             VolunteerReservationTime reservationTime1 = new VolunteerReservationTime();
+            BeanUtils.copyProperties(reservationTime,reservationTime1);
             reservationTime1.setReservationDate(workDate.getWorkDate());
             reservationTime1.setReservationTime(workDate.getWorkStartTime());
             reservationTimes.add(reservationTime1);
             number++;
+            workDate.setVolunteerId(orders.getVolunteerId());
+            LocalTime workEndTime = workDate.getWorkStartTime().plus(Duration.ofHours(orders.getServiceDuration()));
+            workDate.setWorkEndTime(workEndTime);
+            workDate.setHasReservation(1);
+            workDate.setUpdateTime(DateTimeUtil.getNowTime());
+            volunteerWorkDates.add(workDate);
         }
         //新增公司资金流水表N个
         platformFinanceMapper.insertPlatformFinanceList(platformFinanceList);
@@ -130,8 +141,9 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
         secondOrdersMapper.insertList(secondOrderList);
         //新增志愿者预约时间表
         volunteerReservationTimeService.insertVolunteerReservationTimeList(reservationTimes);
-        //修改志愿者排班日期表
-        workDateService.updateVolunteerWorkDate(workDateList);
+
+      //修改志愿者排班日期表
+        workDateMapper.updateVolunteerWorkDatebyVolunteerId(volunteerWorkDates);
 
     }
 

+ 44 - 0
leromro-core/src/main/resources/mapper/core/VolunteerWorkDateMapper.xml

@@ -82,6 +82,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
         where volunteer_work_date_id = #{volunteerWorkDateId}
     </update>
+    <update id="updateVolunteerWorkDatebyVolunteerId" parameterType="java.util.List">
+        update l_volunteer_work_date
+        set
+      <!--  work_start_time = case
+        <foreach collection="list" item="workDate" separator=" ">
+            when volunteer_id = #{workDate.volunteerId} and work_date = #{workDate.workDate} then #{workDate.workStartTime}
+        </foreach>
+        else work_start_time
+        end,
+        work_end_time = case
+        <foreach collection="list" item="workDate" separator=" ">
+            when volunteer_id = #{workDate.volunteerId} and work_date = #{workDate.workDate} then #{workDate.workEndTime}
+        </foreach>
+        else work_end_time
+        end,-->
+        has_reservation = case
+        <foreach collection="list" item="workDate" separator=" ">
+            when volunteer_id = #{workDate.volunteerId} and work_date = #{workDate.workDate} then #{workDate.hasReservation}
+        </foreach>
+        else has_reservation
+       <!-- end,
+        update_by = case
+        <foreach collection="list" item="workDate" separator=" ">
+            when volunteer_id = #{workDate.volunteerId} and work_date = #{workDate.workDate} then #{workDate.updateBy}
+        </foreach>
+        else update_by-->
+        end,
+        update_time = case
+        <foreach collection="list" item="workDate" separator=" ">
+            when volunteer_id = #{workDate.volunteerId} and work_date = #{workDate.workDate} then #{workDate.updateTime}
+        </foreach>
+        else update_time
+        end,
+        remark = case
+        <foreach collection="list" item="workDate" separator=" ">
+            when volunteer_id = #{workDate.volunteerId} and work_date = #{workDate.workDate} then #{workDate.remark}
+        </foreach>
+        else remark
+        end
+        where (volunteer_id, work_date) in
+        <foreach collection="list" item="workDate" separator="," open="(" close=")">
+            (#{workDate.volunteerId}, #{workDate.workDate})
+        </foreach>
+    </update>
 
     <delete id="deleteVolunteerWorkDateByVolunteerWorkDateId" parameterType="Long">
         delete from l_volunteer_work_date where volunteer_work_date_id = #{volunteerWorkDateId}