Ver código fonte

报修代码更新

夏文涛 2 anos atrás
pai
commit
aba6a4a074
100 arquivos alterados com 3251 adições e 817 exclusões
  1. 0 22
      .idea/compiler.xml
  2. 43 0
      src/main/java/com/repair/api/RepairAreaControllerAPI.java
  3. 34 0
      src/main/java/com/repair/api/RepairCloseControllerAPI.java
  4. 40 0
      src/main/java/com/repair/api/RepairNoticeSettingControllerAPI.java
  5. 30 0
      src/main/java/com/repair/api/RepairSchoolControllerAPI.java
  6. 43 0
      src/main/java/com/repair/api/RepairWorkTypeControllerAPI.java
  7. 199 0
      src/main/java/com/repair/common/utils/AesUtils.java
  8. 1 1
      src/main/java/com/repair/common/utils/DelayedUtils.java
  9. 41 0
      src/main/java/com/repair/common/utils/EncryptionUtil.java
  10. 479 0
      src/main/java/com/repair/common/utils/HttpsClient.java
  11. 61 0
      src/main/java/com/repair/common/utils/MimeTypeUtils.java
  12. 23 0
      src/main/java/com/repair/common/utils/MyX509TrustManager.java
  13. 195 0
      src/main/java/com/repair/common/utils/RSAUtils.java
  14. 172 50
      src/main/java/com/repair/common/utils/TimeExchange.java
  15. 0 7
      src/main/java/com/repair/common/utils/WxUtil.java
  16. 0 74
      src/main/java/com/repair/common/utils/XmlUtil.java
  17. 27 0
      src/main/java/com/repair/common/utils/paramUtils.java
  18. 25 0
      src/main/java/com/repair/common/utils/smsUtil.java
  19. 0 19
      src/main/java/com/repair/config/ScheduledConfig.java
  20. 36 0
      src/main/java/com/repair/config/SmsConfig.java
  21. 0 432
      src/main/java/com/repair/controller/ScheduleController.java
  22. 27 0
      src/main/java/com/repair/core/CORSConfiguration.java
  23. 25 0
      src/main/java/com/repair/core/JwtlnterceptorConfig.java
  24. 49 0
      src/main/java/com/repair/handler/MyMetaObjectHandler.java
  25. 0 13
      src/main/java/com/repair/mapper/RepairArticleBuildMapper.java
  26. 0 7
      src/main/java/com/repair/mapper/RepairDispatchRecordMapper.java
  27. 0 7
      src/main/java/com/repair/mapper/RepairEvaluateMapper.java
  28. 0 7
      src/main/java/com/repair/mapper/RepairRecordMapper.java
  29. 1 7
      src/main/java/com/repair/mapper/RepairRefundRecordMapper.java
  30. 0 6
      src/main/java/com/repair/mapper/RepairSystemMessagesMapper.java
  31. 0 6
      src/main/java/com/repair/mapper/RepairTrackRecordMapper.java
  32. 1 7
      src/main/java/com/repair/mapper/RepairUserMapper.java
  33. 32 0
      src/main/java/com/repair/model/enumModel/eFileType.java
  34. 32 0
      src/main/java/com/repair/model/enumModel/eIsSuper.java
  35. 36 0
      src/main/java/com/repair/model/enumModel/eIsTop.java
  36. 52 0
      src/main/java/com/repair/model/enumModel/eSchool.java
  37. 33 0
      src/main/java/com/repair/model/enumModel/eStatu.java
  38. 38 0
      src/main/java/com/repair/model/enumModel/eTechnicianStatu.java
  39. 67 0
      src/main/java/com/repair/model/enumModel/eWeekStatu.java
  40. 0 1
      src/main/java/com/repair/model/pojo/RepairCollaborateRecord.java
  41. 5 0
      src/main/java/com/repair/model/pojo/RepairEvaluate.java
  42. 0 9
      src/main/java/com/repair/model/pojo/RepairRefundRecord.java
  43. 5 0
      src/main/java/com/repair/model/pojo/RepairSystemMessages.java
  44. 25 0
      src/main/java/com/repair/model/request/AlterPriceRequest.java
  45. 27 0
      src/main/java/com/repair/model/request/DelayedRequest.java
  46. 0 0
      src/main/java/com/repair/model/request/MaintenanceConsumeablesRequest.java
  47. 27 0
      src/main/java/com/repair/model/request/MobileRevertRequest.java
  48. 21 0
      src/main/java/com/repair/model/request/RevertRequest.java
  49. 54 0
      src/main/java/com/repair/model/request/UserScheduleRequest.java
  50. 0 0
      src/main/java/com/repair/model/request/WxPayRequest.java
  51. 29 0
      src/main/java/com/repair/model/request/changePasswordRequest.java
  52. 36 0
      src/main/java/com/repair/model/request/cooperationOrdersRequest.java
  53. 23 0
      src/main/java/com/repair/model/request/loginRequest.java
  54. 37 0
      src/main/java/com/repair/model/request/repairLeaveMessageRequest.java
  55. 34 0
      src/main/java/com/repair/model/request/repairPayRequest.java
  56. 1 1
      src/main/java/com/repair/model/vo/timeVo.java
  57. 32 0
      src/main/java/com/repair/model/request/transferOrderRequest.java
  58. 49 0
      src/main/java/com/repair/model/request/updateAddressBookRequest.java
  59. 34 0
      src/main/java/com/repair/model/request/updateRepairAdminRequest.java
  60. 26 0
      src/main/java/com/repair/model/request/updateRepairAreaRequest.java
  61. 54 0
      src/main/java/com/repair/model/request/updateRepairConsumeRequest.java
  62. 28 0
      src/main/java/com/repair/model/vo/AddressBookListVo.java
  63. 12 0
      src/main/java/com/repair/model/vo/AlterPriceShowVo.java
  64. 0 21
      src/main/java/com/repair/model/vo/ArticleBuildVo.java
  65. 2 9
      src/main/java/com/repair/model/vo/AutoDispatchUserVo.java
  66. 41 0
      src/main/java/com/repair/model/vo/ChangeConsumesVo.java
  67. 40 0
      src/main/java/com/repair/model/vo/ChangePriceConsumeVo.java
  68. 66 0
      src/main/java/com/repair/model/vo/ClassesDataVo.java
  69. 40 0
      src/main/java/com/repair/model/vo/ClassesSettingPageDataVo.java
  70. 22 0
      src/main/java/com/repair/model/vo/CollaborateDataVo.java
  71. 26 0
      src/main/java/com/repair/model/vo/CollaborateRecordVo.java
  72. 36 0
      src/main/java/com/repair/model/vo/LoginVo.java
  73. 32 0
      src/main/java/com/repair/model/vo/MaintenanceTechnicianVo.java
  74. 40 0
      src/main/java/com/repair/model/vo/NoticePageVo.java
  75. 14 0
      src/main/java/com/repair/model/vo/NoticeVo.java
  76. 30 0
      src/main/java/com/repair/model/vo/PositiveReviewVo.java
  77. 32 0
      src/main/java/com/repair/model/vo/RepairAreaTreeVo.java
  78. 36 0
      src/main/java/com/repair/model/vo/RepairArticleChildVo.java
  79. 30 0
      src/main/java/com/repair/model/vo/RepairArticleTreeVo.java
  80. 71 0
      src/main/java/com/repair/model/vo/RepairConsumeVo.java
  81. 17 0
      src/main/java/com/repair/model/vo/RepairLogisticsVo.java
  82. 25 0
      src/main/java/com/repair/model/vo/RepairRecordCountVo.java
  83. 23 0
      src/main/java/com/repair/model/vo/RepairSchoolVo.java
  84. 21 0
      src/main/java/com/repair/model/vo/ShiftSettingDataVo.java
  85. 32 0
      src/main/java/com/repair/model/vo/SystemMenuTreeVo.java
  86. 27 0
      src/main/java/com/repair/model/vo/SystemMenuVo.java
  87. 14 0
      src/main/java/com/repair/model/vo/UploadFileVo.java
  88. 50 0
      src/main/java/com/repair/model/vo/UserScheduleVo.java
  89. 2 20
      src/main/java/com/repair/model/vo/pendingOrderVo.java
  90. 0 35
      src/main/java/com/repair/model/vo/repairRefundVo.java
  91. 43 0
      src/main/java/com/repair/model/vo/routeDataVo.java
  92. 21 0
      src/main/java/com/repair/model/vo/shiftSettingVo.java
  93. 0 13
      src/main/java/com/repair/services/RepairArticleBuildService.java
  94. 7 7
      src/main/java/com/repair/services/RepairDispatchRecordService.java
  95. 1 8
      src/main/java/com/repair/services/RepairEvaluateService.java
  96. 8 7
      src/main/java/com/repair/services/RepairRecordService.java
  97. 1 6
      src/main/java/com/repair/services/RepairRefundRecordService.java
  98. 0 8
      src/main/java/com/repair/services/RepairSystemMessagesService.java
  99. 0 7
      src/main/java/com/repair/services/RepairTrackRecordService.java
  100. 0 0
      src/main/java/com/repair/services/RepairUserService.java

+ 0 - 22
.idea/compiler.xml

@@ -3,28 +3,6 @@
   <component name="CompilerConfiguration">
     <annotationProcessing>
       <profile default="true" name="Default" enabled="true" />
-      <profile name="Maven default annotation processors profile" enabled="true">
-        <sourceOutputDir name="target/generated-sources/annotations" />
-        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
-        <outputRelativeToContentRoot value="true" />
-<<<<<<< HEAD
-        <module name="repair_backend" />
-        <module name="repair_system" />
-        <module name="template_code" />
-        <module name="Back-endDevelopmentFramework" />
-=======
-        <module name="repair_system" />
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
-      </profile>
     </annotationProcessing>
-    <bytecodeTargetLevel>
-      <module name="repair_system" target="1.8" />
-    </bytecodeTargetLevel>
-  </component>
-  <component name="JavacSettings">
-    <option name="ADDITIONAL_OPTIONS_STRING" value="-encoding utf-8" />
-    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
-      <module name="repair_system" options="-parameters" />
-    </option>
   </component>
 </project>

+ 43 - 0
src/main/java/com/repair/api/RepairAreaControllerAPI.java

@@ -0,0 +1,43 @@
+package com.repair.api;
+
+import com.repair.model.pojo.RepairArea;
+import com.repair.model.request.updateRepairAreaRequest;
+import com.repair.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/repairArea")
+@Api(tags = {"RepairAreaController"}, value = "区域")
+public interface RepairAreaControllerAPI {
+
+    @PostMapping(value = "/insertRepairArea")
+    @ApiOperation(value = "添加区域", notes = "添加区域数据", httpMethod = "POST")
+    CommonResult InsertRepairArea(@Validated @RequestBody RepairArea repairArea, BindingResult bindingResult);
+
+    @PostMapping(value = "/updateRepairAreaById")
+    @ApiOperation(value = "编辑区域数据", notes = "编辑区域数据", httpMethod = "POST")
+    CommonResult updateRepairAreaById(@Validated @RequestBody updateRepairAreaRequest ra, BindingResult bindingResult);
+
+    @GetMapping(value = "/queryPageRepairArea")
+    @ApiOperation(value = "区域分页数据", notes = "区域分页数据", httpMethod = "GET")
+    CommonResult queryPageRepairAreas(@RequestParam int currentPage, @RequestParam int pageCount, String name);
+
+    @GetMapping(value = "/deleteRepairAreaById")
+    @ApiOperation(value = "根据ID删除指定区域", notes = "根据ID删除指定区域", httpMethod = "GET")
+    CommonResult deleteRepairAreaById(@RequestParam int id);
+
+    @GetMapping(value = "/queryRepairSchools")
+    @ApiOperation(value = "查询校区数据", notes = "查询校区数据", httpMethod = "GET")
+    CommonResult queryRepairSchools();
+
+    @GetMapping(value = "/queryRepairAreaTree")
+    @ApiOperation(value = "获取区域树形结构数据", notes = "获取区域树形结构数据", httpMethod = "GET")
+    CommonResult queryRepairAreaTree(@RequestParam int schoolId);
+
+    @GetMapping(value = "/queryRepairAreaSecond")
+    @ApiOperation(value = "获取区域二级树形结构", notes = "获取区域二级树形结构", httpMethod = "GET")
+    CommonResult queryRepairAreaSecond(int schoolId);
+}

+ 34 - 0
src/main/java/com/repair/api/RepairCloseControllerAPI.java

@@ -0,0 +1,34 @@
+package com.repair.api;
+
+import com.repair.model.pojo.RepairClose;
+import com.repair.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/repairClose")
+@Api(tags = {"repairCloseController"}, value = "关单原因")
+public interface RepairCloseControllerAPI {
+
+    @PostMapping(value = "/insertRepairClose")
+    @ApiOperation(value = "添加关单原因", notes = "添加关单原因数据", httpMethod = "POST")
+    CommonResult InsertRepairClose(@Validated @RequestBody RepairClose rc, BindingResult bindingResult);
+
+    @PostMapping(value = "/updateRepairCloseById")
+    @ApiOperation(value = "编辑关单原因数据", notes = "编辑关单原因数据", httpMethod = "POST")
+    CommonResult updateRepairCloseById(@Validated @RequestBody RepairClose rc, BindingResult bindingResult);
+
+    @GetMapping(value = "/queryPageRepairClose")
+    @ApiOperation(value = "关单原因分页数据", notes = "关单原因分页数据", httpMethod = "GET")
+    CommonResult queryPageRepairCloses(@RequestParam int currentPage, @RequestParam int pageCount, String name);
+
+    @GetMapping(value = "/deleteRepairCloseById")
+    @ApiOperation(value = "根据ID删除指定关单原因", notes = "根据ID删除指定关单原因", httpMethod = "GET")
+    CommonResult deleteRepairCloseById(@RequestParam int id);
+
+    @GetMapping(value = "/queryRepairCloses")
+    @ApiOperation(value = "关单原因数据", notes = "关单原因数据", httpMethod = "GET")
+    CommonResult queryRepairCloses();
+}

+ 40 - 0
src/main/java/com/repair/api/RepairNoticeSettingControllerAPI.java

@@ -0,0 +1,40 @@
+package com.repair.api;
+
+import com.repair.model.pojo.RepairNoticeSetting;
+import com.repair.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.ParseException;
+
+@RequestMapping("/api/repairNoticeSetting")
+@Api(tags = {"RepairNoticeSettingController"}, value = "公告")
+public interface RepairNoticeSettingControllerAPI {
+
+    @PostMapping(value = "/insertRepairNoticeSetting")
+    @ApiOperation(value = "添加公告", notes = "添加公告数据", httpMethod = "POST")
+    CommonResult InsertRepairNoticeSetting(@Validated @RequestBody RepairNoticeSetting repairNoticeSetting, BindingResult bindingResult);
+
+    @PostMapping(value = "/updateRepairNoticeSettingById")
+    @ApiOperation(value = "编辑公告数据", notes = "编辑公告数据", httpMethod = "POST")
+    CommonResult updateRepairNoticeSettingById(@Validated @RequestBody RepairNoticeSetting ra, BindingResult bindingResult);
+
+    @GetMapping(value = "/queryPageRepairNoticeSetting")
+    @ApiOperation(value = "公告分页数据", notes = "公告分页数据", httpMethod = "GET")
+    CommonResult queryPageRepairNoticeSettings(@RequestParam int currentPage, @RequestParam int pageCount, String createTime) throws ParseException;
+
+    @GetMapping(value = "/cancelOrTopNoticeById")
+    @ApiOperation(value = "取消/置顶公告", notes = "取消/置顶公告置顶", httpMethod = "GET")
+    CommonResult cancelOrTopNoticeById(@RequestParam int id, @RequestParam int is_top);
+
+    @GetMapping(value = "/deleteRepairNoticeSettingById")
+    @ApiOperation(value = "根据ID删除指定公告", notes = "根据ID删除指定公告", httpMethod = "GET")
+    CommonResult deleteRepairNoticeSettingById(@RequestParam int id);
+
+    @GetMapping(value = "/queryRepairNoticeSettingByTop")
+    @ApiOperation(value = "公告置顶数据", notes = "公告置顶数据", httpMethod = "GET")
+    CommonResult queryRepairNoticeSettingByTop();
+}

+ 30 - 0
src/main/java/com/repair/api/RepairSchoolControllerAPI.java

