Explorar o código

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

Min hai 1 ano
pai
achega
54a57766db
Modificáronse 100 ficheiros con 146 adicións e 7382 borrados
  1. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/css/customer.css
  2. 4 0
      fhKeeper/formulahousekeeper/inva_4_tivo/css/workshop/workshop.css
  3. BIN=BIN
      fhKeeper/formulahousekeeper/inva_4_tivo/image/workshopimage/computerProductTwo.png
  4. 33 7
      fhKeeper/formulahousekeeper/inva_4_tivo/workshop.html
  5. 47 42
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  6. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  7. 27 13
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java
  8. 0 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  9. 17 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java
  10. 2 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java
  11. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties
  12. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties
  13. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  14. 0 6
      fhKeeper/formulahousekeeper/management-workshop/pom.xml
  15. 0 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/PlatformStartApplication.java
  16. 0 42
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/config/LdapConfig.java
  17. 0 90
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/CompanyController.java
  18. 0 101
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/EarningSnapshotController.java
  19. 0 39
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseItemController.java
  20. 0 193
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseMainTypeController.java
  21. 0 109
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseSheetController.java
  22. 0 118
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseTypeController.java
  23. 0 10
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FeishuInfoController.java
  24. 0 48
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceAuditorController.java
  25. 0 21
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceCalculateController.java
  26. 0 184
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceController.java
  27. 0 23
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceFixedcolnameController.java
  28. 0 97
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceImportController.java
  29. 0 21
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceProjectsController.java
  30. 0 153
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceTblcuscolController.java
  31. 0 111
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/UserController.java
  32. 0 10
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  33. 0 105
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/EarningSnapshot.java
  34. 0 3
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Project.java
  35. 0 63
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectAddcostItem.java
  36. 0 64
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectAddcostRecord.java
  37. 0 60
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectBasecost.java
  38. 0 54
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectBasecostSetting.java
  39. 0 48
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectPercentage.java
  40. 0 74
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectProfession.java
  41. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/EarningSnapshotMapper.java
  42. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceAuditorMapper.java
  43. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceCalculateMapper.java
  44. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceFixedcolnameMapper.java
  45. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceImportMapper.java
  46. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceMapper.java
  47. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceProjectsMapper.java
  48. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceTblcuscolMapper.java
  49. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectAddcostItemMapper.java
  50. 0 19
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectAddcostRecordMapper.java
  51. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectBasecostMapper.java
  52. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectBasecostSettingMapper.java
  53. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectPercentageMapper.java
  54. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectProfessionMapper.java
  55. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/EarningSnapshotService.java
  56. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseItemService.java
  57. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseMainTypeService.java
  58. 0 37
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseSheetService.java
  59. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseTypeService.java
  60. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceAuditorService.java
  61. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceCalculateService.java
  62. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceFixedcolnameService.java
  63. 0 25
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceImportService.java
  64. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceProjectsService.java
  65. 0 36
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceService.java
  66. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceTblcuscolService.java
  67. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProfessionService.java
  68. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectAddcostItemService.java
  69. 0 22
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectAddcostRecordService.java
  70. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectBasecostService.java
  71. 0 16
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectBasecostSettingService.java
  72. 0 27
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectPercentageService.java
  73. 0 24
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectProfessionService.java
  74. 0 10
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/UserService.java
  75. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/EarningSnapshotServiceImpl.java
  76. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseItemServiceImpl.java
  77. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseMainTypeServiceImpl.java
  78. 0 827
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java
  79. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseTypeServiceImpl.java
  80. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceAuditorServiceImpl.java
  81. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceCalculateServiceImpl.java
  82. 0 69
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceFixedcolnameServiceImpl.java
  83. 0 569
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceImportServiceImpl.java
  84. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceProjectsServiceImpl.java
  85. 0 1721
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java
  86. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceTblcuscolServiceImpl.java
  87. 4 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java
  88. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProfessionServiceImpl.java
  89. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectAddcostItemServiceImpl.java
  90. 0 167
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectAddcostRecordServiceImpl.java
  91. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectBasecostServiceImpl.java
  92. 0 20
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectBasecostSettingServiceImpl.java
  93. 0 417
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java
  94. 0 169
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectProfessionServiceImpl.java
  95. 0 549
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  96. 6 4
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-privatelew.yml
  97. 0 15
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application.yml
  98. 0 25
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/EarningSnapshotMapper.xml
  99. 0 73
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ExpenseItemMapper.xml
  100. 0 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ExpenseMainTypeMapper.xml

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/css/customer.css

@@ -81,7 +81,7 @@ html {font-size: 10px; -webkit-text-size-adjust:none; -webkit-tap-highlight-colo
     top: 6.25rem;
     left: 0;
     background: #fff;
-    height: 18.75rem;
+    height: 20.75rem;
     border-top: .0625rem solid rgb(163, 163, 163);
     box-shadow: 1px 3px 5px 0px #ddd;
 }

+ 4 - 0
fhKeeper/formulahousekeeper/inva_4_tivo/css/workshop/workshop.css

@@ -10,6 +10,10 @@
     box-sizing: border-box;
 }
 
+.tils::before {
+    height: 0 !important;
+}
+
 .content {
     width: 1200px;    
     margin: auto;

BIN=BIN
fhKeeper/formulahousekeeper/inva_4_tivo/image/workshopimage/computerProductTwo.png


+ 33 - 7
fhKeeper/formulahousekeeper/inva_4_tivo/workshop.html

@@ -27,7 +27,7 @@
     <script src="./js/jquery1.42.min.js"></script>
   </head>
   <body>
-    <nav class="navbar headers" style="z-index: 9">
+    <!-- <nav class="navbar headers" style="z-index: 9">
       <div class="navigationBar" id="navigationBar">
         <div class="navigationBarBack" id="all"></div>
         <div class="navigationTitle abc" id="abc">
@@ -56,7 +56,33 @@
           </div>
         </div>
       </div>
-    </nav>
+    </nav> -->
+    <nav class="navbar headers" style="z-index: 9;">
+      <div class="navigationBar" id="navigationBar">
+          <div class="navigationBarBack" id="all"></div>
+          <div class="navigationTitle abc" id="abc">
+              <div class="flexs">
+                  <div class="inBlock"><a href="./index.html"><img id="loGo" src="./image/logo.jpg" alt=""></a></div>
+                  <div class="inBlock">
+                      <ul class="navigationUl fonsColorBai aus">
+                          <li class="til" id="productHov">产品矩阵</li>
+                          <li class="til"><a href="#customer"> 客户评价</a></li>
+                          <li class="til"><a href="./mobile.html">手机版</a></li>
+                          <li class="til"><a href="#pricing">产品定价</a></li>
+                          <li class="til"><a href="./about.html">关于我们</a></li>
+                      </ul>
+                  </div>
+              </div>
+
+              <div class="flexs">
+                  <ul class="navigationUl fonsColorBai auss">
+                      <!-- <li class="til"><a href="#">立即注册</a></li> -->
+                      <li class="til"><a href="http://workshop.ttkuaiban.com">后台登录</a></li>
+                  </ul>
+              </div>
+          </div>
+      </div>
+  </nav>
     <!-- 咨询客服 -->
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
@@ -291,7 +317,7 @@
         <div class="computer_main" style="display: none;">
           <div class="computer_left con" style="right: 0;">
             <div class="computer_left_title">
-              <img src="./image/workshopimage/computerProduct.png" alt="">
+              <img src="./image/workshopimage/productIcon.png" alt="">
               产品管理
             </div>
             <div class="computer_left_List">
@@ -311,13 +337,13 @@
             </div>
           </div>
           <div class="computer_right con" style="left: 0;">
-            <img src="./image/workshopimage/computerWork.png" alt="">
+            <img src="./image/workshopimage/computerProduct.png" alt="">
           </div>
         </div>
         <div class="computer_main" style="display: none;">
           <div class="computer_left con" style="left: 0;">
             <div class="computer_left_title">
-              <img src="./image/workshopimage/computerSched.png" alt="">
+              <img src="./image/workshopimage/schedIcon.png" alt="">
               排产计划
             </div>
             <div class="computer_left_List">
@@ -337,7 +363,7 @@
             </div>
           </div>
           <div class="computer_right con" style="right: 0;">
-            <img src="./image/workshopimage/computerWork.png" alt="">
+            <img src="./image/workshopimage/computerSched.png" alt="">
           </div>
         </div>
         <div class="computer_main" style="display: none;">
@@ -359,7 +385,7 @@
             </div>
           </div>
           <div class="computer_right con" style="left: 0;">
-            <img src="./image/workshopimage/computerWork.png" alt="">
+            <img src="./image/workshopimage/computerProductTwo.png" alt="">
           </div>
         </div>
       </div>

+ 47 - 42
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -3425,48 +3425,53 @@ public class WeiXinCorpController {
         if (json.containsKey("auth_corp_info")){
             String edition_id = json.getJSONObject("edition_info").getJSONArray("agent")
                     .getJSONObject(0).getString("edition_id");
-            switch (edition_id){
-                //基础版
-                case "sp17da4a6e6f2a91f8":
-                    newCompany.setPackageProject(0);
-                    newCompany.setPackageOa(0);
-                    newCompany.setPackageExpense(0);
-                    newCompany.setPackageCustomer(0);
-                    newCompany.setPackageEngineering(0);
-                    newCompany.setPackageProvider(0);
-                    break;
-                //专业版
-                case "sp4a30d92ede178afd":
-                    newCompany.setPackageProject(1);//项目协作平台
-                    newCompany.setPackageOa(0);//OA平台;请假,出差等
-                    newCompany.setPackageExpense(1);//费用报销
-                    newCompany.setPackageCustomer(0);//客户管理
-                    newCompany.setPackageEngineering(0);//工程专业
-                    newCompany.setPackageProvider(0);//供应商模块
-                    break;
-                //建筑版
-                case "sp29bdb884f4a78392":
-                    newCompany.setPackageProject(1);//项目协作平台
-                    newCompany.setPackageOa(0);//OA平台;请假,出差等
-                    newCompany.setPackageExpense(1);//费用报销
-                    newCompany.setPackageCustomer(1);//客户管理
-                    newCompany.setPackageEngineering(1);//工程专业
-                    newCompany.setPackageProvider(0);//供应商模块
-                    break;
-                //旗舰版
-                case "sp852fec2d1198957a":
-                    newCompany.setPackageProject(1);//项目协作平台
-                    newCompany.setPackageOa(1);//OA平台;请假,出差等
-                    newCompany.setPackageExpense(1);//费用报销
-                    newCompany.setPackageCustomer(1);//客户管理
-                    newCompany.setPackageEngineering(0);//工程专业
-                    newCompany.setPackageProvider(1);//供应商模块
-                    break;
-            }
-            companyMapper.updateById(newCompany);
-            System.out.println("已成功变更版本,版本号为:"+edition_id);
-            //开通模块和权限
-            rootRole(wxCorpInfo.getCompanyId());
+            //非体验版
+            if (!"sp4abb17b6c9df6f9f".equals(edition_id)) {
+                switch (edition_id){
+                    //基础版
+                    case "sp17da4a6e6f2a91f8":
+                        newCompany.setPackageProject(0);
+                        newCompany.setPackageOa(0);
+                        newCompany.setPackageExpense(0);
+                        newCompany.setPackageCustomer(0);
+                        newCompany.setPackageEngineering(0);
+                        newCompany.setPackageProvider(0);
+                        break;
+                    //专业版
+                    case "sp4a30d92ede178afd":
+                        newCompany.setPackageProject(1);//项目协作平台
+                        newCompany.setPackageOa(0);//OA平台;请假,出差等
+                        newCompany.setPackageExpense(1);//费用报销
+                        newCompany.setPackageCustomer(0);//客户管理
+                        newCompany.setPackageEngineering(0);//工程专业
+                        newCompany.setPackageProvider(0);//供应商模块
+                        break;
+                    //建筑版
+                    case "sp29bdb884f4a78392":
+                        newCompany.setPackageProject(1);//项目协作平台
+                        newCompany.setPackageOa(0);//OA平台;请假,出差等
+                        newCompany.setPackageExpense(1);//费用报销
+                        newCompany.setPackageCustomer(1);//客户管理
+                        newCompany.setPackageEngineering(1);//工程专业
+                        newCompany.setPackageProvider(0);//供应商模块
+                        break;
+                    //旗舰版
+                    case "sp852fec2d1198957a":
+                        newCompany.setPackageProject(1);//项目协作平台
+                        newCompany.setPackageOa(1);//OA平台;请假,出差等
+                        newCompany.setPackageExpense(1);//费用报销
+                        newCompany.setPackageCustomer(1);//客户管理
+                        newCompany.setPackageEngineering(0);//工程专业
+                        newCompany.setPackageProvider(1);//供应商模块
+                        break;
+                }
+                companyMapper.updateById(newCompany);
+                System.out.println("已成功变更版本,版本号为:"+edition_id);
+                //开通模块和权限
+                rootRole(wxCorpInfo.getCompanyId());
+            } else {
+                System.out.println("=========体验版=======");
+            }
         }else {
             System.out.println("++++++++++++++++++++++"+"版本变更失败!"+"++++++++++++++++++++++++");
         }

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -946,7 +946,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
                 item.add(first.isPresent()?first.get().getName():"");
                 item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
                 item.add(record.getRemark()==null?"":record.getRemark());
-                switch (record.getStatus()){
+                switch (expenseItem.getStatus()){
                     case 0:
                         item.add("审核通过");
                         break;
@@ -1014,7 +1014,7 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
         expenseItemMapper.updateById(item);
         ExpenseItem expenseItem = expenseItemMapper.selectById(itemId);
         //查询单据下的全部费用项目状态
-        int count = expenseItemMapper.selectCount(new QueryWrapper<ExpenseItem>().eq("expense_id", item.getExpenseId()).ne("status", 0));
+        int count = expenseItemMapper.selectCount(new QueryWrapper<ExpenseItem>().eq("expense_id", expenseItem.getExpenseId()).ne("status", 0));
         if (count == 0) {
             ExpenseSheet sheet = new ExpenseSheet();
             sheet.setId(expenseItem.getExpenseId());

+ 27 - 13
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java

@@ -26,6 +26,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -735,7 +736,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
             for (Map<String, Object> map : projectTimeList) {
-                Integer projectId = (Integer) map.get("projectId");
+                Integer projectId = ((Long) map.get("projectId")).intValue();
                 String curProjectCode = (String) map.get("projectCode");
                 String categoryName = (String) map.get("categoryName");
                 String curProject = (String) map.get("project");
@@ -778,7 +779,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 //                    System.out.println("财务数据中未找到用户:"+creatorId);
                 }
 
-                if (curProject.equals(item.project)) {
+                //改成按照projectId匹配,之前projectname可能存在重名问题。
+                if (projectId.equals(item.projectId)) {
                     item.workingTime += workingTime;
                     item.cost = item.cost.add(cost);
                     item.salary = item.salary.add(salary);
@@ -839,7 +841,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             if (assignNoProUser != null && assignNoProUser) {
                 List<FinanceProjects> notInFPList = new ArrayList<FinanceProjects>();
                 financeProjects.forEach(f->{
-                    if (!projectTimeList.stream().anyMatch(map->((Integer)map.get("projectId")).equals(f.getProjectId()))) {
+                    if (!projectTimeList.stream().anyMatch(map->(((Long)map.get("projectId"))).intValue() == f.getProjectId())) {
                         notInFPList.add(f);
                     }
                 });
@@ -935,6 +937,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
             //查找所有部门
             List<Department> allDepartments = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
             //按项目名称分组
+            DecimalFormat workTimeFormatter = new DecimalFormat("0.00");
             if (groupByCategory == 0) {
                 pList.forEach(p->{
                     p.cost = p.cost.setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -958,7 +961,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     //部门空出来
                     rowData.add("");
                     userCustoms.forEach(userCustom -> {rowData.add("");});
-                    rowData.add(p.workingTime+"");
+                    rowData.add(workTimeFormatter.format(p.workingTime));
                     rowData.add(p.salary.toPlainString());
                     rowData.add(p.bonus.toPlainString());
                     rowData.add(p.allowance.toPlainString());
@@ -981,7 +984,10 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 
                     //获取成员
                     for (Map<String, Object> membMap : projectTimeList) {
-                        if (membMap.get("project").equals(p.project)) {
+//                        if (membMap.get("project").equals(p.project)) {
+                        Integer projectId = ((Long) membMap.get("projectId")).intValue();
+                        //修改为按照projectId匹配
+                        if (projectId.equals(p.projectId)) {
                             //匹配到项目了
                             List<String> membRowData = new ArrayList<String>();
                             membRowData.add(p.projectCode);
@@ -1040,7 +1046,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                                         break;
                                 }
                             }
-                            membRowData.add(workingTime+"");
+                            membRowData.add(workTimeFormatter.format(workingTime));
                             membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                             membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -1126,7 +1132,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                                                 break;
                                         }
                                     }
-                                    membRowData.add(workingTime+"");
+                                    membRowData.add(workTimeFormatter.format(workingTime));
                                     membRowData.add(salary.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     membRowData.add(bonus.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
                                     membRowData.add(allowance.setScale(6, BigDecimal.ROUND_HALF_UP).toPlainString());
@@ -1335,6 +1341,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                     f.setHourCost(new BigDecimal(0));
                     if (noProjectItem.project == null) {
                         //noProjectItem.project = "无项目";
+                        noProjectItem.projectId = 0;
                         noProjectItem.project = MessageUtils.message("entry.noProject");
                         noProjectItem.workingTime = 0;
                         noProjectItem.cost = new BigDecimal(0);
@@ -1348,7 +1355,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 
             List<String> missingFinanceUserIds = new ArrayList<>();
             for (Map<String, Object> map : projectTimeList) {
-                Integer projectId = (Integer) map.get("projectId");
+                Integer projectId = ((Long) map.get("projectId")).intValue();
                 String curProject = (String) map.get("project");
                 String creatorId = (String) map.get("creatorId");
                 Optional<Finance> first = finances.stream().filter(f -> f.getUserId().equals(creatorId)).findFirst();
@@ -1365,7 +1372,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 if (curProject == null) {
                     System.out.println("projectId="+projectId+", creatorId="+creatorId);
                 }
-                if (curProject.equals(item.project)) {
+                if (projectId.equals(item.projectId)) {
                     item.workingTime += workingTime;
                     item.cost = item.cost.add(cost);
                 } else {
@@ -1378,8 +1385,11 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 }
                 totalMoneyCost = totalMoneyCost.add(cost);
             }
-
-
+            BigDecimal bgCostTotal = new BigDecimal(0);
+            for (ProjectSumItem p : pList) {
+                bgCostTotal = bgCostTotal.add(p.cost);
+            }
+            BigDecimal percentTotal = new BigDecimal(0);
             //加上待分摊的无工时项目,如果当前项目列表没有的话
             if (assignNoProUser != null && assignNoProUser && noProjectItem.project != null) {
                 List<FinanceProjects> financeProjects = financeProjectsMapper.selectList(new QueryWrapper<FinanceProjects>().eq("company_id", companyId).eq("ymonth", yearMonth));
@@ -1421,6 +1431,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                                 userCostMap.put("projectId", f.getProjectId());
                                 userCostMap.put("projectCode", f.getProjectCode());
                                 noPUserDataList.add(userCostMap);
+                            } else {
+                                System.out.println("@@@@@@@noProjectUser中不存在该人员:"+username+"["+userId+"]");
                             }
                         }
                     }
@@ -1429,7 +1441,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
 
                 List<FinanceProjects> notInFPList = new ArrayList<FinanceProjects>();
                 financeProjects.forEach(f->{
-                    if (!projectTimeList.stream().anyMatch(map->((Integer)map.get("projectId")).equals(f.getProjectId()))) {
+                    if (!projectTimeList.stream().anyMatch(map->(((Long)map.get("projectId"))).intValue() == f.getProjectId())) {
                         notInFPList.add(f);
                     }
                 });
@@ -1448,7 +1460,6 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 //按比例分配
                 for (ProjectSumItem p : pList) {
                     List<Map> filterUserList = noPUserDataList.stream().filter(map->((Integer)map.get("projectId")).equals(p.projectId)).collect(Collectors.toList());
-                    System.out.println("过滤到的无项目人员size==="+filterUserList.size());
                     for (Map f : filterUserList) {
                         String curUserId = (String)f.get("creatorId");
                         double percent = (double)f.get("percent");
@@ -1458,6 +1469,7 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                         p.cost = p.cost.add(newFinance.getTotalCost());
                         //叠加到总计的各项成本上
                         totalMoneyCost = totalMoneyCost.add(newFinance.getTotalCost());
+                        percentTotal = percentTotal.add(newFinance.getTotalCost());
                     }
                 }
             }
@@ -1468,6 +1480,8 @@ public class FinanceServiceImpl extends ServiceImpl<FinanceMapper, Finance> impl
                 p.cost = p.cost.setScale(2, BigDecimal.ROUND_HALF_UP);
             });
             resultMap.put("costList", pList);
+            resultMap.put("percentTotal", percentTotal);
+            resultMap.put("workCost", bgCostTotal);
             resultMap.put("noProjectItem", noProjectItem);
             resultMap.put("totalMoneyCost", totalMoneyCost);
             if (missingFinanceUserIds.size() > 0) {

+ 0 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -916,7 +916,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                     }
                     reportService.updateBatchById(updateBIdList);
                 }
-
             }
         } else {
             //没有需要更新的,则

+ 17 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.controller.WeiXinCorpController;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
+import com.management.platform.service.TimeTypeService;
 import com.management.platform.service.WxCorpInfoService;
 import com.management.platform.task.SFTPAsyncUploader;
 import com.management.platform.util.*;
@@ -120,6 +121,9 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
 
     @Resource
     SysConfigMapper sysConfigMapper;
+    @Resource
+    TimeTypeService timeTypeService;
+
     @Resource
     UserMapper userMapper;
     @Resource
@@ -811,7 +815,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
             DateTimeFormatter dateTimeFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
             while (true) {
                 LocalDate day = date.plusDays(i);
-                if (WorkDayCalculateUtils.isWorkDay(day)) {
+                if (timeTypeService.isWorkDay(corpInfo.getCompanyId(), day)) {
                     System.out.println("============="+dateTimeFormat.format(day)+"==============");
                     List<String> missRecordUserCorpIds = new ArrayList<>();
                     List<User> filterusers = new ArrayList<>();
@@ -1222,7 +1226,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     ct.setWorkHours(0.0);
                     ct.setOutdoorTime(0.0);
                     //工作日或者非工作日有打卡,需要校正请假,外出的时长数据
-                    if (WorkDayCalculateUtils.isWorkDay(localDate) || sTime > 0 || eTime > 0) {
+                    if (timeTypeService.isWorkDay(corpInfo.getCompanyId(), localDate) || sTime > 0 || eTime > 0) {
                         JSONArray holidayItems = jsonObject.getJSONArray("holiday_infos");
                         //开始时间和结束时间一样,说明下班没有打卡,需要提取请假的最晚时间作为下班打卡时间
                         boolean needRecaculate = false;
@@ -1673,6 +1677,16 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                     } else {
                         if (hasTimeRecord) {
                             userCorpwxTimeMapper.insert(ct);
+                        } else {
+                            //调用打卡详情去获取,弥补外出打卡且时间不在自动同步范围内的情况; 仅对工作日有效
+                            if (timeTypeService.isWorkDay(corpInfo.getCompanyId(), localDate)) {
+                                System.out.println("=========获取日打卡详情========="+localDate.toString());
+                                User user = userMapper.selectOne(new QueryWrapper<User>().eq("corpwx_userid", curUserid));
+                                if (user != null) {
+                                    getUserPunchRecord(corpInfo.getCompanyId(), user.getId(), localDate.atTime(0,0,0),
+                                            localDate.atTime(23,59,59), showLog);
+                                }
+                            }
                         }
                     }
                 }
@@ -1681,6 +1695,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
 
                 throw new Exception(json.toJSONString());
             }
+
         }
     }
 

+ 2 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/ExcelUtil.java

@@ -701,14 +701,14 @@ public class ExcelUtil {
                         CellRangeAddress cellRangeAddress3 = new CellRangeAddress(nextStartIndex, nextEndIndex, 3,3);
                         CellRangeAddress cellRangeAddress4 = new CellRangeAddress(nextStartIndex, nextEndIndex, 4,4);
                         CellRangeAddress cellRangeAddress5 = new CellRangeAddress(nextStartIndex, nextEndIndex, 5,5);
-                        CellRangeAddress cellRangeAddress6 = new CellRangeAddress(nextStartIndex, nextEndIndex, 6,6);
+//                        CellRangeAddress cellRangeAddress6 = new CellRangeAddress(nextStartIndex, nextEndIndex, 6,6);
                         sheet.addMergedRegion(cellRangeAddress);
                         sheet.addMergedRegion(cellRangeAddress1);
                         sheet.addMergedRegion(cellRangeAddress2);
                         sheet.addMergedRegion(cellRangeAddress3);
                         sheet.addMergedRegion(cellRangeAddress4);
                         sheet.addMergedRegion(cellRangeAddress5);
-                        sheet.addMergedRegion(cellRangeAddress6);
+//                        sheet.addMergedRegion(cellRangeAddress6);
                     }
                     nextStartIndex+=Integer.valueOf(String.valueOf(mapList.get(i).get("size")));
                 }

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages.properties

@@ -17,6 +17,7 @@ user.AccountDeactivation=您的账号已停用,无法操作
 register.codeError=验证码不正确
 register.phoneExist=该电话号码已注册
 register.phoneError=该电话号码已存在
+register.phoneUsed=该电话号码已被其他公司使用
 register.companyExist=该公司已注册,请联系管理员为您添加账号
 register.peopleFull=公司人员已达上限
 register.jobNoExist=该工号已存在:

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/i18n/messages_en_US.properties

@@ -17,6 +17,7 @@ user.AccountDeactivation=Your account has been deactivated, unable to operate.
 register.codeError=Incorrect verification code.
 register.phoneExist=The phone number is already registered.
 register.phoneError=The phone number already exists.
+register.phoneUsed=The phone number has used by another company.
 register.companyExist=The company has been registered, please contact the administrator to add your account.
 register.peopleFull=Company personnel has reached the upper limit.
 register.jobNoExist=The job number already exists:

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -774,7 +774,7 @@
         </if>
     </select>
     <select id="getRealProjectTime" resultType="java.util.Map">
-        SELECT project.id as projectId, project.project_code as projectCode, IFNULL(project.category_name,'其他') as categoryName,
+        SELECT ifnull(project.id, 0) as projectId, project.project_code as projectCode, IFNULL(project.category_name,'其他') as categoryName,
         IFNULL(project.project_name,'其他') as project,report.creator_id AS creatorId,sum(working_time) as workingTime, SUM(cost) as cost
         FROM report
         left join project on project.id = report.project_id

+ 0 - 6
fhKeeper/formulahousekeeper/management-workshop/pom.xml

@@ -201,12 +201,6 @@
             <version>0.1.55</version>
         </dependency>
 
-        <!--ladp集成 AD域认证-->
-        <dependency>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-data-ldap</artifactId>
-        <version>2.3.12.RELEASE</version>
-        </dependency>
 
         <dependency>
             <groupId>com.aliyun</groupId>

+ 0 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/PlatformStartApplication.java

@@ -23,8 +23,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 public class PlatformStartApplication {
     public static void main(String[] args) {
         SpringApplication.run(PlatformStartApplication.class, args);
-        //ldap ssl链接很关键的
-        System.setProperty("com.sun.jndi.ldap.object.disableEndpointIdentification","true");
     }
 
     //防止存入redis数据后乱码

+ 0 - 42
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/config/LdapConfig.java

@@ -1,42 +0,0 @@
-package com.management.platform.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.ldap.core.LdapTemplate;
-import org.springframework.ldap.core.support.LdapContextSource;
-
-@Configuration
-public class LdapConfig {
-    @Value("${spring.ldap.urls}")
-    private String ldapUrl;
-    @Value("${spring.ldap.username}")
-    private String userName;
-    @Value("${spring.ldap.password}")
-    private String passWord;
-    @Value("${spring.ldap.base.dcFirst}")
-    private String dcFirst;
-    @Value("${spring.ldap.base.dcSecond}")
-    private String dcSecond;
-
-
-
-    @Bean
-    public LdapContextSource ldapContextSource(){
-        LdapContextSource source = new LdapContextSource();
-        source.setBase("DC="+dcFirst+",DC="+dcSecond);
-        source.setUrl(ldapUrl);
-        source.setPassword(passWord);
-        source.setUserDn(userName);
-        source.setReferral("follow");
-        return source;
-    }
-
-    @Bean
-    public LdapTemplate ldapTemplate(){
-        return new LdapTemplate(ldapContextSource());
-    }
-
-
-}
-

+ 0 - 90
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/CompanyController.java

@@ -6,8 +6,6 @@ import com.management.platform.constant.Constant;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyService;
-import com.management.platform.service.ExpenseMainTypeService;
-import com.management.platform.service.ExpenseTypeService;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
 import com.taobao.api.ApiException;
@@ -42,13 +40,9 @@ public class CompanyController {
     @Resource
     private CompanyDingdingMapper companyDingdingMapper;
     @Resource
-    private ExpenseTypeService expenseTypeService;
-    @Resource
     private ContactSyncLogMapper contactSyncLogMapper;
     @Resource
     private CompanyMapper companyMapper;
-    @Resource
-    private ExpenseMainTypeService expenseMainTypeService;
 
     @RequestMapping("/getStaffCountMax")
     public HttpRespMsg getStaffCountMax(Integer companyId){
@@ -106,90 +100,6 @@ public class CompanyController {
 //            return msg;
 //        }
     }
-    @RequestMapping("/settingExpenseType")
-    public HttpRespMsg settingExpenseType(){
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("token"));
-        //生成费用报销默认条目
-        String[] expenseTypes = Constant.EXPENSE_TYPES;
-        List<String> commonly = new ArrayList<>();
-        //commonly.add("材料费");
-        commonly.add(MessageUtils.message("entry.materialCost"));
-        //commonly.add("办公用品");
-        commonly.add(MessageUtils.message("entry.workCost"));
-        //commonly.add("培训费");
-        commonly.add(MessageUtils.message("entry.trainCost"));
-        //commonly.add("打印费");
-        commonly.add(MessageUtils.message("entry.printCost"));
-        //commonly.add("快递费");
-        commonly.add(MessageUtils.message("entry.expressCost"));
-        //commonly.add("制作费");
-        commonly.add(MessageUtils.message("entry.makeCost"));
-        //commonly.add("律师费");
-        commonly.add(MessageUtils.message("entry.lawyerCost"));
-        //commonly.add("水费");
-        commonly.add(MessageUtils.message("entry.waterCost"));
-        //commonly.add("电费");
-        commonly.add(MessageUtils.message("entry.electricCost"));
-        //commonly.add("团建费");
-        commonly.add(MessageUtils.message("entry.leagueCost"));
-        //commonly.add("其他");
-        commonly.add(MessageUtils.message("entry.other"));
-        List<String> travel  = new ArrayList<>();
-        //travel.add("城市间交通费");
-        travel.add(MessageUtils.message("entry.cityTrafficCost"));
-        //travel.add("住宿费");
-        travel.add(MessageUtils.message("entry.liveCost"));
-        //travel.add("伙食补助费");
-        travel.add(MessageUtils.message("entry.eatCost"));
-        //travel.add("市内交通费");
-        travel.add(MessageUtils.message("entry.insideCityCost"));
-        //travel.add("其他差旅费");
-        travel.add(MessageUtils.message("entry.otherLiveTraCost"));
-        List<String> outsource = new ArrayList<>();
-        //outsource.add("项目外包费");
-        outsource.add(MessageUtils.message("entry.projectCost"));
-        //outsource.add("劳务外包费");
-        outsource.add(MessageUtils.message("entry.labourCost"));
-        //outsource.add("其他外包费");
-        outsource.add(MessageUtils.message("entry.OtherOutsourceCost"));
-        List<ExpenseType> expenseTypeList=new ArrayList<>();
-        List<ExpenseMainType> expenseMainTypes=new ArrayList<>();
-        ExpenseMainType expenseMainType=new ExpenseMainType();
-        expenseMainType.setName("一般费用");
-        expenseMainType.setCompanyId(user.getCompanyId());
-        ExpenseMainType expenseMainType1=new ExpenseMainType();
-        expenseMainType1.setName("差旅费用");
-        expenseMainType1.setCompanyId(user.getCompanyId());
-        ExpenseMainType expenseMainType2=new ExpenseMainType();
-        expenseMainType2.setName("外包费用");
-        expenseMainType2.setCompanyId(user.getCompanyId());
-        expenseMainTypes.add(expenseMainType);
-        expenseMainTypes.add(expenseMainType1);
-        expenseMainTypes.add(expenseMainType2);
-        expenseMainTypeService.saveBatch(expenseMainTypes);
-        for (String expenseType : expenseTypes) {
-            ExpenseType item=new ExpenseType();
-            item.setCompanyId(user.getCompanyId());
-            item.setTypeName(expenseType);
-            if(commonly.contains(expenseType)){
-                item.setMainType(expenseMainType.getId());
-            }
-            if(travel.contains(expenseType)){
-                item.setMainType(expenseMainType1.getId());
-            }
-            if(outsource.contains(expenseType)){
-                item.setMainType(expenseMainType2.getId());
-            }
-            expenseTypeList.add(item);
-        }
-        if(!expenseTypeService.saveBatch(expenseTypeList)){
-            //httpRespMsg.setError("验证失败");
-            httpRespMsg.setError(MessageUtils.message("Company.validationError"));
-            return httpRespMsg;
-        }
-        return httpRespMsg;
-    }
 
     @RequestMapping("/editCompanyName")
     public HttpRespMsg editCompanyName(String name,HttpServletRequest request){

+ 0 - 101
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/EarningSnapshotController.java

@@ -1,101 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.EarningSnapshot;
-import com.management.platform.entity.Project;
-import com.management.platform.entity.ProjectBasecost;
-import com.management.platform.entity.User;
-import com.management.platform.entity.vo.SysRichFunction;
-import com.management.platform.mapper.ProjectMapper;
-import com.management.platform.mapper.SysFunctionMapper;
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.service.EarningSnapshotService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.ListUtil;
-import com.management.platform.util.MessageUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2021-05-15
- */
-@RestController
-@RequestMapping("/earning-snapshot")
-public class EarningSnapshotController {
-    @Resource
-    private HttpServletRequest request;
-
-    @Resource
-    private EarningSnapshotService earningSnapshotService;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private ProjectMapper projectMapper;
-    @Resource
-    SysFunctionMapper sysFunctionMapper;
-
-    @RequestMapping("/list")
-    public HttpRespMsg list(Integer projectId) {
-        String userId = request.getHeader("Token");
-        User user = userMapper.selectById(userId);
-        HttpRespMsg msg = new HttpRespMsg();
-        Project project = projectMapper.selectById(projectId);
-
-        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看成本基线");
-        if (userId.equals(project.getInchargerId()) || userId.equals(project.getCreatorId()) || functionList.size() > 0) {
-            List<EarningSnapshot> list = earningSnapshotService.list(new QueryWrapper<EarningSnapshot>().eq("project_id", projectId).orderByDesc("id"));
-            for (EarningSnapshot snapshot : list) {
-                if (snapshot.getCostData() != null) {
-                    JSONArray array = JSONArray.parseArray(snapshot.getCostData());
-                    List<ProjectBasecost> costList = new ArrayList<>();
-                    for (int i=0;i<array.size();i++) {
-                        ProjectBasecost projectBasecost = JSONObject.toJavaObject(array.getJSONObject(i), ProjectBasecost.class);
-                        costList.add(projectBasecost);
-                    }
-                    snapshot.setCostList(costList);
-                    snapshot.setCostData(null);
-                }
-            }
-            msg.data = list;
-        } else {
-
-            //msg.setError("无权查看");
-            msg.setError(MessageUtils.message("access.viewError"));
-        }
-
-        return msg;
-    }
-
-    @RequestMapping("/delete")
-    public HttpRespMsg delete(Integer projectId, String ids) {
-        String userId = request.getHeader("Token");
-        User user = userMapper.selectById(userId);
-
-        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "校正成本基线");
-        HttpRespMsg msg = new HttpRespMsg();
-        Project project = projectMapper.selectById(projectId);
-        if (userId.equals(project.getInchargerId()) || userId.equals(project.getCreatorId()) || functionList.size() > 0) {
-            List<Integer> idArray = ListUtil.convertIntegerIdsArrayToList(ids);
-            earningSnapshotService.removeByIds(idArray);
-        } else {
-            //msg.setError("无权操作");
-            msg.setError(MessageUtils.message("access.operationError"));
-        }
-
-        return msg;
-    }
-}
-

+ 0 - 39
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseItemController.java

@@ -1,39 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.ExpenseItem;
-import com.management.platform.entity.vo.ExpenseItemVO;
-import com.management.platform.mapper.ExpenseItemMapper;
-import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2021-05-17
- */
-@RestController
-@RequestMapping("/expense-item")
-public class ExpenseItemController {
-
-    @Resource
-    private ExpenseItemMapper expenseItemMapper;
-
-    @RequestMapping("/list")
-    public HttpRespMsg list(Integer projectId) {
-        HttpRespMsg msg = new HttpRespMsg();
-        List<ExpenseItemVO> userExpenseDetail = expenseItemMapper.getUserExpenseDetail(projectId);
-        msg.data = userExpenseDetail;
-        return msg;
-    }
-}
-

+ 0 - 193
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseMainTypeController.java

@@ -1,193 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.*;
-import com.management.platform.mapper.*;
-import com.management.platform.service.ExpenseMainTypeService;
-import com.management.platform.service.ExpenseSheetService;
-import com.management.platform.service.ExpenseTypeService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Stream;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2023-04-06
- */
-@RestController
-@RequestMapping("/expense-main-type")
-public class ExpenseMainTypeController {
-
-    @Autowired
-    private ExpenseMainTypeService expenseMainTypeService;
-    @Resource
-    private HttpServletRequest request;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private ExpenseTypeMapper expenseTypeMapper;
-    @Resource
-    private ExpenseSheetMapper expenseSheetMapper;
-    @Resource
-    private CompanyMapper companyMapper;
-    @Resource
-    private ExpenseSheetService expenseSheetService;
-    @Resource
-    private ExpenseTypeService expenseTypeService;
-    @Resource
-    private ProjectBasecostSettingMapper projectBasecostSettingMapper;
-
-    @RequestMapping("/list")
-    public HttpRespMsg list(){
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("token"));
-        List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", user.getCompanyId()));
-        //获取basecostSetting名称
-        List<ProjectBasecostSetting> settings = projectBasecostSettingMapper.selectList(new QueryWrapper<ProjectBasecostSetting>().eq("company_id", user.getCompanyId()).eq("alarm_type", 0));
-        for (ExpenseMainType expenseMainType : expenseMainTypes) {
-            if (expenseMainType.getBasecostSettingId() != null) {
-                Stream<ProjectBasecostSetting> projectBasecostSettingStream = settings.stream().filter(setting -> setting.getId().equals(expenseMainType.getBasecostSettingId()));
-                Optional<ProjectBasecostSetting> first = projectBasecostSettingStream.findFirst();
-                if (first.isPresent()) {
-                    expenseMainType.setBasecostSettingName(first.get().getName());
-                }
-            }
-        }
-        httpRespMsg.data=expenseMainTypes;
-        return httpRespMsg;
-    }
-
-    @RequestMapping("/addOrMod")
-    public HttpRespMsg addOrMod(ExpenseMainType setting) {
-        Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
-        HttpRespMsg msg = new HttpRespMsg();
-        if (StringUtils.isEmpty(setting.getName())) {
-            //msg.setError("名称不能为空");
-            msg.setError(MessageUtils.message("Company.nullNameError"));
-            return msg;
-        }
-        if (setting.getId() == null) {
-            setting.setCompanyId(companyId);
-            int num = expenseMainTypeService.count(new QueryWrapper<ExpenseMainType>().eq("company_id", setting.getCompanyId()));
-            if(num>=10){
-                msg.setError("已有类型上限为10");
-                return msg;
-            }
-            int count = expenseMainTypeService.count(new QueryWrapper<ExpenseMainType>().eq("name", setting.getName()).eq("company_id", setting.getCompanyId()));
-            if (count > 0) {
-                //msg.setError("该名称已存在");
-                msg.setError(MessageUtils.message("Company.nameRepeat"));
-            } else {
-                expenseMainTypeService.save(setting);
-                msg.data = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", setting.getCompanyId()));
-            }
-        } else {
-            int count = expenseMainTypeService.count(new QueryWrapper<ExpenseMainType>().eq("name", setting.getName())
-                    .eq("company_id", setting.getCompanyId()).ne("id", setting.getId()));
-            if (count > 0) {
-                //msg.setError("该名称已存在");
-                msg.setError(MessageUtils.message("Company.nameRepeat"));
-            } else {
-                expenseMainTypeService.updateById(setting);
-                msg.data = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", setting.getCompanyId()));
-            }
-        }
-        return msg;
-    }
-
-    @RequestMapping("/delete")
-    public HttpRespMsg delete(Integer id) {
-        HttpRespMsg httpRespMsg = new HttpRespMsg();
-        ExpenseMainType expenseMainType = expenseMainTypeService.getById(id);
-        Integer count = expenseTypeMapper.selectCount(new QueryWrapper<ExpenseType>().eq("main_type", expenseMainType.getId()));
-        Integer count1 = expenseSheetMapper.selectCount(new QueryWrapper<ExpenseSheet>().eq("type", expenseMainType.getId()));
-        if (count > 0||count1>0) {
-            httpRespMsg.setError("当前费用类型[" + expenseMainType.getName() + "]已被使用");
-            return httpRespMsg;
-        }
-        expenseMainType.deleteById(id);
-        return httpRespMsg;
-    }
-
-    @RequestMapping("/dataBuild")
-    public HttpRespMsg dataBuild(){
-        List<Company> companyList = companyMapper.selectList(null);
-        for (Company company : companyList) {
-            List<ExpenseMainType> expenseMainTypes=new ArrayList<>();
-            ExpenseMainType expenseMainType=new ExpenseMainType();
-            expenseMainType.setName("一般费用");
-            expenseMainType.setCompanyId(company.getId());
-            ExpenseMainType expenseMainType1=new ExpenseMainType();
-            expenseMainType1.setName("差旅费用");
-            expenseMainType1.setCompanyId(company.getId());
-            ExpenseMainType expenseMainType2=new ExpenseMainType();
-            expenseMainType2.setName("外包费用");
-            expenseMainType2.setCompanyId(company.getId());
-            expenseMainTypes.add(expenseMainType);
-            expenseMainTypes.add(expenseMainType1);
-            expenseMainTypes.add(expenseMainType2);
-            expenseMainTypeService.saveBatch(expenseMainTypes);
-            List<ExpenseType> expenseTypeList = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id", company.getId()).eq("main_type", 1111111));
-            expenseTypeList.forEach(et->{
-                et.setMainType(expenseMainType.getId());
-            });
-            List<ExpenseSheet> expenseSheetList = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>().eq("company_id", company.getId()).eq("type", 1111111));
-            expenseSheetList.forEach(es->{
-                es.setType(expenseMainType.getId());
-            });
-            List<ExpenseType> expenseTypeList1 = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id", company.getId()).eq("main_type", 2222222));
-            expenseTypeList1.forEach(et->{
-                et.setMainType(expenseMainType1.getId());
-            });
-            List<ExpenseSheet> expenseSheetList1 = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>().eq("company_id", company.getId()).eq("type", 2222222));
-            expenseSheetList1.forEach(es->{
-                es.setType(expenseMainType1.getId());
-            });
-            List<ExpenseType> expenseTypeList2 = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id", company.getId()).eq("main_type", 3333333));
-            expenseTypeList2.forEach(et->{
-                et.setMainType(expenseMainType2.getId());
-            });
-            List<ExpenseSheet> expenseSheetList2 = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>().eq("company_id", company.getId()).eq("type", 3333333));
-            expenseSheetList2.forEach(es->{
-                es.setType(expenseMainType2.getId());
-            });
-            if(expenseSheetList.size()>0){
-                expenseSheetService.updateBatchById(expenseSheetList);
-            }
-            if(expenseTypeList.size()>0){
-                expenseTypeService.updateBatchById(expenseTypeList);
-            }
-            if(expenseSheetList1.size()>0){
-                expenseSheetService.updateBatchById(expenseSheetList1);
-            }
-            if(expenseTypeList1.size()>0){
-                expenseTypeService.updateBatchById(expenseTypeList1);
-            }if(expenseSheetList2.size()>0){
-                expenseSheetService.updateBatchById(expenseSheetList2);
-            }
-            if(expenseTypeList2.size()>0){
-                expenseTypeService.updateBatchById(expenseTypeList2);
-            }
-
-        }
-        return new HttpRespMsg();
-    }
-
-}
-

+ 0 - 109
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseSheetController.java

@@ -1,109 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.management.platform.entity.ExpenseSheet;
-import com.management.platform.entity.User;
-import com.management.platform.entity.vo.SysRichFunction;
-import com.management.platform.mapper.SysFunctionMapper;
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.service.ExpenseSheetService;
-import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2021-05-17
- */
-@RestController
-@RequestMapping("/expense-sheet")
-public class ExpenseSheetController {
-    @Resource
-    UserMapper userMapper;
-    @Resource
-    ExpenseSheetService expenseSheetService;
-    @Resource
-    private HttpServletRequest request;
-    @Resource
-    SysFunctionMapper sysFunctionMapper;
-
-    @RequestMapping("/getNextCode")
-    public HttpRespMsg getNextCode() {
-        String userId = request.getHeader("Token");
-        return expenseSheetService.getNextCode(userId);
-    }
-
-    @RequestMapping("/add")
-    public HttpRespMsg add(ExpenseSheet sheet, String items) {
-        String userId = request.getHeader("Token");
-        return expenseSheetService.add(sheet, items, userId);
-
-    }
-
-    @RequestMapping("/delete")
-    public HttpRespMsg delete(Integer id) {
-        return expenseSheetService.delete(id);
-
-    }
-
-    @RequestMapping("/list")
-    public HttpRespMsg list(ExpenseSheet sheet,String startDate, String endDate, @RequestParam Integer pageIndex, @RequestParam Integer pageSize) {
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
-        if (functionList.size() == 0) {
-            //组员只能看自己的
-            sheet.setOwnerId(user.getId());
-        }
-        sheet.setCompanyId(user.getCompanyId());
-        return expenseSheetService.queryList(sheet, startDate, endDate, pageIndex, pageSize);
-    }
-
-    @RequestMapping("/getDetail")
-    public HttpRespMsg getDetail(Integer id) {
-
-        return expenseSheetService.getDetail(id);
-
-    }
-
-    @RequestMapping("/approve")
-    public HttpRespMsg approve(Integer id) {
-
-        return expenseSheetService.approve(id);
-
-    }
-    @RequestMapping("/deny")
-    public HttpRespMsg deny(Integer id,String denyReason) {
-
-        return expenseSheetService.deny(id,denyReason);
-
-    }
-    @RequestMapping("/importData")
-    public HttpRespMsg importData(HttpServletRequest request,MultipartFile[] files){
-        return expenseSheetService.importData(request,files);
-    }
-
-    @RequestMapping("/exportList")
-    public HttpRespMsg exportList(ExpenseSheet sheet,String startDate, String endDate) {
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "查看全部报销单");
-        if (functionList.size() == 0) {
-            //组员只能看自己的
-            sheet.setOwnerId(user.getId());
-        }
-        sheet.setCompanyId(user.getCompanyId());
-        return expenseSheetService.exportList(sheet, startDate, endDate);
-    }
-}
-

+ 0 - 118
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ExpenseTypeController.java

@@ -1,118 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.ExpenseItem;
-import com.management.platform.entity.ExpenseMainType;
-import com.management.platform.entity.ExpenseType;
-import com.management.platform.entity.User;
-import com.management.platform.mapper.ExpenseItemMapper;
-import com.management.platform.mapper.ExpenseTypeMapper;
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.service.ExpenseMainTypeService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-import java.util.Optional;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2021-06-18
- */
-@RestController
-@RequestMapping("/expense-type")
-public class ExpenseTypeController {
-    @Resource
-    private ExpenseTypeMapper expenseTypeMapper;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private HttpServletRequest request;
-    @Resource
-    private ExpenseItemMapper expenseItemMapper;
-    @Resource
-    private ExpenseMainTypeService expenseMainTypeService;
-
-    @RequestMapping("/getList")
-    public HttpRespMsg getList() {
-        User user = userMapper.selectById(request.getHeader("token"));
-        HttpRespMsg msg = new HttpRespMsg();
-        List<ExpenseType> expenseTypeList = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id", user.getCompanyId()).orderByAsc("main_type"));
-        List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", user.getCompanyId()).or().eq("is_system",1));
-        expenseTypeList.forEach(re->{
-            Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getMainType())).findFirst();
-            if(first.isPresent()){
-                re.setExpenseMainTypeName(first.get().getName());
-            }
-        });
-        msg.data=expenseTypeList;
-        return msg;
-    }
-
-    @RequestMapping("/addOrMod")
-    public HttpRespMsg addOrMod(ExpenseType setting) {
-        HttpRespMsg msg = new HttpRespMsg();
-        if (StringUtils.isEmpty(setting.getTypeName())) {
-            //msg.setError("名称不能为空");
-            msg.setError(MessageUtils.message("Company.nullNameError"));
-            return msg;
-        }
-        Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
-        if (setting.getId() == null) {
-            setting.setCompanyId(companyId);
-            int count = expenseTypeMapper.selectCount(new QueryWrapper<ExpenseType>().eq("type_name", setting.getTypeName()).eq("company_id", setting.getCompanyId()));
-            if (count > 0) {
-                //msg.setError("该名称已存在");
-                msg.setError(MessageUtils.message("Company.nameRepeat"));
-            } else {
-                expenseTypeMapper.insert(setting);
-                msg.data = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id", companyId));
-            }
-        } else {
-            int count = expenseTypeMapper.selectCount(new QueryWrapper<ExpenseType>().eq("type_name", setting.getTypeName())
-                    .eq("company_id", companyId).ne("id", setting.getId()));
-            if (count > 0) {
-                //msg.setError("该名称已存在");
-                msg.setError(MessageUtils.message("Company.nameRepeat"));
-            } else {
-                expenseTypeMapper.updateById(setting);
-                msg.data = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id", companyId));
-            }
-        }
-
-        return msg;
-    }
-
-    @RequestMapping("/delete")
-    public HttpRespMsg delete(Integer id) {
-        HttpRespMsg msg = new HttpRespMsg();
-        ExpenseType expenseType = expenseTypeMapper.selectById(id);
-        Integer companyId = userMapper.selectById(request.getHeader("TOKEN")).getCompanyId();
-//        Integer cut = expenseItemMapper.selectCount(new QueryWrapper<ExpenseItem>().eq("expense_type", expenseType.getTypeName()));
-//        if(cut>0){
-//            //msg.setError("删除失败,已绑定费用报销数据");
-//            msg.setError(MessageUtils.message("expense.deleteError"));
-//            return msg;
-//        }
-        if (!expenseType.getCompanyId().equals(companyId)) {
-            //msg.setError("无权操作");
-            msg.setError(MessageUtils.message("access.operationError"));
-        } else {
-            expenseTypeMapper.deleteById(id);
-        }
-
-        return msg;
-    }
-
-}
-

+ 0 - 10
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FeishuInfoController.java

@@ -60,8 +60,6 @@ public class FeishuInfoController {
     @Resource
     private SysRoleService sysRoleService;
     @Resource
-    private ProjectBasecostSettingMapper projectBasecostSettingMapper;
-    @Resource
     private CompanyReportMapper companyReportMapper;
     @Resource
     private DepartmentFeishuMapper departmentFeishuMapper;
@@ -125,14 +123,6 @@ public class FeishuInfoController {
             timeType.setCompanyId(company.getId());
             timeTypeMapper.insert(timeType);
             SysRole smanager = sysRoleService.generateDefaultRoles(company.getId());
-            //生成项目的成本基线默认条目
-            String[] array = Constant.DEFAULT_BASE_COST_ITEMS;
-            for (String baseItem : array) {
-                ProjectBasecostSetting setting = new ProjectBasecostSetting();
-                setting.setName(baseItem);
-                setting.setCompanyId(company.getId());
-                projectBasecostSettingMapper.insert(setting);
-            }
             //todo: 生成项目报表服务默认条目
             Integer[] arrayInteger=new Integer[]{1,2,3,4,7};
             for (Integer integerItem : arrayInteger) {

+ 0 - 48
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceAuditorController.java

@@ -1,48 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.management.platform.entity.Finance;
-import com.management.platform.entity.FinanceAuditor;
-import com.management.platform.mapper.FinanceAuditorMapper;
-import com.management.platform.service.FinanceAuditorService;
-import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-@RestController
-@RequestMapping("/finance-auditor")
-public class FinanceAuditorController {
-
-    @Resource
-    private FinanceAuditorService financeAuditorService;
-    @Resource
-    private HttpServletRequest request;
-
-    @RequestMapping("/save")
-    public HttpRespMsg save(FinanceAuditor item) {
-        HttpRespMsg msg = new HttpRespMsg();
-        financeAuditorService.saveOrUpdate(item);
-        return msg;
-    }
-
-    @RequestMapping("/get")
-    public HttpRespMsg get(Integer companyId) {
-        HttpRespMsg msg = new HttpRespMsg();
-        FinanceAuditor item = financeAuditorService.getById(companyId);
-        msg.data = item;
-        return msg;
-    }
-}
-

+ 0 - 21
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceCalculateController.java

@@ -1,21 +0,0 @@
-package com.management.platform.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2022-04-13
- */
-@RestController
-@RequestMapping("/finance-calculate")
-public class FinanceCalculateController {
-
-}
-

+ 0 - 184
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceController.java

@@ -1,184 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.*;
-import com.management.platform.mapper.CompanyMapper;
-import com.management.platform.mapper.FinanceTblcuscolMapper;
-import com.management.platform.mapper.TimeTypeMapper;
-import com.management.platform.mapper.WxCorpInfoMapper;
-import com.management.platform.service.ExcelExportService;
-import com.management.platform.service.FinanceFixedcolnameService;
-import com.management.platform.service.FinanceService;
-import com.management.platform.util.ExcelUtil;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import com.management.platform.util.UserNotFoundException;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2021-02-18
- */
-@RestController
-@RequestMapping("/finance")
-public class FinanceController {
-
-    @Resource
-    private FinanceService financeService;
-    @Resource
-    private FinanceTblcuscolMapper financeTblcuscolMapper;
-    @Resource
-    private CompanyMapper companyMapper;
-    @Resource
-    private FinanceFixedcolnameService financeFixedcolnameService;
-    @Resource
-    private TimeTypeMapper timeTypeMapper;
-    @Resource
-    private WxCorpInfoMapper wxCorpInfoMapper;
-    @Resource
-    private ExcelExportService excelExportService;
-
-    @Value(value = "${upload.path}")
-    private String path;
-
-    @RequestMapping("/getByMonth")
-    public HttpRespMsg getByMonth(Integer companyId, String yearMonth) {
-        return financeService.getByMonth(companyId, yearMonth);
-    }
-
-    @RequestMapping("/getProjects")
-    public HttpRespMsg getProjects(Integer companyId, String yearMonth) {
-        return financeService.getProjects(companyId, yearMonth);
-    }
-
-    @RequestMapping("/importData")
-    public HttpRespMsg importData(Integer companyId, String yearMonth,
-                                  Boolean syncUserCost, Boolean syncHistoryReport,
-                                  MultipartFile file, HttpServletRequest request) {
-        HttpRespMsg msg = new HttpRespMsg();
-        try {
-            return financeService.importData(companyId, yearMonth, syncUserCost, syncHistoryReport, file, request);
-        } catch (IOException e) {
-            e.printStackTrace();
-            //msg.setError("文件处理出错");
-            msg.setError(MessageUtils.message("file.error"));
-            return msg;
-        } catch (UserNotFoundException e) {
-            e.printStackTrace();
-            msg.setError(e.getMessage());
-            return msg;
-        } catch (NullPointerException e) {
-            e.printStackTrace();
-            //msg.setError("数据格式有误或存在空数据 导入失败");
-            msg.setError(MessageUtils.message("file.dataFormatError"));
-            return msg;
-        } catch (Exception e) {
-            e.printStackTrace();
-            //msg.setError("发生其他错误");
-            msg.setError(MessageUtils.message("other.error"));
-            return msg;
-        }
-    }
-
-    //导出分摊数据
-    @RequestMapping("/exportData")
-    public HttpRespMsg exportData(@RequestParam(required = false, defaultValue = "0") Integer groupByCategory,
-                                  @RequestParam String date, Boolean assignNoProUser,HttpServletRequest request) {
-        return financeService.exportData(groupByCategory, date, assignNoProUser, request);
-    }
-
-    /**
-     * 导出薪资数据
-     * @param date
-     * @param request
-     * @return
-     */
-    @RequestMapping("/exportFinance")
-    public HttpRespMsg exportFinance(@RequestParam String date, HttpServletRequest request) {
-        return financeService.exportFinance(date, request);
-    }
-
-    //按照项目分配财务成本
-    @RequestMapping("/getTimeCost")
-    public HttpRespMsg getTimeCost(String yearMonth, Boolean assignNoProUser,HttpServletRequest request) {
-        return financeService.getTimeCost(yearMonth, assignNoProUser,request);
-    }
-
-    @RequestMapping("/getNoProjectUsers")
-    public HttpRespMsg getNoProjectUsers(String yearMonth, HttpServletRequest request) {
-        return financeService.getNoProjectUsers(yearMonth, request);
-    }
-
-
-    /**
-     * 获取财务报表模板
-     * @param companyId
-     * @return
-     */
-    @RequestMapping("/getTemplate")
-    public HttpRespMsg getTemplate(Integer companyId) throws Exception {
-        List<FinanceTblcuscol> list = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
-        HttpRespMsg msg = new HttpRespMsg();
-        FinanceFixedcolname item = financeFixedcolnameService.getById(companyId);
-
-        List<String> heads = new ArrayList<>();
-        Company company = companyMapper.selectById(companyId);
-//        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", companyId));
-        //判断是否启用了工号模式
-        TimeType timeType = timeTypeMapper.selectById(companyId);
-        if (timeType.getFinanceJobnumEnabled() == 1) {
-            //heads.add("工号");
-            heads.add(MessageUtils.message("entry.No"));
-        }
-        //heads.add("姓名");
-        heads.add(MessageUtils.message("entry.name"));
-        heads.add(item.getMonthCost());//heads.add("工资");
-        heads.add(item.getBonus());//heads.add("奖金");
-        heads.add(item.getAllowance());//heads.add("津贴");
-        heads.add(item.getInsuranceOld());//heads.add("养老保险");
-        heads.add(item.getInsuranceMedical());//heads.add("医疗保险");
-        heads.add(item.getInsuranceLosejob());//heads.add("失业保险");
-        heads.add(item.getInsuranceInjury());//heads.add("工伤保险");
-        heads.add(item.getHouseFund());//heads.add("住房公积金");
-        if (list.size() > 0) {
-            List<String> collect = list.stream().map(FinanceTblcuscol::getFieldName).collect(Collectors.toList());
-            heads.addAll(collect);
-        }
-        List<List<String>> allList = new ArrayList<>();
-        allList.add(heads);
-        //String fileName = company.getCompanyName()+"_财务人员成本模板";
-        String fileName = MessageUtils.message("fileName.financialCost",company.getCompanyName());
-        //导出模板不需要转译,不传wxCorpInfo
-        return excelExportService.exportGeneralExcelByTitleAndList(null, fileName, allList, path);
-    }
-    @RequestMapping("/batchRemove")
-    public HttpRespMsg batchRemove(String ids){
-        HttpRespMsg msg=new HttpRespMsg();
-        String[] split = ids.split(",");
-        List<String> list = Arrays.asList(split);
-        if(financeService.removeByIds(list)){
-            return msg;
-        }
-        //msg.setError("删除失败");
-        msg.setError(MessageUtils.message("file.deleteError"));
-        return msg;
-    }
-}
-

+ 0 - 23
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceFixedcolnameController.java

@@ -1,23 +0,0 @@
-package com.management.platform.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2022-03-15
- */
-@RestController
-@RequestMapping("/finance-fixedcolname")
-public class FinanceFixedcolnameController {
-
-}
-

+ 0 - 97
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceImportController.java

@@ -1,97 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.FinanceImport;
-import com.management.platform.entity.User;
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.service.FinanceImportService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-@RestController
-@RequestMapping("/finance-import")
-public class FinanceImportController {
-
-    @Resource
-    private FinanceImportService financeImportService;
-    @Resource
-    private UserMapper userMapper;
-
-    @RequestMapping("submitImport")
-    public HttpRespMsg submitImport(Integer companyId, String yearMonth,
-                                  Boolean syncUserCost, Boolean syncHistoryReport,
-                                  MultipartFile file, HttpServletRequest request) {
-        return financeImportService.submitImport(companyId, yearMonth, syncUserCost, syncHistoryReport, file, request);
-    }
-
-    @RequestMapping("list")
-    public HttpRespMsg list(Integer companyId, HttpServletRequest request) {
-        return financeImportService.list(companyId, request);
-    }
-
-    @RequestMapping("/agree")
-    public HttpRespMsg agree(Integer id, HttpServletRequest request) {
-
-        return financeImportService.agree(id, request);
-    }
-
-    @RequestMapping("/getStatus")
-    public HttpRespMsg getStatus(Integer companyId, String yearMonth) {
-        FinanceImport item = financeImportService.getOne(new QueryWrapper<FinanceImport>().eq("company_id", companyId).eq("ymonth", yearMonth).orderByDesc("indate").last("limit 1"));
-        HttpRespMsg msg = new HttpRespMsg();
-        msg.data = item;
-        return msg;
-    }
-
-    @RequestMapping("/deny")
-    public HttpRespMsg deny(Integer id, HttpServletRequest request) {
-        HttpRespMsg msg = new HttpRespMsg();
-        FinanceImport item = new FinanceImport();
-        item.setId(id);
-        item.setState(2);
-        FinanceImport old = financeImportService.getById(id);
-        if (old.getState() == 0) {
-            User auditor = userMapper.selectById(request.getHeader("TOKEN"));
-            item.setAuditorId(auditor.getId());
-            item.setAuditorName(auditor.getName());
-            financeImportService.updateById(item);
-        } else {
-            //msg.setError("只有待审核状态才可以操作");
-            msg.setError(MessageUtils.message("finance.operationStateError"));
-        }
-        return msg;
-    }
-
-    @RequestMapping("/cancel")
-    public HttpRespMsg cancel(Integer id, HttpServletRequest request) {
-        HttpRespMsg msg = new HttpRespMsg();
-        FinanceImport item = new FinanceImport();
-        item.setId(id);
-        item.setState(-1);
-        FinanceImport old = financeImportService.getById(id);
-        if (old.getState() == 1) {
-            financeImportService.updateById(item);
-        } else {
-            //msg.setError("只有审核通过状态才可以撤销");
-            msg.setError(MessageUtils.message("finance.revokeStateError"));
-        }
-        return msg;
-    }
-}
-

+ 0 - 21
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceProjectsController.java

@@ -1,21 +0,0 @@
-package com.management.platform.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-@RestController
-@RequestMapping("/finance-projects")
-public class FinanceProjectsController {
-
-}
-

+ 0 - 153
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/FinanceTblcuscolController.java

@@ -1,153 +0,0 @@
-package com.management.platform.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.Finance;
-import com.management.platform.entity.FinanceCalculate;
-import com.management.platform.entity.FinanceFixedcolname;
-import com.management.platform.entity.FinanceTblcuscol;
-import com.management.platform.mapper.FinanceCalculateMapper;
-import com.management.platform.mapper.FinanceFixedcolnameMapper;
-import com.management.platform.mapper.FinanceTblcuscolMapper;
-import com.management.platform.mapper.UserMapper;
-import com.management.platform.service.FinanceCalculateService;
-import com.management.platform.service.FinanceFixedcolnameService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * <p>
- *  前端控制器
- * </p>
- *
- * @author Seyason
- * @since 2021-12-17
- */
-@RestController
-@RequestMapping("/finance-tblcuscol")
-public class FinanceTblcuscolController {
-
-    @Resource
-    private HttpServletRequest request;
-    @Resource
-    private FinanceTblcuscolMapper financeTblcuscolMapper;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private FinanceFixedcolnameService financeFixedcolnameService;
-    @Resource
-    private FinanceCalculateMapper financeCalculateMapper;
-    @Resource
-    private FinanceCalculateService financeCalculateService;
-
-//    @RequestMapping("/get")
-//    public HttpRespMsg get(Integer companyId) {
-//        List<FinanceTblcuscol> list = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
-//        HttpRespMsg msg = new HttpRespMsg();
-//        msg.data = list;
-//        return msg;
-//    }
-
-    @RequestMapping("/getAll")
-    public HttpRespMsg getAll(Integer companyId) {
-        List<FinanceTblcuscol> list = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
-        HttpRespMsg msg = new HttpRespMsg();
-        FinanceFixedcolname item = financeFixedcolnameService.getFixed(companyId);
-        if (list.size() > 0) {
-            item.setField1(list.get(0).getFieldName());
-            item.setField1Calculate(list.get(0).getNeedCalculate());
-        }
-        if (list.size() > 1) {
-            item.setField2(list.get(1).getFieldName());
-            item.setField2Calculate(list.get(1).getNeedCalculate());
-        }
-        if (list.size() > 2) {
-            item.setField3(list.get(2).getFieldName());
-            item.setField3Calculate(list.get(2).getNeedCalculate());
-        }
-        msg.data = item;
-
-        return msg;
-    }
-//
-//    @RequestMapping("/getFixed")
-//    public HttpRespMsg getFixed(Integer companyId) {
-//        HttpRespMsg msg = new HttpRespMsg();
-//        msg.data = financeFixedcolnameService.getFixed(companyId);
-//        return msg;
-//    }
-
-    @RequestMapping("/save")
-    public HttpRespMsg addOrMod(FinanceFixedcolname item) {
-        String token = request.getHeader("TOKEN");
-        int companyId = userMapper.selectById(token).getCompanyId();
-        financeTblcuscolMapper.delete(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
-        if (!StringUtils.isEmpty(item.getField1())) {
-            FinanceTblcuscol col = new FinanceTblcuscol();
-            col.setCompanyId(companyId);
-            col.setFieldName(item.getField1());
-            col.setNeedCalculate(item.getField1Calculate());
-            financeTblcuscolMapper.insert(col);
-        }
-        financeCalculateMapper.delete(new QueryWrapper<FinanceCalculate>().eq("company_id", companyId));
-
-
-        if (!StringUtils.isEmpty(item.getField2())) {
-            FinanceTblcuscol col = new FinanceTblcuscol();
-            col.setCompanyId(companyId);
-            col.setFieldName(item.getField2());
-            col.setNeedCalculate(item.getField2Calculate());
-            financeTblcuscolMapper.insert(col);
-        }
-
-        if (!StringUtils.isEmpty(item.getField3())) {
-            FinanceTblcuscol col = new FinanceTblcuscol();
-            col.setCompanyId(companyId);
-            col.setFieldName(item.getField3());
-            col.setNeedCalculate(item.getField3Calculate());
-            financeTblcuscolMapper.insert(col);
-        }
-
-        //存储自定义的固定字段
-        if (item.getMonthCost() != null || item.getBonus() != null || item.getAllowance() != null || item.getInsuranceInjury() != null
-            || item.getInsuranceLosejob() != null || item.getInsuranceMedical() != null || item.getInsuranceOld() != null || item.getHouseFund() != null) {
-            item.setCompanyId(companyId);
-            financeFixedcolnameService.saveOrUpdate(item);
-        }
-
-        FinanceCalculate calculate = item.toCalculateObj();
-        //存储自定义的固定字段
-        if (calculate.getMonthCostCalculate() != null || calculate.getBonusCalculate() != null || calculate.getAllowanceCalculate() != null || calculate.getInsuranceInjuryCalculate() != null
-                || calculate.getInsuranceLosejobCalculate() != null || calculate.getInsuranceMedicalCalculate() != null || calculate.getInsuranceOldCalculate() != null || calculate.getHouseFundCalculate() != null) {
-            calculate.setCompanyId(companyId);
-            financeCalculateService.saveOrUpdate(calculate);
-        }
-
-        return new HttpRespMsg();
-    }
-
-    @RequestMapping("/delete")
-    public HttpRespMsg delete(Integer id) {
-        HttpRespMsg msg = new HttpRespMsg();
-        String token = request.getHeader("TOKEN");
-        int companyId = userMapper.selectById(token).getCompanyId();
-        FinanceTblcuscol financeTblcuscol = financeTblcuscolMapper.selectById(id);
-        if (financeTblcuscol.getCompanyId() == companyId) {
-            financeTblcuscolMapper.deleteById(id);
-        } else {
-            //msg.setError("无权操作");
-            msg.setError(MessageUtils.message("access.operationError"));
-        }
-        return msg;
-    }
-}
-

+ 0 - 111
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/UserController.java

@@ -1,36 +1,20 @@
 package com.management.platform.controller;
 
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.constant.Constant;
 import com.management.platform.entity.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.*;
-import com.management.platform.util.ColorUtil;
 import com.management.platform.util.HttpRespMsg;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.ldap.core.LdapTemplate;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
-import javax.naming.Context;
-import javax.naming.NamingException;
-import javax.naming.ldap.Control;
-import javax.naming.ldap.InitialLdapContext;
-import javax.naming.ldap.LdapContext;
-import javax.naming.ldap.SortControl;
 import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
 import java.util.*;
 
 /**
@@ -50,8 +34,6 @@ public class UserController {
     @Resource
     private HttpServletRequest request;
 
-    @Resource
-    private LdapTemplate ldapTemplate;
 
     @Resource
     private FeishuInfoService feishuInfoService;
@@ -59,33 +41,8 @@ public class UserController {
     @Resource
     private UserCustomMapper userCustomMapper;
 
-    @Resource
-    private CompanyMapper companyMapper;
-    @Resource
-    private TimeTypeMapper timeTypeMapper;
-    @Resource
-    private SysRoleService sysRoleService;
-    @Resource
-    private ProjectBasecostSettingMapper projectBasecostSettingMapper;
-    @Resource
-    private CompanyReportMapper companyReportMapper;
     @Resource
     private DepartmentMapper departmentMapper;
-    @Resource
-    private SysRoleMapper sysRoleMapper;
-    @Resource
-    private ExpenseMainTypeService expenseMainTypeService;
-    @Resource
-    private ExpenseTypeService expenseTypeService;
-    @Resource
-    private UserWorkTypeService userWorkTypeService;
-
-    @Value("${spring.ldap.urls}")
-    private String ldapUrl;
-    @Value("${spring.ldap.base.dcFirst}")
-    private String dcFirst;
-    @Value("${spring.ldap.base.dcSecond}")
-    private String dcSecond;
 
     /**
      * 登录网页端
@@ -352,74 +309,6 @@ public class UserController {
     }
 
 
-    @RequestMapping(value = "/loginForAd", method = RequestMethod.POST)
-    public HttpRespMsg loginForAd(@RequestParam String username, @RequestParam String password) {
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        if(username.equals("sysadmin")){
-             return loginAdmin(username,password);
-        }
-        User user = userService.getOne(new QueryWrapper<User>().eq("phone", username+"@"+dcFirst+"."+dcSecond));
-        LdapContext ldapContext = null;
-        Hashtable<String, Object> env = new Hashtable<String, Object>();
-        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
-        //验证类型
-        env.put(Context.SECURITY_AUTHENTICATION, "simple");
-        //用户名称,cn,ou,dc 分别:用户,组,域
-        env.put(Context.SECURITY_PRINCIPAL, username+"@"+dcFirst+"."+dcSecond);
-        //用户密码 cn 的密码
-        env.put(Context.SECURITY_CREDENTIALS, password);
-        //url 格式:协议://ip:端口/组,域   ,直接连接到域或者组上面
-        env.put(Context.PROVIDER_URL,ldapUrl);
-//        //协议
-//        env.put(Context.SECURITY_PROTOCOL, "ssl");
-//        env.put("java.naming.ldap.factory.socket", "DummySSLSocketFactory类全路径");
-//        //objectGUID 转换,很关键
-        env.put("java.naming.ldap.attributes.binary","objectGUID");
-        try {
-            Control[] sortConnCtls = new SortControl[1];
-            sortConnCtls[0] = new SortControl("sAMAccountName", Control.CRITICAL);
-            ldapContext = new InitialLdapContext(env, sortConnCtls);
-            if(ldapContext!=null){
-                if(user!=null){
-                    return loginByUserId(user.getId());
-                }else {
-                    httpRespMsg.setError("账号不存在");
-                    return httpRespMsg;
-                }
-            }
-        } catch (IOException | NamingException e) {
-            e.printStackTrace();
-            httpRespMsg.setError("AD域控用户账号或者密码错误,验证失败");
-            return httpRespMsg;
-        }
-        return httpRespMsg;
-    }
-
-    @RequestMapping("/getOU")
-    public HttpRespMsg getOU() throws NamingException {
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        httpRespMsg.setData(userService.ldapGetOU());
-        return httpRespMsg;
-    }
-
-    @RequestMapping("/getUser")
-    public HttpRespMsg getUser() throws Exception {
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        httpRespMsg.setData(userService.getUser());
-        return httpRespMsg;
-    }
-
-    @RequestMapping("/initSystemForAd")
-    public HttpRespMsg initSystemForAd(String companyName) throws Exception {
-        return userService.initSystemForAd(companyName);
-    }
-
-
-    @RequestMapping("/syncDeptWithAD")
-    public HttpRespMsg syncDeptWithAD(HttpServletRequest request) throws Exception{
-        return userService.syncDeptWithAD(request);
-    }
-
     @RequestMapping("/updateUserDeptHierarchy")
     public HttpRespMsg updateUserDeptHierarchy(Integer companyId) throws Exception {
         HttpRespMsg httpRespMsg=new HttpRespMsg();

+ 0 - 10
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -119,14 +119,10 @@ public class WeiXinCorpController {
     @Resource
     HttpServletRequest request;
     @Resource
-    ExpenseMainTypeService expenseMainTypeService;
-    @Resource
     private SysRoleMapper sysRoleMapper;
     @Resource
     private ProdCategoryMapper prodCategoryMapper;
     @Resource
-    private ParticipationMapper participationMapper;
-    @Resource
     private TaskGroupMapper taskGroupMapper;
     @Resource
     private TaskMapper taskMapper;
@@ -159,14 +155,8 @@ public class WeiXinCorpController {
     @Resource
     WxCorpInfoService wxCorpInfoService;
     @Resource
-    ProjectBasecostSettingMapper projectBasecostSettingMapper;
-    @Resource
     SysRoleModuleMapper sysRoleModuleMapper;
     @Resource
-    SysRoleFunctionMapper sysRoleFunctionMapper;
-    @Resource
-    ExpenseTypeService expenseTypeService;
-    @Resource
     private WxOrderMapper wxOrderMapper;
     @Resource
     private ContactSyncLogMapper contactSyncLogMapper;

+ 0 - 105
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/EarningSnapshot.java

@@ -1,105 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.springframework.format.annotation.DateTimeFormat;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2021-10-16
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class EarningSnapshot extends Model<EarningSnapshot> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    /**
-     * 项目id
-     */
-    @TableField("project_id")
-    private Integer projectId;
-
-    /**
-     * 发生时间
-     */
-    @TableField("indate")
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private LocalDateTime indate;
-
-    /**
-     * 变更人id
-     */
-    @TableField("creator_id")
-    private String creatorId;
-
-    /**
-     * 变更人姓名
-     */
-    @TableField("creator_name")
-    private String creatorName;
-
-    /**
-     * 项目金额
-     */
-    @TableField("contract_amount")
-    private Double contractAmount;
-
-    /**
-     * 利润
-     */
-    @TableField("profit")
-    private Double profit;
-
-    /**
-     * 利润率
-     */
-    @TableField("profit_percent")
-    private Double profitPercent;
-
-    /**
-     * 总成本
-     */
-    @TableField("cost_total")
-    private Double costTotal;
-
-    /**
-     * 细分项
-     */
-    @TableField("cost_data")
-    private String costData;
-
-    /**
-     * 备注
-     */
-    @TableField("remark")
-    private String remark;
-
-
-    @TableField(exist = false)
-    List<ProjectBasecost> costList;
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Project.java

@@ -332,9 +332,6 @@ public class Project extends Model<Project> {
     @TableField(exist = false)
     ProjectSeparate projectSeparate;
 
-    @TableField(exist = false)
-    List<ProjectBasecost> projectBasecostList;
-
     @TableField(exist = false)
     private String departmentName;
 

+ 0 - 63
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectAddcostItem.java

@@ -1,63 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2022-05-09
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class ProjectAddcostItem extends Model<ProjectAddcostItem> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    /**
-     * 项目id
-     */
-    @TableField("project_id")
-    private Integer projectId;
-
-    /**
-     * 预算项id
-     */
-    @TableField("base_id")
-    private Integer baseId;
-
-    /**
-     * 预算项名称
-     */
-    @TableField("base_name")
-    private String baseName;
-
-    /**
-     * 预算金额
-     */
-    @TableField("base_amount")
-    private Double baseAmount;
-
-    @TableField("record_id")
-    private Integer recordId;
-
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 64
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectAddcostRecord.java

@@ -1,64 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-import org.springframework.format.annotation.DateTimeFormat;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2022-05-09
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class ProjectAddcostRecord extends Model<ProjectAddcostRecord> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    @TableField("project_id")
-    private Integer projectId;
-
-    @TableField("user_id")
-    private String userId;
-
-    @TableField("user_name")
-    private String userName;
-
-    @TableField("indate")
-    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
-    private LocalDateTime indate;
-
-    /**
-     * 备注
-     */
-    @TableField("remark")
-    private String remark;
-
-
-    @TableField(exist = false)
-    private List<ProjectAddcostItem> addItemList;
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 60
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectBasecost.java

@@ -1,60 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2021-08-09
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class ProjectBasecost extends Model<ProjectBasecost> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    /**
-     * 项目id
-     */
-    @TableField("project_id")
-    private Integer projectId;
-
-    /**
-     * 预算项id
-     */
-    @TableField("base_id")
-    private Integer baseId;
-
-    /**
-     * 预算项名称
-     */
-    @TableField("base_name")
-    private String baseName;
-
-    /**
-     * 预算金额
-     */
-    @TableField("base_amount")
-    private Double baseAmount;
-
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 54
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectBasecostSetting.java

@@ -1,54 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class ProjectBasecostSetting extends Model<ProjectBasecostSetting> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    /**
-     * 预估成本项名称
-     */
-    @TableField("name")
-    private String name;
-
-    /**
-     * 公司id
-     */
-    @TableField("company_id")
-    private Integer companyId;
-
-    /**
-     * 0-无预警,1-工时成本预警
-     */
-    @TableField("alarm_type")
-    private Integer alarmType;
-
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 48
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectPercentage.java

@@ -1,48 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2022-02-27
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class ProjectPercentage extends Model<ProjectPercentage> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    @TableField("company_id")
-    private Integer companyId;
-
-    @TableField("data")
-    private String data;
-
-    /**
-     * 所属年月
-     */
-    @TableField("ymonth")
-    private String ymonth;
-
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 74
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProjectProfession.java

@@ -1,74 +0,0 @@
-package com.management.platform.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
-import java.util.List;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 
- * </p>
- *
- * @author Seyason
- * @since 2021-08-28
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-public class ProjectProfession extends Model<ProjectProfession> {
-
-    private static final long serialVersionUID=1L;
-
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-
-    @TableField("project_id")
-    private Integer projectId;
-
-    @TableField("profession_id")
-    private Integer professionId;
-
-    @TableField("profession_name")
-    private String professionName;
-
-    /**
-     * 专业负责人id
-     */
-    @TableField("incharger_id")
-    private String inchargerId;
-
-    /**
-     * 专业负责人姓名
-     */
-    @TableField("incharger_name")
-    private String inchargerName;
-
-    /**
-     * 专业占比
-     */
-    @TableField("percentage")
-    private Integer percentage;
-
-
-    @TableField(exist = false)
-    private String membListJson;
-
-    @TableField(exist = false)
-    private List<PpMembs> membList;
-
-    @TableField(exist = false)
-    private Integer progress;
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/EarningSnapshotMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.EarningSnapshot;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2021-05-15
- */
-public interface EarningSnapshotMapper extends BaseMapper<EarningSnapshot> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceAuditorMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.FinanceAuditor;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-public interface FinanceAuditorMapper extends BaseMapper<FinanceAuditor> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceCalculateMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.FinanceCalculate;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-04-13
- */
-public interface FinanceCalculateMapper extends BaseMapper<FinanceCalculate> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceFixedcolnameMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.FinanceFixedcolname;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-03-15
- */
-public interface FinanceFixedcolnameMapper extends BaseMapper<FinanceFixedcolname> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceImportMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.FinanceImport;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-public interface FinanceImportMapper extends BaseMapper<FinanceImport> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.Finance;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2021-02-18
- */
-public interface FinanceMapper extends BaseMapper<Finance> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceProjectsMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.FinanceProjects;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-public interface FinanceProjectsMapper extends BaseMapper<FinanceProjects> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/FinanceTblcuscolMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.FinanceTblcuscol;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2021-12-17
- */
-public interface FinanceTblcuscolMapper extends BaseMapper<FinanceTblcuscol> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectAddcostItemMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.ProjectAddcostItem;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-public interface ProjectAddcostItemMapper extends BaseMapper<ProjectAddcostItem> {
-
-}

+ 0 - 19
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectAddcostRecordMapper.java

@@ -1,19 +0,0 @@
-package com.management.platform.mapper;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.ProjectAddcostRecord;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import java.util.List;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-public interface ProjectAddcostRecordMapper extends BaseMapper<ProjectAddcostRecord> {
-    List<ProjectAddcostRecord> getWithSubList(Integer projectId);
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectBasecostMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.ProjectBasecost;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2021-08-02
- */
-public interface ProjectBasecostMapper extends BaseMapper<ProjectBasecost> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectBasecostSettingMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.ProjectBasecostSetting;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2021-08-02
- */
-public interface ProjectBasecostSettingMapper extends BaseMapper<ProjectBasecostSetting> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectPercentageMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.ProjectPercentage;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-public interface ProjectPercentageMapper extends BaseMapper<ProjectPercentage> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProjectProfessionMapper.java

@@ -1,16 +0,0 @@
-package com.management.platform.mapper;
-
-import com.management.platform.entity.ProjectProfession;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author Seyason
- * @since 2021-08-28
- */
-public interface ProjectProfessionMapper extends BaseMapper<ProjectProfession> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/EarningSnapshotService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.EarningSnapshot;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-05-15
- */
-public interface EarningSnapshotService extends IService<EarningSnapshot> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseItemService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ExpenseItem;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-05-17
- */
-public interface ExpenseItemService extends IService<ExpenseItem> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseMainTypeService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ExpenseMainType;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2023-04-06
- */
-public interface ExpenseMainTypeService extends IService<ExpenseMainType> {
-
-}

+ 0 - 37
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseSheetService.java

@@ -1,37 +0,0 @@
-package com.management.platform.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.entity.ExpenseSheet;
-import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-05-17
- */
-public interface ExpenseSheetService extends IService<ExpenseSheet> {
-
-    HttpRespMsg add(ExpenseSheet sheet, String items, String userId);
-
-    HttpRespMsg delete(Integer id);
-
-    HttpRespMsg queryList(ExpenseSheet sheet, String startDate, String endDate, Integer pageIndex,  Integer pageSize);
-
-    HttpRespMsg getNextCode(String userId);
-
-    HttpRespMsg getDetail(Integer id);
-
-    HttpRespMsg approve(Integer id);
-
-    HttpRespMsg deny(Integer id,String denyReason);
-
-    HttpRespMsg importData(HttpServletRequest request, MultipartFile[] files);
-
-    HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate);
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ExpenseTypeService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ExpenseType;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-06-18
- */
-public interface ExpenseTypeService extends IService<ExpenseType> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceAuditorService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.FinanceAuditor;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-public interface FinanceAuditorService extends IService<FinanceAuditor> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceCalculateService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.FinanceCalculate;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-04-13
- */
-public interface FinanceCalculateService extends IService<FinanceCalculate> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceFixedcolnameService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.FinanceFixedcolname;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-03-15
- */
-public interface FinanceFixedcolnameService extends IService<FinanceFixedcolname> {
-    public FinanceFixedcolname getFixed(Integer companyId);
-}

+ 0 - 25
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceImportService.java

@@ -1,25 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.FinanceImport;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-public interface FinanceImportService extends IService<FinanceImport> {
-
-    HttpRespMsg submitImport(Integer companyId, String yearMonth, Boolean syncUserCost, Boolean syncHistoryReport, MultipartFile file, HttpServletRequest request);
-
-    HttpRespMsg list(Integer companyId, HttpServletRequest request);
-
-    HttpRespMsg agree(Integer id, HttpServletRequest request);
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceProjectsService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.FinanceProjects;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-public interface FinanceProjectsService extends IService<FinanceProjects> {
-
-}

+ 0 - 36
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceService.java

@@ -1,36 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.Finance;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.UserNotFoundException;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import java.io.IOException;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-02-18
- */
-public interface FinanceService extends IService<Finance> {
-
-    HttpRespMsg getByMonth(Integer companyId, String yearMonth);
-
-    HttpRespMsg importData(Integer companyId, String yearMonth, Boolean syncUserCost, Boolean syncHistoryReport, MultipartFile multipartFile, HttpServletRequest request) throws Exception;
-
-    HttpRespMsg exportData(Integer groupByCategory, String date, Boolean assignNoProUser, HttpServletRequest request);
-
-    HttpRespMsg getTimeCost(String yearMonth, Boolean assignNoProUser, HttpServletRequest request);
-
-    HttpRespMsg getNoProjectUsers(String yearMonth, HttpServletRequest request);
-
-    HttpRespMsg getProjects(Integer companyId, String yearMonth);
-
-    HttpRespMsg exportFinance(String date, HttpServletRequest request);
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/FinanceTblcuscolService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.FinanceTblcuscol;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-12-17
- */
-public interface FinanceTblcuscolService extends IService<FinanceTblcuscol> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProfessionService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.Profession;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-28
- */
-public interface ProfessionService extends IService<Profession> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectAddcostItemService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ProjectAddcostItem;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-public interface ProjectAddcostItemService extends IService<ProjectAddcostItem> {
-
-}

+ 0 - 22
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectAddcostRecordService.java

@@ -1,22 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ProjectAddcostRecord;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.util.HttpRespMsg;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-public interface ProjectAddcostRecordService extends IService<ProjectAddcostRecord> {
-
-    HttpRespMsg add(ProjectAddcostRecord item, String itemList);
-
-    HttpRespMsg revert(Integer id);
-
-    HttpRespMsg getAddList(Integer companyId, Integer projectId);
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectBasecostService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ProjectBasecost;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-02
- */
-public interface ProjectBasecostService extends IService<ProjectBasecost> {
-
-}

+ 0 - 16
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectBasecostSettingService.java

@@ -1,16 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ProjectBasecostSetting;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-02
- */
-public interface ProjectBasecostSettingService extends IService<ProjectBasecostSetting> {
-
-}

+ 0 - 27
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectPercentageService.java

@@ -1,27 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ProjectPercentage;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.util.HttpRespMsg;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-public interface ProjectPercentageService extends IService<ProjectPercentage> {
-
-    HttpRespMsg saveMonthSetting(String projectCols, String userSettings, String ymonth);
-
-    HttpRespMsg getMonthSetting(String ymonth);
-
-    HttpRespMsg importData(Integer companyId, Integer withCheckIn, MultipartFile file, HttpServletRequest request,String ymonth) throws Exception;
-
-    HttpRespMsg getTemplate(String ymonth);
-}

+ 0 - 24
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ProjectProfessionService.java

@@ -1,24 +0,0 @@
-package com.management.platform.service;
-
-import com.management.platform.entity.ProjectProfession;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.management.platform.util.HttpRespMsg;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-28
- */
-public interface ProjectProfessionService extends IService<ProjectProfession> {
-
-    HttpRespMsg modify(Integer projectId, String json);
-
-    HttpRespMsg get(Integer projectId);
-
-    HttpRespMsg getMyProfession(Integer projectId);
-
-    HttpRespMsg getProgressData(Integer projectId);
-}

+ 0 - 10
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/UserService.java

@@ -93,14 +93,4 @@ public interface UserService extends IService<User> {
     ModelAndView loginByWXCode(String code, String state);
 
     HttpRespMsg areaData(String token);
-
-    boolean ldapAuth(String username, String passWord);
-
-    List<JSONObject> ldapGetOU() throws NamingException;
-
-    List<JSONObject> getUser() throws Exception;
-
-    HttpRespMsg initSystemForAd(String companyName) throws Exception;
-
-    HttpRespMsg syncDeptWithAD(HttpServletRequest request) throws Exception;
 }

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/EarningSnapshotServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.EarningSnapshot;
-import com.management.platform.mapper.EarningSnapshotMapper;
-import com.management.platform.service.EarningSnapshotService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-05-15
- */
-@Service
-public class EarningSnapshotServiceImpl extends ServiceImpl<EarningSnapshotMapper, EarningSnapshot> implements EarningSnapshotService {
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseItemServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.ExpenseItem;
-import com.management.platform.mapper.ExpenseItemMapper;
-import com.management.platform.service.ExpenseItemService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-05-17
- */
-@Service
-public class ExpenseItemServiceImpl extends ServiceImpl<ExpenseItemMapper, ExpenseItem> implements ExpenseItemService {
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseMainTypeServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.ExpenseMainType;
-import com.management.platform.mapper.ExpenseMainTypeMapper;
-import com.management.platform.service.ExpenseMainTypeService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2023-04-06
- */
-@Service
-public class ExpenseMainTypeServiceImpl extends ServiceImpl<ExpenseMainTypeMapper, ExpenseMainType> implements ExpenseMainTypeService {
-
-}

+ 0 - 827
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseSheetServiceImpl.java

@@ -1,827 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jayway.jsonpath.internal.function.numeric.Sum;
-import com.management.platform.constant.Constant;
-import com.management.platform.entity.*;
-import com.management.platform.entity.vo.SysRichFunction;
-import com.management.platform.mapper.*;
-import com.management.platform.service.*;
-import com.management.platform.util.ExcelUtil;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.apache.poi.EncryptedDocumentException;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.ss.usermodel.CellType;
-import org.apache.poi.ss.usermodel.Header;
-import org.apache.poi.xssf.usermodel.XSSFCell;
-import org.apache.poi.xssf.usermodel.XSSFRow;
-import org.apache.poi.xssf.usermodel.XSSFSheet;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.StringUtils;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.*;
-import java.math.BigDecimal;
-import java.time.Instant;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-05-17
- */
-@Service
-@Transactional
-public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, ExpenseSheet> implements ExpenseSheetService {
-    @Value(value = "${upload.path}")
-    private String path;
-    @Resource
-    private HttpServletRequest request;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private InformationMapper informationMapper;
-    @Resource
-    private ExpenseSheetMapper expenseSheetMapper;
-    @Resource
-    private ExpenseItemService expenseItemService;
-    @Resource
-    private ExpenseItemMapper expenseItemMapper;
-    @Resource
-    private ProjectMapper projectMapper;
-    @Resource
-    private SysFunctionMapper sysFunctionMapper;
-    @Resource
-    private ExpenseTypeMapper expenseTypeMapper;
-    @Resource
-    private WxCorpInfoMapper wxCorpInfoMapper;
-    @Resource
-    private SysRoleMapper sysRoleMapper;
-    @Resource
-    private WxCorpInfoService wxCorpInfoService;
-    @Resource
-    private InformationService informationService;
-    @Resource
-    private SysRoleFunctionMapper sysRoleFunctionMapper;
-    @Resource
-    private ExcelExportService excelExportService;
-    @Resource
-    private ExpenseMainTypeService expenseMainTypeService;
-    @Resource
-    private ProjectBasecostSettingMapper projectBasecostSettingMapper;
-    @Resource
-    private ProjectCurrentcostMapper projectCurrentcostMapper;
-
-    @Override
-    public HttpRespMsg add(ExpenseSheet sheet, String items, String userId) {
-        HttpRespMsg msg = new HttpRespMsg();
-        User user = userMapper.selectById(userId);
-        List<SysRichFunction> functionDeptList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "费用审核");
-        boolean isAuditor = functionDeptList.size() > 0;
-        boolean isNew = false;
-        if (sheet.getId() == null) {
-            if (isAuditor) {
-                sheet.setStatus(0);
-            } else {
-                sheet.setStatus(1);
-            }
-            isNew = true;
-            //检查code不能重复
-            Integer num = expenseSheetMapper.selectCount(new QueryWrapper<ExpenseSheet>().eq("company_id", user.getCompanyId()).eq("code", sheet.getCode()));
-            if (num > 0) {
-                //msg.setError("票据编号已存在");
-                msg.setError(MessageUtils.message("other.billNoExist"));
-                return msg;
-            }
-        } else {
-            //如果是驳回状态,改成待审核,否则不变
-            if (sheet.getStatus() == 2) {
-                if (isAuditor) {
-                    sheet.setStatus(0);
-                } else {
-                    sheet.setStatus(1);
-                }
-            }
-        }
-
-
-        sheet.setDenyReason(null);
-        sheet.setOperatorId(userId);//设置操作人id
-        JSONArray array = JSONArray.parseArray(items);
-        sheet.setOwnerName(userMapper.selectById(sheet.getOwnerId()).getName());
-        sheet.setCompanyId(user.getCompanyId());
-        //校验费用成本是否超过预算
-        //先获取该类型的费用对应的成本预算是多少
-        Integer type = sheet.getType();
-        ExpenseMainType expenseType = expenseMainTypeService.getById(type);
-        Integer basecostSettingId = expenseType.getBasecostSettingId();
-        //设置了对应的成本预算项
-        if (basecostSettingId != null) {
-            ProjectBasecostSetting projectBasecostSetting = projectBasecostSettingMapper.selectById(basecostSettingId);
-            String settingName = projectBasecostSetting.getName();
-            HashMap<Integer, Double> map = new HashMap<>();
-            for (int i=0;i<array.size(); i++) {
-                JSONObject obj = array.getJSONObject(i);
-                ExpenseItem expenseItem = JSONObject.toJavaObject(obj, ExpenseItem.class);
-                Integer projectId = expenseItem.getProjectId();
-                if (map.get(projectId) == null) {
-                    map.put(projectId, expenseItem.getAmount());
-                } else {
-                    //累加
-                    map.put(projectId, map.get(projectId)  + expenseItem.getAmount());
-                }
-            }
-            for (Map.Entry<Integer, Double> entry : map.entrySet()) {
-                Integer projectId = entry.getKey();
-                Double amount = entry.getValue();
-                Project p = projectMapper.selectById(projectId);
-                //获取该项目的这一项当前成本预算
-                ProjectCurrentcost pCurCost = projectCurrentcostMapper.selectOne(new QueryWrapper<ProjectCurrentcost>().eq("project_id", projectId).eq("base_id", basecostSettingId));
-                if (pCurCost == null || pCurCost.getBaseAmount() == null || pCurCost.getBaseAmount() == 0) {
-                    msg.setError("项目【"+p.getProjectName()+"】没有下拨"+settingName+"的预算");
-                    return msg;
-                }
-                //计算该项目当前已经填报的费用报销的金额
-                Double sumAmount = expenseItemMapper.selectSumAmountByProjectAndType(projectId, type);
-                if (amount + sumAmount > pCurCost.getBaseAmount()) {
-                    msg.setError("项目【"+p.getProjectName()+"】的"+settingName+"费用预算不足,无法提交");
-                    return msg;
-                }
-            }
-        }
-
-
-        if (isNew) {
-            expenseSheetMapper.insert(sheet);
-            if (!isAuditor) {
-                WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
-                if(wxCorpInfo!=null){
-                    //获取具有费用报销审核权限的人员
-                    SysFunction sysFunction = sysFunctionMapper.selectOne(new QueryWrapper<SysFunction>().eq("name", "费用审核"));
-                    List<SysRoleFunction> sysRoleFunctions = sysRoleFunctionMapper.selectList(new QueryWrapper<SysRoleFunction>().eq("function_id", sysFunction.getId()));
-                    List<Integer> roleIds = sysRoleFunctions.stream().map(sf -> sf.getRoleId()).distinct().collect(Collectors.toList());
-                    List<Integer> targetRoleIds = sysRoleMapper.selectList(new QueryWrapper<SysRole>().eq("company_id", user.getCompanyId()).in("id", roleIds))
-                            .stream().map(sl -> sl.getId()).distinct().collect(Collectors.toList());
-                    List<User> targetUserList = userMapper.selectList(new QueryWrapper<User>().in("role_id", targetRoleIds));
-                    String corpUserString = targetUserList.stream().map(tl -> tl.getCorpwxUserid()).collect(Collectors.joining("|"));
-                    User targetUser = userMapper.selectById(sheet.getOwnerId());
-                    ExpenseMainType mainType = expenseMainTypeService.getById(sheet.getType());
-                    //推送到企业微信
-                    JSONObject json=new JSONObject();
-                    JSONArray dataJson=new JSONArray();
-                    JSONObject jsonObj=new JSONObject();
-                    jsonObj.put("key", "报销人");
-                    jsonObj.put("value",("$userName="+targetUser.getCorpwxUserid()+"$"));
-                    JSONObject jsonObj1=new JSONObject();
-                    jsonObj1.put("key", "填报日期");
-                    jsonObj1.put("value",sheet.getCreateDate());
-                    JSONObject jsonObj2=new JSONObject();
-                    jsonObj2.put("key", "票据类型");
-                    jsonObj2.put("value",mainType.getName());
-                    JSONObject jsonObj3=new JSONObject();
-                    jsonObj3.put("key", "金额");
-                    jsonObj3.put("value",sheet.getTotalAmount());
-                    JSONObject jsonObj4=new JSONObject();
-                    jsonObj4.put("key", "备注");
-                    jsonObj4.put("value",sheet.getRemark()==null?"":sheet.getRemark());
-                    dataJson.add(jsonObj);
-                    dataJson.add(jsonObj1);
-                    dataJson.add(jsonObj2);
-                    dataJson.add(jsonObj3);
-                    dataJson.add(jsonObj4);
-                    json.put("template_id","tty9TkCAAALUiWvjdoDg_PZf48gwucZA");
-                    json.put("url","https://open.weixin.qq.com/connect/oauth2/authorize?appid=ww4e237fd6abb635af&redirect_uri=http://worktime.ttkuaiban.com/api/corpWXAuth&response_type=code&scope=snsapi_base&state=expense#wechat_redirect");
-                    json.put("content_item",dataJson);
-                    wxCorpInfoService.sendWXCorpTemplateMsg(wxCorpInfo,corpUserString, json);
-                    List<Information> informationList=new ArrayList<>();
-                    for (User item : targetUserList) {
-                        Information information=new Information();
-                        information.setUserId(item.getId());
-                        information.setTime(LocalDateTime.now());
-                        information.setMsg("费用报销待审核");
-                        information.setType(3);
-                        information.setContent(sheet.getCreateDate()+"");
-                        informationList.add(information);
-                    }
-                    informationService.saveBatch(informationList);
-                }
-            }
-        } else {
-            expenseSheetMapper.updateById(sheet);
-        }
-
-        List<ExpenseItem> itemList = new ArrayList<ExpenseItem>();
-        if (array != null) {
-            for (int i=0;i<array.size(); i++) {
-                JSONObject obj = array.getJSONObject(i);
-                ExpenseItem expenseItem = JSONObject.toJavaObject(obj, ExpenseItem.class);
-                expenseItem.setExpenseId(sheet.getId());
-                itemList.add(expenseItem);
-            }
-        }
-
-        //对于修改的情况,要删除之前的
-        if (!isNew) {
-            expenseItemService.remove(new QueryWrapper<ExpenseItem>().eq("expense_id", sheet.getId()));
-        }
-        expenseItemService.saveBatch(itemList);
-
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg delete(Integer id) {
-        expenseItemService.remove(new QueryWrapper<ExpenseItem>().eq("expense_id", id));
-        expenseSheetMapper.deleteById(id);
-        return new HttpRespMsg();
-    }
-
-    @Override
-    public HttpRespMsg queryList(ExpenseSheet sheet, String startDate, String endDate, Integer pageIndex, Integer pageSize) {
-        QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
-        HttpRespMsg httpRespMsg = new HttpRespMsg();
-        queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
-
-        if (!StringUtils.isEmpty(sheet.getCode())) {
-            queryWrapper.eq("code", sheet.getCode());
-        }
-        //增加状态
-        if (sheet.getStatus() != null) {
-            queryWrapper.eq("status", sheet.getStatus());
-        }
-        if (!StringUtils.isEmpty(sheet.getOwnerId())) {
-            queryWrapper.eq("owner_id", sheet.getOwnerId());
-        }
-        if (sheet.getType() != null) {
-            queryWrapper.eq("type", sheet.getType());
-        }
-        if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) {
-            queryWrapper.between("create_date", startDate, endDate);
-        }
-        IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
-                queryWrapper);
-        List<ExpenseSheet> records = listIPager.getRecords();
-        List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
-        records.forEach(re->{
-            Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
-            if(first.isPresent()){
-                re.setExpenseMainTypeName(first.get().getName());
-            }
-        });
-        Long total = listIPager.getTotal();
-        Map<String, Object> map = new HashMap<>();
-        map.put("records", records);
-        map.put("total", total);
-        httpRespMsg.data = map;
-        return httpRespMsg;
-    }
-
-    @Override
-    public HttpRespMsg getNextCode(String userId) {
-        User user = userMapper.selectById(userId);
-        DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
-        String format = yyyyMMdd.format(LocalDate.now());
-        List<ExpenseSheet> list = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>()
-                .eq("company_id", user.getCompanyId())
-                .like("code", format).orderByDesc("id").last("limit 1"));
-        int start = 1;
-        if (list.size() > 0) {
-            String code = list.get(0).getCode();
-            code = code.substring(format.length(), code.length());
-            System.out.println("code====="+code);
-            if (code.length() > 0) {
-                start = Integer.parseInt(code) + 1;
-            }
-        }
-        HttpRespMsg msg = new HttpRespMsg();
-        msg.data = format+start;
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg getDetail(Integer id) {
-        ExpenseSheet expenseSheet = expenseSheetMapper.selectById(id);
-        List<ExpenseItem> list = expenseItemMapper.selectList(new QueryWrapper<ExpenseItem>().eq("expense_id", id));
-        List<Project> Project = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", expenseSheet.getCompanyId()));
-        for (ExpenseItem expenseItem : list) {
-            for (Project project : Project) {
-                if ((project.getId().equals(expenseItem.getProjectId()))){
-                    expenseItem.setProjectName(project.getProjectName());
-                    break;
-                }
-            }
-        }
-        expenseSheet.setInvoiceList(list);
-        HttpRespMsg msg = new HttpRespMsg();
-        msg.data = expenseSheet;
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg approve(Integer id) {
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        ExpenseSheet sheet = new ExpenseSheet();
-        sheet.setId(id);
-        sheet.setStatus(0);
-        expenseSheetMapper.updateById(sheet);
-
-        sheet = expenseSheetMapper.selectById(id);
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
-        if (wxCorpInfo != null) {
-            sendAuditResult(wxCorpInfo, user, sheet, null);
-        }
-        saveNotifyToApplier(sheet, user);
-
-        return new HttpRespMsg();
-    }
-
-    @Override
-    public HttpRespMsg deny(Integer id,String denyReason) {
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        ExpenseSheet sheet = new ExpenseSheet();
-        sheet.setId(id);
-        sheet.setStatus(2);
-        sheet.setDenyReason(denyReason);
-        expenseSheetMapper.updateById(sheet);
-
-        //给填报人发送消息
-        sheet = expenseSheetMapper.selectById(id);
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
-        if (wxCorpInfo != null) {
-            sendAuditResult(wxCorpInfo, user, sheet, denyReason);
-        }
-        saveNotifyToApplier(sheet, user);
-
-        return new HttpRespMsg();
-    }
-
-
-    //发送审核结果消息提醒
-    private void sendAuditResult(WxCorpInfo wxCorpInfo, User auditor, ExpenseSheet sheet, String denyReason) {
-        //推送到企业微信
-        StringBuilder stringBuilder = new StringBuilder();
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("M月d日");
-        stringBuilder.append("$userName="+auditor.getCorpwxUserid()+"$")
-                .append(sheet.getStatus() == 0?"通过":"驳回")
-                .append("了您")
-                .append(dateTimeFormatter.format(sheet.getCreateDate()))
-                .append("的费用报销申请。");
-        if (sheet.getStatus() == 2) {
-            //驳回加原因
-            stringBuilder.append("原因: ").append(denyReason);
-        }
-
-        String ownerId = sheet.getOwnerId();
-        User owner = userMapper.selectById(ownerId);
-        wxCorpInfoService.sendWXCorpMsg(wxCorpInfo,owner.getCorpwxUserid(), stringBuilder.toString(), "expense",
-                sheet.getStatus() == 0?WxCorpInfoServiceImpl.TEXT_CARD_MSG_EXPENSE_AGREE:WxCorpInfoServiceImpl.TEXT_CARD_MSG_EXPENSE_DENY);
-
-    }
-
-
-    private void saveNotifyToApplier(ExpenseSheet sheet, User auditor) {
-        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("M月d日");
-        String ownerId = sheet.getOwnerId();
-        User owner = userMapper.selectById(ownerId);
-        //系统内消息
-        Information information=new Information();
-        information.setUserId(owner.getId());
-        information.setTime(LocalDateTime.now());
-        information.setMsg("您"+dateTimeFormatter.format(sheet.getCreateDate()) + "费用报销申请审核"+(sheet.getStatus() == 0?"已通过":"已驳回")+", 审核人:"
-                +(auditor.getCorpwxUserid() != null ? ("$userName="+auditor.getCorpwxUserid()+"$"):auditor.getName()));
-        information.setType(3);//费用报销模块
-        information.setContent(sheet.getId()+"");
-        informationMapper.insert(information);
-    }
-
-    @Override
-    public HttpRespMsg importData(HttpServletRequest request,MultipartFile[] files) {
-        HttpRespMsg msg = new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("token"));
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
-        //然后处理文件
-        for (MultipartFile multipartFile : files) {
-            String fileName = multipartFile.getOriginalFilename();
-            File file = new File(fileName == null ? "file" : fileName);
-            InputStream inputStream = null;
-            OutputStream outputStream = null;
-            try {
-                inputStream = multipartFile.getInputStream();
-                outputStream = new FileOutputStream(file);
-                byte[] buffer = new byte[4096];
-                int temp = 0;
-                while ((temp = inputStream.read(buffer, 0, 4096)) != -1) {
-                    outputStream.write(buffer, 0, temp);
-                }
-                inputStream.close();
-                outputStream.close();
-                //然后解析表格
-                XSSFWorkbook workbook = new XSSFWorkbook(file);
-                //我们只需要第一个sheet
-                XSSFSheet sheet = workbook.getSheetAt(0);
-                //获取全部人员
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", user.getCompanyId()));
-                List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", user.getCompanyId()));
-                List<SysRichFunction> functionList = sysFunctionMapper.getRoleFunctions(user.getRoleId(), "费用审核");
-                List<ExpenseMainType> expenseMainTypeList = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", user.getCompanyId()));
-                List<ExpenseType> expenseTypeList = expenseTypeMapper.selectList(new QueryWrapper<ExpenseType>().eq("company_id",user.getCompanyId()));
-                //由于第一行需要指明报销人列对应的标题
-                XSSFRow firstRow = sheet.getRow(2);
-                if (firstRow == null) {
-                    //msg.setError("错误数据,导入失败");
-                    msg.setError(MessageUtils.message("file.dataFormatError"));
-                    return msg;
-                }
-                //报销人 填报日期 费用类型 备注
-                XSSFCell reimburserCell = firstRow.getCell(0);
-                XSSFCell reportDateCell = firstRow.getCell(1);
-                XSSFCell expenseTypeCell = firstRow.getCell(2);
-                XSSFCell remarksCell = firstRow.getCell(3);
-
-                if (reimburserCell != null) reimburserCell.setCellType(CellType.STRING);
-                if (reportDateCell != null) reportDateCell.setCellType(CellType.NUMERIC);
-                if (expenseTypeCell != null) expenseTypeCell.setCellType(CellType.STRING);
-                if (remarksCell != null) remarksCell.setCellType(CellType.STRING);
-                if (reimburserCell == null || StringUtils.isEmpty(reimburserCell.getStringCellValue())) {//报销人为空的直接跳过
-                    throw new Exception("报销人名称不能为空");
-                }
-                if (expenseTypeCell == null) {
-                    throw new Exception("费用类型不能为空");
-                }
-                if (reportDateCell == null  || reportDateCell.getDateCellValue() == null) {
-                    throw new Exception("填报日期不能为空");
-                }
-                //做完非空校验后,进行姓名处理
-
-                String reimburserName = reimburserCell.getStringCellValue();
-
-                HttpRespMsg respMsg= null;
-                List<User> targetUserList= new ArrayList<>();
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                    List<String> userNameList=new ArrayList<>();
-                    userNameList.add(reimburserName);
-                    System.out.println("参与搜素的人员列表"+userNameList);
-                    respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
-                    if(respMsg.code.equals("0")){
-                        msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
-                        return msg;
-                    }
-                    targetUserList = (List<User>) respMsg.data;
-                }
-                ExpenseSheet expenseSheet = new ExpenseSheet();
-                if(functionList.size()>0){
-                    expenseSheet.setStatus(0);
-                }else {
-                    expenseSheet.setStatus(1);
-                }
-                //处理编号
-                DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
-                String format = yyyyMMdd.format(LocalDate.now());
-                List<ExpenseSheet> list = expenseSheetMapper.selectList(new QueryWrapper<ExpenseSheet>()
-                        .eq("company_id", user.getCompanyId())
-                        .like("code", format).orderByDesc("id").last("limit 1"));
-                int start = 1;
-                if (list.size() > 0) {
-                    String code = list.get(0).getCode();
-                    code = code.substring(format.length(), code.length());
-                    System.out.println("code=====" + code);
-                    if (code.length() > 0) {
-                        start = Integer.parseInt(code) + 1;
-                    }
-                }
-                expenseSheet.setCode(format + start);
-                expenseSheet.setCompanyId(user.getCompanyId());
-                LocalDate localDate = Instant.ofEpochMilli(reportDateCell.getDateCellValue().getTime())
-                        .atZone(ZoneId.systemDefault()).toLocalDate();
-                expenseSheet.setCreateDate(localDate);
-                Optional<User> first;
-                if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                    Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(reimburserName)).findFirst();
-                    first = userList.stream().filter(us -> us.getName().equals(reimburserName)||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserName))||(optional.isPresent()&&us.getCorpwxUserid()!=null&&us.getCorpwxUserid().equals(optional.get().getCorpwxUserid()))).findFirst();
-                }else {
-                    first = userList.stream().filter(us -> us.getName().equals(reimburserName)||(us.getJobNumber()!=null&&us.getJobNumber().equals(reimburserName))).findFirst();
-                }
-                if (first != null && first.isPresent()) {
-                    expenseSheet.setOwnerId(first.get().getId());
-                    expenseSheet.setOwnerName(first.get().getName());
-                } else {
-                    throw new Exception("报销人[" +reimburserCell+"]不存在");
-                }
-                expenseSheet.setOperatorId(user.getId());
-                expenseSheet.setRemark(remarksCell.getStringCellValue());
-                if(StringUtils.isEmpty(expenseTypeCell.getStringCellValue())){
-                    msg.setError("请填写费用报销类型");
-                    return msg;
-                }
-                if(!expenseMainTypeList.stream().anyMatch(el->el.getName().equals(expenseTypeCell.getStringCellValue()))){
-                    msg.setError("当前费用类型["+expenseTypeCell.getStringCellValue()+"]不存在");
-                    return msg;
-                }
-                Optional<ExpenseMainType> any = expenseMainTypeList.stream().filter(el -> el.getName().equals(expenseTypeCell.getStringCellValue())).findAny();
-                if(any.isPresent()){
-                    expenseSheet.setType(any.get().getId());
-                }
-                expenseSheetMapper.insert(expenseSheet);
-                //前提需要指定第一二行为报销人数据 从第三行数据开始处理 报销单据详情
-                int rowNum = sheet.getLastRowNum();
-                //计算总费用
-                BigDecimal bigDecimal = new BigDecimal(0);
-                List<ExpenseItem> expenseItemList = new ArrayList<>();
-                int i=0;
-                String errorAboutProject="";
-                for (int rowIndex = 5; rowIndex <= rowNum; rowIndex++) {
-                    XSSFRow row = sheet.getRow(rowIndex);
-                    if (row == null) {
-                        continue;
-                    }
-                    //跳过空行
-                    if (ExcelUtil.isRowEmpty(row)) {
-                        continue;
-                    }
-                    //项目编号 费用日期 发拍种类 费用类型 费用金额 发票号 税率 税额 备注
-                    XSSFCell codeCell = row.getCell(0);
-                    if (codeCell != null) codeCell.setCellType(CellType.STRING);
-                    Optional<Project> project = projectList.stream().filter(pro ->(StringUtils.isEmpty(pro.getProjectCode())?"":pro.getProjectCode()).equals(codeCell.getStringCellValue())
-                            || (StringUtils.isEmpty(pro.getProjectName())?"":pro.getProjectName()).equals(codeCell.getStringCellValue())).findFirst();
-                    if (!project.isPresent()) {
-                        errorAboutProject+=codeCell.getStringCellValue()+"/";
-                    }
-                }
-                if(!errorAboutProject.equals("")){
-                    throw new Exception("项目编号/项目名称为[" +errorAboutProject+"]的项目不存在");
-                }
-                for (int rowIndex = 5; rowIndex <= rowNum; rowIndex++) {
-                    XSSFRow row = sheet.getRow(rowIndex);
-                    if (row == null) {
-                        continue;
-                    }
-                    //跳过空行
-                    if (ExcelUtil.isRowEmpty(row)) {
-                        continue;
-                    }
-                    //项目编号 费用日期 发拍种类 费用类型 费用金额 发票号 税率 税额 备注
-                    XSSFCell codeCell = row.getCell(0);
-                    XSSFCell happenDateCell = row.getCell(1);
-                    XSSFCell invoiceTypeCell = row.getCell(2);
-                    XSSFCell subExpenseTypeCell = row.getCell(3);
-                    XSSFCell amountCell = row.getCell(4);
-                    XSSFCell invoiceNoCell = row.getCell(5);
-                    XSSFCell taxPercentCell = row.getCell(6);
-                    XSSFCell remarkCell = row.getCell(7);
-
-                    if (codeCell != null) codeCell.setCellType(CellType.STRING);
-                    if (happenDateCell != null) happenDateCell.setCellType(CellType.NUMERIC);
-                    if (invoiceTypeCell != null) invoiceTypeCell.setCellType(CellType.STRING);
-                    if (subExpenseTypeCell != null) subExpenseTypeCell.setCellType(CellType.STRING);
-                    if (amountCell != null) amountCell.setCellType(CellType.NUMERIC);
-                    if (invoiceNoCell != null) invoiceNoCell.setCellType(CellType.STRING);
-                    if (taxPercentCell != null) taxPercentCell.setCellType(CellType.NUMERIC);
-                    if (remarkCell != null) remarkCell.setCellType(CellType.STRING);
-                    //项目为空 直接跳过
-                    if(codeCell==null){
-                        continue;
-                    }
-                    ExpenseItem expenseItem = new ExpenseItem();
-                    System.out.println(codeCell.getStringCellValue());
-                    Optional<Project> project = projectList.stream().filter(pro ->(StringUtils.isEmpty(pro.getProjectCode())?"":pro.getProjectCode()).equals(codeCell.getStringCellValue())
-                            || (StringUtils.isEmpty(pro.getProjectName())?"":pro.getProjectName()).equals(codeCell.getStringCellValue())).findFirst();
-                    if (project.isPresent()) {
-                        expenseItem.setProjectId(project.get().getId());
-                    }
-                    expenseItem.setExpenseId(expenseSheet.getId());
-                    if(happenDateCell!=null && !happenDateCell.toString().trim().equals("")){
-                        LocalDate happenDate = Instant.ofEpochMilli(happenDateCell.getDateCellValue().getTime())
-                                .atZone(ZoneId.systemDefault()).toLocalDate();
-                        expenseItem.setHappenDate(String.valueOf(happenDate));
-                    }
-                    if(invoiceTypeCell!=null){
-                        switch (invoiceTypeCell.getStringCellValue()) {
-                            case "增值税专用发票":
-                            case "VAT special invoice":
-                                expenseItem.setInvoiceType(0);
-                                break;
-                            case "增值税普通发票":
-                            case "VAT ordinary invoice":
-                                expenseItem.setInvoiceType(1);
-                                break;
-                        }
-                    }
-                    if(subExpenseTypeCell!=null){
-                        List<String> stringList = expenseTypeList.stream().filter(et -> et.getMainType().equals(expenseSheet.getType())).map(et -> et.getTypeName()).collect(Collectors.toList());
-                        if(stringList!=null&&!stringList.contains(subExpenseTypeCell.getStringCellValue())){
-                            //msg.setError("当前费用类型["+expenseTypeCell.getStringCellValue()+"]中不存在["+subExpenseTypeCell.getStringCellValue()+"]类型");
-                            msg.setError(MessageUtils.message("Reimbursement.TypeError",expenseTypeCell.getStringCellValue(),subExpenseTypeCell.getStringCellValue()));
-                            return msg;
-                        }
-                        expenseItem.setExpenseType(subExpenseTypeCell.getStringCellValue());
-                    }
-                    if(invoiceNoCell!=null){
-                        expenseItem.setInvoiceNo(invoiceNoCell.getStringCellValue());
-                    }
-                    if(amountCell!=null){
-                        expenseItem.setAmount(amountCell.getNumericCellValue());
-                        //计算税额
-                        BigDecimal bd = new BigDecimal(amountCell.getNumericCellValue());
-                        bigDecimal=bigDecimal.add(BigDecimal.valueOf(amountCell.getNumericCellValue()));
-
-                        if (taxPercentCell != null) {
-                            //税率是加百分号后显示的数据
-                            BigDecimal taxRate = new BigDecimal(taxPercentCell.getNumericCellValue()).divide(new BigDecimal(100));
-                            //原始金额
-                            BigDecimal divide = bd.divide(taxRate.add(new BigDecimal(1)),2,BigDecimal.ROUND_HALF_UP);
-                            BigDecimal subtract = bd.subtract(divide);
-                            expenseItem.setTaxValue(subtract.doubleValue());
-                        }
-                    }
-                    if(remarkCell!=null){
-                        expenseItem.setRemark(remarkCell.getStringCellValue());
-                    }
-                    if(taxPercentCell!=null){
-                        expenseItem.setTaxPercent(taxPercentCell.getNumericCellValue());
-                    }
-
-                    expenseItemList.add(expenseItem);
-                    i++;
-                }
-                expenseSheet.setTicketNum(i);
-                expenseSheet.setTotalAmount(bigDecimal.doubleValue());
-                expenseSheetMapper.updateById(expenseSheet);
-                expenseItemService.saveBatch(expenseItemList);
-            } catch (IOException e) {
-                e.printStackTrace();
-            } catch (NullPointerException e) {
-                e.printStackTrace();
-                //msg.setError("数据格式有误或存在空数据 导入失败");
-                msg.setError(MessageUtils.message("file.dataFormatError"));
-                return msg;
-            } catch (InvalidFormatException e) {
-                e.printStackTrace();
-                //msg.setError("文件格式错误,如果安装了加密软件需要先解密再上传");
-                msg.setError(MessageUtils.message("file.FormatErrorAndDecrypt"));
-            } catch (EncryptedDocumentException e) {
-                e.printStackTrace();
-                //msg.setError("文件加密状态,需要先解除加密状态再上传");
-                msg.setError(MessageUtils.message("file.encryption"));
-                return msg;
-            } catch (Exception e) {
-                e.printStackTrace();
-                //msg.setError("上传失败:" + e.getMessage());
-                msg.setError(MessageUtils.message("file.uploadError",e.getMessage()));
-                return msg;
-            } finally {
-                //关闭流
-                try {
-                    if (outputStream != null && inputStream != null) {
-                        outputStream.close();
-                        inputStream.close();
-                        System.out.println("流已关闭");
-                    }
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
-//            file.deleteOnExit();//程序退出时删除临时文件
-                System.out.println(file.delete());
-            }
-        }
-        return msg;
-    }
-
-    /**
-     * 费用报销单据的导出
-     * @param sheet
-     * @param startDate
-     * @param endDate
-     * @return
-     */
-    @Override
-    public HttpRespMsg exportList(ExpenseSheet sheet, String startDate, String endDate) {
-        WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", sheet.getCompanyId()));
-        QueryWrapper<ExpenseSheet> queryWrapper = new QueryWrapper<ExpenseSheet>();
-        queryWrapper.eq("company_id", sheet.getCompanyId()).orderByDesc("id");
-        if (!StringUtils.isEmpty(sheet.getCode())) {
-            queryWrapper.eq("code", sheet.getCode());
-        }
-        //增加状态
-        if (sheet.getStatus() != null) {
-            queryWrapper.eq("status", sheet.getStatus());
-        }
-        if (!StringUtils.isEmpty(sheet.getOwnerId())) {
-            queryWrapper.eq("owner_id", sheet.getOwnerId());
-        }
-        if (sheet.getType() != null) {
-            queryWrapper.eq("type", sheet.getType());
-        }
-        if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) {
-            queryWrapper.between("create_date", startDate, endDate);
-        }
-        List<ExpenseSheet> records = expenseSheetMapper.selectList(queryWrapper);
-        List<List<String>> allList=new ArrayList<>();
-        List<String> titleList=new ArrayList<>();
-//        titleList.add("票据编号");
-//        titleList.add("金额(元)");
-//        titleList.add("报销人");
-//        titleList.add("填报日期");
-//        titleList.add("发票张数");
-//        titleList.add("票据类型");
-//        titleList.add("备注");
-//        titleList.add("状态");
-        titleList.add(MessageUtils.message("Reimbursement.No"));
-        titleList.add(MessageUtils.message("Reimbursement.amount"));
-        titleList.add(MessageUtils.message("excel.reiPer"));
-        titleList.add(MessageUtils.message("excel.fillDate"));
-        titleList.add(MessageUtils.message("Reimbursement.numberOfInvoices"));
-        titleList.add(MessageUtils.message("Reimbursement.billType"));
-        titleList.add(MessageUtils.message("excel.remark"));
-        titleList.add(MessageUtils.message("leave.status"));
-        allList.add(titleList);
-        BigDecimal sumAmount = new BigDecimal(0);
-        for (ExpenseSheet record : records) {
-            List<String> item=new ArrayList<>();
-            item.add(record.getCode());
-            item.add(record.getTotalAmount()==null?"0":record.getTotalAmount()+"");
-            if (wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                item.add("$userName=" + record.getOwnerName() +"$");
-            }else {
-                item.add(record.getOwnerName());
-            }
-            item.add(record.getCreateDate()==null?"":record.getCreateDate()+"");
-            item.add(record.getTicketNum()==null?"0":record.getTicketNum()+"");
-            switch (record.getType()){
-                case 0:
-                    item.add("一般费用");
-                    break;
-                case 1:
-                    item.add("差旅费用");
-                    break;
-                case 2:
-                    item.add("外包费用");
-                    break;
-                default:
-                    item.add("");
-            }
-            item.add(record.getRemark()==null?"":record.getRemark());
-            switch (record.getStatus()){
-                case 0:
-                    item.add("审核通过");
-                    break;
-                case 1:
-                    item.add("待审核");
-                    break;
-                case 2:
-                    item.add("驳回");
-                    break;
-                case 3:
-                    item.add("已撤回");
-                    break;
-                default:
-                    item.add("");
-            }
-            allList.add(item);
-            if (record.getTotalAmount() == null) record.setTotalAmount(0.0);
-            sumAmount = sumAmount.add(BigDecimal.valueOf(record.getTotalAmount()));
-        }
-        //合计
-        List<String> sumRow = new ArrayList<String>();
-        //sumRow.add("合计");
-        sumRow.add(MessageUtils.message("entry.total"));
-        sumRow.add(sumAmount.setScale(2,BigDecimal.ROUND_UP)+"");
-        for (int i = 0; i < titleList.size() - 2; i++) {
-            sumRow.add("");
-        }
-        allList.add(sumRow);
-        HttpRespMsg msg = new HttpRespMsg();
-        //生成excel文件导出
-        //String fileName = "费用报销单据列表"+System.currentTimeMillis();
-        String fileName = MessageUtils.message("fileName.expense")+System.currentTimeMillis();
-        try {
-            return excelExportService.exportGeneralExcelByTitleAndList(wxCorpInfo,fileName , allList, path);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-//        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName , dataList, path);
-//        msg.data = resp;
-        return msg;
-    }
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ExpenseTypeServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.ExpenseType;
-import com.management.platform.mapper.ExpenseTypeMapper;
-import com.management.platform.service.ExpenseTypeService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-06-18
- */
-@Service
-public class ExpenseTypeServiceImpl extends ServiceImpl<ExpenseTypeMapper, ExpenseType> implements ExpenseTypeService {
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceAuditorServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.FinanceAuditor;
-import com.management.platform.mapper.FinanceAuditorMapper;
-import com.management.platform.service.FinanceAuditorService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-@Service
-public class FinanceAuditorServiceImpl extends ServiceImpl<FinanceAuditorMapper, FinanceAuditor> implements FinanceAuditorService {
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceCalculateServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.FinanceCalculate;
-import com.management.platform.mapper.FinanceCalculateMapper;
-import com.management.platform.service.FinanceCalculateService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-04-13
- */
-@Service
-public class FinanceCalculateServiceImpl extends ServiceImpl<FinanceCalculateMapper, FinanceCalculate> implements FinanceCalculateService {
-
-}

+ 0 - 69
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceFixedcolnameServiceImpl.java

@@ -1,69 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.FinanceCalculate;
-import com.management.platform.entity.FinanceFixedcolname;
-import com.management.platform.mapper.FinanceCalculateMapper;
-import com.management.platform.mapper.FinanceFixedcolnameMapper;
-import com.management.platform.service.FinanceFixedcolnameService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.util.MessageUtils;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-03-15
- */
-@Service
-public class FinanceFixedcolnameServiceImpl extends ServiceImpl<FinanceFixedcolnameMapper, FinanceFixedcolname> implements FinanceFixedcolnameService {
-    @Resource
-    private FinanceCalculateMapper financeCalculateMapper;
-
-    public FinanceFixedcolname getFixed(Integer companyId) {
-        FinanceFixedcolname item = getById(companyId);
-        if (item == null) {
-            //自动生成默认值
-            item = new FinanceFixedcolname();
-            //item.setMonthCost("工资");
-            item.setMonthCost(MessageUtils.message("entry.wages"));
-            //item.setBonus("奖金");
-            item.setBonus(MessageUtils.message("entry.bonus"));
-            //item.setAllowance("津贴");
-            item.setAllowance(MessageUtils.message("entry.allowance"));
-            //item.setInsuranceOld("养老保险");
-            item.setInsuranceOld(MessageUtils.message("entry.endowmentInsurance"));
-            //item.setInsuranceMedical("医疗保险");
-            item.setInsuranceMedical(MessageUtils.message("entry.medicalInsurance"));
-            //item.setInsuranceLosejob("失业保险");
-            item.setInsuranceLosejob(MessageUtils.message("entry.unemploymentInsurance"));
-            //item.setInsuranceInjury("工伤保险");
-            item.setInsuranceInjury(MessageUtils.message("entry.injuryInsurance"));
-            //item.setHouseFund("住房公积金");
-            item.setHouseFund(MessageUtils.message("entry.housingProvidentFund"));
-            item.setCompanyId(companyId);
-            save(item);
-        }
-        //检查是否可计入总计的属性
-        FinanceCalculate calculate = financeCalculateMapper.selectById(companyId);
-        if (calculate == null) {
-            calculate = new FinanceCalculate();
-            calculate.setAllowanceCalculate(1);
-            calculate.setBonusCalculate(1);
-            calculate.setHouseFundCalculate(1);
-            calculate.setInsuranceInjuryCalculate(1);
-            calculate.setInsuranceMedicalCalculate(1);
-            calculate.setInsuranceLosejobCalculate(1);
-            calculate.setInsuranceOldCalculate(1);
-            calculate.setMonthCostCalculate(1);
-            calculate.setCompanyId(companyId);
-            financeCalculateMapper.insert(calculate);
-        }
-        item.copyFromCalculate(calculate);
-        return item;
-    }
-}

+ 0 - 569
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceImportServiceImpl.java

@@ -1,569 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.*;
-import com.management.platform.mapper.*;
-import com.management.platform.service.*;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.util.ExcelUtil;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import com.management.platform.util.UserNotFoundException;
-import org.apache.commons.io.FileUtils;
-import org.apache.poi.ss.usermodel.*;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.*;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-03-22
- */
-@Service
-public class FinanceImportServiceImpl extends ServiceImpl<FinanceImportMapper, FinanceImport> implements FinanceImportService {
-    @Value(value = "${upload.path}")
-    private String path;
-
-    @Resource
-    private FinanceFixedcolnameService financeFixedcolnameService;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private FinanceImportMapper financeImportMapper;
-    @Resource
-    private DepartmentMapper departmentMapper;
-    @Resource
-    private FinanceMapper financeMapper;
-    @Resource
-    private TimeTypeMapper timeTypeMapper;
-    @Resource
-    private FinanceTblcuscolMapper financeTblcuscolMapper;
-    @Resource
-    private ReportMapper reportMapper;
-    @Resource
-    private FinanceService financeService;
-    @Resource
-    private UserService userService;
-    @Resource
-    private ReportService reportService;
-
-
-    @Override
-    @Transactional
-    public HttpRespMsg submitImport(Integer companyId, String yearMonth, Boolean syncUserCost, Boolean syncHistoryReport, MultipartFile multipartFile, HttpServletRequest request) {
-        HttpRespMsg msg = new HttpRespMsg();
-        User user = userMapper.selectById(request.getHeader("TOKEN"));
-        //检查当月是否已经存在审核通过的
-        FinanceImport oldItem = financeImportMapper.selectOne(new QueryWrapper<FinanceImport>().eq("company_id", companyId).eq("ymonth", yearMonth).orderByDesc("indate").last("limit 1"));
-        if (oldItem != null) {
-            if (oldItem.getState() == 1) {
-                //msg.setError(yearMonth+"月薪资已审核通过,无法上传。");
-                msg.setError(MessageUtils.message("salary.uploadErrorByAdopt"));
-                return msg;
-            } else {
-                if (oldItem.getState() == 0) {
-                    String[] fname = oldItem.getServerName().split("\\/");
-                    File oldFile = new File(new File(path, fname[0]), fname[1]);
-                    oldFile.delete();
-                    financeImportMapper.deleteById(oldItem.getId());
-                }
-            }
-        }
-
-        //然后处理文件
-        String fileName = multipartFile.getOriginalFilename();
-        File file = new File(fileName == null ? "file" : fileName);
-        InputStream inputStream = null;
-        OutputStream outputStream = null;
-        try {
-            inputStream = multipartFile.getInputStream();
-            outputStream = new FileOutputStream(file);
-            byte[] buffer = new byte[4096];
-            int temp = 0;
-            while ((temp = inputStream.read(buffer, 0, 4096)) != -1) {
-                outputStream.write(buffer, 0, temp);
-            }
-            inputStream.close();
-            outputStream.close();
-            //然后解析表格, 进行数据格式校验
-            Workbook wb = WorkbookFactory.create(new FileInputStream(file));
-            Sheet sheet = wb.getSheetAt(0);
-            //要插入的账号列表
-            List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
-            List<Finance> financeList = new ArrayList<Finance>();
-            //需要更新成本的人员数据
-            List<User> updateUserList = new ArrayList<>();
-
-            String startStr = yearMonth + "-01";
-            String endStr = yearMonth + "-31";
-            //由于第一行需要指明列对应的标题
-            int rowNum = sheet.getLastRowNum();
-            for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
-                Row row = sheet.getRow(rowIndex);
-                if (row == null) {
-                    continue;
-                }
-                if (ExcelUtil.isRowEmpty(row)) {
-                    continue;
-                }
-                //姓名	工资	奖金	津贴	养老保险	医疗保险	失业保险	(新增工伤保险) 住房公积金	其他; 可能有自定义的项
-                Cell nameCell = row.getCell(0);
-                nameCell.setCellType(CellType.STRING);
-
-                String name = nameCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
-                Finance finance = new Finance();
-
-                //if (name.equals("姓名") && rowIndex == 0) {
-                if ((name.equals("姓名") || name.equals("name")) && rowIndex == 0) {
-                    continue;
-                }
-                finance.setName(name);
-                Optional<User> first = userList.stream().filter(u -> u.getName().equals(name)).findFirst();
-                if (first.isPresent()) {
-                    finance.setUserId(first.get().getId());
-                    //如果需要更新员工成本
-                    if (syncUserCost || syncHistoryReport) {
-                        //设置人员总id
-                        User localUser = new User();
-                        localUser.setId(finance.getUserId());
-                        updateUserList.add(localUser);
-                    }
-                } else {
-                    //msg.setError("用户["+name+"]不存在,请在组织结构中添加该成员");
-                    msg.setError(MessageUtils.message("group.userNull",name));
-                    return msg;
-                }
-                finance.setYmonth(yearMonth);
-                financeList.add(finance);
-            }
-            if (financeList.size() == 0) {
-                //msg.setError("请填写数据再上传");
-                msg.setError(MessageUtils.message("file.dateNull"));
-                return msg;
-            }
-
-            //如果有必要,更新该月份的日报相关的成本
-            if (syncHistoryReport) {
-                List<Report> reportList = reportMapper.selectSimpleTime(companyId, startStr, endStr);
-                if (reportList.size() > 0) {
-                    for (Report r : reportList) {
-                        Optional<User> first = updateUserList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
-                        if (!first.isPresent()) {
-                            String notFillUser = userMapper.selectById(r.getCreatorId()).getName();
-                            System.out.println("缺少[" + notFillUser + "]的薪资成本, 请修改数据重新上传");
-                            //throw new UserNotFoundException("缺少[" + notFillUser + "]的薪资成本, 请修改数据重新上传");
-                            throw new UserNotFoundException(MessageUtils.message("salary.lackAndUpAgain",notFillUser));
-                        }
-                    }
-                }
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-            //msg.setError("文件处理出错");
-            msg.setError(MessageUtils.message("file.error"));
-            return msg;
-        } catch (UserNotFoundException e) {
-            e.printStackTrace();
-            msg.setError(e.getMessage());
-            return msg;
-        } catch (NullPointerException e) {
-            e.printStackTrace();
-            //msg.setError("数据格式有误或存在空数据 导入失败");
-            msg.setError(MessageUtils.message("file.dataFormatError"));
-            return msg;
-        } catch (Exception e) {
-            e.printStackTrace();
-            //msg.setError("发生其他错误");
-            msg.setError(MessageUtils.message("other.error"));
-            return msg;
-        } finally {
-            //关闭流
-            try {
-                if (outputStream != null && inputStream != null) {
-                    outputStream.close();
-                    inputStream.close();
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        }
-        //保存导入记录
-        String originName = fileName;
-        System.out.println("fileName=="+originName);
-        String[] names = originName.split("\\.");
-        String destFileName = names[0] + "_"+System.currentTimeMillis()+"."+names[1];
-        String financeFolder = "finance";
-        File dir = new File(path, financeFolder);
-        if (!dir.exists()) {
-            dir.mkdir();
-        }
-        File destFile = new File(dir, destFileName);
-        try {
-//            multipartFile.transferTo(destFile);
-            FileUtils.copyFile(file, destFile);
-            FinanceImport log = new FinanceImport();
-            log.setCompanyId(companyId);
-            log.setFileName(originName);
-            log.setServerName(financeFolder+"/"+destFileName);
-            log.setUserId(user.getId());
-            log.setUserName(user.getName());
-            log.setYmonth(yearMonth);
-            log.setRecoverMonthcost(syncUserCost?1:0);
-            log.setRecoverReport(syncHistoryReport?1:0);
-            financeImportMapper.insert(log);
-        } catch (IOException e) {
-            e.printStackTrace();
-            msg.setError(e.getMessage());
-        } finally {
-            System.out.println("删除临时文件:"+file.delete());
-        }
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg list(Integer companyId, HttpServletRequest request) {
-        HttpRespMsg msg = new HttpRespMsg();
-        List<FinanceImport> all = financeImportMapper.selectList(new QueryWrapper<FinanceImport>().eq("company_id", companyId).orderByDesc("indate"));
-        List<FinanceImport> pendingList = all.stream().filter(a->a.getState() == 0).collect(Collectors.toList());
-        List<FinanceImport> passList = all.stream().filter(a->a.getState() == 1).collect(Collectors.toList());
-        List<FinanceImport> rejectList = all.stream().filter(a->a.getState() == 2).collect(Collectors.toList());
-        List<FinanceImport> cancelList = all.stream().filter(a->a.getState() == -1).collect(Collectors.toList());
-        HashMap map = new HashMap();
-        map.put("pendingList", pendingList);
-        map.put("passList", passList);
-        map.put("rejectList", rejectList);
-        map.put("cancelList", cancelList);
-        msg.data = map;
-        return msg;
-    }
-
-    @Override
-    @Transactional
-    public HttpRespMsg agree(Integer id, HttpServletRequest request) {
-        HttpRespMsg msg = new HttpRespMsg();
-        FinanceImport curItem = new FinanceImport();
-        curItem.setId(id);
-        curItem.setState(1);
-        User auditor = userMapper.selectById(request.getHeader("TOKEN"));
-        curItem.setAuditorId(auditor.getId());
-        curItem.setAuditorName(auditor.getName());
-
-        FinanceImport oldItem = financeImportMapper.selectById(id);
-        if (oldItem == null) {
-            //msg.setError("该数据不存在");
-            msg.setError(MessageUtils.message("file.dateNoExist"));
-            return msg;
-        }
-        if (oldItem.getState() == 0) {
-            //读取文件进行更新
-            oldItem.getServerName();
-            String[] fname = oldItem.getServerName().split("\\/");
-            File oldFile = new File(new File(path, fname[0]), fname[1]);
-            FinanceImport financeImport = oldItem;
-            //然后处理文件
-            try {
-                //然后解析表格
-                Workbook wb = WorkbookFactory.create(new FileInputStream(oldFile));
-                Sheet sheet = wb.getSheetAt(0);
-                //要插入的账号列表
-                Integer companyId = financeImport.getCompanyId();
-                String yearMonth = financeImport.getYmonth();
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
-                List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", companyId));
-                List<Finance> financeList = new ArrayList<Finance>();
-                List<Finance> oldFinanceList = financeMapper.selectList(new QueryWrapper<Finance>().eq("company_id", companyId).eq("ymonth", yearMonth));
-                //获取月成本列表
-                DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
-                String dateStr = yearMonth+"-01 00:00:00";
-                LocalDateTime startDate = LocalDateTime.parse(dateStr,df);
-                LocalDateTime endDate = LocalDateTime.parse(dateStr,df);
-                endDate = endDate.plusMonths(1);
-
-                TimeType timeType = timeTypeMapper.selectById(companyId);
-                BigDecimal monthHours = timeType.getMonthDays().multiply(new BigDecimal(timeType.getAllday()));
-
-                //需要更新成本的人员数据
-                List<User> updateUserList = new ArrayList<>();
-
-                String startStr = yearMonth + "-01";
-                String endStr = yearMonth + "-31";
-                //获取人员该月份填写的日报的总时长
-                List<Map<String, Object>> userTimeList = null;
-                if (financeImport.getRecoverMonthcost()==1 || financeImport.getRecoverReport()==1) {
-                    userTimeList = reportMapper.getUserWorkingTimeByRange(companyId, startStr, endStr);
-                }
-
-                List<FinanceTblcuscol> cusColList = financeTblcuscolMapper.selectList(new QueryWrapper<FinanceTblcuscol>().eq("company_id", companyId));
-                FinanceFixedcolname financeConfig = financeFixedcolnameService.getFixed(companyId);
-                if (cusColList.size() > 0) {
-                    financeConfig.setField1(cusColList.get(0).getFieldName());
-                    financeConfig.setField1Calculate(cusColList.get(0).getNeedCalculate());
-                }
-                if (cusColList.size() > 1) {
-                    financeConfig.setField2(cusColList.get(1).getFieldName());
-                    financeConfig.setField2Calculate(cusColList.get(1).getNeedCalculate());
-                }
-                if (cusColList.size() > 2) {
-                    financeConfig.setField3(cusColList.get(2).getFieldName());
-                    financeConfig.setField3Calculate(cusColList.get(2).getNeedCalculate());
-                }
-                //由于第一行需要指明列对应的标题
-                int rowNum = sheet.getLastRowNum();
-                for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
-                    Row row = sheet.getRow(rowIndex);
-                    if (row == null) {
-                        continue;
-                    }
-                    if (ExcelUtil.isRowEmpty(row)) {
-                        continue;
-                    }
-                    //姓名	工资	奖金	津贴	养老保险	医疗保险	失业保险	(新增工伤保险) 住房公积金	其他; 可能有自定义的项
-                    //TODO: 如果后期导入审核的方式下也要支持工号,这里得修改代码
-                    Cell nameCell = row.getCell(0);
-                    Cell salaryCell = row.getCell(1);
-                    Cell bonusCell = row.getCell(2);
-                    Cell allowanceCell = row.getCell(3);
-                    Cell inOldCell = row.getCell(4);
-                    Cell inMedicalCell = row.getCell(5);
-                    Cell inJobCell = row.getCell(6);
-                    Cell injuryCell = row.getCell(7);
-
-                    nameCell.setCellType(CellType.STRING);
-
-                    String name = nameCell.getStringCellValue().trim().replaceAll("\\u00a0", "");
-                    Finance finance = new Finance();
-
-                    //if (name.equals("姓名") && rowIndex == 0) {
-                    if ((name.equals("姓名") || name.equals("name")) && rowIndex == 0) {
-                        continue;
-                    }
-                    Cell houseFundCell = row.getCell(8);
-                    Cell field1 = cusColList.size() > 0?row.getCell(9):null;
-                    Cell field2 = cusColList.size() > 1?row.getCell(10):null;
-                    Cell field3 = cusColList.size() > 2?row.getCell(11):null;
-
-                    if (field1 != null)field1.setCellType(CellType.STRING);
-                    if (field2 != null)field2.setCellType(CellType.STRING);
-                    if (field3 != null)field3.setCellType(CellType.STRING);
-
-                    finance.setCompanyId(companyId);
-                    finance.setName(name);
-
-                    Optional<User> first = userList.stream().filter(u -> u.getName().equals(name)).findFirst();
-                    if (first.isPresent()) {
-                        finance.setUserId(first.get().getId());
-                        BigDecimal total = new BigDecimal(0);
-                        if (salaryCell != null) {
-                            salaryCell.setCellType(CellType.STRING);
-                            String item = salaryCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setMonthCost(value);
-                            if (financeConfig.getMonthCostCalculate()==1) total = total.add(value);
-                        }
-
-                        //按姓名做匹配
-                        Optional<Finance> matchItem = oldFinanceList.stream().filter(o -> o.getName().equals(finance.getName())).findFirst();
-                        if (matchItem.isPresent()) {
-                            finance.setId(matchItem.get().getId());
-                        }
-
-                        if (bonusCell != null) {
-                            bonusCell.setCellType(CellType.STRING);
-                            String bonusString = bonusCell.getStringCellValue();
-                            BigDecimal bonus = bonusString != null ? new BigDecimal(bonusString.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setBonus(bonus);
-                            if (financeConfig.getBonusCalculate()==1) total = total.add(bonus);
-                        }
-                        if (allowanceCell != null) {
-                            allowanceCell.setCellType(CellType.STRING);
-                            String item = allowanceCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setAllowance(value);
-                            if (financeConfig.getAllowanceCalculate()==1) total = total.add(value);
-                        }
-                        if (inJobCell != null) {
-                            inJobCell.setCellType(CellType.STRING);
-                            String item = inJobCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setInsuranceLosejob(value);
-                            if (financeConfig.getInsuranceLosejobCalculate()==1) total = total.add(value);
-                        }
-                        if (inMedicalCell != null) {
-                            inMedicalCell.setCellType(CellType.STRING);
-                            String item = inMedicalCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setInsuranceMedical(value);
-                            if (financeConfig.getInsuranceMedicalCalculate()==1) total = total.add(value);
-                        }
-                        if (inOldCell != null) {
-                            inOldCell.setCellType(CellType.STRING);
-                            String item = inOldCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setInsuranceOld(value);
-                            if (financeConfig.getInsuranceOldCalculate()==1) total = total.add(value);
-                        }
-                        if (injuryCell != null) {
-                            injuryCell.setCellType(CellType.STRING);
-                            String item = injuryCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setInsuranceInjury(value);
-                            if (financeConfig.getInsuranceInjuryCalculate()==1) total = total.add(value);
-                        }
-                        if (houseFundCell != null) {
-                            houseFundCell.setCellType(CellType.STRING);
-                            String item = houseFundCell.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setHouseFund(value);
-                            if (financeConfig.getHouseFundCalculate()==1) total = total.add(value);
-                        }
-
-                        if (field1 != null) {
-                            field1.setCellType(CellType.STRING);
-                            String item = field1.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setCustomField1(value);
-                            if (financeConfig.getField1Calculate() != null && financeConfig.getField1Calculate()==1) total = total.add(value);
-                        }
-                        if (field2 != null) {
-                            field2.setCellType(CellType.STRING);
-                            String item = field2.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setCustomField2(value);
-                            if (financeConfig.getField2Calculate() != null && financeConfig.getField2Calculate()==1) total = total.add(value);
-                        }
-                        if (field3 != null) {
-                            field3.setCellType(CellType.STRING);
-                            String item = field3.getStringCellValue();
-                            BigDecimal value = item != null ? new BigDecimal(item.trim().replaceAll("\\u00a0", "")) : BigDecimal.valueOf(0);
-                            finance.setCustomField3(value);
-                            if (financeConfig.getField3Calculate() != null && financeConfig.getField3Calculate()==1) total = total.add(value);
-                        }
-                        finance.setTotalCost(total);
-
-                        //如果需要更新员工成本
-                        if (financeImport.getRecoverMonthcost()==1 || financeImport.getRecoverReport()==1) {
-                            //设置人员总成本,计算时薪
-                            User localUser = new User();
-                            localUser.setId(finance.getUserId());
-                            localUser.setMonthCost(total);
-                            for (int i=0;i<userTimeList.size(); i++) {
-                                Map<String, Object> map = userTimeList.get(i);
-                                if (map.get("creatorId").equals(finance.getUserId())) {
-                                    double time = (Double)map.get("workingTime");
-                                    localUser.setCost(total.divide(new BigDecimal(time), 6, BigDecimal.ROUND_HALF_UP));
-                                    break;
-                                }
-                            }
-
-                            updateUserList.add(localUser);
-                        }
-                    } else {
-                        //msg.setError("用户["+name+"]不存在,请在组织结构中添加该成员");
-                        msg.setError(MessageUtils.message("group.userNull",name));
-                        return msg;
-                    }
-                    finance.setYmonth(yearMonth);
-                    financeList.add(finance);
-
-                }
-                if (financeList.size() == 0) {
-                    //msg.setError("请填写数据再上传");
-                    msg.setError(MessageUtils.message("file.dateNull"));
-                    return msg;
-                }
-                //批量插入
-                financeService.saveOrUpdateBatch(financeList);
-                if (financeImport.getRecoverMonthcost()==1) {
-                    //重新计算时薪,保证按照标准工作时长下的时薪正确
-                    List<User> dbUpUserList = new ArrayList<>();
-                    BigDecimal db = timeType.getMonthDays().multiply(new BigDecimal(timeType.getAllday()));
-                    for (User upU : updateUserList) {
-                        User user1 = new User();
-                        user1.setId(upU.getId());
-                        user1.setMonthCost(upU.getMonthCost());
-                        user1.setCost(upU.getMonthCost().divide(db,2, BigDecimal.ROUND_HALF_UP));
-                        dbUpUserList.add(user1);
-                    }
-                    userService.updateBatchById(dbUpUserList);
-                }
-                //检查是否有删除的,需要删除掉
-                List<Integer> readyForDelete = new ArrayList<>();
-                oldFinanceList.forEach(old->{
-                    boolean exists = false;
-                    if (financeList.stream().filter(f->f.getName().equals(old.getName())).findAny().isPresent()) {
-                        exists = true;
-                    }
-                    if (!exists) {
-                        readyForDelete.add(old.getId());
-                    }
-                });
-                if (readyForDelete.size() > 0) {
-                    financeService.removeByIds(readyForDelete);
-                }
-                //如果有必要,更新该月份的日报相关的成本
-                if (financeImport.getRecoverReport()==1) {
-                    List<Report> reportList = reportMapper.selectSimpleTime(companyId, startStr, endStr);
-                    if (reportList.size() > 0) {
-                        for (Report r : reportList) {
-                            Optional<User> first = updateUserList.stream().filter(u -> u.getId().equals(r.getCreatorId())).findFirst();
-                            if (!first.isPresent()) {
-                                String notFillUser = userMapper.selectById(r.getCreatorId()).getName();
-                                System.out.println("缺少[" + notFillUser + "]的薪资成本, 请修改数据重新上传");
-                                //throw new UserNotFoundException("缺少[" + notFillUser + "]的薪资成本, 请修改数据重新上传");
-                                throw new UserNotFoundException(MessageUtils.message("salary.lackAndUpAgain",notFillUser));
-                            }
-                            BigDecimal hourCost = first.get().getCost();
-                            r.setCost(hourCost.multiply(new BigDecimal(r.getWorkingTime())));
-                            r.setCreatorId(null);
-                            r.setWorkingTime(null);
-                        }
-                        //批量更新日报的成本
-                        reportService.updateBatchById(reportList);
-                    }
-                }
-
-                financeImportMapper.updateById(curItem);
-            } catch (IOException e) {
-                e.printStackTrace();
-                //msg.setError("文件处理出错");
-                msg.setError(MessageUtils.message("file.error"));
-                return msg;
-            } catch (UserNotFoundException e) {
-                e.printStackTrace();
-                msg.setError(e.getMessage());
-                return msg;
-            } catch (NullPointerException e) {
-                e.printStackTrace();
-                //msg.setError("数据格式有误或存在空数据 导入失败");
-                msg.setError(MessageUtils.message("file.dataFormatError"));
-                return msg;
-            } catch (Exception e) {
-                e.printStackTrace();
-                //msg.setError("发生其他错误");
-                msg.setError(MessageUtils.message("other.error"));
-                return msg;
-            } finally {
-            }
-        } else {
-            //msg.setError("只有待审核状态才可以操作");
-            msg.setError(MessageUtils.message("finance.operationStateError"));
-        }
-        return msg;
-    }
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceProjectsServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.FinanceProjects;
-import com.management.platform.mapper.FinanceProjectsMapper;
-import com.management.platform.service.FinanceProjectsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-@Service
-public class FinanceProjectsServiceImpl extends ServiceImpl<FinanceProjectsMapper, FinanceProjects> implements FinanceProjectsService {
-
-}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 1721
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceServiceImpl.java


+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/FinanceTblcuscolServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.FinanceTblcuscol;
-import com.management.platform.mapper.FinanceTblcuscolMapper;
-import com.management.platform.service.FinanceTblcuscolService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-12-17
- */
-@Service
-public class FinanceTblcuscolServiceImpl extends ServiceImpl<FinanceTblcuscolMapper, FinanceTblcuscol> implements FinanceTblcuscolService {
-
-}

+ 4 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProductServiceImpl.java

@@ -192,7 +192,7 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
             productMapper.deleteById(id);
 
         }else{
-            msg.setError("this product is used!");
+            msg.setError("该产品已被使用!");
         }
 
         return msg;
@@ -289,6 +289,9 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
                 product.setCompanyId(companyId);
                 product.setCategoryId(categoryId);
                 if(nameCell!=null){
+                    if(StringUtils.isEmpty(nameCell.getStringCellValue())){
+                        continue;
+                    }
                     Integer count = productMapper.selectCount(new LambdaQueryWrapper<Product>()
                             .eq(companyId != null, Product::getCompanyId, companyId)
                             .eq(!StringUtils.isEmpty( nameCell.getStringCellValue()), Product::getName,  nameCell.getStringCellValue())

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProfessionServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.Profession;
-import com.management.platform.mapper.ProfessionMapper;
-import com.management.platform.service.ProfessionService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-28
- */
-@Service
-public class ProfessionServiceImpl extends ServiceImpl<ProfessionMapper, Profession> implements ProfessionService {
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectAddcostItemServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.ProjectAddcostItem;
-import com.management.platform.mapper.ProjectAddcostItemMapper;
-import com.management.platform.service.ProjectAddcostItemService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-@Service
-public class ProjectAddcostItemServiceImpl extends ServiceImpl<ProjectAddcostItemMapper, ProjectAddcostItem> implements ProjectAddcostItemService {
-
-}

+ 0 - 167
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectAddcostRecordServiceImpl.java

@@ -1,167 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.*;
-import com.management.platform.mapper.*;
-import com.management.platform.service.ProjectAddcostItemService;
-import com.management.platform.service.ProjectAddcostRecordService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.service.ProjectCurrentcostService;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.math.RoundingMode;
-import java.text.DecimalFormat;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-05-07
- */
-@Service
-@Transactional
-public class ProjectAddcostRecordServiceImpl extends ServiceImpl<ProjectAddcostRecordMapper, ProjectAddcostRecord> implements ProjectAddcostRecordService {
-    @Resource
-    private ProjectAddcostRecordMapper projectAddcostRecordMapper;
-    @Resource
-    private ProjectAddcostItemMapper projectAddcostItemMapper;
-    @Resource
-    private ProjectAddcostItemService projectAddcostItemService;
-    @Resource
-    private ProjectCurrentcostMapper projectCurrentcostMapper;
-    @Resource
-    private ProjectCurrentcostService projectCurrentcostService;
-    @Resource
-    private ProjectBasecostSettingMapper projectBasecostSettingMapper;
-    @Resource
-    private ProjectBasecostMapper projectBasecostMapper;
-
-    @Override
-    public HttpRespMsg add(ProjectAddcostRecord item, String itemList) {
-        projectAddcostRecordMapper.insert(item);
-        List<ProjectAddcostItem> list = JSONArray.parseArray(itemList, ProjectAddcostItem.class);
-        List<ProjectCurrentcost> curList = projectCurrentcostMapper.selectList(new QueryWrapper<ProjectCurrentcost>().eq("project_id", item.getProjectId()));
-        DecimalFormat df = new DecimalFormat("#.00");
-        df.setRoundingMode(RoundingMode.HALF_UP);
-        //校验,当前下拨的不能超过剩余可下拨金额
-        List<ProjectBasecost> totalCost = projectBasecostMapper.selectList(new QueryWrapper<ProjectBasecost>().eq("project_id", item.getProjectId()));
-        for (ProjectAddcostItem addItem : list) {
-            if (addItem.getBaseAmount() > 0) {
-                double available = totalCost.stream().filter(t->t.getBaseId().intValue() == addItem.getBaseId().intValue()).findFirst().get().getBaseAmount();
-                double curAmount = 0;
-                if (curList.size() > 0) {
-                    Optional<ProjectCurrentcost> first = curList.stream().filter(t -> t.getBaseId().intValue() == addItem.getBaseId().intValue()).findFirst();
-                    if (first.isPresent()) {
-                        curAmount = first.get().getBaseAmount();
-                    }
-                }
-                if (addItem.getBaseAmount() > (available - curAmount)) {
-                    HttpRespMsg msg = new HttpRespMsg();
-                    //msg.setError(addItem.getBaseName()+"可下拨额度不足"+df.format(addItem.getBaseAmount())+"元, 请校正总成本预算。");
-                    msg.setError(MessageUtils.message("project.quotaNoEnough",addItem.getBaseName(),df.format(addItem.getBaseAmount())));
-                    return msg;
-                }
-            }
-        }
-        list.forEach(li->{
-            li.setRecordId(item.getId());
-            li.setProjectId(item.getProjectId());
-        });
-        projectAddcostItemService.saveBatch(list);
-        //当前预算要增加此次的金额
-        if (curList.size() == 0) {
-            list.forEach(li->{
-                ProjectCurrentcost curCost = new ProjectCurrentcost();
-                curCost.setBaseAmount(li.getBaseAmount());
-                curCost.setBaseId(li.getBaseId());
-                curCost.setBaseName(li.getBaseName());
-                curCost.setProjectId(li.getProjectId());
-                curList.add(curCost);
-            });
-            projectCurrentcostService.saveBatch(curList);
-        } else {
-            list.forEach(li->{
-                int baseId = li.getBaseId();
-                Optional<ProjectCurrentcost> find = curList.stream().filter(cur->cur.getBaseId().intValue() == baseId).findFirst();
-                if (find.isPresent()) {
-                    ProjectCurrentcost oldCostItem = find.get();
-                    //加上此次下拨的金额
-                    oldCostItem.setBaseAmount(oldCostItem.getBaseAmount() + li.getBaseAmount());
-                } else {
-                    //不存在的就加上,防止有新的预算项产生
-                    ProjectCurrentcost curCost = new ProjectCurrentcost();
-                    curCost.setBaseAmount(li.getBaseAmount());
-                    curCost.setBaseId(li.getBaseId());
-                    curCost.setBaseName(li.getBaseName());
-                    curCost.setProjectId(li.getProjectId());
-                    curList.add(curCost);
-                }
-            });
-            projectCurrentcostService.saveOrUpdateBatch(curList);
-            List<Integer> deleteIds = curList.stream().filter(cur->!list.stream().anyMatch(li->li.getBaseId().intValue() == cur.getBaseId())).map(ProjectCurrentcost::getId).collect(Collectors.toList());
-            if (deleteIds.size() > 0) {
-                projectCurrentcostMapper.delete(new QueryWrapper<ProjectCurrentcost>().in("id", deleteIds));
-            }
-        }
-        return new HttpRespMsg();
-    }
-
-    @Override
-    public HttpRespMsg revert(Integer id) {
-        HttpRespMsg msg = new HttpRespMsg();
-        ProjectAddcostRecord record = projectAddcostRecordMapper.selectById(id);
-        if (record == null) {
-            //msg.setError("该记录不存在");
-            msg.setError(MessageUtils.message("other.recordNoExist"));
-        } else {
-            //检查是否是最新的一条
-            List<ProjectAddcostRecord> latestItem = projectAddcostRecordMapper.selectList(new QueryWrapper<ProjectAddcostRecord>().eq("project_id", record.getProjectId()).orderByDesc("id").last("limit 1"));
-            if (latestItem.get(0).getId().equals(record.getId())) {
-                System.out.println("record.getId()==="+record.getId());
-                List<ProjectAddcostItem> itemList = projectAddcostItemMapper.selectList(new QueryWrapper<ProjectAddcostItem>().eq("record_id", id));
-                //使用当前的来减掉
-                List<ProjectCurrentcost> curList = projectCurrentcostMapper.selectList(new QueryWrapper<ProjectCurrentcost>().eq("project_id", record.getProjectId()));
-                curList.forEach(cur->{
-                    Optional<ProjectAddcostItem> first = itemList.stream().filter(item -> item.getBaseId().intValue() == cur.getBaseId().intValue()).findFirst();
-                    if (first.isPresent()) {
-                        ProjectAddcostItem matchItem = first.get();
-                        cur.setBaseAmount(cur.getBaseAmount() - matchItem.getBaseAmount());
-                    } else {
-                        System.out.println("添加记录的明细里匹配不上cur baseId=="+cur.getBaseId()+", curBaseName=="+cur.getBaseName());
-                    }
-                });
-                projectCurrentcostService.updateBatchById(curList);
-                //删除添加的这条记录
-                projectAddcostItemMapper.delete(new QueryWrapper<ProjectAddcostItem>().eq("record_id", id));
-                projectAddcostRecordMapper.deleteById(id);
-            } else {
-                //msg.setError("只有最新的一次下拨可以撤销");
-                msg.setError(MessageUtils.message("project.revokeErrByNoNew"));
-            }
-        }
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg getAddList(Integer companyId, Integer projectId) {
-        List<ProjectBasecostSetting> settingList = projectBasecostSettingMapper.selectList(new QueryWrapper<ProjectBasecostSetting>().eq("company_id", companyId));
-        HashMap map = new HashMap();
-        map.put("columns", settingList);
-        List<ProjectAddcostRecord> recordList = projectAddcostRecordMapper.getWithSubList(projectId);
-        map.put("recordList", recordList);
-        HttpRespMsg msg = new HttpRespMsg();
-        msg.data = map;
-        return msg;
-    }
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectBasecostServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.ProjectBasecost;
-import com.management.platform.mapper.ProjectBasecostMapper;
-import com.management.platform.service.ProjectBasecostService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-02
- */
-@Service
-public class ProjectBasecostServiceImpl extends ServiceImpl<ProjectBasecostMapper, ProjectBasecost> implements ProjectBasecostService {
-
-}

+ 0 - 20
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectBasecostSettingServiceImpl.java

@@ -1,20 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.management.platform.entity.ProjectBasecostSetting;
-import com.management.platform.mapper.ProjectBasecostSettingMapper;
-import com.management.platform.service.ProjectBasecostSettingService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-02
- */
-@Service
-public class ProjectBasecostSettingServiceImpl extends ServiceImpl<ProjectBasecostSettingMapper, ProjectBasecostSetting> implements ProjectBasecostSettingService {
-
-}

+ 0 - 417
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectPercentageServiceImpl.java

@@ -1,417 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.entity.*;
-import com.management.platform.mapper.*;
-import com.management.platform.service.ExcelExportService;
-import com.management.platform.service.FinanceProjectsService;
-import com.management.platform.service.ProjectPercentageService;
-import com.management.platform.service.WxCorpInfoService;
-import com.management.platform.util.ExcelUtil;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import com.taobao.api.internal.util.StringUtils;
-import org.apache.poi.EncryptedDocumentException;
-import org.apache.poi.hssf.usermodel.*;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
-import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.util.CellRangeAddressList;
-import org.apache.poi.xssf.usermodel.XSSFCell;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.io.*;
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2022-02-26
- */
-@Service
-public class ProjectPercentageServiceImpl extends ServiceImpl<ProjectPercentageMapper, ProjectPercentage> implements ProjectPercentageService {
-    @Resource
-    private HttpServletRequest request;
-    @Resource
-    private UserMapper userMapper;
-    @Resource
-    private FinanceProjectsService financeProjectsService;
-    @Resource
-    private ProjectPercentageMapper projectPercentageMapper;
-    @Resource
-    private ProjectMapper projectMapper;
-    @Resource
-    private ReportMapper reportMapper;
-    @Resource
-    private WxCorpInfoService wxCorpInfoService;
-    @Resource
-    private WxCorpInfoMapper wxCorpInfoMapper;
-    @Resource
-    private ExcelExportService excelExportService;
-    @Resource
-    private ProjectPercentageService projectPercentageService;
-    @Value(value = "${upload.path}")
-    private String path;
-    @Override
-    public HttpRespMsg saveMonthSetting(String projectCols, String userSettings, String ymonth) {
-        HttpRespMsg msg = new HttpRespMsg();
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        List<FinanceProjects> financeProjects = JSONArray.parseArray(projectCols, FinanceProjects.class);
-        financeProjects.forEach(f->{
-            f.setCompanyId(user.getCompanyId());
-            f.setYmonth(ymonth);
-        });
-        financeProjectsService.remove(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()).eq("ymonth", ymonth));
-        financeProjectsService.saveBatch(financeProjects);
-
-        ProjectPercentage projectPercentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id", user.getCompanyId())
-                .eq("ymonth", ymonth));
-        if (projectPercentage == null) {
-            projectPercentage = new ProjectPercentage();
-            projectPercentage.setCompanyId(user.getCompanyId());
-            projectPercentage.setData(userSettings);
-            projectPercentage.setYmonth(ymonth);
-            projectPercentageMapper.insert(projectPercentage);
-        } else {
-            projectPercentage.setCompanyId(user.getCompanyId());
-            projectPercentage.setData(userSettings);
-            projectPercentage.setYmonth(ymonth);
-            projectPercentageMapper.updateById(projectPercentage);
-        }
-
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg getMonthSetting(String ymonth) {
-        HttpRespMsg msg = new HttpRespMsg();
-        String token = request.getHeader("TOKEN");
-        User user = userMapper.selectById(token);
-        Integer companyId = user.getCompanyId();
-        List<Project> allProjects = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
-
-        List<FinanceProjects> flist = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", user.getCompanyId()).eq("ymonth", ymonth));
-        ProjectPercentage projectPercentage = projectPercentageMapper.selectOne(new QueryWrapper<ProjectPercentage>().eq("company_id",user.getCompanyId())
-                .eq("ymonth", ymonth));
-        HashMap map = new HashMap();
-
-        map.put("allProjectList", allProjects);
-        if (projectPercentage != null) {
-            JSONArray array = JSONArray.parseArray(projectPercentage.getData());
-            map.put("userCostSetting", array);
-            if (flist.size() == 0) {
-                //抽取已填比例中的项目
-                List<FinanceProjects> addList = new ArrayList<>();
-                for (int i=0;i<array.size(); i++) {
-                    Set<String> strings = array.getJSONObject(i).keySet();
-                    for (String string : strings) {
-                        if (!("id".equals(string) || "name".equals(string))) {
-                            //项目比例信息
-                            Integer projectId = Integer.valueOf(string);
-                            Project project = allProjects.stream().filter(ap -> ap.getId().equals(projectId)).findFirst().get();
-                            FinanceProjects item = new FinanceProjects();
-                            item.setProjectId(project.getId());
-                            item.setProjectCode(project.getProjectCode());
-                            item.setProjectName(project.getProjectName());
-                            item.setCompanyId(companyId);
-                            item.setYmonth(ymonth);
-                            if (!addList.stream().anyMatch(add->add.getProjectId().equals(projectId))) {
-                                addList.add(item);
-                            }
-                        }
-                    }
-                }
-                if (addList.size() > 0) {
-                    financeProjectsService.saveBatch(addList);
-                }
-                flist = addList;
-            }
-        } else {
-            map.put("userCostSetting", new JSONArray());
-        }
-        map.put("financeProjects", flist);
-
-        msg.data = map;
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg importData(Integer companyId, Integer withCheckIn, MultipartFile multipartFile, HttpServletRequest request,String ymonth) throws Exception {
-        HttpRespMsg msg = new HttpRespMsg();
-        String fileName=multipartFile.getOriginalFilename();
-        File file = new File(fileName == null ? "file" : fileName);
-        InputStream inputStream=null;
-        OutputStream outputStream=null;
-        try {
-            inputStream= multipartFile.getInputStream();
-            outputStream=new FileOutputStream(file);
-            byte[] buffer = new byte[4096];
-            int temp = 0;
-            while ((temp = inputStream.read(buffer, 0, 4096)) != -1) {
-                outputStream.write(buffer, 0, temp);
-            }
-            inputStream.close();
-            outputStream.close();
-
-            //然后解析表格
-            Workbook workbook = WorkbookFactory.create(new FileInputStream(file));
-            //获取公司全部成员
-            List<User> allUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
-            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id",companyId));
-            Sheet sheet = workbook.getSheetAt(0);
-            //由于第一行需要指明列对应的标题
-            int rowNum = sheet.getLastRowNum();
-            if (rowNum == 0) {
-                //msg.setError("请填写项目数据");
-                msg.setError(MessageUtils.message("project.fillDataError"));
-                return msg;
-            }
-            //保存data数据
-            String dataString="[";
-            String dataStringOne;
-            List<String> projectList = new ArrayList<>();
-            List<Project> allProjectList = projectMapper.selectList(new QueryWrapper<Project>().eq("company_id", companyId));
-            List<FinanceProjects> filterFPList = new ArrayList<>();
-            int projectNameStartIndex=1;
-            int dataCount = 0;
-            List<String> userNameList=new ArrayList<>();
-            for(int rowIndex = 1; rowIndex <= rowNum; rowIndex++){
-                Row row = sheet.getRow(rowIndex);
-                if (row == null) {
-                    continue;
-                }
-                if (ExcelUtil.isRowEmpty(row)) {
-                    continue;
-                }
-                if (row.getCell(0) == null) {
-                    //msg.setError("第"+dataCount+"行缺少员工姓名");
-                    msg.setError(MessageUtils.message("staff.nameNullByRow",rowIndex));
-                    return msg;
-                }
-                Cell userNameCell = row.getCell(0);
-                if (userNameCell!=null)userNameCell.setCellType(CellType.STRING);
-                String username = userNameCell.getStringCellValue().trim();
-                if(!userNameList.contains(username)&&!StringUtils.isEmpty(username)){
-                    userNameList.add(username);
-                }
-            }
-            HttpRespMsg respMsg=new HttpRespMsg();
-            if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1&&userNameList.size()>0){
-                System.out.println("参与搜素的人员列表"+userNameList + userNameList.size());
-                respMsg = wxCorpInfoService.getBatchSearchUserInfo(wxCorpInfo, userNameList,null);
-                if(respMsg.code.equals("0")){
-                    msg.setError("姓名为["+String.valueOf(respMsg.data)+"]的人员存在重复,请使用工号!");
-                    return msg;
-                }
-            }
-            List<User> targetUserList= (List<User>) respMsg.data;
-            for (int rowIndex = 0; rowIndex <= rowNum; rowIndex++) {
-                Row row = sheet.getRow(rowIndex);
-                if (row == null) {
-                    continue;
-                }
-                if (ExcelUtil.isRowEmpty(row)) {
-                    continue;
-                }
-                if (rowIndex == 0) {
-                    //第一行是标题,获取项目名称
-                    int pIndex = projectNameStartIndex;
-                    boolean projectNotExists = false;
-                    String neProjectName = null;
-                    while(pIndex < row.getLastCellNum() && row.getCell(pIndex).getCellTypeEnum() != CellType._NONE &&  row.getCell(pIndex).getCellTypeEnum() != CellType.BLANK) {
-                        row.getCell(pIndex).setCellType(CellType.STRING);
-                        String projectName = row.getCell(pIndex).getStringCellValue().trim();
-                        if (!allProjectList.stream().filter(p->p.getProjectName().equals(projectName)).findAny().isPresent()) {
-                            projectNotExists = true;
-                            neProjectName = projectName;
-                            break;
-                        }
-                        //查询对应名称项目 id存到projectList
-                        Optional<Project> first = allProjectList.stream().filter(al -> al.getProjectName().equals(projectName)).findFirst();
-                        if(first.isPresent()){
-                            projectList.add(first.get().getId().toString());
-                        }
-                        pIndex++;
-                    }
-                    if (projectNotExists) {
-                        //返回错误提示
-                        //msg.setError("项目["+neProjectName+"]不存在,请先在项目管理中添加或导入。");
-                        msg.setError(MessageUtils.message("project.noExist",neProjectName));
-                        return msg;
-                    }
-                }else {
-                    dataCount++;
-                    //数据行
-                    for (int i=1;i<projectNameStartIndex+projectList.size(); i++) {
-                        if (row.getCell(i) != null) {
-                            row.getCell(i).setCellType(CellType.STRING);
-                        }
-                    }
-                    if (row.getCell(0) == null) {
-                        //msg.setError("第"+dataCount+"行缺少员工姓名");
-                        msg.setError(MessageUtils.message("staff.nameNullByRow",dataCount));
-                        return msg;
-                    }
-                    Cell userNameCell = row.getCell(0);
-                    if (userNameCell!=null)userNameCell.setCellType(CellType.STRING);
-                    String username = userNameCell.getStringCellValue().trim();
-                    //检查人员是否存在
-                    Optional<User> userOp;
-                    if(wxCorpInfo!=null&&wxCorpInfo.getSaasSyncContact()==1){
-                        Optional<User> optional = targetUserList.stream().filter(tl -> tl.getName().equals(username)).findFirst();
-                        userOp= allUserList.stream().filter(u ->((u.getJobNumber()!=null&&u.getJobNumber().equals(username))||(optional.isPresent()&&u.getCorpwxUserid()!=null&&u.getCorpwxUserid().equals(optional.get().getCorpwxUserid())))).findFirst();
-                    }else {
-                        userOp= allUserList.stream().filter(u -> u.getName().equals(username)||(u.getJobNumber()!=null&&u.getJobNumber().equals(username))).findFirst();
-                    }
-                    if (!userOp.isPresent()) {
-                        //msg.setError("人员["+username+"]不存在,请先在组织结构中添加或者通过钉钉同步导入");
-                        msg.setError(MessageUtils.message("staff.peopleNullAndAdd",username));
-                        return msg;
-                    }
-                    //人员存在
-                    User user = userOp.get();
-                    BigDecimal s = new BigDecimal(0);
-                    JSONObject jsonObject=new JSONObject();
-                    jsonObject.put("name",user.getName());
-                    jsonObject.put("id",user.getId());
-                    for (int i=projectNameStartIndex; i < projectNameStartIndex + projectList.size(); i++) {
-                        if (row.getCell(i) == null) {
-                            continue;
-                        }
-                        String stringCellValue = row.getCell(i).getStringCellValue();
-                        //对于excel中的空白,设置比例为0
-                        if (StringUtils.isEmpty(stringCellValue)) {
-                            stringCellValue = "0";
-                        }
-                        s=s.add(BigDecimal.valueOf(Double.parseDouble(stringCellValue)));
-                        String pid = projectList.get(i-1);
-                        jsonObject.put(pid,stringCellValue);
-                        if (!filterFPList.stream().anyMatch(f->f.getProjectId().equals(pid))) {
-                            //不存在的项目,要加进去
-                            FinanceProjects fp = new FinanceProjects();
-                            fp.setCompanyId(companyId);
-                            fp.setYmonth(ymonth);
-                            Optional<Project> first = allProjectList.stream().filter(ap -> ap.getId().equals(pid)).findFirst();
-                            if (first.isPresent()) {
-                                Project project = first.get();
-                                fp.setProjectId(project.getId());
-                                fp.setProjectName(project.getProjectName());
-                                fp.setProjectCode(project.getProjectCode());
-                                filterFPList.add(fp);
-                            }
-                        }
-                    }
-                    dataStringOne=jsonObject.toJSONString();
-                    if(rowIndex!=rowNum){
-                        dataString+=dataStringOne+",";
-                    }else{
-                        dataString+=dataStringOne+"]";
-                    }
-                    if(s.doubleValue()!=100){
-                        //msg.setError("人员["+username+"]"+"分摊比例不满足100%,当前比例["+s+"%],请检查");
-                        msg.setError(MessageUtils.message("staff.proportionError",username,s));
-                        return msg;
-                    }
-                }
-            }
-            ProjectPercentage percentageServiceOne = projectPercentageService.getOne(new QueryWrapper<ProjectPercentage>().eq("company_id", companyId).eq("ymonth",ymonth));
-            if(percentageServiceOne!=null&&percentageServiceOne.getData().equals(dataString)){
-                //msg.setError("请勿导入重复数据");
-                msg.setError(MessageUtils.message("data.importRepeat"));
-                return msg;
-            }
-            ProjectPercentage projectPercentage=new ProjectPercentage();
-            //检查是否已经存在分摊数据
-            if(percentageServiceOne!=null){
-                projectPercentage.setId(percentageServiceOne.getId());
-                projectPercentage.setYmonth(ymonth);
-                projectPercentage.setData(dataString);
-                projectPercentage.setCompanyId(companyId);
-                projectPercentageService.updateById(projectPercentage);
-            }else{
-                projectPercentage.setId(null);
-                projectPercentage.setYmonth(ymonth);
-                projectPercentage.setData(dataString);
-                projectPercentage.setCompanyId(companyId);
-                projectPercentageService.save(projectPercentage);
-            }
-            //保存projectFinance(当月的待分摊项目)表
-            List<FinanceProjects> list = financeProjectsService.list(new QueryWrapper<FinanceProjects>().eq("company_id", companyId).eq("ymonth", ymonth));
-            List<Integer> removeIds = list.stream().filter(li -> !filterFPList.stream().anyMatch(fp -> fp.getProjectId().equals(li.getProjectId()))).map(FinanceProjects::getId).collect(Collectors.toList());
-            if (removeIds.size() > 0) {
-                financeProjectsService.removeByIds(removeIds);
-            }
-            List<FinanceProjects> addData = filterFPList.stream().filter(fp -> !list.stream().anyMatch(li -> li.getProjectId().equals(fp.getProjectId()))).collect(Collectors.toList());
-            financeProjectsService.saveBatch(addData);
-            msg.data=dataCount;
-            return msg;
-        }catch (IOException e){
-            e.printStackTrace();
-            //msg.setError("文件处理出错");
-            msg.setError(MessageUtils.message("file.error"));
-            return msg;
-        } catch (InvalidFormatException e) {
-            e.printStackTrace();
-            //msg.setError("文件格式错误,如果安装了加密软件需要先解密再上传");
-            msg.setError(MessageUtils.message("file.FormatErrorAndDecrypt"));
-            return msg;
-        }catch (EncryptedDocumentException e) {
-            e.printStackTrace();
-            //msg.setError("文件加密状态,需要先解除加密状态再上传");
-            msg.setError(MessageUtils.message("file.encryption"));
-            return msg;
-        }finally {
-            //关闭流
-            try {
-                if (outputStream != null && inputStream != null) {
-                    outputStream.close();
-                    inputStream.close();
-                    System.out.println("流已关闭");
-                }
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-//            file.deleteOnExit();//程序退出时删除临时文件
-            System.out.println(file.delete());
-        }
-    }
-
-    @Override
-    public HttpRespMsg getTemplate(String ymonth) {
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        HttpRespMsg monthSetting = getMonthSetting(ymonth);
-        Map<String,Object> data= (Map<String, Object>) monthSetting.data;
-        List<FinanceProjects> financeProjects = (List<FinanceProjects>) data.get("financeProjects");
-        List<List<String>> dataList=new ArrayList<>();
-        List<Map<String, Object>> userCostSetting = (List<Map<String, Object>>) data.get("userCostSetting");
-        List<String> titleList=new ArrayList<>();
-        titleList.add("姓名");
-        for (FinanceProjects financeProject : financeProjects) {
-            titleList.add(String.valueOf(financeProject.getProjectName()));
-        }
-        dataList.add(titleList);
-        for (Map<String, Object> map : userCostSetting) {
-            List<String> itemList=new ArrayList<>();
-            itemList.add(String.valueOf(map.get("name")));
-            for (FinanceProjects financeProject : financeProjects) {
-                itemList.add(String.valueOf(map.get(String.valueOf(financeProject.getProjectId()))));
-            }
-            dataList.add(itemList);
-        }
-        String fileName = "人员分摊比例导入模板"+"_"+System.currentTimeMillis();
-        httpRespMsg.data =  ExcelUtil.exportGeneralExcelByTitleAndList(fileName, dataList, path);
-        return httpRespMsg;
-    }
-}

+ 0 - 169
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ProjectProfessionServiceImpl.java

@@ -1,169 +0,0 @@
-package com.management.platform.service.impl;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.*;
-import com.management.platform.mapper.*;
-import com.management.platform.service.PpMembsService;
-import com.management.platform.service.ProjectProfessionService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.management.platform.util.HttpRespMsg;
-import com.management.platform.util.MessageUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author Seyason
- * @since 2021-08-28
- */
-@Service
-@Transactional
-public class ProjectProfessionServiceImpl extends ServiceImpl<ProjectProfessionMapper, ProjectProfession> implements ProjectProfessionService {
-    @Resource
-    ProjectProfessionMapper projectProfessionMapper;
-    @Resource
-    UserMapper userMapper;
-    @Resource
-    PpMembsService ppMembsService;
-    @Resource
-    HttpServletRequest request;
-    @Resource
-    PpMembsMapper ppMembsMapper;
-    @Resource
-    ProfessionMapper professionMapper;
-    @Resource
-    ReportProfessionProgressMapper reportProfessionProgressMapper;
-
-
-
-    @Override
-    public HttpRespMsg modify(Integer projectId, String json) {
-        List<ProjectProfession> professionList = new ArrayList<>();
-        JSONArray array = JSONArray.parseArray(json);
-        for (int i=0;i<array.size(); i++) {
-            JSONObject jsonObject = array.getJSONObject(i);
-            ProjectProfession projectProfession = JSONObject.toJavaObject(jsonObject, ProjectProfession.class);
-            projectProfession.setProjectId(projectId);
-            professionList.add(projectProfession);
-        }
-        //比较差异
-        List<ProjectProfession> oldPPList = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("project_id", projectId));
-        List<Integer> removedProfessionIds = oldPPList.stream().filter(old -> !professionList.stream().anyMatch(p -> p.getProfessionId().equals(old.getProfessionId()))).map(ProjectProfession::getProfessionId).collect(Collectors.toList());
-        //检查日报
-        if (removedProfessionIds.size() > 0) {
-            long cnt = reportProfessionProgressMapper.selectCount(new QueryWrapper<ReportProfessionProgress>().eq("project_id", projectId).in("profession_id", removedProfessionIds).eq("audit_state", 0));
-            if (cnt > 0) {
-                HttpRespMsg msg = new HttpRespMsg();
-                //msg.setError("尚存在日报在该专业上待审核,审核通过后才能移除");
-                msg.setError(MessageUtils.message("profession.toReviewed"));
-                return msg;
-            }
-        }
-
-//        //之前的数据都删掉
-        projectProfessionMapper.delete(new QueryWrapper<ProjectProfession>().eq("project_id", projectId));
-//        //插入新的数据
-        if (professionList.size() > 0) {
-            saveBatch(professionList);
-        }
-        ppMembsService.remove(new QueryWrapper<PpMembs>().eq("project_id", projectId));
-        //生成专业人员表数据
-        List<PpMembs> ppList = new ArrayList<>();
-        professionList.forEach(p->{
-            List<PpMembs> membList = p.getMembList();
-            for (int i=0;i<membList.size(); i++) {
-                PpMembs item = membList.get(i);
-                item.setPpId(p.getId());
-                item.setProjectId(projectId);
-                item.setProfessionId(p.getProfessionId());
-                ppList.add(item);
-            }
-        });
-        if (ppList.size() > 0) {
-            ppMembsService.saveBatch(ppList);
-        }
-        return get(projectId);
-    }
-
-    @Override
-    public HttpRespMsg get(Integer projectId) {
-        List<ProjectProfession> list = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("project_id", projectId));
-        List<PpMembs> membsList = ppMembsService.list(new QueryWrapper<PpMembs>().eq("project_id", projectId));
-        list.forEach(p->{
-            p.setMembList(membsList.stream().filter(m -> m.getPpId().equals(p.getId())).collect(Collectors.toList()));
-            List<PpMembs> membList = p.getMembList();
-            //计算专业的进度
-            int totalProgress = 0;
-            for (int i = 0; i < membList.size(); i++) {
-                PpMembs m = membList.get(i);
-                totalProgress += m.getPercentage()*m.getProgress();
-            }
-            totalProgress = totalProgress/10000;
-            p.setProgress(totalProgress);
-        });
-        HttpRespMsg msg = new HttpRespMsg();
-        msg.data = list;
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg getMyProfession(Integer projectId) {
-        HttpRespMsg msg = new HttpRespMsg();
-        String token = request.getHeader("TOKEN");
-        List<PpMembs> membsList = ppMembsMapper.selectList(new QueryWrapper<PpMembs>().eq("project_id", projectId).eq("memb_id", token));
-        if (membsList.size() > 0) {
-            List<Integer> collect = membsList.stream().map(PpMembs::getProfessionId).collect(Collectors.toList());
-            List<Profession> professionList = professionMapper.selectList(new QueryWrapper<Profession>().in("id", collect));
-            membsList.stream().forEach(m->{
-                m.setProfessionName(professionList.stream().filter((p->p.getId().equals(m.getProfessionId()))).findFirst().get().getName());
-            });
-        }
-        msg.data = membsList;
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg getProgressData(Integer projectId) {
-        List<ProjectProfession> list = projectProfessionMapper.selectList(new QueryWrapper<ProjectProfession>().eq("project_id", projectId));
-        List<PpMembs> membsList = ppMembsService.list(new QueryWrapper<PpMembs>().eq("project_id", projectId));
-        int totalProjectProgress = 0;
-        for (ProjectProfession p: list) {
-            p.setMembList(membsList.stream().filter(m -> m.getPpId().equals(p.getId())).collect(Collectors.toList()));
-            List<PpMembs> membList = p.getMembList();
-            //计算专业的进度
-            int totalProgress = 0;
-            for (int i = 0; i < membList.size(); i++) {
-                PpMembs m = membList.get(i);
-                m.setProfessionName(m.getMembName());//前端会取professionName作为显示的列名称,此处进行设置
-                totalProgress += m.getPercentage()*m.getProgress();
-            }
-            totalProgress = totalProgress/100;
-            p.setProgress(totalProgress);
-            //计算总项目的进度
-            totalProjectProgress += totalProgress*p.getPercentage();
-        }
-        totalProjectProgress = totalProjectProgress/100;
-
-        HttpRespMsg msg = new HttpRespMsg();
-        HashMap<String, Object> map = new HashMap<>();
-        map.put("totalProjectProgress", totalProjectProgress);
-        map.put("professionList", list);
-        msg.data = map;
-        return msg;
-
-    }
-
-}

+ 0 - 549
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -29,8 +29,6 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.*;
-import org.springframework.ldap.core.LdapTemplate;
-import org.springframework.ldap.filter.EqualsFilter;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
@@ -39,17 +37,6 @@ import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.view.RedirectView;
 
 import javax.annotation.Resource;
-import javax.naming.Context;
-import javax.naming.NamingEnumeration;
-import javax.naming.NamingException;
-import javax.naming.directory.Attribute;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.SearchControls;
-import javax.naming.directory.SearchResult;
-import javax.naming.ldap.Control;
-import javax.naming.ldap.InitialLdapContext;
-import javax.naming.ldap.LdapContext;
-import javax.naming.ldap.SortControl;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.math.BigDecimal;
@@ -83,16 +70,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private String corpId;
     @Value("${providerSecret}")
     private String providerSecret;
-    @Value("${spring.ldap.urls}")
-    private String ldapUrl;
-    @Value("${spring.ldap.username}")
-    private String userName;
-    @Value("${spring.ldap.password}")
-    private String passWord;
-    @Value("${spring.ldap.base.dcFirst}")
-    private String dcFirst;
-    @Value("${spring.ldap.base.dcSecond}")
-    private String dcSecond;
     @Value("${configEnv.isPrivateDeploy}")
     private boolean isPrivateDeploy;
 
@@ -110,8 +87,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Autowired
     private RestTemplate restTemplate;
     @Resource
-    ExpenseMainTypeService expenseMainTypeService;
-    @Resource
     private SysRoleModuleMapper sysRoleModuleMapper;
     @Resource
     private SysRoleService sysRoleService;
@@ -158,8 +133,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Resource
     private UserVcodeMapper userVcodeMapper;
     @Resource
-    private ProjectBasecostSettingMapper projectBasecostSettingMapper;
-    @Resource
     private TaskMapper taskMapper;
     @Resource
     private ProjectAuditorMapper projectAuditorMapper;
@@ -180,8 +153,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     @Resource
     private UserCustomMapper userCustomMapper;
     @Resource
-    private ExpenseTypeService expenseTypeService;
-    @Resource
     private DepartmentOtherManagerMapper departmentOtherManagerMapper;
     @Resource
     private LocaleInformationMapper localeInformationMapper;
@@ -211,9 +182,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     private ParticipationService participationService;
     @Resource
     private UserWorkTypeMapper workTypeMapper;
-    @Resource
-    private LdapTemplate ldapTemplate;
-
     public static String provider_access_token = null;
     public static long providerTokenExpireTime = 0L;
     //登录网页端
@@ -1048,13 +1016,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     .setColor(ColorUtil.randomColor())
                     .setCompanyId(company.getId());
             //生成项目的成本基线默认条目
-            String[] array = Constant.DEFAULT_BASE_COST_ITEMS;
-            for (String baseItem : array) {
-                ProjectBasecostSetting setting = new ProjectBasecostSetting();
-                setting.setName(baseItem);
-                setting.setCompanyId(company.getId());
-                projectBasecostSettingMapper.insert(setting);
-            }
             //生成项目报表服务默认条目
             Integer[] arrayInteger=new Integer[]{1,2,3,4,7};
             for (Integer integerItem : arrayInteger) {
@@ -1063,81 +1024,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                 companyReport.setReportFormId(integerItem);
                 companyReportMapper.insert(companyReport);
             }
-            //生成费用报销默认条目
-            String[] expenseTypes = Constant.EXPENSE_TYPES;
-            List<String> commonly = new ArrayList<>();
-            //commonly.add("材料费");
-            commonly.add(MessageUtils.message("entry.materialCost"));
-            //commonly.add("办公用品");
-            commonly.add(MessageUtils.message("entry.workCost"));
-            //commonly.add("培训费");
-            commonly.add(MessageUtils.message("entry.trainCost"));
-            //commonly.add("打印费");
-            commonly.add(MessageUtils.message("entry.printCost"));
-            //commonly.add("快递费");
-            commonly.add(MessageUtils.message("entry.expressCost"));
-            //commonly.add("制作费");
-            commonly.add(MessageUtils.message("entry.makeCost"));
-            //commonly.add("律师费");
-            commonly.add(MessageUtils.message("entry.lawyerCost"));
-            //commonly.add("水费");
-            commonly.add(MessageUtils.message("entry.waterCost"));
-            //commonly.add("电费");
-            commonly.add(MessageUtils.message("entry.electricCost"));
-            //commonly.add("团建费");
-            commonly.add(MessageUtils.message("entry.leagueCost"));
-            //commonly.add("其他");
-            commonly.add(MessageUtils.message("entry.other"));
-            List<String> travel  = new ArrayList<>();
-//            travel.add("城市间交通费");
-//            travel.add("住宿费");
-//            travel.add("伙食补助费");
-//            travel.add("市内交通费");
-//            travel.add("其他差旅费");
-            travel.add(MessageUtils.message("entry.cityTrafficCost"));
-            travel.add(MessageUtils.message("entry.liveCost"));
-            travel.add(MessageUtils.message("entry.eatCost"));
-            travel.add(MessageUtils.message("entry.insideCityCost"));
-            travel.add(MessageUtils.message("entry.otherLiveTraCost"));
-            List<String> outsource = new ArrayList<>();
-//            outsource.add("项目外包费");
-//            outsource.add("劳务外包费");
-//            outsource.add("其他外包费");
-            outsource.add(MessageUtils.message("entry.projectCost"));
-            outsource.add(MessageUtils.message("entry.labourCost"));
-            outsource.add(MessageUtils.message("entry.OtherOutsourceCost"));
-            List<ExpenseType> expenseTypeList=new ArrayList<>();
-            List<ExpenseMainType> expenseMainTypes=new ArrayList<>();
-            ExpenseMainType expenseMainType=new ExpenseMainType();
-            expenseMainType.setName("一般费用");
-            expenseMainType.setCompanyId(user.getCompanyId());
-            ExpenseMainType expenseMainType1=new ExpenseMainType();
-            expenseMainType1.setName("差旅费用");
-            expenseMainType1.setCompanyId(user.getCompanyId());
-            ExpenseMainType expenseMainType2=new ExpenseMainType();
-            expenseMainType2.setName("外包费用");
-            expenseMainType2.setCompanyId(user.getCompanyId());
-            expenseMainTypes.add(expenseMainType);
-            expenseMainTypes.add(expenseMainType1);
-            expenseMainTypes.add(expenseMainType2);
-            expenseMainTypeService.saveBatch(expenseMainTypes);
-            for (String expenseType : expenseTypes) {
-                ExpenseType item=new ExpenseType();
-                item.setCompanyId(company.getId());
-                item.setTypeName(expenseType);
-                if(commonly.contains(expenseType)){
-                    item.setMainType(expenseMainType.getId());
-                }
-                if(travel.contains(expenseType)){
-                    item.setMainType(expenseMainType1.getId());
-                }
-                if(outsource.contains(expenseType)){
-                    item.setMainType(expenseMainType2.getId());
-                }
-                expenseTypeList.add(item);
-            }
-            expenseTypeService.saveBatch(expenseTypeList);
-
             if (userMapper.insert(user) == 0) {
                 //httpRespMsg.setError("操作失败");
                 httpRespMsg.setError(MessageUtils.message("other.operationFail"));
@@ -2870,441 +2756,6 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return httpRespMsg;
     }
 
-    @Override
-    public boolean ldapAuth(String username, String passWord) {
-        EqualsFilter filter = new EqualsFilter("sAMAccountName",username);
-        return ldapTemplate.authenticate("",filter.toString(),passWord);
-    }
-
-    @Override
-    public List<JSONObject> ldapGetOU() throws NamingException {
-        LdapContext ldapContext = adLogin();
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        //域部门节点
-        String searchBase = "OU=my,DC="+dcFirst+",DC="+dcSecond;
-        //String searchBase = "OU=my(组织架构名称),DC=test,DC=com";
-        //搜索条件
-        String searchFilter = "objectclass=organizationalUnit";
-        //String searchFilter = "(&(objectclass=organizationalUnit)(|(name=名称1)(name=名称2)))"; //查询部门,并且部门名称等于名称1或者名称2
-        // 创建搜索控制器
-        SearchControls searchCtls = new SearchControls();
-        String[]  returnedAttrs={"ou", "name","canonicalName","distinguishedName","objectGUID", "objectCategory"};
-        searchCtls.setReturningAttributes(returnedAttrs); //设置指定返回的字段,不设置则返回全部
-        //  设置搜索范围 深度
-        searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
-        //查询结果
-        NamingEnumeration answer = ldapContext.search(searchBase, searchFilter,searchCtls);
-
-        List<JSONObject> jsonObjectList = new ArrayList<>();
-
-        while (answer.hasMoreElements()){
-            SearchResult searchResult = (SearchResult) answer.next();
-            Attributes attributes = searchResult.getAttributes();
-            if(attributes != null){
-                JSONObject jsonObject = new JSONObject();
-                for(NamingEnumeration ne = attributes.getAll(); ne.hasMore();){
-                    Attribute attribute = (Attribute) ne.next();
-                    for (NamingEnumeration e = attribute.getAll(); e.hasMore();) {
-                        if("objectGUID".equals(attribute.getID())){
-                            String guid =this.getObjectGUID((byte[]) e.next());
-                            jsonObject.put(attribute.getID(), guid);
-                        }else {
-                            jsonObject.put(attribute.getID(), e.next().toString());
-                        }
-                        if(!jsonObjectList.stream().anyMatch(jl->jl.getString("objectGUID").equals(jsonObject.getString("objectGUID")))){
-                            jsonObjectList.add(jsonObject);
-                        }
-//                        jsonObjectList.add(jsonObject);
-                    }
-                }
-            }
-
-        }
-        return jsonObjectList;
-    }
-
-    @Override
-    public List<JSONObject> getUser() throws Exception{
-        HttpRespMsg httpRespMsg=new HttpRespMsg();
-        LdapContext ldapContext = this.adLogin();
-        String searchFilter = "objectclass=User";
-        String searchBase = "DC="+dcFirst+",DC="+dcSecond;
-        // 创建搜索控制器
-        SearchControls searchCtls = new SearchControls();
-        String[]  returnedAttrs={"givenName","name","distinguishedName","userAccountControl","objectGUID", "objectCategory", "logonCount","sAMAccountName","userPrincipalName"};
-        searchCtls.setReturningAttributes(returnedAttrs); //设置指定返回的字段,不设置则返回全部
-        //  设置搜索范围 深度
-        searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
-        //查询结果
-        NamingEnumeration answer = ldapContext.search(searchBase, searchFilter,searchCtls);
-
-        List<JSONObject> jsonObjectList = new ArrayList<>();
-
-        while (answer.hasMoreElements()){
-            SearchResult searchResult = (SearchResult) answer.next();
-            Attributes attributes = searchResult.getAttributes();
-
-            if(attributes != null){
-                JSONObject jsonObject = new JSONObject();
-                for(NamingEnumeration ne = attributes.getAll(); ne.hasMore();){
-                    Attribute attribute = (Attribute) ne.next();
-                    for (NamingEnumeration e = attribute.getAll(); e.hasMore();) {
-                        if("objectGUID".equals(attribute.getID())){
-                            String guid =this.getObjectGUID((byte[]) e.next());
-                            jsonObject.put(attribute.getID(), guid);
-                        }else {
-                            jsonObject.put(attribute.getID(), e.next().toString());
-                        }
-                    }
-                }
-                if(!jsonObjectList.stream().anyMatch(jl->jl.getString("objectGUID").equals(jsonObject.getString("objectGUID")))){
-                    jsonObjectList.add(jsonObject);
-                }
-//                        jsonObjectList.add(jsonObject);
-            }
-
-        }
-        return jsonObjectList;
-    }
-
-    @Override
-    public HttpRespMsg initSystemForAd(String companyName) throws Exception {
-        HttpRespMsg msg = new HttpRespMsg();
-        Integer count = companyMapper.selectCount(new QueryWrapper<Company>().eq("company_name", companyName));
-        if (count>0){
-            msg.setError("当前公司名称已存在");
-            return msg;
-        }
-        Company company = new Company().setCompanyName(companyName)
-                .setExpirationDate(LocalDateTime.now().plusDays(36500));
-        company.setPackageProject(0);
-        companyMapper.insert(company);
-        //生成工作时长
-        TimeType timeType = new TimeType();
-        timeType.setCompanyId(company.getId());
-        timeTypeMapper.insert(timeType);
-        SysRole smanager = sysRoleService.generateDefaultRoles(company.getId());
-        //创建企业负责人账号
-        Long id = SnowFlake.nextId();
-        User manager = new User()
-                .setId(id.toString())
-                .setRoleId(smanager.getId())
-                .setRoleName(smanager.getRolename())
-                .setName("sysadmin")
-                .setPhone("sysadmin@"+dcFirst+"."+dcSecond)
-                .setPassword(MD5Util.getPassword("000000"))
-                .setColor(ColorUtil.randomColor())
-                .setCompanyId(company.getId());
-        userMapper.insert(manager);
-        System.out.println("生成超级管理员:sysadmin");
-        //生成项目的成本基线默认条目
-        String[] array = Constant.DEFAULT_BASE_COST_ITEMS;
-        for (String baseItem : array) {
-            ProjectBasecostSetting setting = new ProjectBasecostSetting();
-            setting.setName(baseItem);
-            setting.setCompanyId(company.getId());
-            projectBasecostSettingMapper.insert(setting);
-        }
-        //生成费用报销默认条目
-        String[] expenseTypes = Constant.EXPENSE_TYPES;
-        List<String> commonly = new ArrayList<>();
-        commonly.add("材料费");
-        //commonly.add(MessageUtils.message("entry.materialCost"));
-        commonly.add("办公用品");
-        //commonly.add(MessageUtils.message("entry.workCost"));
-        commonly.add("培训费");
-        //commonly.add(MessageUtils.message("entry.trainCost"));
-        commonly.add("打印费");
-        //commonly.add(MessageUtils.message("entry.printCost"));
-        commonly.add("快递费");
-        //commonly.add(MessageUtils.message("entry.expressCost"));
-        commonly.add("制作费");
-        //commonly.add(MessageUtils.message("entry.makeCost"));
-        commonly.add("律师费");
-        //commonly.add(MessageUtils.message("entry.lawyerCost"));
-        commonly.add("水费");
-        //commonly.add(MessageUtils.message("entry.waterCost"));
-        commonly.add("电费");
-        //commonly.add(MessageUtils.message("entry.electricCost"));
-        commonly.add("团建费");
-        //commonly.add(MessageUtils.message("entry.leagueCost"));
-        commonly.add("其他");
-        //commonly.add(MessageUtils.message("entry.other"));
-        List<String> travel  = new ArrayList<>();
-        travel.add("城市间交通费");
-        //travel.add(MessageUtils.message("entry.cityTrafficCost"));
-        travel.add("住宿费");
-        //travel.add(MessageUtils.message("entry.liveCost"));
-        travel.add("伙食补助费");
-        //travel.add(MessageUtils.message("entry.eatCost"));
-        travel.add("市内交通费");
-        //travel.add(MessageUtils.message("entry.insideCityCost"));
-        travel.add("其他差旅费");
-        //travel.add(MessageUtils.message("entry.otherLiveTraCost"));
-        List<String> outsource = new ArrayList<>();
-        outsource.add("项目外包费");
-        //outsource.add(MessageUtils.message("entry.projectCost"));
-        outsource.add("劳务外包费");
-        //outsource.add(MessageUtils.message("entry.labourCost"));
-        outsource.add("其他外包费");
-        //outsource.add(MessageUtils.message("entry.OtherOutsourceCost"));
-        List<ExpenseType> expenseTypeList=new ArrayList<>();
-        List<ExpenseMainType> expenseMainTypes=new ArrayList<>();
-        ExpenseMainType expenseMainType=new ExpenseMainType();
-        expenseMainType.setName("一般费用");
-        expenseMainType.setCompanyId(company.getId());
-        ExpenseMainType expenseMainType1=new ExpenseMainType();
-        expenseMainType1.setName("差旅费用");
-        expenseMainType1.setCompanyId(company.getId());
-        ExpenseMainType expenseMainType2=new ExpenseMainType();
-        expenseMainType2.setName("外包费用");
-        expenseMainType2.setCompanyId(company.getId());
-        expenseMainTypes.add(expenseMainType);
-        expenseMainTypes.add(expenseMainType1);
-        expenseMainTypes.add(expenseMainType2);
-        expenseMainTypeService.saveBatch(expenseMainTypes);
-        for (String expenseType : expenseTypes) {
-            ExpenseType item=new ExpenseType();
-            item.setCompanyId(company.getId());
-            item.setTypeName(expenseType);
-            if(commonly.contains(expenseType)){
-                item.setMainType(expenseMainType.getId());
-            }
-            if(travel.contains(expenseType)){
-                item.setMainType(expenseMainType1.getId());
-            }
-            if(outsource.contains(expenseType)){
-                item.setMainType(expenseMainType2.getId());
-            }
-            expenseTypeList.add(item);
-        }
-        expenseTypeService.saveBatch(expenseTypeList);
-        //todo: 生成初始测试项目及任务
-        Project project=new Project();
-        project.setCompanyId(company.getId());
-        project.setInchargerId(manager.getId());
-        project.setInchargerName(manager.getName());
-        project.setCreatorId(manager.getId());
-        project.setCreatorName(manager.getName());
-        project.setCreateDate(LocalDate.now());
-        project.setProjectCode("example");
-        project.setProjectName("示例项目");
-        //设置为公共项目,这样测试的用户都能填报
-        project.setIsPublic(1);
-        projectMapper.insert(project);
-        //todo: 生成初始项目相关日报审核人
-        ProjectAuditor projectAuditor=new ProjectAuditor();
-        projectAuditor.setAuditorId(manager.getId());
-        projectAuditor.setAuditorName(manager.getName());
-        projectAuditor.setProjectId(project.getId());
-        projectAuditorMapper.insert(projectAuditor);
-        //todo: 生成项目报表服务默认条目
-        Integer[] arrayInteger = new Integer[]{1, 2, 3, 4, 7};
-        for (Integer integerItem : arrayInteger) {
-            CompanyReport companyReport = new CompanyReport();
-            companyReport.setCompanyId(company.getId());
-            companyReport.setReportFormId(integerItem);
-            companyReportMapper.insert(companyReport);
-        }
-        //todo: 生成初始项目相关示例任务分组/任务阶段以及示例任务
-        TaskGroup taskGroup = new TaskGroup();
-        taskGroup.setProjectId(project.getId())
-                .setInchargerId(manager.getId())
-                .setName("项目阶段");
-        taskGroupMapper.insert(taskGroup);
-        Stages stage = new Stages();
-        stage.setGroupId(taskGroup.getId());
-        stage.setSequence(1);
-        stage.setProjectId(project.getId());
-        stage.setStagesName("工作开展");
-        stagesMapper.insert(stage);
-        Task task=new Task();
-        Integer oneDayHours = 8;
-        task.setCreateDate(LocalDate.now());
-        task.setProjectId(project.getId());
-        task.setCompanyId(company.getId());
-        task.setCreaterId(manager.getId());
-        task.setCreaterName(manager.getName());
-        task.setCreatorColor(manager.getColor());
-        task.setExecutorId(manager.getId());
-        task.setExecutorColor(manager.getColor());
-        task.setExecutorName(manager.getName());
-        task.setPlanHours(oneDayHours);
-        task.setStagesId(stage.getId());
-        task.setGroupId(taskGroup.getId());
-        task.setSeq(0);
-        task.setName("示例任务");
-        taskMapper.insert(task);
-        //任务执行人表也要插入,不然会导致编辑任务的时候执行人为空
-        TaskExecutor executor = new TaskExecutor();
-        executor.setTaskId(task.getId());
-        executor.setPlanHours(oneDayHours);
-        executor.setProjectId(project.getId());
-        executor.setExecutorId(manager.getId());
-        executor.setExecutorColor(manager.getColor());
-        executor.setExecutorName(manager.getName());
-        taskExecutorMapper.insert(executor);
-        SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", company.getId()).eq("rolename","组员"));
-        List<JSONObject> deptArrays = ldapGetOU();
-        for (JSONObject dept : deptArrays) {
-            Department department=new Department();
-            department.setDepartmentName(dept.getString("name"))
-                    .setCompanyId(company.getId());
-            departmentMapper.insert(department);
-        }
-        List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id", company.getId()));
-        for (JSONObject deptArray : deptArrays) {
-            String canonicalName = deptArray.getString("canonicalName");
-            Optional<Department> first = departmentList.stream().filter(dl -> dl.getDepartmentName().equals(deptArray.getString("name"))).findFirst();
-            if(first.isPresent()){
-                String[] split = canonicalName.split("/");
-                if(split.length>2){
-                    String s = split[split.length - 2];
-                    Department one = departmentMapper.selectOne(new QueryWrapper<Department>().eq("department_name", s).eq("company_id", company.getId()));
-                    if(one!=null&&Optional.of(one).isPresent()){
-                        first.get().setSuperiorId(one.getDepartmentId());
-                    }
-                }
-                departmentMapper.updateById(first.get());
-            }
-        }
-        List<JSONObject> userArrays = getUser();
-        Integer[] ints = {514, 546, 66050, 66080, 66082};
-        List<Integer> disable = Arrays.asList(ints);
-        for (JSONObject user : userArrays) {
-            if(disable.contains(user.getIntValue("userAccountControl"))){
-                continue;
-            }
-            User u=new User();
-            u.setId(SnowFlake.nextId()+"")
-                    .setName(user.getString("name"))
-                    .setPhone(user.getString("userPrincipalName"))
-                    .setId(SnowFlake.nextId()+"")
-                    .setRoleId(role.getId())//默认组员
-                    .setRoleName(role.getRolename())
-                    .setCompanyId(company.getId())
-                    .setColor(ColorUtil.randomColor())
-                    .setPassword(MD5Util.getPassword("000000"));
-            String distinguishedName = user.getString("distinguishedName");
-            String[] split = distinguishedName.split(",");
-            List<String> list = Arrays.asList(split);
-            List<String> collect = list.stream().filter(l -> l.contains("OU=")).collect(Collectors.toList());
-            if(collect.size()>0){
-                String s = collect.get(0).replaceAll("OU=", "");
-                Department one = departmentMapper.selectOne(new QueryWrapper<Department>().eq("department_name", s).eq("company_id", company.getId()));
-                if(one!=null){
-                    u.setDepartmentId(one.getDepartmentId()).setDepartmentName(one.getDepartmentName()).setDepartmentCascade(convertDepartmentIdToCascade(one.getDepartmentId(),departmentList));
-                }
-            }
-            userMapper.insert(u);
-        }
-        return msg;
-    }
-
-    @Override
-    public HttpRespMsg syncDeptWithAD(HttpServletRequest request) throws Exception {
-        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
-        SysRole role = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id",companyId).eq("rolename","组员"));
-        List<Department> departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
-        List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
-        List<JSONObject> deptArrays = ldapGetOU();
-        for (JSONObject dept : deptArrays) {
-            if(departmentList.stream().anyMatch(dl->dl.getDepartmentName().equals(dept.getString("name")))){
-                continue;
-            }
-            Department department=new Department();
-            department.setDepartmentName(dept.getString("name"))
-                    .setCompanyId(companyId);
-            departmentMapper.insert(department);
-        }
-        departmentList = departmentMapper.selectList(new QueryWrapper<Department>().eq("company_id",companyId));
-        for (JSONObject deptArray : deptArrays) {
-            String canonicalName = deptArray.getString("canonicalName");
-            Optional<Department> first = departmentList.stream().filter(dl -> dl.getDepartmentName().equals(deptArray.getString("name"))).findFirst();
-            if(first.isPresent()){
-                String[] split = canonicalName.split("/");
-                if(split.length>2){
-                    String s = split[split.length - 2];
-                    Department one = departmentMapper.selectOne(new QueryWrapper<Department>().eq("department_name", s).eq("company_id",companyId));
-                    if(one!=null&&Optional.of(one).isPresent()){
-                        first.get().setSuperiorId(one.getDepartmentId());
-                    }
-                }
-                departmentMapper.updateById(first.get());
-            }
-        }
-        List<JSONObject> userArrays = getUser();
-        Integer[] ints = {514, 546, 66050, 66080, 66082};
-        List<Integer> disable = Arrays.asList(ints);
-        for (JSONObject user : userArrays) {
-            if(disable.contains(user.getIntValue("userAccountControl"))){
-                List<User> users = userList.stream().filter(ul -> ul.getPhone() != null).collect(Collectors.toList());
-                Optional<User> optional = users.stream().filter(ul -> ul.getPhone() != null && ul.getPhone().equals(user.getString("userPrincipalName"))).findFirst();
-                if(optional.isPresent()){
-                    userMapper.deleteById(optional.get().getId());
-                }
-                continue;
-            }
-            if(!user.containsKey("userPrincipalName")){
-                continue;
-            }
-            User u=new User();
-            u.setId(SnowFlake.nextId()+"")
-                    .setName(user.getString("name"))
-                    .setPhone(user.getString("userPrincipalName"))
-                    .setId(SnowFlake.nextId()+"")
-                    .setRoleId(role.getId())//默认组员
-                    .setRoleName(role.getRolename())
-                    .setCompanyId(companyId)
-                    .setColor(ColorUtil.randomColor())
-                    .setPassword(MD5Util.getPassword("000000"));
-            String distinguishedName = user.getString("distinguishedName");
-            String[] split = distinguishedName.split(",");
-            List<String> list = Arrays.asList(split);
-            List<String> collect = list.stream().filter(l -> l.contains("OU=")).collect(Collectors.toList());
-            if(collect.size()>0){
-                String s = collect.get(0).replaceAll("OU=", "");
-                Department one = departmentMapper.selectOne(new QueryWrapper<Department>().eq("department_name", s).eq("company_id",companyId));
-                if(one!=null){
-                    u.setDepartmentId(one.getDepartmentId()).setDepartmentName(one.getDepartmentName()).setDepartmentCascade(convertDepartmentIdToCascade(one.getDepartmentId(),departmentList));
-                }
-            }
-            List<User> users = userList.stream().filter(ul -> ul.getPhone() != null).collect(Collectors.toList());
-            if(!users.stream().anyMatch(ul->ul.getPhone()!=null&&ul.getPhone().equals(u.getPhone()))){
-                userMapper.insert(u);
-            }
-        }
-        return new HttpRespMsg();
-    }
-
-    public LdapContext adLogin() {
-
-        LdapContext ldapContext = null;
-        Hashtable<String, Object> env = new Hashtable<String, Object>();
-        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
-        //验证类型
-        env.put(Context.SECURITY_AUTHENTICATION, "simple");
-        //用户名称,cn,ou,dc 分别:用户,组,域
-        env.put(Context.SECURITY_PRINCIPAL,userName);
-        //用户密码 cn 的密码
-        env.put(Context.SECURITY_CREDENTIALS,passWord);
-        //url 格式:协议://ip:端口/组,域   ,直接连接到域或者组上面
-        env.put(Context.PROVIDER_URL,ldapUrl);
-//        //协议
-//        env.put(Context.SECURITY_PROTOCOL, "ssl");
-//        env.put("java.naming.ldap.factory.socket", "org.utils.ad.DummySSLSocketFactory");
-        //objectGUID 转换,很关键
-        env.put("java.naming.ldap.attributes.binary","objectGUID");
-        try {
-            Control[] sortConnCtls = new SortControl[1];
-            sortConnCtls[0] = new SortControl("sAMAccountName", Control.CRITICAL);
-            ldapContext = new InitialLdapContext(env, sortConnCtls);
-        } catch (IOException | NamingException e) {
-            e.printStackTrace();
-        }
-        return ldapContext;
-    }
-
     private String getObjectGUID(byte[] GUID){
         String strGUID = "";
         String byteGUID = "";

+ 6 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application-privatelew.yml

@@ -13,9 +13,9 @@ spring:
       max-request-size: 100MB
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/man_lew?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&&useSSL=false
-    username: root
-    password: Lew@2023
+    url: jdbc:mysql://47.100.37.243:7644/man_workshop_lew?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&&useSSL=false
+    username: man_lew
+    password: LeiErWei_4ever#
     hikari:
       maximum-pool-size: 10
       minimum-idle: 3
@@ -80,7 +80,7 @@ mybatis:
   mapper-locations: mappers/*Mapper.xml
 #####配置图片上传路径####
 upload:
-  path: /www/staticproject/leworkshop/upload/
+  path: /www/staticproject/workshop_pc/upload/
 
 #私有化的企业微信corpId
 corpId: wwf295c4f04cba0076
@@ -103,6 +103,7 @@ referer:
   refererDomain:
     - localhost
     - 192.168.1.218
+    - 101.132.166.205
     - workshop.njlew.com.cn
     - mobworkshop.njlew.com.cn
     - workshop.njlew.com.cn:16080
@@ -116,3 +117,4 @@ privateDeployURL:
   pcUrl: http://workshop.njlew.com.cn:16080
   mobUrl: http://mobworkshop.njlew.com.cn:16080
   authUrl: http://workshop.njlew.com.cn:16080/api/corpInsideWXAuth
+

+ 0 - 15
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/application.yml

@@ -50,19 +50,6 @@ spring:
   messages:
     basename: i18n.messages #配置国际化资源文件路径
     encoding: UTF-8
-
-  ##AD认证
-  ldap:
-    ##AD服务器IP,默认端口389
-    urls: ldap://192.168.2.44:389
-    ##登录账号
-    username: zhangsan@yurk.cn
-    ##密码
-    password: Zs123456
-    #distinguishedName的部分节点
-    base:
-      dcFirst: yurk
-      dcSecond: cn
 ##########日志配置
 logging:
   level:
@@ -131,8 +118,6 @@ management:
   health:
     redis:
       enabled: false
-    ldap:
-      enabled: false
 
 referer:
   refererDomain:

+ 0 - 25
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/EarningSnapshotMapper.xml

@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.management.platform.mapper.EarningSnapshotMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.management.platform.entity.EarningSnapshot">
-        <id column="id" property="id" />
-        <result column="project_id" property="projectId" />
-        <result column="indate" property="indate" />
-        <result column="creator_id" property="creatorId" />
-        <result column="creator_name" property="creatorName" />
-        <result column="contract_amount" property="contractAmount" />
-        <result column="profit" property="profit" />
-        <result column="profit_percent" property="profitPercent" />
-        <result column="cost_total" property="costTotal" />
-        <result column="cost_data" property="costData" />
-        <result column="remark" property="remark" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id, project_id, indate, creator_id, creator_name, contract_amount, profit, profit_percent, cost_total, cost_data, remark
-    </sql>
-
-</mapper>

+ 0 - 73
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ExpenseItemMapper.xml

@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.management.platform.mapper.ExpenseItemMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.management.platform.entity.ExpenseItem">
-        <id column="id" property="id" />
-        <result column="expense_id" property="expenseId" />
-        <result column="project_id" property="projectId" />
-        <result column="happen_date" property="happenDate" />
-        <result column="invoice_type" property="invoiceType" />
-        <result column="invoice_no" property="invoiceNo" />
-        <result column="tax_percent" property="taxPercent" />
-        <result column="tax_value" property="taxValue" />
-        <result column="amount" property="amount" />
-        <result column="remark" property="remark" />
-        <result column="expense_type" property="expenseType" />
-        <result column="pic" property="pic" />
-    </resultMap>
-
-    <resultMap id="UserBaseResultMap" type="com.management.platform.entity.vo.ExpenseItemVO">
-        <id column="id" property="id" />
-        <result column="expense_id" property="expenseId" />
-        <result column="project_id" property="projectId" />
-        <result column="happen_date" property="happenDate" />
-        <result column="invoice_type" property="invoiceType" />
-        <result column="invoice_no" property="invoiceNo" />
-        <result column="tax_percent" property="taxPercent" />
-        <result column="tax_value" property="taxValue" />
-        <result column="amount" property="amount" />
-        <result column="remark" property="remark" />
-        <result column="expense_type" property="expenseType" />
-        <result column="pic" property="pic" />
-        <result column="username" property="username" />
-        <result column="department_name" property="departmentName" />
-    </resultMap>
-
-    <!-- 通用查询结果列 -->
-    <sql id="Base_Column_List">
-        id, expense_id, project_id, happen_date, invoice_type, invoice_no, tax_percent, tax_value, amount, remark, expense_type, pic
-    </sql>
-
-    <select id="getUserExpenseDetail" resultMap="UserBaseResultMap">
-        select a.id, a.expense_id, a.project_id, a.happen_date, a.invoice_type, a.tax_percent, a.tax_value, a.amount, a.remark, a.expense_type, a.pic,
-        user.name as username, department.department_name
-        from expense_item a left join expense_sheet b on a.expense_id = b.id
-        left join user on user.id = b.owner_id
-        left join department on department.department_id = user.department_id
-        where a.project_id = #{projectId} order by a.happen_date desc
-    </select>
-
-    <select id="selectExpenseByProject" resultType="java.lang.Double">
-        select IFNULL(sum(expense_item.amount),0)
-        from expense_item
-        left join expense_sheet on expense_sheet.id = expense_item.expense_id
-        where expense_item.project_id = #{projectId}
-        <if test="startDate!=null and endDate!=null">
-            and happen_date between #{startDate} and #{endDate}
-        </if>
-        and expense_item.amount is not null
-        and expense_sheet.status = 0
-    </select>
-
-    <select id="selectSumAmountByProjectAndType" resultType="java.lang.Double">
-        select IFNULL(sum(expense_item.amount),0)
-        from expense_item
-        left join expense_sheet on expense_sheet.id = expense_item.expense_id
-        where expense_item.project_id = #{projectId}
-        and expense_item.amount is not null
-        and expense_sheet.status &lt;= 1
-        and expense_sheet.type = #{type}
-    </select>
-</mapper>

+ 0 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ExpenseMainTypeMapper.xml


Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio