溪鸭夏 2 лет назад
Родитель
Сommit
3ca041ef0d

+ 125 - 74
.idea/workspace.xml

@@ -2,11 +2,11 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="981dbcd1-a700-4015-8567-2ccff8e76f0a" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/api/SmartUserControllerAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/api/SmartUserControllerAPI.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/template/controller/SmartDepartmentController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/controller/SmartDepartmentController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/model/request/insertSmartUserRequest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/model/request/insertSmartUserRequest.java" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar.original" beforeDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/services/SmartDepartmentService.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/services/SmartDepartmentService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/main/java/com/template/services/impl/SmartDepartmentServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/template/services/impl/SmartDepartmentServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar.original" beforeDir="false" afterPath="$PROJECT_DIR$/target/mybatis_plus-0.0.1-SNAPSHOT.jar.original" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/classes/" />
     <ignored path="$PROJECT_DIR$/target/" />
@@ -25,8 +25,26 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartDepartmentController.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="552">
-              <caret line="151" column="101" selection-start-line="151" selection-start-column="101" selection-end-line="151" selection-end-column="101" />
+            <state relative-caret-position="67">
+              <caret line="139" column="34" selection-start-line="139" selection-start-column="34" selection-end-line="139" selection-end-column="34" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/template/services/SmartDepartmentService.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="190">
+              <caret line="30" column="34" selection-start-line="30" selection-start-column="20" selection-end-line="30" selection-end-column="34" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/template/services/impl/SmartDepartmentServiceImpl.java">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="151">
+              <caret line="75" column="41" selection-start-line="75" selection-start-column="27" selection-end-line="75" selection-end-column="41" />
             </state>
           </provider>
         </entry>
@@ -34,8 +52,8 @@
       <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="292">
-              <caret line="991" column="72" selection-start-line="991" selection-start-column="72" selection-end-line="991" selection-end-column="72" />
+            <state relative-caret-position="1033">
+              <caret line="761" column="35" selection-start-line="761" selection-start-column="35" selection-end-line="761" selection-end-column="35" />
               <folding>
                 <element signature="imports" expanded="true" />
               </folding>
@@ -92,12 +110,6 @@
   </component>
   <component name="FindInProjectRecents">
     <findStrings>
-      <find>@Tr</find>
-      <find>家长关系</find>
-      <find>批量导入</find>
-      <find>schoolClassStr</find>
-      <find>&quot;grade&quot;</find>
-      <find>时间组</find>
       <find>班级数据无效,导入失败</find>
       <find>schoolClass</find>
       <find>if (oGrade != null &amp;&amp; oGrade.isPresent())</find>
@@ -121,7 +133,13 @@
       <find>系统中</find>
       <find>readXlsx</find>
       <find>百胜</find>
+      <find>getSmartByName</find>
+      <find>insertSmartDepartment</find>
+      <find>phones</find>
       <find>导入</find>
+      <find>&quot;家长</find>
+      <find>&quot;家长&quot;</find>
+      <find>其他</find>
     </findStrings>
     <replaceStrings>
       <replace />
@@ -151,6 +169,8 @@
         <option value="$PROJECT_DIR$/src/main/java/com/template/controller/SmartAuthorGroupController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/template/api/SmartUserControllerAPI.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/template/model/request/insertSmartUserRequest.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/template/services/SmartDepartmentService.java" />
+        <option value="$PROJECT_DIR$/src/main/java/com/template/services/impl/SmartDepartmentServiceImpl.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/template/controller/SmartDepartmentController.java" />
         <option value="$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java" />
       </list>
@@ -184,10 +204,11 @@
   <component name="MavenRunner">
     <option name="skipTests" value="true" />
   </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="-7" />
-    <option name="width" value="958" />
-    <option name="height" value="1039" />
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="-8" />
+    <option name="y" value="-8" />
+    <option name="width" value="1936" />
+    <option name="height" value="1048" />
   </component>
   <component name="ProjectView">
     <navigator proportions="" version="1">