@@ -0,0 +1,30 @@
+package com.repair.api;
+
+import com.repair.model.pojo.RepairSchool;
+import com.repair.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/repairSchool")
+@Api(tags = {"RepairSchoolController"}, value = "校区")
+public interface RepairSchoolControllerAPI {
+
+    @PostMapping(value = "/insertRepairSchool")
+    @ApiOperation(value = "添加校区", notes = "添加校区数据", httpMethod = "POST")
+    CommonResult InsertRepairSchool(@Validated @RequestBody RepairSchool repairSchool, BindingResult bindingResult);
+
+    @PostMapping(value = "/updateRepairSchoolById")
+    @ApiOperation(value = "编辑校区数据", notes = "编辑校区数据", httpMethod = "POST")
+    CommonResult updateRepairSchoolById(@Validated @RequestBody RepairSchool ra, BindingResult bindingResult);
+
+    @GetMapping(value = "/queryPageRepairSchool")
+    @ApiOperation(value = "校区分页数据", notes = "校区分页数据", httpMethod = "GET")
+    CommonResult queryPageRepairSchools(@RequestParam int currentPage, @RequestParam int pageCount, String name);
+
+    @GetMapping(value = "/deleteRepairSchoolById")
+    @ApiOperation(value = "根据ID删除指定校区", notes = "根据ID删除指定校区", httpMethod = "GET")
+    CommonResult deleteRepairSchoolById(@RequestParam int id);
+}

+ 43 - 0
src/main/java/com/repair/api/RepairWorkTypeControllerAPI.java

@@ -0,0 +1,43 @@
+package com.repair.api;
+
+import com.repair.model.pojo.RepairWorkType;
+import com.repair.model.result.CommonResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+@RequestMapping("/api/repairWorkType")
+@Api(tags = {"RepairWorkTypeController"}, value = "工种")
+public interface RepairWorkTypeControllerAPI {
+
+    @PostMapping(value = "/insertRepairWorkType")
+    @ApiOperation(value = "添加工种", notes = "添加工种数据", httpMethod = "POST")
+    CommonResult InsertRepairWorkType(@Validated @RequestBody RepairWorkType rwt, BindingResult bindingResult);
+
+    @PostMapping(value = "/updateRepairWorkTypeById")
+    @ApiOperation(value = "编辑工种数据", notes = "编辑工种数据", httpMethod = "POST")
+    CommonResult updateRepairWorkTypeById(@Validated @RequestBody RepairWorkType rwt, BindingResult bindingResult);
+
+    @GetMapping(value = "/queryPageRepairWorkType")
+    @ApiOperation(value = "工种分页数据", notes = "工种分页数据", httpMethod = "GET")
+    CommonResult queryPageRepairWorkTypes(@RequestParam int currentPage, @RequestParam int pageCount, String name);
+
+    @GetMapping(value = "/deleteRepairWorkTypeById")
+    @ApiOperation(value = "根据ID删除指定工种", notes = "根据ID删除指定工种", httpMethod = "GET")
+    CommonResult deleteRepairWorkTypeById(@RequestParam int id);
+
+    @GetMapping(value = "/getRepairWorkTypes")
+    @ApiOperation(value = "查询工种列表", notes = "查询工种列表", httpMethod = "GET")
+    CommonResult getRepairWorkTypes();
+
+    @GetMapping(value = "/getReceivingState")
+    @ApiOperation(value = "接单状态数据列表", notes = "接单状态数据列表", httpMethod = "GET")
+    CommonResult getReceivingState();
+
+    @GetMapping(value = "/getRepaairIdentitys")
+    @ApiOperation(value = "查询身份列表", notes = "查询身份列表", httpMethod = "GET")
+    CommonResult getRepairIdentitys();
+
+}

+ 199 - 0
src/main/java/com/repair/common/utils/AesUtils.java

