Browse Source

Merge remote-tracking branch 'origin/demo_' into demo_

hfxc226 2 years ago
parent
commit
e42a5660b3

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/enums/SysConfigEnum.java

@@ -51,6 +51,7 @@ public enum SysConfigEnum {
     PRODUCE_VERIFY_USERS("生产审核人员配置"),
     REPAIR_RECEIVE_SUCCESS_WECHAT_TEMPLATE_ID("报修接收后通知报修人"),
     REPAIR_NOTICE_SUCCESS_WECHAT_TEMPLATE_ID("派工后通知维修人"),
+    REPAIR_HOLIDAY("节假日配置"),
     REPAIR_TWENTY_FOUR_USER("24小时值班人"),
     SPARE_UPDATE_ALERT_DAY("备件更换预警设置天数");
     private final String typeName;

+ 49 - 3
platform-rest/src/main/java/com/platform/rest/controller/repair/RepairApplicationFormController.java

@@ -1,15 +1,17 @@
 package com.platform.rest.controller.repair;
 
+import com.alibaba.fastjson.JSONArray;
 import com.platform.common.constant.CommonConstants;
+import com.platform.common.exception.DeniedException;
 import com.platform.common.model.UserInfo;
-import com.platform.common.util.BeanConverterUtil;
-import com.platform.common.util.R;
-import com.platform.common.util.SecurityUtils;
+import com.platform.common.util.*;
 import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.repair.RepairApplicationFormDTO;
+import com.platform.dao.entity.upms.SysConfig;
 import com.platform.dao.enums.RepairApplicationFormTypeEnum;
+import com.platform.dao.enums.SysConfigEnum;
 import com.platform.dao.enums.SysRoleCodeEnum;
 import com.platform.dao.util.ExcelUtil;
 import com.platform.dao.vo.NoticeNumberVO;
@@ -19,6 +21,7 @@ import com.platform.rest.log.annotation.SysLog;
 import com.platform.service.repair.RepairApplicationFormService;
 import com.platform.service.repair.strategy.RepairBaseStrategy;
 import com.platform.service.repair.strategy.RepairStrategyFactory;
+import com.platform.service.upms.SysConfigService;
 import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -41,6 +44,8 @@ public class RepairApplicationFormController {
 
     private final RepairApplicationFormService repairApplicationFormService;
 
+    private final SysConfigService sysConfigService;
+
     /**
      * 通过id查询单条记录
      *
@@ -270,6 +275,13 @@ public class RepairApplicationFormController {
         return new R<>();
     }
 
+    @SysLog("关闭工单")
+    @PutMapping("/close/repair")
+    public R closeRepair(@RequestBody RepairApplicationFormDTO applicationFormDTO) {
+        RepairStrategyFactory.getStrategy(applicationFormDTO.getCategory()).closeRepair(applicationFormDTO);
+        return new R<>();
+    }
+
     @SysLog("接单维修单")
     @PutMapping("/report/repair")
     public R reportRepairForm(@RequestBody RepairApplicationFormDTO applicationFormDTO) {
@@ -415,5 +427,39 @@ public class RepairApplicationFormController {
         return new R<>();
     }
 
+    @SysLog("加入假节日")
+    @GetMapping("/join/{dateStr}")
+    public R joinHoliday(@PathVariable("dateStr") String dateStr) {
+        SysConfig config = sysConfigService.getByCode(SysConfigEnum.REPAIR_HOLIDAY.name());
+        if(config == null){
+            throw new DeniedException("假节日参数尚未配置,请联系技术人员进行配置");
+        }
+        String content = config.getContent();
+        if(StringUtils.isBlank(content)){
+            content = "[]";
+        }
+        List<String> dateList = JSONArray.parseArray(content,String.class);
+        dateList.add(dateStr);
+        SysConfig updConfig = new SysConfig();
+        updConfig.setId(config.getId());
+        updConfig.setContent(JsonUtils.objectToJson(dateList));
+        sysConfigService.modModelByPrimaryKey(updConfig);
+        return new R<>();
+    }
 
+    @SysLog("取消假节日")
+    @GetMapping("/cancel/{dateStr}")
+    public R cancelHoliday(@PathVariable("dateStr") String dateStr) {
+        SysConfig config = sysConfigService.getByCode(SysConfigEnum.REPAIR_HOLIDAY.name());
+        if(config == null){
+            throw new DeniedException("假节日参数尚未配置,请联系技术人员进行配置");
+        }
+        List<String> dateList = JSONArray.parseArray(config.getContent(),String.class);
+        dateList.remove(dateStr);
+        SysConfig updConfig = new SysConfig();
+        updConfig.setId(config.getId());
+        updConfig.setContent(JsonUtils.objectToJson(dateList));
+        sysConfigService.modModelByPrimaryKey(updConfig);
+        return new R<>();
+    }
 }

+ 1 - 1
platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateDataServiceImpl.java

@@ -292,7 +292,7 @@ public class CustomFieldTemplateDataServiceImpl extends BaseServiceImpl<CustomFi
         }else{
             data = JsonUtils.jsonToModel(info.getData(),RepairTicketTemplateData.class);
             RepairApplicationForm form = repairApplicationFormMapper.selectByPrimaryKey(objId);
-            if(StringUtils.isNotBlank(data.getRepairMan())){
+            if(StringUtils.isBlank(data.getRepairMan())){
                 data.setRepairMan(sysUserMapper.selectByPrimaryKey(form.getRepairUserId()).getRealName());
             }
             if(StringUtils.isBlank(data.getRepairStartTime()) && form.getRepairStartTime() != null){

+ 46 - 12
platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanRepairStrategy.java

@@ -11,6 +11,7 @@ import com.platform.dao.dto.upms.SysUserDTO;
 import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.dao.entity.repair.RepairApplicationForm;
 import com.platform.dao.entity.sb.SbInfo;
+import com.platform.dao.entity.upms.SysConfig;
 import com.platform.dao.entity.upms.SysUser;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
@@ -21,13 +22,16 @@ import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.SysUserVO;
 import com.platform.service.part.PartInfoService;
 import com.platform.service.repair.strategy.AbstractRepairBaseStrategy;
+import com.platform.service.upms.SysConfigService;
 import com.platform.service.util.SendMessageUtils;
 import org.springframework.stereotype.Component;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
 
 import javax.annotation.Resource;
+import java.time.DayOfWeek;
 import java.time.LocalDateTime;
+import java.time.temporal.TemporalField;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -52,6 +56,8 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
     private SbPositionMapper sbPositionMapper;
     @Resource
     private SysUserDeptMapper sysUserDeptMapper;
+    @Resource
+    private SysConfigService sysConfigService;
 
 
     /**
@@ -91,20 +97,46 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
         // 给相关的工程师推送信息
         sendMessageToRepairManger(form,sysUserVOList,CommonConstants.CALL_REPAIR_NOTICE);
         // 给该部门班组长推送信息
-        List<SysUserVO> banzuzhangs = getRepairMangers(repairDeptId,null,SysRoleCodeEnum.Maintenance_Leader.name());
+        /*List<SysUserVO> banzuzhangs = getRepairMangers(repairDeptId,null,SysRoleCodeEnum.Maintenance_Leader.name());
         if(banzuzhangs != null && banzuzhangs.size() > 0){
             sendMessageToRepairManger(form,banzuzhangs,CommonConstants.CALL_REPAIR_NOTICE);
-        }
-        // 给二十四小时人员发送信息
-        String everyWhereUsers = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_TWENTY_FOUR_USER.name());
-        if(StringUtils.isNotBlank(everyWhereUsers)){
-            sendMessageToRepairManger(form,getUserVOs(everyWhereUsers.trim()),CommonConstants.CALL_REPAIR_NOTICE);
+        }*/
+        // 给值班人员发送消息
+        if(isSendMessage()){
+            String everyWhereUsers = ConfigCache.getLabelByValueAllowNull(SysConfigEnum.REPAIR_TWENTY_FOUR_USER.name());
+            if(StringUtils.isNotBlank(everyWhereUsers)){
+                sendMessageToRepairManger(form,getUserVOs(everyWhereUsers.trim()),CommonConstants.CALL_REPAIR_NOTICE);
+            }
         }
         // 生产票证数据
         generateTicketData(form);
         return form;
     }
 
+    private boolean isSendMessage(){
+        LocalDateTime now = LocalDateTime.now();
+        // 今天是否是节假日
+        SysConfig config = sysConfigService.getByCode(SysConfigEnum.REPAIR_HOLIDAY.name());
+        String content = "[]";
+        if(config != null){
+            content = config.getContent();
+        }
+        if(content.contains(DateUtils.dateToString(now,DateUtils.PATTERN_YMD))){
+            return Boolean.TRUE;
+        }
+        int dayOfWeek = now.getDayOfWeek().getValue();
+        if(dayOfWeek == 6 || dayOfWeek == 7){
+            return Boolean.TRUE;
+        }
+        LocalDateTime startTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.getDayOfMonth(),18,00,00);
+        LocalDateTime second = now.plusDays(1);
+        LocalDateTime endTime = LocalDateTime.of(second.getYear(),second.getMonthValue(),second.getDayOfMonth(),8,00,00);
+        if(now.isAfter(startTime) && now.isBefore(endTime)){
+            return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
+
     /**
      * 生成维修票证数据
      * @param form
@@ -174,12 +206,14 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
     }
 
     public static void main(String[] args) {
-        Map<String,String> maps = new HashMap<>();
-        maps.put("13410011001","12121,2323,2323");
-        maps.put("13410011002","12121,2323,2323");
-        System.out.println(JsonUtils.objectToJson(maps));
-        Map<String,String> covertMap = JsonUtils.jsonToMap("{\"13410011002\":\"12121,2323,2323\",\"13410011001\":\"12121,2323,2323\"}");
-        System.out.println(covertMap.get("13410011001"));
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime startTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.getDayOfMonth(),18,00,00);
+        LocalDateTime second = now.plusDays(1);
+        LocalDateTime endTime = LocalDateTime.of(second.getYear(),second.getMonthValue(),second.getDayOfMonth(),8,00,00);
+        System.out.println(startTime);
+        System.out.println(endTime);
+        System.out.println(now.isAfter(startTime));
+        System.out.println(now.isBefore(endTime));
     }
 
     /**

+ 2 - 1
platform-service/src/main/java/com/platform/service/sb/impl/SbInfoServiceImpl.java

@@ -2374,7 +2374,7 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
                     if (vo.getCheckPeriod() != null) {
                         tempInfo.setIsMeasure(1);
                     }
-                    if (tempInfo.getIsMeasure() == 1) {
+                    if (tempInfo.getIsMeasure() != null && tempInfo.getIsMeasure() == 1) {
                         if (tempInfo.getNextCheckDate() == null) {
                             if (tempInfo.getCheckDate() != null) {
                                 if (tempInfo.getCheckPeriod() != null) {
@@ -2472,6 +2472,7 @@ public class SbInfoServiceImpl extends BaseServiceImpl<SbInfoMapper, SbInfo, SbI
 
             return "总计更新:" + (list.size());
         } catch (Exception e) {
+            e.printStackTrace();
             throw new BusinessException(e.getMessage());
         }
     }