@@ -378,15 +399,15 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1712903307839</updated>
-      <workItem from="1712903309092" duration="48791000" />
+      <workItem from="1712903309092" duration="54176000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="48791000" />
+    <option name="totallyTimeSpent" value="54176000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1048" extended-state="6" />
+    <frame x="-7" y="0" width="958" height="1039" extended-state="0" />
     <editor active="true" />
     <layout>
       <window_info id="JRebel" side_tool="true" />
@@ -396,7 +417,7 @@
       <window_info id="Favorites" side_tool="true" />
       <window_info id="Designer" />
       <window_info id="Web" side_tool="true" />
-      <window_info content_ui="combo" id="Project" order="0" weight="0.2707889" />
+      <window_info content_ui="combo" id="Project" order="0" weight="0.27394208" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info anchor="bottom" id="Spring" weight="0.32932165" />
       <window_info anchor="bottom" id="Event Log" side_tool="true" />
@@ -405,17 +426,17 @@
       <window_info anchor="bottom" id="Messages" weight="0.32928178" />
       <window_info anchor="bottom" id="Java Enterprise" weight="0.32932165" />
       <window_info anchor="bottom" id="Database Changes" />
-      <window_info anchor="bottom" id="Version Control" />
+      <window_info anchor="bottom" id="Version Control" weight="0.32932165" />
       <window_info anchor="bottom" id="JRebel Executor" />
       <window_info anchor="bottom" id="JRebel Console" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" weight="0.32932165" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.44861877" />
-      <window_info anchor="bottom" id="Debug" order="3" weight="0.4287293" />
+      <window_info anchor="bottom" id="Run" order="2" weight="0.45295405" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.88618785" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
-      <window_info anchor="right" id="Maven" weight="0.9343545" />
+      <window_info anchor="right" id="Maven" weight="0.8363029" />
       <window_info anchor="right" id="Palette" />
       <window_info anchor="right" id="Capture Analysis" />
       <window_info anchor="right" id="Database" />
@@ -460,71 +481,80 @@
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
-          <line>1087</line>
+          <line>1131</line>
           <properties />
           <option name="timeStamp" value="14" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
-          <line>2799</line>
+          <line>2935</line>
           <properties />
-          <option name="timeStamp" value="29" />
+          <option name="timeStamp" value="31" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
-          <line>2891</line>
+          <line>206</line>
           <properties />
-          <option name="timeStamp" value="31" />
+          <option name="timeStamp" value="50" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartDepartmentController.java</url>
+          <line>81</line>
+          <properties />
+          <option name="timeStamp" value="58" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
-          <line>158</line>
+          <line>365</line>
           <properties />
-          <option name="timeStamp" value="49" />
+          <option name="timeStamp" value="59" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
-          <line>206</line>
+          <line>277</line>
           <properties />
-          <option name="timeStamp" value="50" />
+          <option name="timeStamp" value="60" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
+          <line>222</line>
+          <properties />
+          <option name="timeStamp" value="61" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
+          <line>182</line>
+          <properties />
+          <option name="timeStamp" value="62" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
+          <line>166</line>
+          <properties />
+          <option name="timeStamp" value="63" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
           <line>174</line>
           <properties />
-          <option name="timeStamp" value="52" />
+          <option name="timeStamp" value="64" />
         </line-breakpoint>
         <line-breakpoint enabled="true" type="java-line">
           <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
-          <line>345</line>
+          <line>285</line>
           <properties />
-          <option name="timeStamp" value="57" />
+          <option name="timeStamp" value="65" />
+        </line-breakpoint>
+        <line-breakpoint enabled="true" type="java-line">
+          <url>file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java</url>
+          <line>2410</line>
+          <properties />
+          <option name="timeStamp" value="66" />
         </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/vo/BsClassNoVo.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="253">