@@ -0,0 +1,199 @@
+package com.repair.common.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.bouncycastle.util.encoders.Base64;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+/**
+ * @Author: liujun
+ * @Description: Aes 加解密算法
+ * @Date Create in 上午 9:38$ 2017/12/26 0026$
+ * @Modify By:
+ */
+@Slf4j
+public class AesUtils {
+    private static String password = "52D04DC20036DBD8";
+    /**
+     * @Author liujun
+     * @Description:
+     * @params: * @param content 需要加密的内容
+     * @param password  加密密码
+     * @Date 上午 9:41 2017/12/26 0026
+     */
+    public static String encrypt(String content) {
+
+        if(password.length()<16) {
+            password = password + "0000000000000000".substring(0, 16-password.length());
+        }
+        else if(password.length()>16) {
+            password = password.substring(0, 16);
+        }
+
+        return bytes2HexString(encryptAES(content.getBytes(), password.getBytes()));
+    }
+
+
+    /**
+     * @Author liujun
+     * @Description:
+     * @params: * @param content 待解密内容
+     * @param password 解密密钥
+     * @Date 上午 9:40 2017/12/26 0026
+     */
+    public static String decrypt(String content) {
+        if(password.length()<16) {
+            password = password + "0000000000000000".substring(0, 16-password.length());
+        }
+        else if(password.length()>16) {
+            password = password.substring(0, 16);
+        }
+
+        return new String(decryptAES(hexString2Bytes(content), password.getBytes()));
+    }
+
+    /**
+     * AES 加密
+     *
+     * @param data 明文
+     * @param key  16、24、32 字节秘钥
+     * @return 密文
+     */
+    public static byte[] encryptAES(final byte[] data, final byte[] key) {
+
+        try {
+            SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
+            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
+            byte[] byteContent = data;
+            cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);// 初始化
+            byte[] result = cipher.doFinal(byteContent);
+            return result; // 加密
+        } catch (NoSuchAlgorithmException e) {
+            log.error(e.getMessage(),e);
+        } catch (NoSuchPaddingException e) {
+            log.error(e.getMessage(),e);
+        } catch (InvalidKeyException e) {
+            log.error(e.getMessage(),e);
+        } catch (IllegalBlockSizeException e) {
+            log.error(e.getMessage(),e);
+        } catch (BadPaddingException e) {
+            log.error(e.getMessage(),e);
+        } catch (Exception e) {
+            log.error(e.getMessage(),e);
+        }
+        return null;
+    }
+
+    /**
+     * AES 解密
+     *
+     * @param data 密文
+     * @param key  16、24、32 字节秘钥
+     * @return 明文
+     */
+    public static byte[] decryptAES(final byte[] data, final byte[] key) {
+
+        try {
+            SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
+            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
+            cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);// 初始化
+            byte[] result = cipher.doFinal(data);
+            return result; // 加密
+        } catch (NoSuchAlgorithmException e) {
+            log.error(e.getMessage(),e);
+        } catch (NoSuchPaddingException e) {
+            log.error(e.getMessage(),e);
+        } catch (InvalidKeyException e) {
+            log.error(e.getMessage(),e);
+        } catch (IllegalBlockSizeException e) {
+            log.error(e.getMessage(),e);
+        } catch (BadPaddingException e) {
+            log.error(e.getMessage(),e);
+        } catch (Exception e) {
+            log.error(e.getMessage(),e);
+        }
+        return null;
+    }
+
+    public static String bytes2HexString(final byte[] bytes) {
+        if (bytes == null) return null;
+        int len = bytes.length;
+        if (len <= 0) return null;
+        char[] ret = new char[len << 1];
+        for (int i = 0, j = 0; i < len; i++) {
+            ret[j++] = hexDigits[bytes[i] >>> 4 & 0x0f];
+            ret[j++] = hexDigits[bytes[i] & 0x0f];
+        }
+        return new String(ret);
+    }
+
+    private static final char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
+
+    public static byte[] hexString2Bytes(String hexString) {
+        if (isSpace(hexString)) return null;
+        int len = hexString.length();
+        if (len % 2 != 0) {
+            hexString = "0" + hexString;
+            len = len + 1;
+        }
+        char[] hexBytes = hexString.toUpperCase().toCharArray();
+        byte[] ret = new byte[len >> 1];
+        for (int i = 0; i < len; i += 2) {
+            ret[i >> 1] = (byte) (hex2Dec(hexBytes[i]) << 4 | hex2Dec(hexBytes[i + 1]));
+        }
+        return ret;
+    }
+
+    private static int hex2Dec(final char hexChar) {
+        if (hexChar >= '0' && hexChar <= '9') {
+            return hexChar - '0';
+        } else if (hexChar >= 'A' && hexChar <= 'F') {
+            return hexChar - 'A' + 10;
+        } else {
+            throw new IllegalArgumentException();
+        }
+    }
+
+    public static byte[] base64Encode(final byte[] input) {
+        return Base64.encode(input);
+    }
+
+    public static byte[] base64Decode(final byte[] input) {
+
+        return Base64.decode(input);
+    }
+
+    private static boolean isSpace(final String s) {
+        if (s == null) return true;
+        for (int i = 0, len = s.length(); i < len; ++i) {
+            if (!Character.isWhitespace(s.charAt(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    public static void main(String[] args) {
+        String s="{\n" +
+                "  \"categoryId\": \"72cf28a8789643bbbbb62d08ee91f17e\",\n" +
+                "     \"luid\": \"80A036D93CFB\",\n" +
+                "     \"type\":\"4\",\n" +
+                "     \"userName\":\"13097286670\",\n" +
+                "     \"startTime\":\"1682389484000\",\n" +
+                "     \"endTime\":\"1684981484000\",\n" +
+                "     \"password\":\"A08E87B5E777EBEE2C6EF3262F069D5A\"\n" +
+                "}";
+        //加密
+        String encryptString = AesUtils.encrypt("548903");
+        System.out.println("加密后字符串:"+encryptString);
+        //解密
+        String decryptString = AesUtils.decrypt(encryptString);
+        System.out.println("解密后字符串:"+decryptString);
+    }
+}

+ 1 - 1
src/main/java/com/repair/common/utils/DelayedUtils.java

@@ -1,7 +1,7 @@
 package com.repair.common.utils;
 
 import com.repair.model.pojo.RepairShiftSettings;
-import com.repair.model.vo.timeVo;
+import com.repair.model.request.timeVo;
 import lombok.SneakyThrows;
 
 import java.text.ParseException;

+ 41 - 0
src/main/java/com/repair/common/utils/EncryptionUtil.java

@@ -0,0 +1,41 @@
+package com.repair.common.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+public class EncryptionUtil {
+
+
+    private static final int MAX_JSON_STRING = 40;
+
+    /**
+     * 将需要加密的字段分批加密
+     *
+     * @param jsonString
+     * @param publicKey
+     * @return
+     * @throws Exception
+     */
+    public Map<Object, Object> encryption(String jsonString, String publicKey) throws Exception {
+        int length = jsonString.length();
+        int offset = 0;
+        int i = 0;
+        HashMap<Object, Object> map = new HashMap<>();
+//        判断字符串长度是否大于40,大于就截取前40位,分批加密
+        while (length - offset > 0) {
+            if (length - offset > MAX_JSON_STRING) {
+                String substring = jsonString.substring(offset, offset + MAX_JSON_STRING);
+                String encrypt = RSAUtils.encrypt(substring, RSAUtils.getPublicKey(publicKey));
+                map.put(i, encrypt);
+            } else {
+                String substring = jsonString.substring(offset,length);
+                String encrypt = RSAUtils.encrypt(substring, RSAUtils.getPublicKey(publicKey));
+                map.put(i, encrypt);
+            }
+            i++;
+            offset = i * MAX_JSON_STRING;
+        }
+        return map;
+    }
+}

+ 479 - 0
src/main/java/com/repair/common/utils/HttpsClient.java

@@ -0,0 +1,479 @@
+package com.repair.common.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * HttpsClient类
+ * @author lujunjie
+ * @date   2018/03/01
+ */
+public class HttpsClient {
+
+    /**
+     * GET请求方式
+     */
+    public static final String METHOD_GET = "GET";
+    /**
+     * POST请求方式
+     */
+    public static final String METHOD_POST = "POST";
+    /**
+     * 连接超时时间
+     */
+    private static Integer CONNECTION_TIMEOUT = 15000;
+    /**
+     * 请求超时时间
+     */
+    private static Integer READ_TIMEOUT = 15000;
+
+    /**
+     * 发起https请求
+     * @param requestUrl 请求地址
+     * @param requestMethod 请求方式(Get或者post)
+     * @param postData 提交数据
+     * @return JSONObject
+     */
+    public static JSONObject httpsRequestReturnJSONObject(String requestUrl, String requestMethod, String postData) throws Exception{
+        JSONObject jsonObject = JSONObject.parseObject(HttpsClient.httpsRequestReturnString(requestUrl,requestMethod,postData));
+        System.out.println("jsonObjectDate:  " + jsonObject);
+        return jsonObject;
+    }
+
+
+    /**
+     * 发起https请求
+     * @param requestUrl 请求地址
+     * @param requestMethod 请求方式(Get或者post)
+     * @param postData 提交数据
+     * @return String
+     */
+    public static String httpsRequestReturnString(String requestUrl, String requestMethod, String postData) throws Exception{
+        String response;
+        HttpsURLConnection httpsUrlConnection = null;
+        try{
+            //创建https请求证书
+            TrustManager[] tm={new MyX509TrustManager()};
+            //创建SSLContext管理器对像,使用我们指定的信任管理器初始化
+            SSLContext sslContext=SSLContext.getInstance("SSL","SunJSSE");
+            sslContext.init(null, tm, new java.security.SecureRandom());
+            SSLSocketFactory ssf=sslContext.getSocketFactory();
+
+            // 创建URL对象
+            URL url= new URL(requestUrl);
+            // 创建HttpsURLConnection对象,并设置其SSLSocketFactory对象
+            httpsUrlConnection=(HttpsURLConnection)url.openConnection();
+            //设置ssl证书
+            httpsUrlConnection.setSSLSocketFactory(ssf);
+
+            //设置header信息
+            httpsUrlConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
+            //设置User-Agent信息
+            httpsUrlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36");
+            //设置可接受信息
+            httpsUrlConnection.setDoOutput(true);
+            //设置可输入信息
+            httpsUrlConnection.setDoInput(true);
+            //不使用缓存
+            httpsUrlConnection.setUseCaches(false);
+            //设置请求方式(GET/POST)
+            httpsUrlConnection.setRequestMethod(requestMethod);
+            //设置连接超时时间
+            if (CONNECTION_TIMEOUT > 0) {
+                httpsUrlConnection.setConnectTimeout(CONNECTION_TIMEOUT);
+            } else {
+                //默认10秒超时
+                httpsUrlConnection.setConnectTimeout(10000);
+            }
+            //设置请求超时
+            if (READ_TIMEOUT > 0) {
+                httpsUrlConnection.setReadTimeout(READ_TIMEOUT);
+            } else {
+                //默认10秒超时
+                httpsUrlConnection.setReadTimeout(10000);
+            }
+            //设置编码
+            httpsUrlConnection.setRequestProperty("Charsert", WxConstants.DEFAULT_CHARSET);
+
+            //判断是否需要提交数据
+            if(StringUtils.equals(requestMethod,HttpsClient.METHOD_POST) && StringUtils.isNotBlank(postData)){
+                //讲参数转换为字节提交
+                byte[] bytes = postData.getBytes(WxConstants.DEFAULT_CHARSET);
+                //设置头信息
+                httpsUrlConnection.setRequestProperty("Content-Length", Integer.toString(bytes.length));
+                //开始连接
+                httpsUrlConnection.connect();
+                //防止中文乱码
+                OutputStream outputStream=httpsUrlConnection.getOutputStream();
+                outputStream.write(postData.getBytes(WxConstants.DEFAULT_CHARSET));
+                outputStream.flush();
+                outputStream.close();
+            }else{
+                //开始连接
+                httpsUrlConnection.connect();
+            }
+            response = WxUtil.getStreamString(httpsUrlConnection.getInputStream());
+        }catch (Exception e){
+            throw new Exception();
+        }finally {
+            if (httpsUrlConnection != null) {
+                // 关闭连接
+                httpsUrlConnection.disconnect();
+            }
+        }
+        return response;
+    }
+
+
+    public static String get(String url, Map<String, String> params){
+        CloseableHttpClient httpClient = null;
+        HttpGet httpGet = null;
+        StringBuffer str = new StringBuffer("");
+        try {
+            httpClient = HttpClients.createDefault();
+            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
+            String ps = "";
+            for (String pKey : params.keySet()) {
+                if(!"".equals(ps)){
+                    ps = ps + "&";
+                }
+                ps = pKey+"="+params.get(pKey);
+            }
+            if(!"".equals(ps)){
+                url = url + "?" + ps;
+            }
+            httpGet = new HttpGet(url);
+            httpGet.setConfig(requestConfig);
+            CloseableHttpResponse response = httpClient.execute(httpGet);
+            HttpEntity httpEntity = response.getEntity();
+            str.append(EntityUtils.toString(httpEntity,"utf-8"));
+        } catch (ClientProtocolException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }finally{
+            try {
+                if(httpGet!=null){
+                    httpGet.releaseConnection();
+                }
+                if(httpClient!=null){
+                    httpClient.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return str.toString();
+    }
+
+    public static String get(String strURL) throws Exception{
+
+        URL url = new URL(strURL);
+        HttpURLConnection httpConn = (HttpURLConnection)
+                url.openConnection();
+        httpConn.setRequestMethod("GET");
+        httpConn.connect();
+        System.out.println("bbb: "+httpConn.getResponseCode());
+        BufferedReader reader = new BufferedReader(new InputStreamReader(
+                httpConn.getInputStream(),"utf-8"));
+        String line;
+        StringBuffer buffer = new StringBuffer();
+        while ((line = reader.readLine()) != null) {
+            buffer.append(line);
+        }
+        reader.close();
+        httpConn.disconnect();
+
+        return buffer.toString();
+    }
+
+    /**
+     * 发送 post请求
+     * @param
+     * @param
+     */
+    public static String post(String url, Map<String, String> params){
+        CloseableHttpClient httpClient = null;
+        HttpPost httpPost = null;
+        StringBuilder sb = new StringBuilder("");
+        try {
+            httpClient = HttpClients.createDefault();
+            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
+            httpPost = new HttpPost(url);
+            httpPost.setConfig(requestConfig);
+            List<NameValuePair> ps = new ArrayList<NameValuePair>();
+            for (String pKey : params.keySet()) {
+                ps.add(new BasicNameValuePair(pKey, params.get(pKey)));
+            }
+            httpPost.setEntity(new UrlEncodedFormEntity(ps));
+            CloseableHttpResponse response = httpClient.execute(httpPost);
+            HttpEntity httpEntity = response.getEntity();
+            sb.append(EntityUtils.toString(httpEntity,"utf-8"));
+        } catch (ClientProtocolException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }finally{
+            try {
+                if(httpPost!=null){
+                    httpPost.releaseConnection();
+                }
+                if(httpClient!=null){
+                    httpClient.close();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return sb.toString();
+    }
+
+    //url表示请求链接,param表示json格式的请求参数		//自定义菜单创建访问方式
+    public static String sendPost(String url, String param) {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        String result = "";
+        try {
+            URL realUrl = new URL(url);
+            // 打开和URL之间的连接
+            URLConnection conn = realUrl.openConnection();
+            // 设置通用的请求属性 注意Authorization生成
+            // conn.setRequestProperty("Content-Type",
+            // "application/x-www-form-urlencoded");
+            // 发送POST请求必须设置如下两行
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));
+            // 发送请求参数
+            out.print("&"+param);
+            // flush输出流的缓冲
+            out.flush();
+            // 定义BufferedReader输入流来读取URL的响应
+            in = new BufferedReader(
+                    new InputStreamReader(conn.getInputStream(),"utf-8"));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result += line;
+            }
+        } catch (Exception e) {
+            System.out.println("发送 请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输出流、输入流
+        finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+
+    //url表示请求链接,param表示json格式的请求参数		//自定义菜单创建访问方式
+    public static String sendPost2(String url, String param) {
+        PrintWriter out = null;
+        BufferedReader in = null;
+        String result = "";
+        try {
+            HttpsURLConnection httpsUrlConnection = null;
+            //创建https请求证书
+            TrustManager[] tm={new MyX509TrustManager()};
+            //创建SSLContext管理器对像,使用我们指定的信任管理器初始化
+            SSLContext sslContext=SSLContext.getInstance("SSL","SunJSSE");
+            sslContext.init(null, tm, new java.security.SecureRandom());
+            SSLSocketFactory ssf=sslContext.getSocketFactory();
+            // 创建URL对象
+            URL realUrl= new URL(url);
+            // 创建HttpsURLConnection对象,并设置其SSLSocketFactory对象,
+            // 打开和URL之间的连接
+            httpsUrlConnection=(HttpsURLConnection)realUrl.openConnection();
+            //设置ssl证书
+            httpsUrlConnection.setSSLSocketFactory(ssf);
+            // 设置通用的请求属性 注意Authorization生成
+            // conn.setRequestProperty("Content-Type",
+            // "application/x-www-form-urlencoded");
+            // 发送POST请求必须设置如下两行
+            httpsUrlConnection.setRequestMethod("POST");
+            httpsUrlConnection.setDoOutput(true);
+            httpsUrlConnection.setDoInput(true);
+            // 获取URLConnection对象对应的输出流
+            out = new PrintWriter(new OutputStreamWriter(httpsUrlConnection.getOutputStream(),"utf-8"));
+            // 发送请求参数
+            out.print("&"+param);
+            // flush输出流的缓冲
+            out.flush();
+            if (httpsUrlConnection.getResponseCode()==200) {
+                // 定义BufferedReader输入流来读取URL的响应
+                in = new BufferedReader(
+                        new InputStreamReader(httpsUrlConnection.getInputStream(), "utf-8"));
+                String line;
+                while ((line = in.readLine()) != null) {
+                    result += line;
+                }
+            }else {
+                result = "获取输入流异常!";
+            }
+        } catch (Exception e) {
+            System.out.println("发送 请求出现异常!" + e);
+            e.printStackTrace();
+        }
+        // 使用finally块来关闭输出流、输入流
+        finally {
+            try {
+                if (out != null) {
+                    out.close();
+                }
+                if (in != null) {
+                    in.close();
+                }
+            } catch (IOException ex) {
+                ex.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    public static String dateToStamp(String s) throws Exception {
+        String res = "";
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = simpleDateFormat.parse(s);
+        long time = date.getTime();
+        res = String.valueOf(time);
+        return res;
+    }
+
+    /*
+     * 将时间戳转换为时间
+     */
+    public static String stampToDate(String s){
+        String res;
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        long lt = new Long(s);
+        Date date = new Date(lt);
+        res = simpleDateFormat.format(date);
+        return res;
+    }
+
+    public static String sendJson(String request_url, JSONObject json) {
+        OutputStreamWriter out = null;
+        InputStream is = null;
+        String result = "";
+        try {
+            URL url = new URL(request_url);// 创建连接
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setDoOutput(true);
+            connection.setDoInput(true);
+            connection.setUseCaches(false);
+            connection.setInstanceFollowRedirects(true);
+            connection.setRequestMethod("POST"); // 设置请求方式
+            // 设置接收数据的格式
+            connection.setRequestProperty("Accept", "application/json");
+            // 设置发送数据的格式
+            connection.setRequestProperty("Content-Type", "application/json");
+            connection.connect();
+            out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
+            out.append(json.toString());
+            out.flush();
+            out.close();
+            // 读取响应
+            is = connection.getInputStream();
+            int length = (int) connection.getContentLength();// 获取字节长度
+            System.out.println(length);
+            if (length != -1) {
+                byte[] data = new byte[length];
+                byte[] temp = new byte[512];
+                int readLen = 0;
+                int destPos = 0;
+                while ((readLen = is.read(temp)) > 0) {
+                    System.arraycopy(temp, 0, data, destPos, readLen);
+                    destPos += readLen;
+                }
+                result = new String(data, "UTF-8"); // utf-8编码
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                is.close();
+                out.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+    public static String sendJson2(String request_url, JSONObject json) {
+        OutputStreamWriter out = null;
+        InputStream is = null;
+        String result = "";
+        try {
+            URL url = new URL(request_url);// 创建连接
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setDoOutput(true);
+            connection.setDoInput(true);
+            connection.setUseCaches(false);
+            connection.setInstanceFollowRedirects(true);
+            connection.setRequestMethod("POST"); // 设置请求方式
+            // 设置接收数据的格式
+            connection.setRequestProperty("Accept", "application/json");
+            // 设置发送数据的格式
+            connection.setRequestProperty("Content-Type", "application/json");
+            connection.connect();
+            out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
+            out.append(json.toString());
+            out.flush();
+            out.close();
+            // 读取响应
+            is = connection.getInputStream();
+            BufferedReader in = new BufferedReader(new InputStreamReader(is));
+            result = in.readLine();
+            System.out.println("aaa: "+result);
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            try {
+                is.close();
+                out.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+}

+ 61 - 0
src/main/java/com/repair/common/utils/MimeTypeUtils.java

@@ -0,0 +1,61 @@
+package com.repair.common.utils;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/24 星期一 17:53
+ * @Description: com.repair.common.utils
+ * @Version: 1.0
+ */
+public class MimeTypeUtils {
+    public static final String IMAGE_PNG = "image/png";
+
+    public static final String IMAGE_JPG = "image/jpg";
+
+    public static final String IMAGE_JPEG = "image/jpeg";
+
+    public static final String IMAGE_BMP = "image/bmp";
+
+    public static final String IMAGE_GIF = "image/gif";
+
+    public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" };
+
+    public static final String[] FLASH_EXTENSION = { "swf", "flv" };
+
+    public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg",
+            "asf", "rm", "rmvb" };
+
+    public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" };
+
+    public static final String[] DEFAULT_ALLOWED_EXTENSION = {
+            // 图片
+//            "bmp", "gif", "jpg", "jpeg", "png",
+//            // word excel powerpoint
+//            "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt",
+//            // 压缩文件
+//            "rar", "zip", "gz", "bz2",
+//            // 视频格式
+//            "mp4", "avi", "rmvb",
+//            // pdf
+//            "pdf"
+            "pdf", "bmp", "jpg", "JPEG", "png", "zip", "rar"
+    };
+
+    public static String getExtension(String prefix)
+    {
+        switch (prefix)
+        {
+            case IMAGE_PNG:
+                return "png";
+            case IMAGE_JPG:
+                return "jpg";
+            case IMAGE_JPEG:
+                return "jpeg";
+            case IMAGE_BMP:
+                return "bmp";
+            case IMAGE_GIF:
+                return "gif";
+            default:
+                return "";
+        }
+    }
+}

+ 23 - 0
src/main/java/com/repair/common/utils/MyX509TrustManager.java

@@ -0,0 +1,23 @@
+package com.repair.common.utils;
+
+import javax.net.ssl.X509TrustManager;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+
+/**
+ * X509TrustManager用于实现SSL证书的安全校验
+ * @author lujunjie
+ * @date   2018/03/01
+ */
+public class MyX509TrustManager implements X509TrustManager {
+    @Override
+    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
+
+    @Override
+    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {}
+
+    @Override
+    public X509Certificate[] getAcceptedIssuers() {
+        return null;
+    }
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 195 - 0
src/main/java/com/repair/common/utils/RSAUtils.java


+ 172 - 50
src/main/java/com/repair/common/utils/TimeExchange.java

@@ -1,14 +1,7 @@
 package com.repair.common.utils;
 
-<<<<<<< HEAD
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
-=======
-<<<<<<< HEAD
-import org.apache.commons.lang3.time.DateUtils;
-
-=======
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 import com.repair.model.enumModel.eWeekStatu;
 import com.repair.model.pojo.UnitTimeHelpModel;
 import com.repair.model.result.Wx_user;
@@ -18,10 +11,14 @@ import org.apache.commons.lang3.time.DateUtils;
 
 import java.math.BigDecimal;
 import java.sql.Timestamp;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 
 /**
@@ -36,13 +33,10 @@ public class TimeExchange {
      *
      * @param time
      * @return
+     * @throws ParseException
      */
     // String date = "2010/05/04 12:34:23";
-<<<<<<< HEAD
-    public static Date StringToDate(String time, String formatDate) {
-=======
     public static Date StringToDate(String time, String formatDate){
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 
         Date date = new Date();
         // 注意format的格式要与日期String的格式相匹配
@@ -75,7 +69,6 @@ public class TimeExchange {
         return dateStr;
     }
 
-<<<<<<< HEAD
     /**
      * String(yyyy-MM-dd HH:mm:ss)转10位时间戳
      *
@@ -186,43 +179,133 @@ public class TimeExchange {
         return simpleDateFormat.format(nowTime2.getTime());
     }
 
-=======
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
     // 获取当前日期
     public static String getDate() {
         SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd");
         return sp.format(new Date());
     }
 
+    // 获取当前日期的年月
+    public static String getDateMonth() {
+        SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-");
+        return sp.format(new Date());
+    }
+
+    // 获取前天
+    public static String getQianDay() throws ParseException {
+        Calendar nowTime2 = Calendar.getInstance();
+        nowTime2.setTime(StringToDate(getTime(), "yyyy-MM-dd HH:mm:ss"));
+        nowTime2.add(Calendar.DATE, -5);//5分钟前的时间
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return simpleDateFormat.format(nowTime2.getTime());
+    }
+
     // 获取当前时间
     public static String getTime() {
         SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         return sp.format(new Date());
     }
 
+    public static String getOnlyMM() {
+        SimpleDateFormat sp = new SimpleDateFormat("HH:mm");
+        return sp.format(new Date());
+    }
+
+    public static String getOnlyDesMM() throws ParseException {
+        Calendar nowTime2 = Calendar.getInstance();
+        nowTime2.setTime(StringToDate(getTime(), "yyyy-MM-dd HH:mm:ss"));
+        nowTime2.add(Calendar.MINUTE, -5);//5分钟前的时间
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
+        return simpleDateFormat.format(nowTime2.getTime());
+    }
+
+    public static String getYear() {
+        SimpleDateFormat sp = new SimpleDateFormat("yyyy");
+        return sp.format(new Date());
+    }
+
+    public static String getMonth() {
+        SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM");
+        return sp.format(new Date());
+    }
+
+    // 获取当前时间
+    public static String getOnlyTime() {
+        SimpleDateFormat sp = new SimpleDateFormat("HH:mm:ss");
+        return sp.format(new Date());
+    }
+
     /**
-     * 时间减去小时数
+     * 计算两个日期的时间差
+     *
+     * @param time1
+     * @param time2
+     * @return
+     */
+    public static double getTimeDifference(String time1, String time2) {
+        SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        long t1 = 0L;
+        long t2 = 0L;
+        try {
+            t1 = timeformat.parse(time1).getTime();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        try {
+            t2 = timeformat.parse(time2).getTime();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        //因为t1-t2得到的是毫秒级,所以要初3600000得出小时.算天数或秒同理
+        double hours = (double) ((t2 - t1) / 3600000);
+        double minutes = (double) (((t2 - t1) / 1000 - hours * 3600) / 60 / 60);
+        return hours + minutes;
+    }
+
+    public static double getOnlyTimeDifference(String time1, String time2) {
+        SimpleDateFormat timeformat = new SimpleDateFormat("HH:mm:ss");
+        long t1 = 0L;
+        long t2 = 0L;
+        try {
+            t1 = timeformat.parse(time1).getTime();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        try {
+            t2 = timeformat.parse(time2).getTime();
+        } catch (ParseException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        //因为t1-t2得到的是毫秒级,所以要初3600000得出小时.算天数或秒同理
+        double hours = (double) ((t2 - t1) / 3600000);
+        double minutes = (double) (((t2 - t1) / 1000 - hours * 3600) / 60 / 60);
+        return hours + minutes;
+    }
+
+    public static double getDiff(String str1, String str2) {
+        return str2.compareTo(str1);
+    }
+
+    /**
+     * 时间减去分钟数
      *
      * @param time      时间
      * @param FormatStr 时间格式
-     * @param amount    要加减的时间(单位为小时)
+     * @param amount    要加减的时间(单位为分钟
      * @return
      * @throws ParseException
      */
-<<<<<<< HEAD
-    public static String TimeRangeHour(Date time, int amount, String FormatStr) {
-        Date endTime = DateUtils.addHours(time, amount);
-=======
     public static String TimeRangeMinute(String time, int amount, String FormatStr) throws ParseException {
         Date endTime = DateUtils.addMinutes(ShortStringToDate(time, FormatStr), amount);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FormatStr);
         return simpleDateFormat.format(endTime);
     }
 
     /**
-<<<<<<< HEAD
-=======
      * 时间减去小时数
      *
      * @param time      时间
@@ -261,7 +344,6 @@ public class TimeExchange {
     }
 
     /**
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
      * Date转为String
      *
      * @param time      时间
@@ -280,6 +362,14 @@ public class TimeExchange {
     }
 
     /**
+     * 日期路径 即年/月/日 如2018/08/08
+     */
+    public static final String datePath() {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyy/MM/dd");
+    }
+
+    /**
      * 比较时间1是否小于时间2
      * 如果时间1小于时间2,接口返回true
      * 如果时间1大于时间2,接口返回false
@@ -297,8 +387,6 @@ public class TimeExchange {
         return sd1.before(sd2);
     }
 
-<<<<<<< HEAD
-=======
     public static LocalDateTime StringToLocalTime(String time, String formatStr){
         //1.具有转换功能的对象
         DateTimeFormatter df = DateTimeFormatter.ofPattern(formatStr);
@@ -406,7 +494,6 @@ public class TimeExchange {
     }
     //endregion
 
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
     //region 获取指定月份的最后一天
     public static Date getToMonthEndDate(String DateStr) {
         Calendar c = Calendar.getInstance();
@@ -463,6 +550,47 @@ public class TimeExchange {
     }
     //endregion
 
+    public static List<UnitTimeHelpModel> MonthArrayTime(Date StartDate, Date EndDate) {
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//格式化为年月
+        Calendar StartTime = Calendar.getInstance();
+        StartTime.setTime(StartDate);
+        StartTime.set(StartTime.get(Calendar.YEAR), StartTime.get(Calendar.MONTH), StartTime.get(Calendar.DATE));
+        Calendar EndTime = Calendar.getInstance();
+        EndTime.setTime(EndDate);
+        EndTime.set(EndTime.get(Calendar.YEAR), EndTime.get(Calendar.MONTH), EndTime.get(Calendar.DATE));
+        int total = (EndTime.get(Calendar.YEAR) - StartTime.get(Calendar.YEAR)) * 12 + (EndTime.get(Calendar.MONTH) - StartTime.get(Calendar.MONTH));
+        List<UnitTimeHelpModel> result = new ArrayList() {
+        };
+        for (int i = 0; i <= total; i++) {
+            StartTime.add(Calendar.MONTH, i == 0 ? 0 : 1);
+            Date MonthLastDay = getToMonthEndDate(sdf.format(StartTime.getTime()));
+            UnitTimeHelpModel data = new UnitTimeHelpModel();
+            data.setStartDate(i == 0 ? StartTime.getTime() : getStartOfDay(getToMonthBeginDate(sdf.format(StartTime.getTime()))));
+            data.setEndDate(EndTime.getTime().before(MonthLastDay) ? getEndOfDay(EndTime.getTime()) : MonthLastDay);
+            result.add(data);
+        }
+
+        return result;
+    }
+
+    public static List<ClassSettingDateVo> getDatesBetween(LocalDate startDate, LocalDate endDate) {
+        List<ClassSettingDateVo> datas = new ArrayList<>();
+        long numOfDaysBetween = ChronoUnit.DAYS.between(startDate, endDate);
+        for (int i = 0; i <= numOfDaysBetween; i++) {
+            ClassSettingDateVo data = new ClassSettingDateVo();
+            LocalDate date = startDate.plusDays(i);
+            // 获取当前日期对应的星期几
+            DayOfWeek dow = date.getDayOfWeek();
+            int dayOfWeek = dow.getValue(); // 获取星期几的数字表示,1表示周一,7表示周日
+            data.setWeekStr(eWeekStatu.stringOf(dayOfWeek));
+            data.setWeek(dayOfWeek);
+            data.setDateStr(date.toString());
+            datas.add(data);
+        }
+        return datas;
+    }
+
     /**
      * 获取时间date1与date2相差的秒数
      *
@@ -497,6 +625,22 @@ public class TimeExchange {
         return getOffsetMinutes(date1, date2) / 60;
     }
 
+    /**
+     * 获取时间date1与date2相差的天数数
+     *
+     * @param date1 起始时间
+     * @param date2 结束时间
+     * @return 返回相差的天数
+     */
+    public static int getOffsetDays(Date date1, Date date2) {
+        return getOffsetHours(date1, date2) / 24+1;
+    }
+
+    public static boolean overlapping(String start1,String end1,String start2,String end2) throws ParseException {
+        boolean one = CompareDate(start1,end2,"HH:mm");
+        boolean two = CompareDate(start2,end1,"HH:mm");
+        return (one && two);
+    }
 
     public static String getWeek(String sdate) throws ParseException {
         // 再转换为时间
@@ -510,30 +654,8 @@ public class TimeExchange {
     }
 
     public static void main(String[] args) throws ParseException {
-<<<<<<< HEAD
         BigDecimal ss = new BigDecimal(0.3).divide(new BigDecimal(3),2);//.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
         System.out.println("");
-=======
-        String sssssss = getWeek("2023-09-20");
-
-<<<<<<< HEAD
-        String dateSre = TimeRangeHour(new Date(), -24,"yyyy-MM-dd HH:mm:ss");
-        String sss = "";
-=======
-        BigDecimal amountPay = (new BigDecimal(15).divide(new BigDecimal("100"))).setScale(2);
-        BigDecimal price = new BigDecimal(16 / 100.0);
-        BigDecimal amountPays = (new BigDecimal(17).divide(new BigDecimal("100")));
-        double ssss = price.doubleValue();
-        double sdad = amountPay.doubleValue();
-        double sdads = amountPays.doubleValue();
-          Integer userId = 0;
-          String ss = userId.toString();
-        int sss = getMonthDays("2023-09-13",7);
-
-        String[] result = getCurrentMonthTimeFrame("2023-09-13");
-        System.out.println(ss);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
     }
 }
 

+ 0 - 7
src/main/java/com/repair/common/utils/WxUtil.java

@@ -425,17 +425,10 @@ public class WxUtil {
 	public static String getRequestXml(Map<String, String> params) throws Exception{
 		StringBuffer sb = new StringBuffer();
 		sb.append("<xml>");
-<<<<<<< HEAD
-		Set<Map.Entry<String, String>> es = params.entrySet();
-		Iterator<Map.Entry<String, String>> it = es.iterator();
-		while (it.hasNext()) {
-			Map.Entry<String, String> entry = (Map.Entry<String, String>) it
-=======
 		Set<Entry<String, String>> es = params.entrySet();
 		Iterator<Entry<String, String>> it = es.iterator();
 		while (it.hasNext()) {
 			Entry<String, String> entry = (Entry<String, String>) it
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 					.next();
 			String k = (String) entry.getKey();
 			String v = (String) entry.getValue();

+ 0 - 74
src/main/java/com/repair/common/utils/XmlUtil.java

@@ -1,74 +0,0 @@
-package com.repair.common.utils;
-
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.DocumentHelper;
-import org.dom4j.Element;
-
-import java.text.ParseException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-/**
- * @Author: binguo
- * @Date: 2023/10/26 星期四 11:04
- * @Description: com.repair.common.utils
- * @Version: 1.0
- */
-public class XmlUtil {
-    /**
-     * xml⽂档解析为对象
-     * @param xml   xml文档
-     * @return
-     */
-
-    public static Map<String,Object> fromXML(String xml){
-        Map<String,Object> map = new HashMap<String,Object>();
-        try {
-            Document doc = DocumentHelper.parseText(xml);
-            Element root = doc.getRootElement();
-            Iterator it = root.elementIterator();
-            while (it.hasNext()) {
-                Element element = (Element) it.next();
-                map.put(element.getName(), element.getTextTrim());
-            }
-        } catch (DocumentException e) {
-            e.printStackTrace();
-        }
-
-        return map;
-
-    }
-
-    public static void main(String[] args) throws ParseException {
-        String xml = "<xml>\n" +
-                "<appid><![CDATA[wxd6f090391d410534]]></appid>\n" +
-                "<cash_fee><![CDATA[200]]></cash_fee>\n" +
-                "<cash_refund_fee_0><![CDATA[50]]></cash_refund_fee_0>\n" +
-                "<mch_id><![CDATA[1653095601]]></mch_id>\n" +
-                "<nonce_str><![CDATA[yW7LCKfvoddlUaG7]]></nonce_str>\n" +
-                "<out_refund_no_0><![CDATA[1833905972023102621241119001698286702]]></out_refund_no_0>\n" +
-                "<out_trade_no><![CDATA[086339330913483]]></out_trade_no>\n" +
-                "<refund_account_0><![CDATA[REFUND_SOURCE_RECHARGE_FUNDS]]></refund_account_0>\n" +
-                "<refund_channel_0><![CDATA[ORIGINAL]]></refund_channel_0>\n" +
-                "<refund_count>1</refund_count>\n" +
-                "<refund_fee>50</refund_fee>\n" +
-                "<refund_fee_0>50</refund_fee_0>\n" +
-                "<refund_id_0><![CDATA[50301807582023102686566845969]]></refund_id_0>\n" +
-                "<refund_recv_accout_0><![CDATA[支付用户零钱]]></refund_recv_accout_0>\n" +
-                "<refund_status_0><![CDATA[SUCCESS]]></refund_status_0>\n" +
-                "<refund_success_time_0><![CDATA[2023-10-26 10:19:15]]></refund_success_time_0>\n" +
-                "<result_code><![CDATA[SUCCESS]]></result_code>\n" +
-                "<return_code><![CDATA[SUCCESS]]></return_code>\n" +
-                "<return_msg><![CDATA[OK]]></return_msg>\n" +
-                "<sign><![CDATA[21BB06BA9C42251EA344BFF2FE060055]]></sign>\n" +
-                "<total_fee><![CDATA[200]]></total_fee>\n" +
-                "<transaction_id><![CDATA[4200001986202310262124111900]]></transaction_id>\n" +
-                "</xml>";
-
-        Map<String,Object> dateSre = fromXML(xml);
-        String sss = "";
-    }
-}

+ 27 - 0
src/main/java/com/repair/common/utils/paramUtils.java

@@ -0,0 +1,27 @@
+package com.repair.common.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.ObjectError;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/5 星期三 16:11
+ * @Description: com.template.utils
+ * @Version: 1.0
+ */
+@Slf4j
+public class paramUtils {
+    public static String getParamError(BindingResult bindingResult) {
+        //有校验没通过
+        List<ObjectError> errorList = bindingResult.getAllErrors();
+        StringBuilder st = new StringBuilder();
+        for (ObjectError error : errorList) {
+            st.append(error.getDefaultMessage() + "! ");//输出具体的错误信息
+        }
+
+        return st.toString();
+    }
+}

+ 25 - 0
src/main/java/com/repair/common/utils/smsUtil.java

@@ -0,0 +1,25 @@
+package com.repair.common.utils;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/4/20 星期四 8:26
+ * @Description: common
+ * @Version: 1.0
+ */
+public class smsUtil {
+//    @Autowired
+//    private static smsConfig smsConfig;
+//
+//    /**
+//     * 发送单条短信验证码
+//     * @param smmCode 短信验证码
+//     * @param phoneNumber 手机号
+//     * @return
+//     */
+//    public static void sendSingleMessage(String smmCode, String phoneNumber) throws HTTPException, IOException {
+//        String[] params = {smmCode,Integer.toString(smsConfig.getSmsMin())};
+//        SmsSingleSender ssender = new SmsSingleSender(smsConfig.getSdkAppid(), smsConfig.getAppKey());
+//        SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber, smsConfig.getTemplateId(), params, smsConfig.getSmsSign(), "", "");
+//        System.out.println(result);
+//    };
+}

+ 0 - 19
src/main/java/com/repair/config/ScheduledConfig.java

@@ -1,19 +0,0 @@
-package com.repair.config;
-
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.annotation.EnableScheduling;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * 定时任务配置
- */
-@EnableScheduling
-@Configuration
-public class ScheduledConfig{
-
-}

+ 36 - 0
src/main/java/com/repair/config/SmsConfig.java

@@ -0,0 +1,36 @@
+package com.repair.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/4/20 星期四 8:29
+ * @Description: com.video.config
+ * @Version: 1.0
+ */
+
+@Component
+@ConfigurationProperties(prefix = "tencentcloud")
+@Data
+public class SmsConfig {
+    //腾讯云上的签名
+
+    private String secretID;
+    //腾讯云上的密钥
+
+    private String secretKey;
+    //短信应用id
+
+    private String sdkAppid;
+    //短信签名内容
+
+    private String signName;
+    //模板Id
+
+    private String templateId;
+    //验证码有效时长
+
+    private String smsMin;
+}

+ 0 - 432
src/main/java/com/repair/controller/ScheduleController.java

@@ -1,432 +0,0 @@
-package com.repair.controller;
-
-import com.repair.common.utils.*;
-import com.repair.config.WxOpenidConfig;
-import com.repair.model.pojo.*;
-import com.repair.model.vo.*;
-import com.repair.services.*;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.stream.Collectors;
-
-
-@Component
-//@EnableAsync
-public class ScheduleController {
-
-    /**
-     * @Scheduled注解会在默认情况下以单线程的方式执行定时任务。 这个“单线程”指两个方面:
-     * 如果一个定时任务执行时间大于其任务间隔时间,那么下一次将会等待上一次执行结束后再继续执行。
-     * 如果多个定时任务在同一时刻执行,任务会依次执行。
-     * @Async:对某个方法进行异步执行
-     * @EnableAsync:开启异步支持
-     */
-
-    @Autowired
-    private WxOpenidConfig wxOpenidConfig;
-    @Autowired
-    private RepairUserService repairUserService;
-    @Autowired
-    private RepairRecordService repairRecordService;
-    @Autowired
-    private RepairEvaluateService repairEvaluateService;
-    @Autowired
-    private RepairTrackRecordService repairTrackRecordService;
-    @Autowired
-    private RepairArticleBuildService repairArticleBuildService;
-    @Autowired
-    private RepairRefundRecordService repairRefundRecordService;
-    @Autowired
-    private RepairShiftSettingsService repairShiftSettingsService;
-    @Autowired
-    private RepairSystemSettingService repairSystemSettingService;
-    @Autowired
-    private RepairSystemMessagesService repairSystemMessagesService;
-    @Autowired
-    private RepairDispatchRecordService repairDispatchRecordService;
-
-
-    //定时格式参考:https://blog.csdn.net/java13992394428/article/details/108740453
-
-    /**
-     * 每天八点自动派单
-     * 周六周日定时器不生效
-     * 其余时间都是早上八点前捞一遍当前时间以前的单子
-     * 有合适的维修师傅就把单子派给维修师傅
-     * 周一到周五早上七点执行:0 0 7 ? * MON-FRI
-     * 周一到周五1、2、3、4、5、6、7、18、19、20、21、22点执行:0 0 1,2,3,4,5,6,7,18,19,20,21,22 ? * MON-FRI
-     */
-    //每小时执行一次:0 0 */1 * * ?
-    //每分钟执行一次:0 */1 * * * ?
-    @Async
-    @Scheduled(cron = "0 0 7 ? * MON-FRI ")
-    //@Scheduled(cron = "0 */1 * * * ? ")
-    @Transactional(rollbackFor = {Exception.class})
-    public void autoDispatch() throws Exception {
-        System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":自动派单进来执行了一次!");
-        /**
-         * 读取未被派单的数据
-         * 拿到当前时间为止的所有未被派单的数据
-         */
-        List<pendingOrderVo> records = repairRecordService.queryPendingOrder();
-        //有待接单数据
-        if (records.size() >= 0) {
-            Date nowDate = new Date();
-            String dateHour = new SimpleDateFormat("HH:mm").format(nowDate);
-            String dateNow = new SimpleDateFormat("yyyy-MM-dd").format(nowDate);
-
-            /**
-             * 只获取当天排班和能接单的
-             * 获取维修师傅和郭班长的单子
-             */
-            List<AutoDispatchUserVo> users = repairUserService.autoDispatchUser(dateNow);
-            String shiftStr = StringUtils.join(users.stream().map(AutoDispatchUserVo::getShiftId).collect(Collectors.toList()), ",");
-            List<String> shifts = Arrays.asList(shiftStr.split(",")).stream().distinct().collect(Collectors.toList());
-            //只获取不是值班 或下班后的排班数据
-            List<RepairShiftSettings> shiftDatas = repairShiftSettingsService.getRepairsShiftIdByHour(shifts, dateHour);
-
-            //2023-11-03 A-jax 添加获取报修关联楼栋
-            List<ArticleBuildVo> articleBuilds = new ArrayList<>();
-            if(users != null && users.size() > 0){
-                List<Integer> userIds = users.stream().map(AutoDispatchUserVo::getId).collect(Collectors.toList());
-                articleBuilds = repairArticleBuildService.queryArticleBuild(StringUtils.join(userIds,","));
-            }
-
-
-            List<RepairDispatchRecord> rdrs = new ArrayList<>();
-            List<RepairSystemMessages> rsms = new ArrayList<>();
-            List<RepairTrackRecord> rtrs = new ArrayList<>();
-            for (pendingOrderVo record : records) {
-                //跟张总确认一下是不是到时候维修师傅会把所有楼栋都勾选上
-                List<AutoDispatchUserVo> schoolUsers = new ArrayList<>();
-                for (AutoDispatchUserVo user:users) {
-                    long owner = articleBuilds != null && articleBuilds.size() > 0 ? articleBuilds.stream().filter(e -> e.getUserId() == user.getId() && ("," + e.getArticleId() + ",").contains("," + record.getArticleId() + ",") && ("," + e.getBuildId() + ",").contains("," + record.getBuildId() + ",")).count() : 0;
-                    if(owner > 0){
-                        schoolUsers.add(user);
-                    }
-                }
-
-                schoolUsers.sort(Comparator.comparing(AutoDispatchUserVo::getRdrCount));
-                for (AutoDispatchUserVo user : schoolUsers) {
-                    List<RepairShiftSettings> datas = shiftDatas.stream().filter(e -> ("," + user.getShiftId() + ",").contains("," + e.getId() + ",")).collect(Collectors.toList());
-                    if (datas.size() <= 0) {
-                        continue;
-                    }
-                    Integer isDuty = 0;
-                    int acceptanceAssessTime = user.getAcceptanceTime();
-                    try {
-
-                        //2023-10-08 看是否是值班时间接单
-                        if (shiftDatas.size() > 0) {
-                            Optional<RepairShiftSettings> shiftData = datas.stream().filter(e -> nowDate.before(TimeExchange.StringToDate(e.getEndTime(), "HH:mm"))).sorted(Comparator.comparing(RepairShiftSettings::getStartTime)).findFirst();
-                            if (shiftData != null && shiftData.isPresent()) {
-                                if (shiftData.get().getIsDuty().intValue() == 1) {
-                                    isDuty = 1;
-                                }
-                            }
-                        }
-
-                        //下班之后或者值班接的单不考核 将报修工单中的is_duty改为1
-                        Date workTime = TimeExchange.StringToDate(dateNow + " " + datas.get(0).getEndTime() + ":00", "yyyy-MM-dd HH:mm:ss");
-                        if (workTime.before(nowDate)) {
-                            isDuty = 1;
-                        }
-
-                        if (isDuty == 0) {
-                            //在工作时间才去派单
-                            List<timeVo> tvs = DelayedUtils.timeVos(datas);
-
-                            //工作的时间是否够修完 临下班接的单不做延长
-                            for (int i = 0; i < tvs.size(); i++) {
-                                Date startWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
-                                Date endWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-
-                                //小于工作时间段的开始时间
-                                if (nowDate.before(startWorkTime) || nowDate.equals(startWorkTime) && i == 0) {
-                                    //早上开始上班之前的单子
-                                    int minute = TimeExchange.getOffsetMinutes(nowDate, startWorkTime);
-                                    int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
-                                    acceptanceAssessTime = acceptanceAssessTime + minute;
-                                    acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
-                                    break;
-                                } else if ((startWorkTime.before(nowDate) || startWorkTime.equals(nowDate)) && (nowDate.before(endWorkTime) || nowDate.equals(endWorkTime))) {
-                                    //工作时间段内的单子
-                                    int workMinte = TimeExchange.getOffsetMinutes(nowDate, endWorkTime);
-                                    acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, endWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 1);
-                                    break;
-
-                                } else {
-                                    //非工作时间段的单子
-                                    Date nextStartWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getStart() + ":00", "yyyy-MM-dd HH:mm:ss");
-                                    if ((endWorkTime.before(nowDate) || endWorkTime.equals(nowDate)) && (nowDate.before(nextStartWorkTime) || nowDate.equals(nextStartWorkTime))) {
-                                        Date nextEndWorkTime = TimeExchange.StringToDate(dateNow + " " + tvs.get(i + 1).getEnd() + ":00", "yyyy-MM-dd HH:mm:ss");
-                                        int minute = TimeExchange.getOffsetMinutes(nowDate, nextStartWorkTime);
-                                        int workMinte = TimeExchange.getOffsetMinutes(nowDate, nextEndWorkTime);
-                                        acceptanceAssessTime = acceptanceAssessTime + minute;
-                                        acceptanceAssessTime = DelayedUtils.addMinuteStart(tvs, nextEndWorkTime, acceptanceAssessTime, nowDate, dateNow, workMinte, i, 2);
-                                        break;
-                                    }
-                                }
-                            }
-
-                            RepairDispatchRecord rdr = new RepairDispatchRecord();
-                            //创建派单记录
-                            rdr.setAssignedTime(new Date());
-                            rdr.setAcceptanceAssessTime(acceptanceAssessTime);
-                            rdr.setOrderType(0);
-                            rdr.setIsLoseEfficacy(0);
-                            rdr.setUsersId(user.getId());
-                            rdr.setRecordId(record.getId());
-                            rdr.setCreateTime(new Date());
-                            rdr.setUpdateTime(new Date());
-                            rdr.setCreateUser("定时器自动派单");
-                            rdr.setUpdateUser("定时器自动派单");
-                            rdr.setDeleted(0);
-                            rdrs.add(rdr);
-                            user.setRdrCount(user.getRdrCount() + 1);
-                            //给用户的消息中心数据
-                            RepairSystemMessages rsmU = new RepairSystemMessages();
-                            rsmU.setRecordId(record.getId());
-                            rsmU.setRecipientId(record.getUserId());
-                            rsmU.setContent("工单已交给系统,系统将催促师傅师尽快接单!");
-                            rsmU.setIsRead(0);
-                            rsmU.setCreateTime(new Date());
-                            rsmU.setUpdateTime(new Date());
-                            rsmU.setCreateUser("定时器自动派单");
-                            rsmU.setUpdateUser("定时器自动派单");
-                            rsmU.setDeleted(0);
-                            rsms.add(rsmU);
-
-                            //给师傅的消息中心数据
-                            RepairSystemMessages rsmS = new RepairSystemMessages();
-                            rsmS.setRecordId(record.getId());
-                            rsmS.setRecipientId(user.getId());
-                            rsmS.setContent("系统自动分配工单,请尽快处理!");
-                            rsmS.setIsRead(0);
-                            rsmS.setCreateTime(new Date());
-                            rsmS.setUpdateTime(new Date());
-                            rsmS.setCreateUser("定时器自动派单");
-                            rsmS.setUpdateUser("定时器自动派单");
-                            rsmS.setDeleted(0);
-                            rsms.add(rsmS);
-
-                            //添加跟踪记录
-                            RepairTrackRecord rtr = new RepairTrackRecord();
-                            rtr.setRecordId(record.getId());
-                            rtr.setMaintenanceState(1);
-                            rtr.setContent("已派单");
-                            rtr.setUserId(0);
-                            rtr.setUserZzstr("系统自动派单");
-                            rtr.setCreateTime(new Date());
-                            rtr.setUpdateTime(new Date());
-                            rtr.setCreateUser("定时器自动派单");
-                            rtr.setUpdateUser("定时器自动派单");
-                            rtr.setDeleted(0);
-                            rtrs.add(rtr);
-                            break;
-                        }
-
-                    } catch (Exception e) {
-                        System.out.println("自动派单失败:" + e.getMessage());
-                        throw new Exception("自动派单失败!");
-                    }
-                }
-            }
-
-            try {
-                boolean insertDis = repairDispatchRecordService.insertDispatchBatch(rdrs);
-                if (!insertDis) {
-                    System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":存储派单数据异常!");
-                    throw new Exception("自动派单失败!");
-                }
-                boolean insertRsm = repairSystemMessagesService.inserBatchSystemMessage(rsms);
-                if (!insertRsm) {
-                    System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":消息中心数据存储异常!");
-                    throw new Exception("自动派单失败!");
-                }
-                boolean insertRtr = repairTrackRecordService.insertTrackBatch(rtrs);
-                if (!insertRtr) {
-                    System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":根据记录数据存储异常!");
-                    throw new Exception("自动派单失败!");
-                }
-            } catch (Exception e) {
-                System.out.println("新增自动派单失败:" + e.getMessage());
-                throw new Exception("自动派单失败!");
-            }
-        }
-        System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":自动派单执行成功了一次!");
-    }
-
-
-    /**
-     * 每小时执行一次
-     * 自动好评定时器
-     * XX小时后未评价的订单
-     * 获取已完成没有好评数据的维修单数据,并且自动好评
-     * 好评完成之后在消息中心添加自动好评提示信息
-     * 发给维修师傅和用户
-     */
-    //每小时执行一次:0 0 */1 * * ?
-    //每分钟执行一次:0 */1 * * * ?
-    @Async
-    @Scheduled(cron = "0 0 */1 * * ? ")
-    @Transactional(rollbackFor = {Exception.class})
-    public void autoEvaluate() throws Exception {
-
-        //读取系统设置表数据 没设置就不好评
-        RepairSystemSetting setting = repairSystemSettingService.queryRepairSystemSetting();
-        if (setting != null && setting.getHour() != null) {
-            String dateStr = TimeExchange.TimeRangeHour(new Date(), -setting.getHour(), "yyyy-MM-dd HH:mm:ss");
-
-            List<RecordEvaluateVo> evaluates = repairEvaluateService.queryEvaluateList(dateStr);
-
-            List<RepairEvaluate> res = new ArrayList<>();
-            List<RepairSystemMessages> rsms = new ArrayList<>();
-            for (RecordEvaluateVo evaluate : evaluates) {
-                RepairEvaluate re = new RepairEvaluate();
-                re.setRecordId(evaluate.getId());
-                re.setStar(5);
-                re.setContent("自动好评");
-                re.setCreateTime(new Date());
-                re.setUpdateTime(new Date());
-                re.setCreateUser("定时器自动评价");
-                re.setUpdateUser("定时器自动评价");
-                re.setDeleted(0);
-                res.add(re);
-
-                RepairSystemMessages rsm = new RepairSystemMessages();
-                rsm.setRecordId(evaluate.getId());
-                rsm.setRecipientId(evaluate.getUserId());
-                rsm.setContent("维修单" + setting.getHour() + "小时内未评价,系统自动5星好评");
-                rsm.setIsRead(0);
-                rsm.setCreateTime(new Date());
-                rsm.setUpdateTime(new Date());
-                rsm.setCreateUser("定时器自动评价");
-                rsm.setUpdateUser("定时器自动评价");
-                rsm.setDeleted(0);
-                rsms.add(rsm);
-
-                if (evaluate.getMaintenancerId() != null) {
-                    String[] userIds = evaluate.getMaintenancerId().split(",");
-                    for (int i = 0; i < userIds.length; i++) {
-                        RepairSystemMessages rsmSf = new RepairSystemMessages();
-                        rsmSf.setRecordId(evaluate.getId());
-                        rsmSf.setRecipientId(Integer.valueOf(userIds[i]));
-                        rsmSf.setContent("维修单二十四小时内未评价,系统自动5星好评");
-                        rsmSf.setIsRead(0);
-                        rsmSf.setCreateTime(new Date());
-                        rsmSf.setUpdateTime(new Date());
-                        rsmSf.setCreateUser("定时器自动评价");
-                        rsmSf.setUpdateUser("定时器自动评价");
-                        rsmSf.setDeleted(0);
-                        rsms.add(rsmSf);
-                    }
-                }
-            }
-
-            try {
-                boolean insertRes = repairEvaluateService.inserBatchEvaluate(res);
-                if (!insertRes) {
-                    System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":存储评价数据异常!");
-                    throw new Exception("自动评价失败!");
-                }
-                boolean insertRsm = repairSystemMessagesService.inserBatchSystemMessage(rsms);
-                if (!insertRsm) {
-                    System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":消息中心数据存储异常!");
-                    throw new Exception("自动评价失败!");
-                }
-            } catch (Exception e) {
-                System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":好评异常,异常信息:" + e.getMessage());
-                throw new Exception("自动评价失败!");
-            }
-
-            System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":好评执行成功了一次!");
-        }
-    }
-
-    /**
-     * 2023-10-26 A-jax 添加退款订单查询
-     * 凌晨2点执行退款查询操作
-     */
-    //凌晨两点:0 0 2 * * ?
-    //每分钟执行一次:0 */1 * * * ?
-    @Async
-    @Scheduled(cron = "0 0 2 * * ?")
-    @Transactional(rollbackFor = {Exception.class})
-    public void queryRefund() throws Exception {
-        System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":开始查询退款进度!");
-        //获取退款中或部分退款的订单
-        List<repairRefundVo> dataList = repairRefundRecordService.queryRefundRecord();
-
-        List<String> datas = dataList == null ? new ArrayList<>() : dataList.stream().map(repairRefundVo::getRecordNo).distinct().collect(Collectors.toList());
-
-        List<RepairRefundRecord> rrrs = new ArrayList<>();
-        for (String data : datas) {
-            Map<String, String> params = new HashMap<String, String>();
-            params.put("appid", wxOpenidConfig.getXappid());//微信分配的小程序ID
-            params.put("mch_id", wxOpenidConfig.getShappid());//微信支付分配的商户号
-            params.put("out_trade_no", data);//"086339330913483");//商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。详见商户订单号
-            String nonceStr = WxUtil.getWxNonceStr();
-            params.put("nonce_str", nonceStr);//随机字符串,长度要求在32位以内。推荐随机数生成算法
-            String Sign = WxUtil.getSign(params, wxOpenidConfig.getShsecret());//参数 + 商户密钥
-            params.put("sign", Sign);
-
-            String retXml = WxUtil.getRequestXml(params);
-            String msg = HttpUtils.post("https://api.mch.weixin.qq.com/pay/refundquery", retXml);
-            System.out.println(msg);
-
-            try {
-                Map<String, Object> dateSre = XmlUtil.fromXML(msg);
-                if (dateSre.get("return_code").toString().equals("SUCCESS") && dateSre.get("result_code").toString().equals("SUCCESS")) {
-                    List<repairRefundVo> repairRefunds = dataList.stream().filter(e -> e.getRecordNo().equals(data)).collect(Collectors.toList());
-                    if(repairRefunds != null && repairRefunds.size() > 0){
-                        for (repairRefundVo repairRefund : repairRefunds) {
-                            String price = repairRefund.getPayPrice().multiply(new BigDecimal(100)).toString();
-
-                            String outRefundNo =null;
-                            String refundId = null;
-                            for (int i = 0;i<repairRefunds.size();i++)  {
-                                 if(dateSre.get("refund_id_"+i).toString().equals(price)){
-                                     if(dateSre.get("refund_status_"+i).toString().equals("SUCCESS")){
-                                         outRefundNo = dateSre.get("out_refund_no_"+i).toString();//商户退款单号
-                                         refundId = dateSre.get("refund_id_"+i).toString();//微信退款单号
-                                         RepairRefundRecord rrr = new RepairRefundRecord();
-                                         rrr.setId(repairRefund.getId());
-                                         rrr.setIsSuccess(1);
-                                         rrr.setWxNo(outRefundNo);//商户退款单号
-                                         rrr.setRefundNo(refundId);//微信退款单号
-                                         rrrs.add(rrr);
-                                     }
-                                 }
-                            }
-                        }
-                    }
-                }
-            } catch (Exception e) {
-                System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":退款进度,异常信息:" + e.getMessage());
-                throw new Exception("退款进度查询失败!");
-            }
-        }
-
-        try {
-            if(rrrs.size() > 0){
-                boolean result = repairRefundRecordService.updateRdfundBatch(rrrs);
-                if(!result){
-                    System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":退款进度更新失败!");
-                    throw new Exception("退款进度查询失败!");
-                }
-            }
-        } catch (Exception e) {
-            System.out.println(TimeExchange.DateToString(new Date(), "yyyy-MM-dd HH:mm:ss") + ":退款查询,异常信息:" + e.getMessage());
-            throw new Exception("退款进度查询失败!");
-        }
-    }
-}

+ 27 - 0
src/main/java/com/repair/core/CORSConfiguration.java

@@ -0,0 +1,27 @@
+package com.repair.core;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class CORSConfiguration{
+    @Bean
+    public WebMvcConfigurer corsConfigurer() {
+        return new WebMvcConfigurer() {
+            @Override
+            public void addCorsMappings(CorsRegistry registry) {
+                registry.addMapping("/**")
+                        //放行哪些原始域
+                        .allowedOrigins("*")
+                        //是否发送Cookie信息
+                        .allowCredentials(false)
+                        //放行哪些原始域(请求方式)
+                        .allowedMethods("GET", "POST", "DELETE", "PUT", "OPTIONS")
+                        //放行哪些原始域(头部信息)
+                        .allowedHeaders("*");
+            }
+        };
+    }
+}

+ 25 - 0
src/main/java/com/repair/core/JwtlnterceptorConfig.java

@@ -0,0 +1,25 @@
+package com.repair.core;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class JwtlnterceptorConfig implements WebMvcConfigurer {
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        //region
+        //目前测试下来 使用 /**所有的话,response.sendError浏览器获取不到响应的信息
+        //默认拦截所有路径
+        registry.addInterceptor(authenticationInterceptor())
+                .addPathPatterns("/api/**");
+        //endregion
+    }
+
+    @Bean
+    public HandlerInterceptor authenticationInterceptor() {
+        return new JwtAuthenticationInterceptor();
+    }
+}

+ 49 - 0
src/main/java/com/repair/handler/MyMetaObjectHandler.java

@@ -0,0 +1,49 @@
+package com.repair.handler;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.repair.common.utils.AesUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+@Slf4j
+@Component // 一定不要忘记把处理器加到IOC容器中!
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    //创建用户和更新用户填充0的时候则说明不是账号操作的
+
+    // 插入时的填充策略
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        HttpServletRequest request = getHttpServletRequest();
+        String user_id = request.getHeader("user_head") == null ? "0" : AesUtils.decrypt(request.getHeader("user_head"));
+        log.info("start insert fill.....");
+        // setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject
+        this.setFieldValByName("createTime", new Date(), metaObject);
+        this.setFieldValByName("updateTime", new Date(), metaObject);
+        this.setFieldValByName("createUser", user_id , metaObject);
+        this.setFieldValByName("updateUser", user_id , metaObject);
+        this.setFieldValByName("deleted", 0 , metaObject);
+    }
+
+    // 更新时的填充策略
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        HttpServletRequest request = getHttpServletRequest();
+        String user_id = request.getHeader("user_head") == null ? "0" : AesUtils.decrypt(request.getHeader("user_head"));
+        log.info("start update fill.....");
+        this.setFieldValByName("updateTime", new Date(), metaObject);
+        this.setFieldValByName("updateUser", user_id, metaObject);
+    }
+
+    private HttpServletRequest getHttpServletRequest() {
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes;
+        return attributes.getRequest();
+    }
+}

+ 0 - 13
src/main/java/com/repair/mapper/RepairArticleBuildMapper.java

@@ -2,17 +2,8 @@ package com.repair.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.repair.model.pojo.RepairArticleBuild;
-<<<<<<< HEAD
 import org.springframework.stereotype.Repository;
 
-=======
-import com.repair.model.vo.ArticleBuildVo;
-import org.springframework.data.repository.query.Param;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 /**
  * <p>
  *  Mapper 接口
@@ -23,9 +14,5 @@ import java.util.List;
  */
 @Repository
 public interface RepairArticleBuildMapper extends BaseMapper<RepairArticleBuild> {
-<<<<<<< HEAD
 
-=======
-    List<ArticleBuildVo> queryArticleBuild(@Param("userIds") String userIds);
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 }

+ 0 - 7
src/main/java/com/repair/mapper/RepairDispatchRecordMapper.java

@@ -1,12 +1,9 @@
 package com.repair.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-<<<<<<< HEAD
-=======
 import com.repair.model.pojo.RepairDispatchRecord;
 import com.repair.model.vo.DisReceCountVo;
 import com.repair.model.vo.RepairCardNumberVo;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
@@ -22,11 +19,7 @@ import java.util.List;
  */
 @Repository
 public interface RepairDispatchRecordMapper extends BaseMapper<RepairDispatchRecord> {
-<<<<<<< HEAD
-
-=======
     List<RepairCardNumberVo> queryRepairCardNumber(@Param("recordId") Integer recordId);
 
     DisReceCountVo queryDisReceCount(@Param("userId") Integer userId);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 0 - 7
src/main/java/com/repair/mapper/RepairEvaluateMapper.java

@@ -3,11 +3,7 @@ package com.repair.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.repair.model.pojo.RepairEvaluate;
-<<<<<<< HEAD
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-=======
 import com.repair.model.vo.EvaluateVo;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import com.repair.model.vo.RecordEvaluateVo;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -24,12 +20,9 @@ import java.util.List;
  */
 @Repository
 public interface RepairEvaluateMapper extends BaseMapper<RepairEvaluate> {
-<<<<<<< HEAD
-=======
     List<EvaluateVo> queryEvaluatePageList(@Param("keyWord") String keyWord, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     IPage<EvaluateVo> queryEvaluatePageList(IPage<EvaluateVo> page, @Param("keyWord") String keyWord, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
     List<RecordEvaluateVo> queryEvaluateList(@Param("dateStr") String dateStr);
 }

+ 0 - 7
src/main/java/com/repair/mapper/RepairRecordMapper.java

@@ -19,9 +19,6 @@ import java.util.List;
  */
 @Repository
 public interface RepairRecordMapper extends BaseMapper<RepairRecord> {
-<<<<<<< HEAD
-    List<pendingOrderVo> queryPendingOrder();
-=======
     RepairRecordCountVo queryRepairRecordCount(@Param("userId") Integer userId);
 
     IPage<MyRepairRecordVo> queryMyRepairRecordList(IPage<MyRepairRecordVo> page, @Param("stateStr") String stateStr, @Param("userId") Integer userId);
@@ -95,10 +92,6 @@ public interface RepairRecordMapper extends BaseMapper<RepairRecord> {
     RepairSummarizingVo repairSummarizing(@Param("startTime")String startTime,@Param("endTime") String endTime);
 
     RepairTotalDataVo repairTotalData();
-<<<<<<< HEAD
 
     PrintVo queryPrintData(@Param("recordId") Integer recordId);
-=======
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 }

+ 1 - 7
src/main/java/com/repair/mapper/RepairRefundRecordMapper.java

@@ -2,14 +2,8 @@ package com.repair.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.repair.model.pojo.RepairRefundRecord;
-<<<<<<< HEAD
-import com.repair.model.vo.repairRefundVo;
-=======
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import org.springframework.stereotype.Repository;
 
-import java.util.List;
-
 /**
  * <p>
  *  Mapper 接口
@@ -20,5 +14,5 @@ import java.util.List;
  */
 @Repository
 public interface RepairRefundRecordMapper extends BaseMapper<RepairRefundRecord> {
-    List<repairRefundVo> queryRefundRecord();
+
 }

+ 0 - 6
src/main/java/com/repair/mapper/RepairSystemMessagesMapper.java

@@ -1,15 +1,9 @@
 package com.repair.mapper;
 
-<<<<<<< HEAD
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.repair.model.pojo.RepairSystemMessages;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-=======
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.repair.model.pojo.RepairSystemMessages;
 import com.repair.model.vo.SystemMessagePageVo;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 

+ 0 - 6
src/main/java/com/repair/mapper/RepairTrackRecordMapper.java

@@ -2,11 +2,8 @@ package com.repair.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.repair.model.pojo.RepairTrackRecord;
-<<<<<<< HEAD
-=======
 import com.repair.model.vo.TrackDetailsVo;
 import org.apache.ibatis.annotations.Param;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -21,8 +18,5 @@ import java.util.List;
  */
 @Repository
 public interface RepairTrackRecordMapper extends BaseMapper<RepairTrackRecord> {
-<<<<<<< HEAD
-=======
     List<TrackDetailsVo> queryDetailData(@Param("recordId") Integer recordId);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 1 - 7
src/main/java/com/repair/mapper/RepairUserMapper.java

@@ -19,10 +19,8 @@ import java.util.List;
  */
 @Repository
 public interface RepairUserMapper extends BaseMapper<RepairUser> {
+    IPage<RepairUserVo> queryUserPageList(IPage<RepairUserVo> page, @Param("schoolId") String schoolId, @Param("teamId") String teamId, @Param("keyWord") String keyWord);
 
-<<<<<<< HEAD
-    List<AutoDispatchUserVo> autoDispatchUser(@Param("dateNow") String dateNow);
-=======
     List<RepairLogisticsVo> queryLogisticsList(@Param("recordId") Integer recordId);
 
     UserDataVo queryUserData(@Param("userId") Integer userId, @Param("dateNow") String dateNow);
@@ -44,10 +42,6 @@ public interface RepairUserMapper extends BaseMapper<RepairUser> {
     IPage<PositiveReviewVo> queryPositiveReviewPage(IPage<PositiveReviewVo> page, @Param("schoolId") Integer schoolId);
 
     List<AutoDispatchUserVo> dropDown(Integer buildId, Integer articleId, Integer schoolId, Integer userId);
-<<<<<<< HEAD
 
     List<ArticleBuildVo> queryArticleBuilds(@Param("userIds") String userIds);
-=======
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 }

+ 32 - 0
src/main/java/com/repair/model/enumModel/eFileType.java

@@ -0,0 +1,32 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/17 星期一 9:50
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum eFileType {
+    Xls("application/vnd.ms-excel"),//非超级管理员
+    Xlsx("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//超级管理员
+
+    private String value;
+
+    eFileType(String value){
+        this.value = value;
+    }
+
+    public String getValue() {
+        return value;
+    }
+    public static eFileType typeValueOf(String value) {
+        switch (value) {
+            case "application/vnd.ms-excel":
+                return eFileType.Xls;
+            case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
+                return eFileType.Xlsx;
+            default:
+                return null;
+        }
+    }
+}

+ 32 - 0
src/main/java/com/repair/model/enumModel/eIsSuper.java

@@ -0,0 +1,32 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/7 星期五 15:14
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum eIsSuper {
+    NotSuper(0),//非超级管理员
+    Super(1);//超级管理员
+
+    private int value;
+
+    eIsSuper(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static eIsSuper valueOf(int value) {
+        switch (value) {
+            case 0:
+                return eIsSuper.NotSuper;
+            case 1:
+                return eIsSuper.Super;
+            default:
+                return null;
+        }
+    }
+}

+ 36 - 0
src/main/java/com/repair/model/enumModel/eIsTop.java

@@ -0,0 +1,36 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/11 星期二 10:21
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum eIsTop {
+    UnTop(0),//未置顶
+    Top(1),//置顶
+    All(2);//全部
+
+
+    private int value;
+
+    eIsTop(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static eIsTop valueOf(int value) {
+        switch (value) {
+            case 0:
+                return eIsTop.UnTop;
+            case 1:
+                return eIsTop.Top;
+            case 2:
+                return eIsTop.All;
+            default:
+                return null;
+        }
+    }
+}

+ 52 - 0
src/main/java/com/repair/model/enumModel/eSchool.java

@@ -0,0 +1,52 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/11 星期二 16:39
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum eSchool {
+    HJH(1),//黄家湖
+    MXH(2);//墨轩湖
+
+    private int value;
+
+    eSchool(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static eSchool valueOf(int value) {
+        switch (value) {
+            case 1:
+                return eSchool.HJH;
+            case 2:
+                return eSchool.MXH;
+            default:
+                return null;
+        }
+    }
+    public static Integer integerOf(String value) {
+        switch (value) {
+            case "黄家湖校区":
+                return 1;
+            case "墨轩湖校区":
+                return 2;
+            default:
+                return null;
+        }
+    }
+    public static String stringOf(Integer value) {
+        switch (value) {
+            case 1:
+                return "黄家湖校区";
+            case 2:
+                return "墨轩湖校区";
+            default:
+                return null;
+        }
+    }
+}

+ 33 - 0
src/main/java/com/repair/model/enumModel/eStatu.java

@@ -0,0 +1,33 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/6 星期四 16:34
+ * @Description: com.template.model.enumModel
+ * @Version: 1.0
+ * 账号状态
+ */
+public enum eStatu {
+    Freeze(1),//冻结
+    Unfrozen(0);//未冻结
+
+    private int value;
+
+    eStatu(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static eStatu valueOf(int value) {
+        switch (value) {
+            case 1:
+                return eStatu.Freeze;
+            case 0:
+                return eStatu.Unfrozen;
+            default:
+                return null;
+        }
+    }
+}

+ 38 - 0
src/main/java/com/repair/model/enumModel/eTechnicianStatu.java

@@ -0,0 +1,38 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/31 星期一 17:33
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum eTechnicianStatu {
+    Receiving(1),//待接单
+    Maintenance(2),//维修中
+    Timeout(3),//已超时
+    examine(4);//待审核
+
+    private int value;
+
+    eTechnicianStatu(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static eTechnicianStatu valueOf(int value) {
+        switch (value) {
+            case 1:
+                return eTechnicianStatu.Receiving;
+            case 2:
+                return eTechnicianStatu.Maintenance;
+            case 3:
+                return eTechnicianStatu.Timeout;
+            case 4:
+                return eTechnicianStatu.examine;
+            default:
+                return null;
+        }
+    }
+}

+ 67 - 0
src/main/java/com/repair/model/enumModel/eWeekStatu.java

@@ -0,0 +1,67 @@
+package com.repair.model.enumModel;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/26 星期三 14:55
+ * @Description: com.repair.model.enumModel
+ * @Version: 1.0
+ */
+public enum eWeekStatu {
+    Monday(1),//周一
+    Tuesday(2),//周二
+    Wednesday(3),//周三
+    Thursday(4),//周四
+    Friday(5),//周五
+    Saturday(6),//周六
+    Sunday(7);//周天
+
+    private int value;
+
+    eWeekStatu(int value){
+        this.value = value;
+    }
+
+    public int getValue() {
+        return value;
+    }
+    public static eWeekStatu valueOf(int value) {
+        switch (value) {
+            case 1:
+                return eWeekStatu.Monday;
+            case 2:
+                return eWeekStatu.Tuesday;
+            case 3:
+                return eWeekStatu.Wednesday;
+            case 4:
+                return eWeekStatu.Thursday;
+            case 5:
+                return eWeekStatu.Friday;
+            case 6:
+                return eWeekStatu.Saturday;
+            case 7:
+                return eWeekStatu.Sunday;
+            default:
+                return null;
+        }
+    }
+    public static String stringOf(Integer value) {
+        switch (value) {
+            case 1:
+                return "周一";
+            case 2:
+                return "周二";
+            case 3:
+                return "周三";
+            case 4:
+                return "周四";
+            case 5:
+                return "周五";
+            case 6:
+                return "周六";
+            case 7:
+                return "周天";
+            default:
+                return null;
+        }
+    }
+}

+ 0 - 1
src/main/java/com/repair/model/pojo/RepairCollaborateRecord.java

@@ -3,7 +3,6 @@ package com.repair.model.pojo;
 import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import io.swagger.models.auth.In;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;

+ 5 - 0
src/main/java/com/repair/model/pojo/RepairEvaluate.java

@@ -44,18 +44,23 @@ public class RepairEvaluate implements Serializable {
     private String content;
 
     @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
     private Date createTime;
 
     @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
     @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
     private String createUser;
 
     @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     private String updateUser;
 
     @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
     @TableLogic
     private Integer deleted;
 

+ 0 - 9
src/main/java/com/repair/model/pojo/RepairRefundRecord.java

@@ -45,18 +45,12 @@ public class RepairRefundRecord implements Serializable {
 
     @ApiModelProperty(value = "商户退款单号(对应微信的)")
     @NotBlank(message = "商户退款单号不能为空")
-<<<<<<< HEAD
     @JsonIgnore
-=======
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
     private String wxNo;
 
     @ApiModelProperty(value = "微信退款单号(对应微信的)")
     @NotBlank(message = "微信退款单号不能为空")
-<<<<<<< HEAD
     @JsonIgnore
-=======
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
     private String refundNo;
 
     @ApiModelProperty(value = "退款金额")
@@ -70,15 +64,12 @@ public class RepairRefundRecord implements Serializable {
     @ApiModelProperty(value = "审批状态 待审批:0;通过:1;驳回:2")
     private Integer approve;
 
-<<<<<<< HEAD
     @ApiModelProperty(value = "申请人")
     private String approveUser;
 
     @ApiModelProperty(value = "审批人")
     private String approvedUser;
 
-=======
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
     @ApiModelProperty(value = "备注")
     @NotBlank(message = "备注不能未空")
     private String remark;

+ 5 - 0
src/main/java/com/repair/model/pojo/RepairSystemMessages.java

@@ -53,18 +53,23 @@ public class RepairSystemMessages implements Serializable {
     private Integer isRead;
 
     @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
     private Date createTime;
 
     @ApiModelProperty(value = "更新时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
     @ApiModelProperty(value = "创建人员")
+    @TableField(fill = FieldFill.INSERT)
     private String createUser;
 
     @ApiModelProperty(value = "更新人员")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
     private String updateUser;
 
     @ApiModelProperty(value = "逻辑删除 未删除:0;删除:1")
+    @TableField(fill = FieldFill.INSERT)
     @TableLogic
     private Integer deleted;
 

+ 25 - 0
src/main/java/com/repair/model/request/AlterPriceRequest.java

@@ -0,0 +1,25 @@
+package com.repair.model.request;
+
+import com.repair.model.pojo.RepairConsumables;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 修改密码
+ */
+@Data
+public class AlterPriceRequest {
+    @NotNull(message = "维修id不能为空")
+    private Integer recordId;
+
+    //所属维修表id
+    private List<Integer> ids;
+
+    private List<RepairConsumables> repairConsumablesList;
+
+    @NotNull(message = "总金额不能为空")
+    private BigDecimal totalPrice;
+}

+ 27 - 0
src/main/java/com/repair/model/request/DelayedRequest.java

@@ -0,0 +1,27 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class DelayedRequest {
+
+    /**
+     * 维修记录ID
+     */
+    @NotNull(message = "维修记录ID不能为空")
+    private Integer recordId;
+
+    /**
+     * 接单考核时间
+     */
+    private Integer receiving;
+
+    /**
+     * 维修考核时间
+     */
+    private Integer maintain;
+
+
+}

src/main/java/com/repair/model/vo/MaintenanceConsumeablesRequest.java → src/main/java/com/repair/model/request/MaintenanceConsumeablesRequest.java


+ 27 - 0
src/main/java/com/repair/model/request/MobileRevertRequest.java

@@ -0,0 +1,27 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class MobileRevertRequest {
+
+    /**
+     * 维修数据ID
+     */
+    @NotNull(message = "维修数据ID不能为空")
+    private Integer recordId;
+
+    /**
+     * 用户ID
+     */
+    @NotNull(message = "用户ID不能为空")
+    private Integer userId;
+
+    /**
+     * 内容
+     */
+    @NotNull(message = "留言内容不能为空")
+    private String content;
+}

+ 21 - 0
src/main/java/com/repair/model/request/RevertRequest.java

@@ -0,0 +1,21 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class RevertRequest {
+
+    /**
+     * 维修数据ID
+     */
+    @NotNull(message = "维修数据ID不能为空")
+    private Integer recordId;
+
+    /**
+     * 内容
+     */
+    @NotNull(message = "留言内容不能为空")
+    private String content;
+}

+ 54 - 0
src/main/java/com/repair/model/request/UserScheduleRequest.java

@@ -0,0 +1,54 @@
+package com.repair.model.request;
+
+import com.repair.model.vo.ShiftSettingDataVo;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/7 星期一 8:48
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class UserScheduleRequest {
+    /**
+     * 数据ID
+     */
+    @NotNull(message = "数据ID不能为空")
+    private int id;
+    /**
+     * 用户名称
+     */
+    @NotBlank(message = "师傅姓名不能为空")
+    private String userName;
+    /**
+     * 工种名称
+     */
+    @NotBlank(message = "工种名称不能为空")
+    private String workTypeName;
+    /**
+     * 接单状态ID
+     */
+    @NotNull(message = "接单状态不能为空")
+    private Integer state;
+    /**
+     * 接单状态
+     */
+    @NotBlank(message = "接单状态不能为空")
+    private String stateStr;
+
+    /**
+     * 排班ID
+     */
+    private Integer classId;
+
+    /**
+     * 排班集合
+     */
+    private List<ShiftSettingDataVo> shifts;
+
+}

src/main/java/com/repair/model/vo/WxPayRequest.java → src/main/java/com/repair/model/request/WxPayRequest.java


+ 29 - 0
src/main/java/com/repair/model/request/changePasswordRequest.java

@@ -0,0 +1,29 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 修改密码
+ */
+@Data
+public class changePasswordRequest {
+    /**
+     * 原密码
+     */
+    @NotBlank(message = "原密码不能为空")
+    private String oldPassword;
+
+    /**
+     * 新密码
+     */
+    @NotBlank(message = "新密码不能为空")
+    private String newPassword;
+
+    /**
+     * 确认密码
+     */
+    @NotBlank(message = "确认密码不能为空")
+    private String confirmPassword;
+}

+ 36 - 0
src/main/java/com/repair/model/request/cooperationOrdersRequest.java

@@ -0,0 +1,36 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+public class cooperationOrdersRequest {
+
+    /**
+     * 数据ID
+     */
+    @NotNull(message = "数据ID不能为空")
+    private Integer id;
+
+    /**
+     * 协作对象集合
+     */
+    @NotEmpty(message = "协作人ID不能为空")
+    private List<Integer> collaborator;
+
+    /**
+     * 审批状态
+     * 拒绝:0
+     * 同意:1
+     */
+    @NotNull(message = "审批状态不能为空")
+    private Integer approverStatu;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 23 - 0
src/main/java/com/repair/model/request/loginRequest.java

@@ -0,0 +1,23 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 登录请求参数
+ */
+@Data
+public class loginRequest {
+    /**
+     * 账号
+     */
+    @NotBlank(message = "账号不能为空")
+    private String account;
+
+    /**
+     * 密码
+     */
+    @NotBlank(message = "密码不能为空")
+    private String password;
+}

+ 37 - 0
src/main/java/com/repair/model/request/repairLeaveMessageRequest.java

@@ -0,0 +1,37 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author ceshi
+ * @since 2023-07-20
+ */
+@Data
+public class repairLeaveMessageRequest implements Serializable {
+
+    /**
+     * 报修记录ID
+     */
+    @NotNull(message = "报修记录ID不能为空")
+    private Integer recordId;
+
+    /**
+     * 用户ID
+     */
+    @NotNull(message = "用户不能为空")
+    private Integer userId;
+
+    /**
+     * 内容
+     */
+    @NotNull(message = "内容不能为空")
+    private String content;
+
+}

+ 34 - 0
src/main/java/com/repair/model/request/repairPayRequest.java

@@ -0,0 +1,34 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/10 星期四 8:35
+ * @Description: com.repair.model.request
+ * @Version: 1.0
+ */
+@Data
+public class repairPayRequest {
+    /**
+     * 报修记录ID
+     */
+    @NotNull(message = "报修记录ID不能为空")
+    private Integer recordId;
+
+    /**
+     * 支付人员ID
+     */
+    @NotNull(message = "用户不能为空")
+    private Integer userId;
+
+    /**
+     * 支付金额 要带两位小数 否则比较会不一致
+     */
+    @NotNull(message = "支付金额不能为空")
+    private BigDecimal price;
+
+}

+ 1 - 1
src/main/java/com/repair/model/vo/timeVo.java

@@ -1,4 +1,4 @@
-package com.repair.model.vo;
+package com.repair.model.request;
 
 import lombok.Data;
 

+ 32 - 0
src/main/java/com/repair/model/request/transferOrderRequest.java

@@ -0,0 +1,32 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class transferOrderRequest {
+
+    /**
+     * 报修记录ID
+     */
+    @NotNull(message = "报修记录ID不能为空")
+    private Integer recordId;
+
+    /**
+     * 用户ID
+     */
+    @NotNull(message = "用户ID不能为空")
+    private Integer userId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 转单语音说明
+     */
+    private String voice;
+
+}

+ 49 - 0
src/main/java/com/repair/model/request/updateAddressBookRequest.java

@@ -0,0 +1,49 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 通讯录编辑
+ */
+@Data
+public class updateAddressBookRequest {
+    /**
+     * 数据ID
+     */
+    @NotNull(message = "数据ID不能为空")
+    private Integer id;
+
+    /**
+     * 状态
+     */
+    @NotNull(message = "状态不能为空")
+    private Integer state;
+
+    /**
+     * 手机号
+     */
+    @NotBlank(message = "手机号不能为空")
+    private String phone;
+
+    /**
+     * 工种
+     */
+    @NotNull(message = "工种不能为空")
+    private Integer workType;
+
+    /**
+     * 接单考核时间
+     */
+    @NotNull(message = "接单考核时间不能为空")
+    private Integer acceptanceTime;
+
+    /**
+     * 维修考核时间
+     */
+    @NotNull(message = "维修考核时间不能为空")
+    private Integer maintenanceTime;
+
+}

+ 34 - 0
src/main/java/com/repair/model/request/updateRepairAdminRequest.java

@@ -0,0 +1,34 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/7 星期五 14:27
+ * @Description: com.repair.model.request
+ * @Version: 1.0
+ */
+@Data
+public class updateRepairAdminRequest {
+    /**
+     * 数据ID
+     */
+    @NotBlank(message = "数据ID不能为空")
+    private String id;
+    /**
+     * 账号名称
+     */
+    private String username;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 密码
+     */
+    private String password;
+}

+ 26 - 0
src/main/java/com/repair/model/request/updateRepairAreaRequest.java

@@ -0,0 +1,26 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/12 星期三 15:42
+ * @Description: com.repair.model.request
+ * @Version: 1.0
+ */
+@Data
+public class updateRepairAreaRequest {
+    /**
+     * 数据ID
+     */
+    @NotNull(message = "数据ID不能为空")
+    private Integer id;
+    /**
+     * 账号名称
+     */
+    @NotBlank(message = "区域名称不能为空")
+    private String name;
+}

+ 54 - 0
src/main/java/com/repair/model/request/updateRepairConsumeRequest.java

@@ -0,0 +1,54 @@
+package com.repair.model.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/13 星期四 15:21
+ * @Description: com.repair.model.request
+ * @Version: 1.0
+ */
+@Data
+public class updateRepairConsumeRequest {
+
+    /**
+     * 数据ID
+     */
+    @NotNull(message = "数据ID不能为空")
+    private Integer id;
+
+    /**
+     * 耗材名称
+     */
+    @NotBlank(message = "耗材名称不能为空")
+    private String name;
+
+    /**
+     * 报修物品(故障类型)ID集合
+     */
+    @NotEmpty(message = "报修物品(故障类型)ID集合")
+    private List<Integer> articleIds;
+
+    /**
+     * 耗材单价
+     */
+    @NotNull(message = "耗材单价不能为空")
+    private BigDecimal price;
+
+    /**
+     * 校区ID
+     */
+    @NotNull(message = "校区ID不能为空")
+    private Integer schoolId;
+
+    /**
+     * 耗材内容
+     */
+    private String content;
+}

+ 28 - 0
src/main/java/com/repair/model/vo/AddressBookListVo.java

@@ -0,0 +1,28 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/7 星期一 8:48
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class AddressBookListVo {
+    /**
+     * 维修班数据ID
+     */
+    private int id;
+    /**
+     * 维修班名称
+     */
+    private String name;
+    /**
+     * 通讯录数据集合
+     */
+    private List<AddressBookVo> list;
+
+}

+ 12 - 0
src/main/java/com/repair/model/vo/AlterPriceShowVo.java

@@ -0,0 +1,12 @@
+package com.repair.model.vo;
+
+import com.repair.model.pojo.RepairConsumables;
+import lombok.Data;
+
+@Data
+public class AlterPriceShowVo {
+
+    private RepairConsumables repairConsumables;
+
+    private String articleName;
+}

+ 0 - 21
src/main/java/com/repair/model/vo/ArticleBuildVo.java

@@ -5,18 +5,13 @@ import lombok.Data;
 
 /**
  * @Author: binguo
-<<<<<<< HEAD
  * @Date: 2023/7/14 星期五 14:56
-=======
- * @Date: 2023/8/8 星期二 8:28
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
  * @Description: com.repair.model.vo
  * @Version: 1.0
  */
 @Data
 public class ArticleBuildVo {
     /**
-<<<<<<< HEAD
      * 数据ID
      */
     private Integer id;
@@ -46,20 +41,4 @@ public class ArticleBuildVo {
      */
     private Integer userId;
 
-=======
-     * 用户ID
-     */
-    private int userId;
-
-    /**
-     * 报修类型ID
-     */
-    private String articleId;
-
-    /**
-     * 关联楼栋ID
-     */
-    private String buildId;
-
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 }

+ 2 - 9
src/main/java/com/repair/model/vo/AutoDispatchUserVo.java

@@ -29,19 +29,12 @@ public class AutoDispatchUserVo {
     private String workType;
 
     /**
-     * 接单数 用来平均分单用的
+     * 当天接单数
      */
+    @JsonIgnore
     private int rdrCount;
 
     /**
-<<<<<<< HEAD
-=======
-     * 校区ID
-     */
-    private int schoolId;
-
-    /**
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
      * 用户名称
      */
     private String userName;

+ 41 - 0
src/main/java/com/repair/model/vo/ChangeConsumesVo.java

@@ -0,0 +1,41 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/8 星期二 16:13
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class ChangeConsumesVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+
+    /**
+     * 报修物品
+     */
+    private int articleId;
+
+    /**
+     * 耗材ID
+     */
+    private int consumeId;
+    /**
+     * 耗材名称
+     */
+    private String consumeName;
+    /**
+     * 耗材单价
+     */
+    private BigDecimal price;
+    /**
+     * 耗材数量
+     */
+    private Double number;
+}

+ 40 - 0
src/main/java/com/repair/model/vo/ChangePriceConsumeVo.java

@@ -0,0 +1,40 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/8 星期二 16:09
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class ChangePriceConsumeVo {
+    /**
+     * 报修记录ID
+     */
+    private int recordId;
+
+    /**
+     * 合计费用
+     */
+    private BigDecimal totalPrice;
+
+    /**
+     * 维修师傅
+     */
+    private String maintenancerName;
+
+    /**
+     * 手机
+     */
+    private String maintenancerPhone;
+
+    /**
+     * 耗材集合
+     */
+    private List<ChangeConsumesVo> consumes;
+}

+ 66 - 0
src/main/java/com/repair/model/vo/ClassesDataVo.java

@@ -0,0 +1,66 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/28 星期五 14:35
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class ClassesDataVo {
+    /**
+     * 数据ID
+     */
+    private Integer id;
+
+    /**
+     * 用户ID
+     */
+    private int userId;
+
+    /**
+     * 师傅名称
+     */
+    private String userName;
+
+    /**
+     * 班次ID
+     */
+    @JsonIgnore
+    private String shiftId;
+
+    /**
+     * 班次名称
+     */
+    @JsonIgnore
+    private String shiftName;
+
+    /**
+     * 班次集合
+     */
+    private List<ShiftSettingDataVo> shifts;
+
+    public List<ShiftSettingDataVo> getShifts() {
+        List<String> ids = shiftId == null ? new ArrayList<>() : Arrays.asList(shiftId.split(","));
+        List<String> names = shiftName == null ? new ArrayList<>() : Arrays.asList(shiftName.split(","));
+        List<ShiftSettingDataVo> shiftList = new ArrayList<>();
+        for (int i = 0;i< names.size();i++) {
+            ShiftSettingDataVo s = new ShiftSettingDataVo();
+            s.setId(ids.get(i) == null ? 0 : Integer.valueOf(ids.get(i)));
+            s.setName(names.get(i) == null ? "" : names.get(i));
+            shiftList.add(s);
+        }
+        return shiftList;
+    }
+
+    public void setShifts(List<ShiftSettingDataVo> shifts) {
+        this.shifts = shifts;
+    }
+}

+ 40 - 0
src/main/java/com/repair/model/vo/ClassesSettingPageDataVo.java

@@ -0,0 +1,40 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/28 星期五 14:59
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class ClassesSettingPageDataVo {
+    /**
+     * 用户ID
+     */
+    private int userId;
+
+    /**
+     * 用户名称
+     */
+    private String userName;
+
+    /**
+     * 校区ID
+     */
+    private Integer schoolId;
+
+    /**
+     * 校区名称
+     */
+    private String schoolName;
+
+    /**
+     * 排班集合
+     */
+    private List<ClassesSettingVo> classSettings;
+
+}

+ 22 - 0
src/main/java/com/repair/model/vo/CollaborateDataVo.java

@@ -0,0 +1,22 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/1 星期二 20:36
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class CollaborateDataVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+
+    /**
+     * 协作人名称
+     */
+    private String name;
+}

+ 26 - 0
src/main/java/com/repair/model/vo/CollaborateRecordVo.java

@@ -0,0 +1,26 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/1 星期二 20:36
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class CollaborateRecordVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+    /**
+     * 工单ID
+     */
+    private int recordId;
+
+    /**
+     * 转单/协作
+     */
+    private String state;
+}

+ 36 - 0
src/main/java/com/repair/model/vo/LoginVo.java

@@ -0,0 +1,36 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: codingliang
+ * @Description: 登录用户vo
+ * @Date: 2022-08-04 9:58
+ * @Version: V1.0
+ **/
+
+@Data
+public class LoginVo {
+
+    /**
+     * 校区ID
+     */
+    private Integer schoolId;
+    /**
+     * 用户姓名
+     */
+    private String userName;
+    /**
+     * 加密后的用户ID
+     */
+    private String userhead;
+    /**
+     * 用户token
+     */
+    private String token;
+    /**
+     * token过期时间
+     */
+    private long tokenTtl;
+
+}

+ 32 - 0
src/main/java/com/repair/model/vo/MaintenanceTechnicianVo.java

@@ -0,0 +1,32 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/31 星期一 16:23
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class MaintenanceTechnicianVo {
+    /**
+     * 待接单
+     */
+    private int receivingCount;
+
+    /**
+     * 维修中
+     */
+    private int maintenanceCount;
+
+    /**
+     * 已超时
+     */
+    private int timeoutCount;
+
+    /**
+     * 待审核
+     */
+    private int examineCount;
+}

+ 40 - 0
src/main/java/com/repair/model/vo/NoticePageVo.java

@@ -0,0 +1,40 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/28 星期五 9:46
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class NoticePageVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+
+    /**
+     * 公告内容
+     */
+    private String content;
+
+    /**
+     * 创建人
+     */
+    private String userName;
+
+    /**
+     * 创建时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否置顶
+     */
+    private Integer isTop;
+
+}

+ 14 - 0
src/main/java/com/repair/model/vo/NoticeVo.java

@@ -0,0 +1,14 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/26 星期三 14:37
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class NoticeVo {
+    private String NoticeStr;
+}

+ 30 - 0
src/main/java/com/repair/model/vo/PositiveReviewVo.java

@@ -0,0 +1,30 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/7 星期一 8:48
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class PositiveReviewVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+    /**
+     * 师傅姓名
+     */
+    private String userName;
+    /**
+     * 完成数
+     */
+    private int finishCount;
+    /**
+     * 好评数
+     */
+    private int evaluateCount;
+
+}

+ 32 - 0
src/main/java/com/repair/model/vo/RepairAreaTreeVo.java

@@ -0,0 +1,32 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/4/18 星期二 9:54
+ * @Description: com.video.model.vo
+ * @Version: 1.0
+ */
+@Data
+@ToString
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "区域", description = "")
+public class RepairAreaTreeVo {
+    @ApiModelProperty(value = "区域ID")
+    private int id;
+    @ApiModelProperty(value = "上级区域ID")
+    private int parentId;
+    @ApiModelProperty(value = "区域名称")
+    private String name;
+    @ApiModelProperty(value = "子级区域")
+    private List<RepairAreaTreeVo> children;
+}

+ 36 - 0
src/main/java/com/repair/model/vo/RepairArticleChildVo.java

@@ -0,0 +1,36 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/1 星期二 20:36
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class RepairArticleChildVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+
+    /**
+     * 报修种类名称
+     */
+    private String name;
+
+    /**
+     * 子类ID
+     */
+    @JsonIgnore
+    private String childId;
+
+    /**
+     * 耗材数据
+     */
+    private List<RepairArticleConsumeVo> consumes;
+}

+ 30 - 0
src/main/java/com/repair/model/vo/RepairArticleTreeVo.java

@@ -0,0 +1,30 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/4/18 星期二 9:54
+ * @Description: com.video.model.vo
+ * @Version: 1.0
+ */
+@Data
+@ToString
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value = "物品(故障类型)树形结构数据", description = "")
+public class RepairArticleTreeVo {
+    @ApiModelProperty(value = "数据ID")
+    private int id;
+    @ApiModelProperty(value = "校区名称")
+    private String name;
+    @ApiModelProperty(value = "子级物品")
+    private List<RepairArticleTypeTreeVo> children;
+}

+ 71 - 0
src/main/java/com/repair/model/vo/RepairConsumeVo.java

@@ -0,0 +1,71 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/14 星期五 14:56
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class RepairConsumeVo {
+    private Integer id;
+
+    /**
+     * 耗材名称
+     */
+    private String name;
+
+    /**
+     * 耗材内容
+     */
+    private String content;
+
+    /**
+     * 耗材单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 校区ID
+     */
+    private Integer schoolId;
+
+    /**
+     * 报修物品ID
+     */
+    @JsonIgnore
+    private String articleId;
+
+    /**
+     * 报修物品(故障类型)ID
+     */
+    private List<String> articleIds;
+
+    /**
+     * 录入人
+     */
+    private String userName;
+
+    /**
+     * 报修物品名称
+     */
+    @JsonIgnore
+    private String articleName;
+
+    /**
+     * 报修物品(故障类型)名称
+     */
+    private List<String> articleNames;
+
+    /**
+     * 创建时间
+     */
+    private Date updateTime;
+}

+ 17 - 0
src/main/java/com/repair/model/vo/RepairLogisticsVo.java

@@ -0,0 +1,17 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/14 星期五 14:56
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class RepairLogisticsVo {
+    /**
+     * 数据ID
+     */
+    private Integer id;
+}

+ 25 - 0
src/main/java/com/repair/model/vo/RepairRecordCountVo.java

@@ -0,0 +1,25 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/26 星期三 15:19
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class RepairRecordCountVo {
+    /**
+     * 未完成
+     */
+    private Integer Incomplete;
+    /**
+     * 待确认
+     */
+    private Integer Confirmed;
+    /**
+     * 已完成
+     */
+    private Integer Finished;
+}

+ 23 - 0
src/main/java/com/repair/model/vo/RepairSchoolVo.java

@@ -0,0 +1,23 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: codingliang
+ * @Description: 登录用户vo
+ * @Date: 2022-08-04 9:58
+ * @Version: V1.0
+ **/
+@Data
+public class RepairSchoolVo {
+
+    /**
+     * 数据ID
+     */
+    private Integer id;
+
+    /**
+     * 校区名称
+     */
+    private String name;
+}

+ 21 - 0
src/main/java/com/repair/model/vo/ShiftSettingDataVo.java

@@ -0,0 +1,21 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/31 星期一 10:38
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class ShiftSettingDataVo {
+    /**
+     * 班次ID
+     */
+    private int id;
+    /**
+     * 班次名称
+     */
+    private String name;
+}

+ 32 - 0
src/main/java/com/repair/model/vo/SystemMenuTreeVo.java

@@ -0,0 +1,32 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/4/4 星期二 14:54
+ * @Description: com.video.model.vo
+ * @Version: 1.0
+ */
+@Data
+@ToString
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value="树形菜单", description="")
+public class SystemMenuTreeVo {
+    @ApiModelProperty(value = "菜单ID")
+    private Long id;
+    @ApiModelProperty(value = "上级菜单ID")
+    private Long parentId;
+    @ApiModelProperty(value = "菜单名称")
+    private String menuName;
+    @ApiModelProperty(value = "子级菜单")
+    private List<SystemMenuTreeVo> children;
+}

+ 27 - 0
src/main/java/com/repair/model/vo/SystemMenuVo.java

@@ -0,0 +1,27 @@
+package com.repair.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/4/18 星期二 9:54
+ * @Description: com.video.model.vo
+ * @Version: 1.0
+ */
+@Data
+@ToString
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@ApiModel(value="菜单", description="")
+public class SystemMenuVo {
+    @ApiModelProperty(value = "菜单ID")
+    private Long id;
+
+    @ApiModelProperty(value = "菜单名称")
+    private String menuName;
+}

+ 14 - 0
src/main/java/com/repair/model/vo/UploadFileVo.java

@@ -0,0 +1,14 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/25 星期二 10:14
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class UploadFileVo {
+    private String resultUrl;
+}

+ 50 - 0
src/main/java/com/repair/model/vo/UserScheduleVo.java

@@ -0,0 +1,50 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/8/7 星期一 8:48
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class UserScheduleVo {
+    /**
+     * 数据ID
+     */
+    private int id;
+    /**
+     * 用户名称
+     */
+    private String userName;
+    /**
+     * 用户手机号
+     */
+    private String userPhone;
+    /**
+     * 工种名称
+     */
+    private String workTypeName;
+    /**
+     * 接单状态ID
+     */
+    private Integer state;
+    /**
+     * 接单状态
+     */
+    private String stateStr;
+
+    /**
+     * 排班ID
+     */
+    private Integer classId;
+
+    /**
+     * 排班集合
+     */
+    private List<ShiftSettingDataVo> shifts;
+
+}

+ 2 - 20
src/main/java/com/repair/model/vo/pendingOrderVo.java

@@ -22,32 +22,15 @@ public class pendingOrderVo {
     private int id;
 
     /**
-     * 用户ID
+     * 工单编号
      */
-    private int userId;
-
-    /**
-     * 校区ID
-     */
-    private int schoolId;
-
-    /**
-     * 报修物品ID
-     */
-    private int articleId;
-
-    /**
-     * 楼栋ID
-     */
-    private int buildId;
+    private String recordNo;
 
     /**
      * 报修时间
      */
     private Date reportTime;
 
-<<<<<<< HEAD
-=======
     /**
      * 报修姓名
      */
@@ -121,5 +104,4 @@ public class pendingOrderVo {
      * 工单状态
      */
     private String state;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 0 - 35
src/main/java/com/repair/model/vo/repairRefundVo.java

@@ -1,35 +0,0 @@
-package com.repair.model.vo;
-
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/**
- * @Author: binguo
- * @Date: 2023/8/2 星期三 10:00
- * @Description: com.repair.model.vo
- * @Version: 1.0
- */
-@Data
-public class repairRefundVo {
-    /**
-     * 退款单ID
-     */
-    private int id;
-
-    /**
-     * 支付总金额
-     */
-    private BigDecimal payPrice;
-
-    /**
-     * 报修单号
-     */
-    private String recordNo;
-
-    /**
-     * 报修工单ID
-     */
-    private int recordId;
-
-}

+ 43 - 0
src/main/java/com/repair/model/vo/routeDataVo.java

@@ -0,0 +1,43 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/24 星期一 11:22
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class routeDataVo {
+    /**
+     * 路由地址
+     * 说明:
+     * //用户路由
+     * userListInfo: {
+     * routes: ["报修","我的报修"],
+     * btns: []
+     * }
+     * // 师傅路由
+     * workerListInfo: {
+     * routes:["首页","工单管理","待处理池"],
+     * btns: ["协作","接单,"转单","报价","维修完成"]
+     * }
+     * // 后勤路由
+     * logisticsListInfo: {
+     * routes: ["首页","工单管理","待处理池","通讯录"],
+     * btns: ["表格编辑" ,"延时" ,"派单","审核”","分段器按钮" ]
+     * }
+     * // 管理者路由adminListInfo: {
+     * routes: ["首页","工单管理","待处理池","通讯录"],
+     * btns: ["首页分段器”","表格编辑","工单管理分段器","延时","审核",接单","报价","维修完成"]
+     * }
+     */
+    private List<String> routes;
+    /**
+     * 菜单名称
+     */
+    private List<String> btns;
+}

+ 21 - 0
src/main/java/com/repair/model/vo/shiftSettingVo.java

@@ -0,0 +1,21 @@
+package com.repair.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/31 星期一 10:38
+ * @Description: com.repair.model.vo
+ * @Version: 1.0
+ */
+@Data
+public class shiftSettingVo {
+    /**
+     * 班次名称
+     */
+    private String name;
+    /**
+     * 颜色名称
+     */
+    private String color;
+}

+ 0 - 13
src/main/java/com/repair/services/RepairArticleBuildService.java

@@ -2,10 +2,6 @@ package com.repair.services;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.pojo.RepairArticleBuild;
-<<<<<<< HEAD
-=======
-import com.repair.model.vo.ArticleBuildVo;
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 
 import java.util.List;
 
@@ -22,17 +18,8 @@ public interface RepairArticleBuildService extends IService<RepairArticleBuild>
 
     int insertRepairArticleBuild(RepairArticleBuild rab);
 
-<<<<<<< HEAD
     int updateRepairArticleBuild(RepairArticleBuild ra);
 
-=======
-    List<RepairArticleBuild> queryArticleBuildByUserIds(List<Integer> userIds);
-
-    int updateRepairArticleBuild(RepairArticleBuild ra);
-
-    List<ArticleBuildVo> queryArticleBuild(String userIds);
-
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
     int updateArticleBuildByUserId(int userId, RepairArticleBuild data);
 
     int deleteRepairArticleBuildById(int id);

+ 7 - 7
src/main/java/com/repair/services/RepairDispatchRecordService.java

@@ -3,11 +3,8 @@ package com.repair.services;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.pojo.RepairDispatchRecord;
 import com.repair.model.result.PageUtils;
-<<<<<<< HEAD
-=======
 import com.repair.model.vo.DisReceCountVo;
 import com.repair.model.vo.RepairCardNumberVo;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 
 import java.util.List;
 
@@ -20,13 +17,17 @@ import java.util.List;
  * @since 2023-07-20
  */
 public interface RepairDispatchRecordService extends IService<RepairDispatchRecord> {
-    boolean insertDispatchBatch(List<RepairDispatchRecord> rdr);
+    int insertRepairDispatchRecord(RepairDispatchRecord rns);
+
+    int updateRepairDispatchRecord(RepairDispatchRecord rns);
+
+    PageUtils<RepairDispatchRecord> queryPageRepairDispatchRecords(int currentPage, int pageCount, String name);
+
+    int deleteRepairDispatchRecordById(int id);
 
     RepairDispatchRecord getRepairById(int id);
 
     List<RepairDispatchRecord> getRepairs();
-<<<<<<< HEAD
-=======
 
     List<RepairCardNumberVo> queryRepairCardNumber(Integer recordId);
 
@@ -45,5 +46,4 @@ public interface RepairDispatchRecordService extends IService<RepairDispatchReco
     int updateDispatch(Integer recordId, RepairDispatchRecord rdr);
 
     DisReceCountVo queryDisReceCount(Integer userId);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 1 - 8
src/main/java/com/repair/services/RepairEvaluateService.java

@@ -3,10 +3,7 @@ package com.repair.services;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.pojo.RepairEvaluate;
 import com.repair.model.result.PageUtils;
-<<<<<<< HEAD
-=======
 import com.repair.model.vo.EvaluateVo;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import com.repair.model.vo.RecordEvaluateVo;
 
 import java.util.List;
@@ -20,11 +17,8 @@ import java.util.List;
  * @since 2023-07-10
  */
 public interface RepairEvaluateService extends IService<RepairEvaluate> {
-    List<RecordEvaluateVo> queryEvaluateList(String dateStr);
+    int insertRepairEvaluate(RepairEvaluate ra);
 
-<<<<<<< HEAD
-    boolean inserBatchEvaluate(List<RepairEvaluate> datas);
-=======
     int deleteRepairEvaluateById(int id);
 
     PageUtils<RepairEvaluate> queryPageList(int currentPage, int pageCount, String keyWord, String startTime, String endTime);
@@ -40,5 +34,4 @@ public interface RepairEvaluateService extends IService<RepairEvaluate> {
     boolean inserBatchEvaluate(List<RepairEvaluate> datas);
 
     List<RepairEvaluate> getRepairByRecordIds(List<Integer> recordIds);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 8 - 7
src/main/java/com/repair/services/RepairRecordService.java

@@ -17,13 +17,18 @@ import java.util.List;
  * @since 2023-07-24
  */
 public interface RepairRecordService extends IService<RepairRecord> {
+    int insertRepairRecord(RepairRecord rns);
+
+    int updateRepairRecord(RepairRecord rns);
+
+    PageUtils<RepairRecord> queryPageRepairRecords(int currentPage, int pageCount, String name);
+
+    int deleteRepairRecordById(int id);
+
     RepairRecord getRepairById(int id);
 
     List<RepairRecord> getRepairs();
 
-<<<<<<< HEAD
-    List<pendingOrderVo> queryPendingOrder();
-=======
     RepairRecordCountVo getRepairRecordCount(Integer userId);
 
     PageUtils<MyRepairRecordVo> queryMyRepairRecordList(int currentPage, int pageCount, Integer state, Integer userId);
@@ -99,12 +104,8 @@ public interface RepairRecordService extends IService<RepairRecord> {
     DetailsVo queryDetailData(Integer recordId);
 
     RepairTotalDataVo repairTotalData();
-<<<<<<< HEAD
 
     int queryRepairRepeat (Integer userId,Integer buildId,Integer articleId,String dateStr);
 
     PrintVo queryPrintData(Integer recordId);
-=======
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 }

+ 1 - 6
src/main/java/com/repair/services/RepairRefundRecordService.java

@@ -3,7 +3,6 @@ package com.repair.services;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.pojo.RepairRefundRecord;
 import com.repair.model.result.PageUtils;
-import com.repair.model.vo.repairRefundVo;
 
 import java.util.List;
 
@@ -16,9 +15,8 @@ import java.util.List;
  * @since 2023-07-20
  */
 public interface RepairRefundRecordService extends IService<RepairRefundRecord> {
-    List<repairRefundVo> queryRefundRecord();
+    int insertRepairRefundRecord(RepairRefundRecord rns);
 
-<<<<<<< HEAD
     int updateRepairRefundRecord(RepairRefundRecord rns);
 
     PageUtils<RepairRefundRecord> queryPageRepairRefundRecords(int currentPage, int pageCount, String name);
@@ -31,7 +29,4 @@ public interface RepairRefundRecordService extends IService<RepairRefundRecord>
 
     List<RepairRefundRecord> getRepairsByStatu();
 
-=======
-    boolean updateRdfundBatch(List<RepairRefundRecord> rrr);
->>>>>>> ad80b4e35f8af32a80da24920b5f5775bb80cda3
 }

+ 0 - 8
src/main/java/com/repair/services/RepairSystemMessagesService.java

@@ -1,9 +1,5 @@
 package com.repair.services;
 
-<<<<<<< HEAD
-import com.repair.model.pojo.RepairSystemMessages;
-=======
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.pojo.RepairSystemMessages;
 import com.repair.model.result.PageUtils;
@@ -20,9 +16,6 @@ import java.util.List;
  * @since 2023-07-20
  */
 public interface RepairSystemMessagesService extends IService<RepairSystemMessages> {
-<<<<<<< HEAD
-    boolean inserBatchSystemMessage(List<RepairSystemMessages> datas);
-=======
     int insertRepairSystemMessages(RepairSystemMessages rns);
 
     int updateRepairSystemMessages(RepairSystemMessages rns);
@@ -44,5 +37,4 @@ public interface RepairSystemMessagesService extends IService<RepairSystemMessag
     int readAllManageMessage(int userId);
 
     int queryMessageUnreadCount(int userId);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 0 - 7
src/main/java/com/repair/services/RepairTrackRecordService.java

@@ -2,11 +2,8 @@ package com.repair.services;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.repair.model.pojo.RepairTrackRecord;
-<<<<<<< HEAD
-=======
 import com.repair.model.result.PageUtils;
 import com.repair.model.vo.TrackDetailsVo;
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 
 import java.util.List;
 
@@ -19,9 +16,6 @@ import java.util.List;
  * @since 2023-07-20
  */
 public interface RepairTrackRecordService extends IService<RepairTrackRecord> {
-<<<<<<< HEAD
-    boolean insertTrackBatch(List<RepairTrackRecord> rdr);
-=======
     int insertRepairTrackRecord(RepairTrackRecord rns);
 
     int updateRepairTrackRecord(RepairTrackRecord rns);
@@ -35,5 +29,4 @@ public interface RepairTrackRecordService extends IService<RepairTrackRecord> {
     List<RepairTrackRecord> getRepairs();
 
     List<TrackDetailsVo> queryDetailData(Integer recordId);
->>>>>>> 1e8a464588113a3afc236ee3f004f164bb7128ff
 }

+ 0 - 0
src/main/java/com/repair/services/RepairUserService.java


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff