xuzhancheng пре 1 месец
родитељ
комит
d4e46f5e9f
10 измењених фајлова са 184 додато и 74 уклоњено
  1. 26 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboilerscheduling/vo/PipeShiftScheduleUserRespVO.java
  2. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/EquipPipeSchedulingController.java
  3. 6 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleReqVO.java
  4. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleRespVO.java
  5. 31 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleSaveRespVO.java
  6. 19 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleTeamRespVO.java
  7. 7 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/equippipeschedulinguser/EquipPipeSchedulingUserDO.java
  8. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingService.java
  9. 74 70
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingServiceImpl.java
  10. 18 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/equippipescheduling/EquipPipeSchedulingMapper.xml

+ 26 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equipboilerscheduling/vo/PipeShiftScheduleUserRespVO.java

@@ -0,0 +1,26 @@
+package cn.start.tz.module.pressure2.controller.admin.equipboilerscheduling.vo;
+
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDate;
+@Data
+public class PipeShiftScheduleUserRespVO extends AdminUserRespDTO {
+    @Schema(description = "equipPipeScheduleUserId")
+    private String equipPipeScheduleUserId;
+
+    @Schema(description = "日期")
+    private LocalDate date;
+
+    public void setAdminUserRespDTO(AdminUserRespDTO adminUserRespDTO){
+    	super.setId(adminUserRespDTO.getId());
+    	super.setNickname(adminUserRespDTO.getNickname());
+    	super.setStatus(adminUserRespDTO.getStatus());
+    	super.setDeptId(adminUserRespDTO.getDeptId());
+    	super.setPostIds(adminUserRespDTO.getPostIds());
+    	super.setMobile(adminUserRespDTO.getMobile());
+    	super.setAvatar(adminUserRespDTO.getAvatar());
+    	super.setEmployeeNo(adminUserRespDTO.getEmployeeNo());
+    }
+}

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/EquipPipeSchedulingController.java

@@ -152,7 +152,7 @@ public class EquipPipeSchedulingController {
      **/
     @PutMapping("/setShiftSchedule")
     @Operation(summary = "排班表")
-    public CommonResult<Boolean> setShiftSchedule(@Valid @RequestBody List<PipeShiftScheduleRespVO> pipeShiftScheduleRespVOS) {
+    public CommonResult<Boolean> setShiftSchedule(@Valid @RequestBody List<PipeShiftScheduleSaveRespVO> pipeShiftScheduleRespVOS) {
         equipPipeSchedulingService.setShiftSchedule(pipeShiftScheduleRespVOS);
         return success(true);
     }

+ 6 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleReqVO.java

@@ -28,4 +28,10 @@ public class PipeShiftScheduleReqVO {
 
     @Schema(description = "关联部门")
     private String relateDepartment;
+
+    @Schema(description = "排序字段")
+    private String orderBy;
+
+    @Schema(description = "排序方式")
+    private String orderType;
 }

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleRespVO.java

@@ -20,7 +20,7 @@ public class PipeShiftScheduleRespVO {
     private List<String> checkers;
 
     @Schema(description = "小组信息")
-    private List<BoilerTaskDetailsItemVO> teamList;
+    private List<PipeShiftScheduleTeamRespVO> teamList;
 
     @Schema(description = "状态, 100 已排期 200 待约检 300 已受理 400 检测中")
     private Integer status;

+ 31 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleSaveRespVO.java

@@ -0,0 +1,31 @@
+package cn.start.tz.module.pressure2.controller.admin.equippipescheduling.vo;
+
+import cn.start.tz.module.pressure2.controller.admin.equipboilerscheduling.vo.BoilerPlanSchedulingAssignTeamItemVO;
+import cn.start.tz.module.pressure2.controller.admin.equipboilerscheduling.vo.BoilerTaskDetailsItemVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.util.List;
+
+@Schema(description = "管理后台 - 计划排期日历 Response VO")
+@Data
+public class PipeShiftScheduleSaveRespVO {
+
+
+    @Schema(description = "小组信息")
+    @Size(min = 1, message = "小组信息不能为空")
+    private List<BoilerPlanSchedulingAssignTeamItemVO> teamList;
+
+
+    @NotNull
+    private String id;
+
+    @Schema(description = "日期")
+    @NotNull
+    private LocalDate date;
+
+}

+ 19 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/equippipescheduling/vo/PipeShiftScheduleTeamRespVO.java

@@ -0,0 +1,19 @@
+package cn.start.tz.module.pressure2.controller.admin.equippipescheduling.vo;
+
+import cn.start.tz.module.pressure2.controller.admin.equipboilerscheduling.vo.PipeShiftScheduleUserRespVO;
+import cn.start.tz.module.system.api.user.dto.AdminUserRespDTO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.util.List;
+@Data
+public class PipeShiftScheduleTeamRespVO {
+    @Schema(description = "小组id")
+    private String groupTeamId;
+
+    @Schema(description = "组长")
+    private List<PipeShiftScheduleUserRespVO> leaders;
+
+    @Schema(description = "成员")
+    private List<PipeShiftScheduleUserRespVO> members;
+}

+ 7 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/equippipeschedulinguser/EquipPipeSchedulingUserDO.java

@@ -1,6 +1,8 @@
 package cn.start.tz.module.pressure2.dal.dataobject.equippipeschedulinguser;
 
 import lombok.*;
+
+import java.time.LocalDate;
 import java.util.*;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -44,4 +46,9 @@ public class EquipPipeSchedulingUserDO extends BaseDO {
      */
     private String groupTeamId;
 
+    /**
+     * 排期时间
+     */
+    private LocalDate date;
+
 }

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingService.java

@@ -84,5 +84,5 @@ public interface EquipPipeSchedulingService extends IService<EquipPipeScheduling
 
     List<PipeShiftScheduleExportRespVO> convert(List<PipeShiftScheduleRespVO> list);
 
-    void setShiftSchedule(@Valid List<PipeShiftScheduleRespVO> pipeShiftScheduleRespVOS);
+    void setShiftSchedule(List<PipeShiftScheduleSaveRespVO> pipeShiftScheduleRespVOS);
 }

+ 74 - 70
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/equippipescheduling/EquipPipeSchedulingServiceImpl.java

@@ -138,6 +138,9 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
     @Resource
     private ClientUnitApi clientUnitApi;
 
+    @Resource
+    private PipeAppointmentConfirmOrderUserMapper pipeAppointmentConfirmOrderUserMapper;
+
     @Resource
     private DeptApi deptApi;
 
@@ -380,13 +383,14 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
                 leader.setType(100);
                 leader.setGroupTeamId(team.getGroupTeamId());
                 leader.setUserId(team.getLeaderId());
-
+                leader.setDate(taskVO.getDate());
                 List<EquipPipeSchedulingUserDO> memberList = team.getMemberIdList().stream().map(memberId -> {
                     EquipPipeSchedulingUserDO member = new EquipPipeSchedulingUserDO();
                     member.setSchedulingId(item.getId());
                     member.setType(200);
                     member.setUserId(memberId);
                     member.setGroupTeamId(team.getGroupTeamId());
+                    member.setDate(taskVO.getDate());
                     return member;
                 }).toList();
 
@@ -1191,18 +1195,23 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
             Set<String> set = equipPipeSchedulingUserDOS.stream().map(item -> item.getGroupTeamId()).collect(Collectors.toSet());
             set.stream().sorted();
 
-            List<BoilerTaskDetailsItemVO> userList = set.stream().map(groupTeamId ->
+            List<PipeShiftScheduleTeamRespVO> userList = set.stream().map(groupTeamId ->
                     {
-                        BoilerTaskDetailsItemVO taskDetailsItemVO = new BoilerTaskDetailsItemVO();
-                        List<AdminUserRespDTO> leaderList = new ArrayList<>();
-                        List<AdminUserRespDTO> membetList = new ArrayList<>();
+                        PipeShiftScheduleTeamRespVO taskDetailsItemVO = new PipeShiftScheduleTeamRespVO();
+                        List<PipeShiftScheduleUserRespVO> leaderList = new ArrayList<>();
+                        List<PipeShiftScheduleUserRespVO> membetList = new ArrayList<>();
 
                         equipPipeSchedulingUserDOS.forEach(item2->{
                             if(groupTeamId != null && groupTeamId.equals(item2.getGroupTeamId())){
+                                PipeShiftScheduleUserRespVO userRespVO = new PipeShiftScheduleUserRespVO();
+                                AdminUserRespDTO userRespDTO = userMap.get(item2.getUserId());
+                                userRespVO.setDate(item2.getDate());
+                                userRespVO.setEquipPipeScheduleUserId(item2.getId());
+                                userRespVO.setAdminUserRespDTO(userRespDTO);
                                 if(item2.getType() == 100){
-                                    leaderList.add(userMap.get(item2.getUserId()));
+                                    leaderList.add(userRespVO);
                                 } else if (item2.getType() == 200) {
-                                    membetList.add(userMap.get(item2.getUserId()));
+                                    membetList.add(userRespVO);
                                 }
                             }
                         });
@@ -1242,75 +1251,70 @@ public class EquipPipeSchedulingServiceImpl extends ServiceImpl<EquipPipeSchedul
     }
 
     @Override
-    public void setShiftSchedule(List<PipeShiftScheduleRespVO> pipeShiftScheduleRespVOS) {
-        for (PipeShiftScheduleRespVO pipeShiftScheduleRespVO : pipeShiftScheduleRespVOS) {
+    public void setShiftSchedule(List<PipeShiftScheduleSaveRespVO> pipeShiftScheduleRespVOS) {
+        //检查员
+        List<EquipPipeSchedulingUserDO> schedulingMemberList = new ArrayList<>();
+        List<PipeAppointmentConfirmOrderUserDO> appointmentConfirmOrderUserDOS = new ArrayList<>();
+        for (PipeShiftScheduleSaveRespVO pipeShiftScheduleRespVO : pipeShiftScheduleRespVOS) {
             String id = pipeShiftScheduleRespVO.getId();
-            EquipPipeSchedulingDO equipPipeSchedulingDO = equipPipeSchedulingMapper.selectById(id);
-            equipPipeSchedulingDO.setPlanDate(pipeShiftScheduleRespVO.getDate());
-            equipPipeSchedulingMapper.updateById(equipPipeSchedulingDO);
-            List<EquipPipeSchedulingUserDO> equipPipeSchedulingUserDOS = equipPipeSchedulingUserMapper.selectList(EquipPipeSchedulingUserDO::getSchedulingId, id);
-            List<String> checkers = new ArrayList<>(pipeShiftScheduleRespVO.getCheckers());
-
-            // 需要删除
-            List<String> deleteIds = equipPipeSchedulingUserDOS.stream().filter(item -> {
-                // 已经存在
-                if (checkers.contains(item.getUserId())) {
-                    checkers.remove(item.getUserId());
-                    return false;
-                } else {
-                    return true;
-                }
-            }).map(EquipPipeSchedulingUserDO::getId).toList();
-            if (!deleteIds.isEmpty()) {
-                equipPipeSchedulingUserMapper.deleteByIds(deleteIds);
-            }
-
-            // 需要新增的
-            List<EquipPipeSchedulingUserDO> list = checkers.stream().map(userId -> EquipPipeSchedulingUserDO.builder()
-                    .schedulingId(id)
-                    .userId(userId)
-                    .build()).toList();
-            if (!list.isEmpty()) {
-                equipPipeSchedulingUserMapper.insertBatch(list);
-            }
-
-
-            // 修改约检确认单
-            if (pipeShiftScheduleRespVO.getStatus() == 200) {
-                AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderMapper.selectOne(AppointmentConfirmOrderDO::getSchedulingId, id);
-                if (appointmentConfirmOrderDO != null) {
-                    appointmentConfirmOrderDO.setAppointmentDate(pipeShiftScheduleRespVO.getDate());
-                    appointmentConfirmOrderMapper.updateById(appointmentConfirmOrderDO);
+            pipeShiftScheduleRespVO.getTeamList().forEach(team -> {
+                EquipPipeSchedulingUserDO leader = new EquipPipeSchedulingUserDO();
+                leader.setSchedulingId(id);
+                leader.setType(100);
+                leader.setGroupTeamId(team.getGroupTeamId());
+                leader.setUserId(team.getLeaderId());
+                leader.setDate(pipeShiftScheduleRespVO.getDate());
 
-                    List<PipeAppointmentConfirmOrderUserDO> pipeAppointmentConfirmOrderUserDOS = appointmentConfirmOrderUserMapper.selectList(PipeAppointmentConfirmOrderUserDO::getOrderId, appointmentConfirmOrderDO.getId());
-                    List<String> confirmCheckers = new ArrayList<>(pipeShiftScheduleRespVO.getCheckers());
+                List<EquipPipeSchedulingUserDO> memberList = team.getMemberIdList().stream().map(memberId -> {
+                    EquipPipeSchedulingUserDO member = new EquipPipeSchedulingUserDO();
+                    member.setSchedulingId(id);
+                    member.setType(200);
+                    member.setUserId(memberId);
+                    member.setGroupTeamId(team.getGroupTeamId());
+                    member.setDate(pipeShiftScheduleRespVO.getDate());
+                    return member;
+                }).toList();
 
-                    // 删除不在检验员列表中的用户
-                    List<String> confirmDeleteIds = pipeAppointmentConfirmOrderUserDOS.stream()
-                            .filter(item -> !confirmCheckers.contains(item.getUserId()))
-                            .map(PipeAppointmentConfirmOrderUserDO::getId)
-                            .toList();
-                    if (!confirmDeleteIds.isEmpty()) {
-                        appointmentConfirmOrderUserMapper.deleteByIds(confirmDeleteIds);
-                    }
+                if (StringUtils.isNotBlank(team.getLeaderId())) {
+                    schedulingMemberList.add(leader);
+                }
 
-                    // 新增检验员列表中不存在的用户
-                    List<String> existingUserIds = pipeAppointmentConfirmOrderUserDOS.stream()
-                            .map(PipeAppointmentConfirmOrderUserDO::getUserId)
-                            .toList();
-                    List<PipeAppointmentConfirmOrderUserDO> insertList = confirmCheckers.stream()
-                            .filter(userId -> !existingUserIds.contains(userId))
-                            .map(userId -> PipeAppointmentConfirmOrderUserDO.builder()
-                                    .orderId(appointmentConfirmOrderDO.getId())
-                                    .userId(userId)
-                                    .build())
-                            .toList();
-                    if (!insertList.isEmpty()) {
-                        appointmentConfirmOrderUserMapper.insertBatch(insertList);
+                schedulingMemberList.addAll(memberList);
+            });
+            List<AppointmentConfirmOrderDO> appointmentConfirmOrderDOS = appointmentConfirmOrderMapper.selectList(AppointmentConfirmOrderDO::getSchedulingId, id);
+            if (appointmentConfirmOrderDOS != null && !appointmentConfirmOrderDOS.isEmpty()) {
+                AppointmentConfirmOrderDO appointmentConfirmOrderDO = appointmentConfirmOrderDOS.get(0);
+                List<PipeAppointmentConfirmOrderUserDO> pipeAppointmentConfirmOrderUserDOS = pipeAppointmentConfirmOrderUserMapper.selectList(PipeAppointmentConfirmOrderUserDO::getOrderId, id);
+                Set<String> ids = pipeAppointmentConfirmOrderUserDOS.stream().map(PipeAppointmentConfirmOrderUserDO::getUserId).collect(Collectors.toSet());
+                pipeShiftScheduleRespVO.getTeamList().forEach(team -> {
+                    PipeAppointmentConfirmOrderUserDO leader = new PipeAppointmentConfirmOrderUserDO();
+                    leader.setOrderId(appointmentConfirmOrderDO.getId());
+                    leader.setType(100);
+                    leader.setGroupTeamId(team.getGroupTeamId());
+                    leader.setUserId(team.getLeaderId());
+
+                    List<PipeAppointmentConfirmOrderUserDO> memberList = team.getMemberIdList().stream().map(memberId -> {
+                        PipeAppointmentConfirmOrderUserDO member = new PipeAppointmentConfirmOrderUserDO();
+                        member.setOrderId(appointmentConfirmOrderDO.getId());
+                        member.setType(200);
+                        member.setUserId(memberId);
+                        member.setGroupTeamId(team.getGroupTeamId());
+                        return member;
+                    }).toList();
+                    // 去重
+                    if (StringUtils.isNotBlank(team.getLeaderId()) && !ids.contains(team.getLeaderId())) {
+                        appointmentConfirmOrderUserDOS.add(leader);
                     }
-                }
+                    memberList.stream().filter(member -> !ids.contains(member.getUserId())).forEach(appointmentConfirmOrderUserDOS::add);
+//                    appointmentConfirmOrderUserDOS.addAll(memberList);
+                });
             }
-
+        }
+        if (!schedulingMemberList.isEmpty()) {
+            equipPipeSchedulingUserMapper.insert(schedulingMemberList);
+        }
+        if (!appointmentConfirmOrderUserDOS.isEmpty()) {
+            pipeAppointmentConfirmOrderUserMapper.insert(appointmentConfirmOrderUserDOS);
         }
     }
 

+ 18 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/equippipescheduling/EquipPipeSchedulingMapper.xml

@@ -588,7 +588,24 @@
             </if>
         </where>
         group by b.unit_code,a.plan_date,a.type,a.ID
-        order by a.plan_date
+        <choose>
+            <when test="orderBy != null and orderBy != '' and orderType != null and orderType != ''">
+                <choose>
+                    <when test="orderBy == 'date'">
+                        order by a.plan_date ${orderType}
+                    </when>
+                    <when test="orderBy == 'unitName'">
+                        order by b.unit_name ${orderType}
+                    </when>
+                    <otherwise>
+                        order by a.plan_date
+                    </otherwise>
+                </choose>
+            </when>
+            <otherwise>
+                order by a.plan_date
+            </otherwise>
+        </choose>
     </select>
 
     <select id="selectPlanPipesPage">