-          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/vo/BaseImageVo.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="253">
-          <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/vo/BehaviourListVo.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="115">
-          <caret line="5" column="28" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="28" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/vo/BsDepartmentVo.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="253">
@@ -787,13 +817,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/pojo/SmartUser.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="185">
-          <caret line="72" column="20" selection-start-line="72" selection-start-column="20" selection-end-line="72" selection-end-column="20" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/seewo/ParentServiceBatchSaveOrUpdateParentsParam.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="2158">
@@ -829,6 +852,20 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/request/insertSmartUserRequest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="414">
+          <caret line="23" column="7" selection-start-line="23" selection-start-column="7" selection-end-line="23" selection-end-column="7" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/request/insertDepartmentRequest.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="299">
+          <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/template/api/SmartUserControllerAPI.java">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="77">
@@ -836,31 +873,45 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/request/insertSmartUserRequest.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/services/SmartDepartmentService.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="414">
-          <caret line="23" column="7" selection-start-line="23" selection-start-column="7" selection-end-line="23" selection-end-column="7" />
+        <state relative-caret-position="190">
+          <caret line="30" column="34" selection-start-line="30" selection-start-column="20" selection-end-line="30" selection-end-column="34" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/request/insertDepartmentRequest.java">
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/request/updateDepartmentRequest.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="299">
+        <state relative-caret-position="-102">
           <caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartDepartmentController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="552">
-          <caret line="151" column="101" selection-start-line="151" selection-start-column="101" selection-end-line="151" selection-end-column="101" />
+        <state relative-caret-position="67">
+          <caret line="139" column="34" selection-start-line="139" selection-start-column="34" selection-end-line="139" selection-end-column="34" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/model/pojo/SmartUser.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="295">
+          <caret line="84" column="19" selection-start-line="84" selection-start-column="19" selection-end-line="84" selection-end-column="19" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/template/services/impl/SmartDepartmentServiceImpl.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="151">
+          <caret line="75" column="41" selection-start-line="75" selection-start-column="27" selection-end-line="75" selection-end-column="41" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/main/java/com/template/controller/SmartUserController.java">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="292">
-          <caret line="991" column="72" selection-start-line="991" selection-start-column="72" selection-end-line="991" selection-end-column="72" />
+        <state relative-caret-position="1033">
+          <caret line="761" column="35" selection-start-line="761" selection-start-column="35" selection-end-line="761" selection-end-column="35" />
           <folding>
             <element signature="imports" expanded="true" />
           </folding>

+ 2 - 2
src/main/java/com/template/controller/SmartDepartmentController.java

@@ -79,7 +79,7 @@ public class SmartDepartmentController implements SmartDepartmentControllerAPI {
         }
 
         //新增的时候判断同级部门是否存在重复部门名称数据
-        SmartDepartment exist = smartDepartmentService.getSmartByName(smartDepartment.getName());
+        SmartDepartment exist = smartDepartmentService.getSmartByName(smartDepartment.getName(), smartDepartment.getParentId());
         if (exist != null && exist.getParentId().equals(smartDepartment.getParentId())) {
             return CommonResult.fail("同级部门中,"+smartDepartment.getName() + "部门名称数据已存在,请勿重复添加!");
         }
@@ -148,7 +148,7 @@ public class SmartDepartmentController implements SmartDepartmentControllerAPI {
             return CommonResult.fail("部门数据无效,修改失败");
         }
 
-        SmartDepartment exist = smartDepartmentService.getSmartByName(udr.getName());
+        SmartDepartment exist = smartDepartmentService.getSmartByName(udr.getName(), udr.getParentId());
         if (exist != null && !exist.getId().equals(udr.getId()) && exist.getParentId().equals(oldData.getParentId())) {
             return CommonResult.fail(udr.getName() + "部门名称数据已存在,请勿重复添加!");
         }

+ 83 - 49
src/main/java/com/template/controller/SmartUserController.java

@@ -197,11 +197,11 @@ public class SmartUserController implements SmartUserControllerAPI {
 
         //判断是否存在重复数据
         List<String> cardNos = studentDatas.stream().map(SmartUser::getCardNo).collect(Collectors.toList());
-        if(cardNos == null){
+        if (cardNos == null) {
             return CommonResult.fail("文档内容为空,导入失败");
         }
 
-        if(cardNos.size() <= 0){
+        if (cardNos.size() <= 0) {
             return CommonResult.fail("文档内容为空,导入失败");
         }
         List<SmartUser> existUsers = smartUserService.querySmartUserByCardNos(cardNos);
@@ -284,15 +284,15 @@ public class SmartUserController implements SmartUserControllerAPI {
 
             //region 希沃新增编辑学生家长信息
             if (useXw == 1) {
-                int num =  (int)Math.ceil((double)studentDatas.size() / 100);
-                for (int count = 1;count <= num;count ++) {
+                int num = (int) Math.ceil((double) studentDatas.size() / 100);
+                for (int count = 1; count <= num; count++) {
                     int startIndex = (count - 1) * 100;
                     int endIndex = count * 100;
-                    if(count == num){
+                    if (count == num) {
                         endIndex = startIndex + (studentDatas.size() % 100);
                     }
 
-                    List<SmartUser> currentStudentDatas = studentDatas.subList(startIndex ,endIndex);//结尾不包含下标100
+                    List<SmartUser> currentStudentDatas = studentDatas.subList(startIndex, endIndex);//结尾不包含下标100
                     //学生与家长列表,最大100条
                     List<ParentServiceBatchSaveOrUpdateParentsParam.StudentParentsItem> studentParents = new ArrayList<>();
                     for (SmartUser student : currentStudentDatas) {
@@ -314,7 +314,7 @@ public class SmartUserController implements SmartUserControllerAPI {
                             ++i;
                         }
 
-                        if(parents != null && parents.size() > 0){
+                        if (parents != null && parents.size() > 0) {
                             studentParents.add(students);
                             //家长列表,最多4个
                             students.setParents(parents);
@@ -361,17 +361,38 @@ public class SmartUserController implements SmartUserControllerAPI {
         //endregion
 
         List<SmartUser> parents = result.stream().filter(e -> e.getIdentityId().intValue() == eIdentityStatu.Parent.getValue()).collect(Collectors.toList());
+
+        //双胞胎家长
+        List<SmartUser> newParents = new ArrayList<>();
+
         if (cardNos != null && cardNos.size() > 0) {
             List<SmartUser> students = smartUserService.querySmartUserByCardNos(cardNos);
             for (SmartUser parent : parents) {
                 Optional<SmartUser> student = students.stream().filter(e -> e.getCardNo().equals(parent.getAffiliate())).findFirst();
                 if (student != null && student.isPresent()) {
-                    parent.setAffiliate(String.valueOf(student.get().getId()));
+                    //先查找是否存在
+                    Optional<SmartUser> newData = newParents.stream().filter(e -> e.getName().equals(parent.getName()) && e.getPhone().equals(parent.getPhone()) && e.getShip().equals(parent.getShip())).findFirst();
+                    if (newData != null && newData.isPresent()) {
+                        String affiliate = newData.get().getAffiliate() + "," + student.get().getId();
+                        newData.get().setAffiliate(affiliate);
+                    } else {
+                        SmartUser newParent = new SmartUser();
+                        newParent.setName(parent.getName());
+                        newParent.setDepartmentId(parent.getDepartmentId());
+                        newParent.setPhone(parent.getPhone());
+                        newParent.setIdentityId(parent.getIdentityId());
+                        newParent.setSexId(parent.getSexId());
+                        newParent.setIsCancel(parent.getIsCancel());
+                        newParent.setAffiliate(String.valueOf(student.get().getId()));
+                        newParent.setShip(parent.getShip());
+                        newParents.add(newParent);
+                    }
                 }
+
             }
-            if (parents != null && parents.size() > 0) {
+            if (newParents != null && newParents.size() > 0) {
                 //批量存储家长信息
-                boolean resultBool = smartUserService.saveBatch(parents);
+                boolean resultBool = smartUserService.saveBatch(newParents);
                 if (!resultBool) {
                     return CommonResult.fail("导入失败!");
                 }
@@ -588,16 +609,14 @@ public class SmartUserController implements SmartUserControllerAPI {
                             return CommonResult.fail(name + "的班级不能为空");
                         }
 
-                        //手机号重复判断
+                        //不判断重复性 因为会出现双胞胎
                         String phone = dataFormatter.formatCellValue(row.getCell(10));
-                        if (!ObjectUtils.isEmpty(phone)) {
-                            phones.add(phone);
-                        }
-                        if (phones.stream().distinct().count() != phones.size()) {
-                            return CommonResult.fail("导入的Excel中,联系电话:" + phone + "存在重复数据");
-                        }
-
-
+//                        if (!ObjectUtils.isEmpty(phone)) {
+//                            phones.add(phone);
+//                        }
+//                        if (phones.stream().distinct().count() != phones.size()) {
+//                            return CommonResult.fail("导入的Excel中,联系电话:" + phone + "存在重复数据");
+//                        }
 
                         //性别是否为空判断
                         String sex = dataFormatter.formatCellValue(row.getCell(4));
@@ -702,10 +721,15 @@ public class SmartUserController implements SmartUserControllerAPI {
                         }
 
                         //region 家属
-                        String family = dataFormatter.formatCellValue(row.getCell(11));//家属
-                        if (!ObjectUtils.isEmpty(family)) {
+
+                        if (!ObjectUtils.isEmpty(phone)) {
+                            if (phone.length() != 11) {
+                                return CommonResult.fail(name + "的学生家长手机号长度不符合标准");
+                            }
+
                             SmartUser familyOne = new SmartUser();
-                            familyOne.setName(family);
+                            String family = dataFormatter.formatCellValue(row.getCell(11));//家属
+                            familyOne.setName(!ObjectUtils.isEmpty(family) ? family : "家长");
                             familyOne.setDepartmentId(familyDepartmentId);
                             familyOne.setPhone(phone);
                             familyOne.setIdentityId(eIdentityStatu.Parent.getValue());
@@ -713,30 +737,33 @@ public class SmartUserController implements SmartUserControllerAPI {
                             familyOne.setIsCancel(eLogOff.Unlogout.getValue());
                             familyOne.setAffiliate(user.getCardNo());
                             String familyShip = dataFormatter.formatCellValue(row.getCell(12));//家属与本人关系
-                            familyOne.setShip(familyShip == null ? "" : familyShip);
+                            familyOne.setShip(familyShip == null ? "其他" : familyShip);
                             result.add(familyOne);
                         }
 
-                        String familyNameTwo = dataFormatter.formatCellValue(row.getCell(14));//家属2
-                        if (!ObjectUtils.isEmpty(familyNameTwo)) {
+                        String phoneTwo = dataFormatter.formatCellValue(row.getCell(13));//联系电话2
+                        if (!ObjectUtils.isEmpty(phoneTwo)) {
+                            if (phoneTwo.length() != 11) {
+                                return CommonResult.fail(name + "的学生家长手机号长度不符合标准");
+                            }
                             SmartUser familyTwo = new SmartUser();
-                            familyTwo.setName(familyNameTwo);
+                            String familyNameTwo = dataFormatter.formatCellValue(row.getCell(14));//家属2
+                            familyTwo.setName(!ObjectUtils.isEmpty(familyNameTwo) ? familyNameTwo : "家长");
                             familyTwo.setDepartmentId(familyDepartmentId);
-                            String phoneTwo = dataFormatter.formatCellValue(row.getCell(13));//联系电话2
                             familyTwo.setPhone(phoneTwo == null ? "" : phoneTwo);
                             familyTwo.setIdentityId(eIdentityStatu.Parent.getValue());
                             familyTwo.setSexId(eSexStatu.Man.getValue());
                             familyTwo.setIsCancel(eLogOff.Unlogout.getValue());
                             familyTwo.setAffiliate(user.getCardNo());
                             String familyShipTwo = dataFormatter.formatCellValue(row.getCell(15));//家属与本人关系2
-                            familyTwo.setShip(familyShipTwo == null ? "" : familyShipTwo);
+                            familyTwo.setShip(familyShipTwo == null ? "其他" : familyShipTwo);
                             result.add(familyTwo);
                         }
                         //endregion
 
                         //希沃不允许一个学生家长的两个手机号重复 所以做一个重复性判断
-                        if(!ObjectUtils.isEmpty(phone) && !ObjectUtils.isEmpty(dataFormatter.formatCellValue(row.getCell(13)))){
-                            if(phone.equals(dataFormatter.formatCellValue(row.getCell(13)))){
+                        if (!ObjectUtils.isEmpty(phone) && !ObjectUtils.isEmpty(dataFormatter.formatCellValue(row.getCell(13)))) {
+                            if (phone.equals(dataFormatter.formatCellValue(row.getCell(13)))) {
                                 return CommonResult.fail(name + "的学生家长手机号不可重复");
                             }
                         }
@@ -865,15 +892,14 @@ public class SmartUserController implements SmartUserControllerAPI {
                             return CommonResult.fail(name + "的班级不能为空");
                         }
 
-                        //手机号重复判断
+                        //不判断重复性 因为会出现双胞胎
                         String phone = dataFormatter.formatCellValue(row.getCell(10));
-                        if (!ObjectUtils.isEmpty(phone)) {
-                            phones.add(phone);
-                        }
-                        if (phones.stream().distinct().count() != phones.size()) {
-                            return CommonResult.fail("导入的Excel中,联系电话:" + phone + "存在重复数据");
-                        }
-
+//                        if (!ObjectUtils.isEmpty(phone)) {
+//                            phones.add(phone);
+//                        }
+//                        if (phones.stream().distinct().count() != phones.size()) {
+//                            return CommonResult.fail("导入的Excel中,联系电话:" + phone + "存在重复数据");
+//                        }
 
 
                         //性别是否为空判断
@@ -980,10 +1006,15 @@ public class SmartUserController implements SmartUserControllerAPI {
                         }
 
                         //region 家属
-                        String family = dataFormatter.formatCellValue(row.getCell(11));//家属
-                        if (!ObjectUtils.isEmpty(family)) {
+
+                        if (!ObjectUtils.isEmpty(phone)) {
+                            if (phone.length() != 11) {
+                                return CommonResult.fail(name + "的学生家长手机号长度不符合标准");
+                            }
+
                             SmartUser familyOne = new SmartUser();
-                            familyOne.setName(family);
+                            String family = dataFormatter.formatCellValue(row.getCell(11));//家属
+                            familyOne.setName(!ObjectUtils.isEmpty(family) ? family : "家长");
                             familyOne.setDepartmentId(familyDepartmentId);
                             familyOne.setPhone(phone);
                             familyOne.setIdentityId(eIdentityStatu.Parent.getValue());
@@ -991,30 +1022,33 @@ public class SmartUserController implements SmartUserControllerAPI {
                             familyOne.setIsCancel(eLogOff.Unlogout.getValue());
                             familyOne.setAffiliate(user.getCardNo());
                             String familyShip = dataFormatter.formatCellValue(row.getCell(12));//家属与本人关系
-                            familyOne.setShip(familyShip == null ? "" : familyShip);
+                            familyOne.setShip(familyShip == null ? "其他" : familyShip);
                             result.add(familyOne);
                         }
 
-                        String familyNameTwo = dataFormatter.formatCellValue(row.getCell(14));//家属2
-                        if (!ObjectUtils.isEmpty(familyNameTwo)) {
+                        String phoneTwo = dataFormatter.formatCellValue(row.getCell(13));//联系电话2
+                        if (!ObjectUtils.isEmpty(phoneTwo)) {
+                            if (phoneTwo.length() != 11) {
+                                return CommonResult.fail(name + "的学生家长手机号长度不符合标准");
+                            }
                             SmartUser familyTwo = new SmartUser();
-                            familyTwo.setName(familyNameTwo);
+                            String familyNameTwo = dataFormatter.formatCellValue(row.getCell(14));//家属2
+                            familyTwo.setName(!ObjectUtils.isEmpty(familyNameTwo) ? familyNameTwo : "家长");
                             familyTwo.setDepartmentId(familyDepartmentId);
-                            String phoneTwo = dataFormatter.formatCellValue(row.getCell(13));//联系电话2
                             familyTwo.setPhone(phoneTwo == null ? "" : phoneTwo);
                             familyTwo.setIdentityId(eIdentityStatu.Parent.getValue());
                             familyTwo.setSexId(eSexStatu.Man.getValue());
                             familyTwo.setIsCancel(eLogOff.Unlogout.getValue());
                             familyTwo.setAffiliate(user.getCardNo());
                             String familyShipTwo = dataFormatter.formatCellValue(row.getCell(15));//家属与本人关系2
-                            familyTwo.setShip(familyShipTwo == null ? "" : familyShipTwo);
+                            familyTwo.setShip(familyShipTwo == null ? "其他" : familyShipTwo);
                             result.add(familyTwo);
                         }
                         //endregion
 
                         //希沃不允许一个学生家长的两个手机号重复 所以做一个重复性判断
-                        if(!ObjectUtils.isEmpty(phone) && !ObjectUtils.isEmpty(dataFormatter.formatCellValue(row.getCell(13)))){
-                            if(phone.equals(dataFormatter.formatCellValue(row.getCell(13)))){
+                        if (!ObjectUtils.isEmpty(phone) && !ObjectUtils.isEmpty(dataFormatter.formatCellValue(row.getCell(13)))) {
+                            if (phone.equals(dataFormatter.formatCellValue(row.getCell(13)))) {
                                 return CommonResult.fail(name + "的学生家长手机号不可重复");
                             }
                         }

+ 2 - 0
src/main/java/com/template/services/SmartDepartmentService.java

@@ -28,6 +28,8 @@ public interface SmartDepartmentService extends IService<SmartDepartment> {
 
     SmartDepartment getSmartByName(String name);
 
+    SmartDepartment getSmartByName(String name,Integer parentId);
+
     List<SmartDepartment> getSmartsByName(String name);
 
     int existDataByName(String name);

+ 11 - 0
src/main/java/com/template/services/impl/SmartDepartmentServiceImpl.java

@@ -73,6 +73,17 @@ public class SmartDepartmentServiceImpl extends ServiceImpl<SmartDepartmentMappe
     }
 
     @Override
+    public SmartDepartment getSmartByName(String name, Integer parentId) {
+        QueryWrapper<SmartDepartment> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.hasText(name),"name", name);
+        queryWrapper.eq(parentId != null,"parent_id", parentId);
+
+        SmartDepartment result = smartDepartmentMapper.selectOne(queryWrapper);
+
+        return result;
+    }
+
+    @Override
     public List<SmartDepartment> getSmartsByName(String name) {
         QueryWrapper<SmartDepartment> queryWrapper = new QueryWrapper<>();
         queryWrapper.like(StringUtils.hasText(name),"name", name);

BIN
target/mybatis_plus-0.0.1-SNAPSHOT.jar.original