From e7dee32fec5df48aeeb771a3334fec54c8c8b257 Mon Sep 17 00:00:00 2001
From: shilei <798989044@qq.com>
Date: Mon, 29 Sep 2025 10:43:32 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=8F=91=E4=BA=8C=E5=BC=80=E4=BB=A3?=
=?UTF-8?q?=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WEB-INF/prop/hrm_fadada.properties | 24 +
.../WEB-INF/prop/hrm_kqreport.properties | 59 +
.../WEB-INF/prop/hrm_zhongkong.properties | 52 +
领悦二开new/interface/fdd/do.jsp | 323 ++
领悦二开new/interface/lingyue/DemoTest.jsp | 226 +
领悦二开new/interface/lingyue/bb.jsp | 492 ++
领悦二开new/interface/lingyue/cc.jsp | 410 ++
.../interface/lingyue/controle_leave.jsp | 44 +
领悦二开new/interface/lingyue/dd.jsp | 2578 +++++++++
领悦二开new/interface/lingyue/do.jsp | 39 +
.../interface/lingyue/initSubAndDeptCode.jsp | 103 +
领悦二开new/interface/lingyue/initZkkq.jsp | 254 +
领悦二开new/interface/lingyue/re_user.jsp | 332 ++
.../interface/lingyue/repairKqAttendInfos.jsp | 92 +
领悦二开new/interface/lingyue/syntest.jsp | 423 ++
.../api/hrm/service/HrmResourceAddService.java | 1100 ++++
.../api/hrm/service/HrmResourceBaseService.java | 3635 ++++++++++++
.../src/com/api/lingyue/SynOtherKqInfoApi.java | 16 +
.../hrm/cmd/organization/AddDepartmentCmd.java | 231 +
.../hrm/cmd/organization/AddSubCompanyCmd.java | 245 +
.../hrm/cmd/organization/CancelDepartmentCmd.java | 175 +
.../hrm/cmd/organization/CancelSubCompanyCmd.java | 165 +
.../hrm/cmd/organization/DelDepartmentCmd.java | 182 +
.../hrm/cmd/organization/DelSubCompanyCmd.java | 205 +
.../hrm/cmd/organization/EditDepartmentCmd.java | 282 +
.../hrm/cmd/organization/EditSubCompanyCmd.java | 223 +
.../src/com/engine/kq/bean/KQBalanceOfLeave.java | 497 ++
.../src/com/engine/kq/bean/KQChildrenBean.java | 46 +
.../src/com/engine/kq/bean/KqLockAttenda.java | 74 +
.../com/engine/kq/biz/KQBalanceOfLeaveBiz.java | 4908 +++++++++++++++++
.../src/com/engine/kq/biz/KQChildrenComInfo.java | 81 +
.../src/com/engine/kq/biz/KQFormatBiz.java | 339 ++
.../src/com/engine/kq/biz/KQFormatData.java | 1698 ++++++
.../src/com/engine/kq/biz/KQFormatShiftRule.java | 562 ++
.../src/com/engine/kq/biz/KQFormatSignData.java | 758 +++
.../src/com/engine/kq/biz/KQGroupBiz.java | 714 +++
.../src/com/engine/kq/biz/KQGroupComInfo.java | 466 ++
.../com/engine/kq/biz/KQGroupMemberComInfo.java | 981 ++++
.../src/com/engine/kq/biz/KQHolidaySetBiz.java | 499 ++
.../src/com/engine/kq/biz/KQLeaveRulesBiz.java | 1307 +++++
.../com/engine/kq/biz/KQLeaveRulesComInfo.java | 319 ++
.../engine/kq/biz/KQLeaveRulesDetailComInfo.java | 1329 +++++
.../src/com/engine/kq/biz/KQOvertimeRulesBiz.java | 1054 ++++
.../src/com/engine/kq/biz/KQReportBiz.java | 3653 ++++++++++++
.../com/engine/kq/biz/KQScheduleSignImport.java | 877 +++
.../engine/kq/biz/KQScheduleSignImportJob.java | 30 +
.../engine/kq/biz/KQShiftManagementComInfo.java | 814 +++
.../com/engine/kq/biz/KQShiftScheduleComInfo.java | 179 +
.../src/com/engine/kq/biz/KQWorkTime.java | 471 ++
.../biz/chain/cominfo/ShiftInfoCominfoBean.java | 521 ++
.../kq/biz/chain/shiftinfo/ShiftInfoBean.java | 804 +++
.../com/engine/kq/cmd/report/ExportExcelCmd.java | 954 ++++
.../com/engine/kq/cmd/report/GetKQReportCmd.java | 1004 ++++
.../engine/kq/entity/KQBalanceOfLeaveEntity.java | 234 +
.../src/com/engine/kq/entity/KQGroupEntity.java | 235 +
.../kq/entity/KQOvertimeRulesDetailEntity.java | 253 +
.../engine/kq/entity/KQScheduleSignEntity.java | 107 +
.../com/engine/kq/entity/KQShiftRuleEntity.java | 189 +
.../src/com/engine/kq/entity/WorkTimeEntity.java | 220 +
.../engine/kq/jucailin/genid/DefaultWorker.java | 52 +
.../com/engine/kq/jucailin/genid/IdGenerator.java | 16 +
.../com/engine/kq/jucailin/genid/SnowflakeId.java | 93 +
.../src/com/engine/kq/jucailin/genid/Worker.java | 5 +
.../com/engine/kq/jucailin/util/KQDateUtil.java | 19 +
.../src/com/engine/kq/util/ExcelUtil.java | 829 +++
.../src/com/engine/kq/util/KQLockAttendaUtil.java | 1382 +++++
.../kq/util/lingyuewuye/ExpirationDateMethod.java | 44 +
.../engine/kq/util/lingyuewuye/NianJiaUtil.java | 80 +
.../src/com/engine/lingyue/util/KqUtil.java | 2253 ++++++++
.../engine/lingyue/web/SynOtherKqInfoAction.java | 165 +
领悦二开new/src/com/fage/DemoTest.java | 551 ++
领悦二开new/src/com/lingyue/util/KqUtil.java | 812 +++
.../lingyue/action/SynAddUserAction.java | 120 +
.../lingyue/action/SynDeleteUserAction.java | 74 +
.../lingyue/action/SynTransUserAction.java | 142 +
.../lingyue/job/SynDeleteUserToZkJob.java | 211 +
.../interfaces/lingyue/job/SynNewUserToZkJob.java | 96 +
.../interfaces/lingyue/job/SynOtherKqInfoJob.java | 129 +
.../lingyue/job/SynSubcomDeptUserInfoJob.java | 94 +
.../lingyue/job/SyncKqDataFromZKJob.java | 309 ++
.../weaver/interfaces/lingyue/util/HttpUtil.java | 528 ++
81 files changed, 46091 insertions(+)
create mode 100644 领悦二开new/WEB-INF/prop/hrm_fadada.properties
create mode 100644 领悦二开new/WEB-INF/prop/hrm_kqreport.properties
create mode 100644 领悦二开new/WEB-INF/prop/hrm_zhongkong.properties
create mode 100644 领悦二开new/interface/fdd/do.jsp
create mode 100644 领悦二开new/interface/lingyue/DemoTest.jsp
create mode 100644 领悦二开new/interface/lingyue/bb.jsp
create mode 100644 领悦二开new/interface/lingyue/cc.jsp
create mode 100644 领悦二开new/interface/lingyue/controle_leave.jsp
create mode 100644 领悦二开new/interface/lingyue/dd.jsp
create mode 100644 领悦二开new/interface/lingyue/do.jsp
create mode 100644 领悦二开new/interface/lingyue/initSubAndDeptCode.jsp
create mode 100644 领悦二开new/interface/lingyue/initZkkq.jsp
create mode 100644 领悦二开new/interface/lingyue/re_user.jsp
create mode 100644 领悦二开new/interface/lingyue/repairKqAttendInfos.jsp
create mode 100644 领悦二开new/interface/lingyue/syntest.jsp
create mode 100644 领悦二开new/src/com/api/hrm/service/HrmResourceAddService.java
create mode 100644 领悦二开new/src/com/api/hrm/service/HrmResourceBaseService.java
create mode 100644 领悦二开new/src/com/api/lingyue/SynOtherKqInfoApi.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/AddDepartmentCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/AddSubCompanyCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/CancelDepartmentCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/CancelSubCompanyCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/DelDepartmentCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/DelSubCompanyCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/EditDepartmentCmd.java
create mode 100644 领悦二开new/src/com/engine/hrm/cmd/organization/EditSubCompanyCmd.java
create mode 100644 领悦二开new/src/com/engine/kq/bean/KQBalanceOfLeave.java
create mode 100644 领悦二开new/src/com/engine/kq/bean/KQChildrenBean.java
create mode 100644 领悦二开new/src/com/engine/kq/bean/KqLockAttenda.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQBalanceOfLeaveBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQChildrenComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQFormatBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQFormatData.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQFormatShiftRule.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQFormatSignData.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQGroupBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQGroupComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQGroupMemberComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQHolidaySetBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQLeaveRulesBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQLeaveRulesComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQLeaveRulesDetailComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQOvertimeRulesBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQReportBiz.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQScheduleSignImport.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQScheduleSignImportJob.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQShiftManagementComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQShiftScheduleComInfo.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/KQWorkTime.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/chain/cominfo/ShiftInfoCominfoBean.java
create mode 100644 领悦二开new/src/com/engine/kq/biz/chain/shiftinfo/ShiftInfoBean.java
create mode 100644 领悦二开new/src/com/engine/kq/cmd/report/ExportExcelCmd.java
create mode 100644 领悦二开new/src/com/engine/kq/cmd/report/GetKQReportCmd.java
create mode 100644 领悦二开new/src/com/engine/kq/entity/KQBalanceOfLeaveEntity.java
create mode 100644 领悦二开new/src/com/engine/kq/entity/KQGroupEntity.java
create mode 100644 领悦二开new/src/com/engine/kq/entity/KQOvertimeRulesDetailEntity.java
create mode 100644 领悦二开new/src/com/engine/kq/entity/KQScheduleSignEntity.java
create mode 100644 领悦二开new/src/com/engine/kq/entity/KQShiftRuleEntity.java
create mode 100644 领悦二开new/src/com/engine/kq/entity/WorkTimeEntity.java
create mode 100644 领悦二开new/src/com/engine/kq/jucailin/genid/DefaultWorker.java
create mode 100644 领悦二开new/src/com/engine/kq/jucailin/genid/IdGenerator.java
create mode 100644 领悦二开new/src/com/engine/kq/jucailin/genid/SnowflakeId.java
create mode 100644 领悦二开new/src/com/engine/kq/jucailin/genid/Worker.java
create mode 100644 领悦二开new/src/com/engine/kq/jucailin/util/KQDateUtil.java
create mode 100644 领悦二开new/src/com/engine/kq/util/ExcelUtil.java
create mode 100644 领悦二开new/src/com/engine/kq/util/KQLockAttendaUtil.java
create mode 100644 领悦二开new/src/com/engine/kq/util/lingyuewuye/ExpirationDateMethod.java
create mode 100644 领悦二开new/src/com/engine/kq/util/lingyuewuye/NianJiaUtil.java
create mode 100644 领悦二开new/src/com/engine/lingyue/util/KqUtil.java
create mode 100644 领悦二开new/src/com/engine/lingyue/web/SynOtherKqInfoAction.java
create mode 100644 领悦二开new/src/com/fage/DemoTest.java
create mode 100644 领悦二开new/src/com/lingyue/util/KqUtil.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/action/SynAddUserAction.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/action/SynDeleteUserAction.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/action/SynTransUserAction.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/job/SynDeleteUserToZkJob.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/job/SynNewUserToZkJob.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/job/SynOtherKqInfoJob.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/job/SynSubcomDeptUserInfoJob.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/job/SyncKqDataFromZKJob.java
create mode 100644 领悦二开new/src/weaver/interfaces/lingyue/util/HttpUtil.java
diff --git a/领悦二开new/WEB-INF/prop/hrm_fadada.properties b/领悦二开new/WEB-INF/prop/hrm_fadada.properties
new file mode 100644
index 0000000..c23159a
--- /dev/null
+++ b/领悦二开new/WEB-INF/prop/hrm_fadada.properties
@@ -0,0 +1,24 @@
+# ӿurl
+fadada_url=http://172.18.3.51:8072
+
+# Խ appid
+fadada_appid=100003
+
+# Խ secret
+fadada_secret=Sq3xcgWquEA56XU3hY4AGKsj
+
+#
+
+#
+
+#
+
+#
+
+#
+
+#
+
+#
+
+#
\ No newline at end of file
diff --git a/领悦二开new/WEB-INF/prop/hrm_kqreport.properties b/领悦二开new/WEB-INF/prop/hrm_kqreport.properties
new file mode 100644
index 0000000..4515f60
--- /dev/null
+++ b/领悦二开new/WEB-INF/prop/hrm_kqreport.properties
@@ -0,0 +1,59 @@
+# \u75C5\u5047 7 \u5E74\u5047 2 \u4EA7\u5047 8 \u966A\u4EA7\u5047 9 \u5A5A\u5047 10 \u4E27\u5047 11 \u5DE5\u4F24\u5047 13 \u63A2\u4EB2\u5047 14 \u8C03\u4F11\u5047 15
+halfday_leave_ids=7,2,9,10,11,14,15
+
+# \u54FA\u4E73\u5047 \u5047\u671F\u7C7B\u578Bid 12
+breastfeed_leave_id=12
+
+# \u4E8B\u5047 \u5047\u671F\u7C7B\u578Bid
+leaveabsencetype=6
+
+# \u75C5\u5047 \u5047\u671F\u7C7B\u578Bid
+sickleavetype=7
+
+# \u5E74\u5047 \u5047\u671F\u7C7B\u578Bid
+annualleavetype=2
+
+# \u966A\u4EA7\u5047 \u5047\u671F\u7C7B\u578Bid
+paternityleavetype=9
+
+# \u5A5A\u5047 \u5047\u671F\u7C7B\u578Bid
+marriageleavetype=10
+
+# \u4E27\u5047 \u5047\u671F\u7C7B\u578Bid
+bereavementleavetype=11
+
+# \u63A2\u4EB2\u5047 \u5047\u671F\u7C7B\u578Bid
+homeleavetype=14
+
+# \u8C03\u4F11\u5047 \u5047\u671F\u7C7B\u578Bid
+compensatory_leave_id=15
+
+# \u4EA7\u5047 \u5047\u671F\u7C7B\u578Bid
+maternity_leave_id=8
+
+# \u5DE5\u4F24\u5047 \u5047\u671F\u7C7B\u578Bid
+injuryLeave_leave_id=13
+
+# \u7247\u533A \u4EBA\u5458\u5361\u7247\u81EA\u5B9A\u4E49\u5B57\u6BB5
+area_fieldid=field137
+
+# \u5C97\u4F4D\u540D\u79F0 \u4EBA\u5458\u5361\u7247\u81EA\u5B9A\u4E49\u5B57\u6BB5
+position_fieldid=field128
+
+# \u4F11\u606F\u73ED\u6B21 id
+rest_serial_id=191
+
+rest2_serial_id=2
+
+# \u96C6\u56E2\u603B\u90E8\u884C\u653F\u73ED\u6B21 \u8003\u52E4\u7EC4id
+the_top_groupid=209
+
+# \u8F6C\u6B63\u65E5\u671F \u5DE5\u4F5C\u4FE1\u606F \u81EA\u5B9A\u4E49\u5B57\u6BB5id
+zzrq_fieldid=field14
+
+# \u79BB\u804C\u65E5\u671F \u5DE5\u4F5C\u4FE1\u606F \u81EA\u5B9A\u4E49\u5B57\u6BB5id
+lzrq_fieldid=field49
+
+
+
+
diff --git a/领悦二开new/WEB-INF/prop/hrm_zhongkong.properties b/领悦二开new/WEB-INF/prop/hrm_zhongkong.properties
new file mode 100644
index 0000000..bf3ef63
--- /dev/null
+++ b/领悦二开new/WEB-INF/prop/hrm_zhongkong.properties
@@ -0,0 +1,52 @@
+# \uFFFD\uFFFD\u0221\uFFFD\uFFFD\uFFFD\u0432\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u03E2 \uFFFD\u04FF\uFFFDurl
+get_all_dept_url=http://222.212.88.118:8989/api/v2/department/get/
+
+# \uFFFD\uFFFD\u0221\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0531\uFFFD\uFFFD\u03E2 \uFFFD\u04FF\uFFFDurl
+get_all_user_url=http://222.212.88.118:8989/api/v2/employee/get/
+
+# \uFFFD\u04FF\uFFFD\u01BE\u05A4 key
+key=56b2gxturpnypuumxq4bpwhrj1_82cpu0nqwrslzkgzp
+
+# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u00B2\uFFFD\uFFFD\uFFFD \uFFFD\u04FF\uFFFDurl
+add_update_dept_url=http://222.212.88.118:8989/api/v2/department/update/
+
+# \u027E\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \uFFFD\u04FF\uFFFDurl
+delete_dept_url=http://222.212.88.118:8989/api/v2/department/delete/
+
+# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0531 \uFFFD\u04FF\uFFFDurl
+add_update_user_url=http://222.212.88.118:8989/api/v2/employee/update/
+
+# \uFFFD\uFFFD\u0531\uFFFD\uFFFD\u05B0 \uFFFD\u04FF\uFFFDurl
+leave_user_url=http://222.212.88.118:8989/api/v2/employee/leave/
+
+# \u027E\uFFFD\uFFFD\uFFFD\uFFFD\u0531 \uFFFD\u04FF\uFFFDurl
+#delete_user_url=http://222.212.88.118:8989/api/v2/employee/delete/
+
+# \uFFFD\uFFFD\u0221\uFFFD\uFFFD\uFFFD\u06BC\uFFFD\u00BC \uFFFD\u04FF\uFFFDurl
+get_kqinfo_url=http://222.212.88.118:8989/api/v2/transaction/get/
+
+# \uFFFD\u043F\u063F\uFFFD\uFFFD\u06BB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \u0123\uFFFD\uFFFDid
+zkkqjkqsj_formmodeid=38
+
+# \uFFFD\uFFFD\uFFFD\u06BF\uFFFD\uFFFD\uFFFD \uFFFD\u0536\uFFFD\uFFFD\uFFFD\uFFFD\u05B6\uFFFDid
+kq_fieldid=field38
+
+# \uFFFD\uFFFD\uFFFD\uFFFD
+kq_number=2000
+
+# \uFFFD\uFFFD\u0531\uFFFD\uFFFD\uFFFD\uFFFD\u05B0\uFFFD\uFFFD\u03E2 \uFFFD\uFFFD\uFFFD\u0331\uFFFD\uFFFD\uFFFD
+newuser_table=formtable_main_118
+
+# \uFFFD\uFFFD\u05B0\u0237\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD \uFFFD\uFFFD\uFFFD\uFFFD
+deleteuser_table=formtable_main_72
+
+# HR\u036C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u043F\u063F\uFFFD\uFFFD\u06BB\uFFFD\uFFFD\uFFFD\u00BC\uFFFD\uFFFD \u0123\uFFFD\uFFFDid
+hrtozkkqj_formmodeid=103
+
+lzyy_fieldid=8900
+
+sfhl_fieldid=field150
+
+restore_user_url=http://222.212.88.118:8989/api/v2/employee/restore/
+
+zksfhf_fieldid=field151
\ No newline at end of file
diff --git a/领悦二开new/interface/fdd/do.jsp b/领悦二开new/interface/fdd/do.jsp
new file mode 100644
index 0000000..a857a15
--- /dev/null
+++ b/领悦二开new/interface/fdd/do.jsp
@@ -0,0 +1,323 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@page import="weaver.general.Util"%>
+<%@ page import="weaver.conn.RecordSet" %>
+<%@ page import="weaver.general.TimeUtil" %>
+<%@ page import="com.alibaba.fastjson.JSONObject" %>
+<%@ page import="java.util.*" %>
+<%@ page import="com.alibaba.fastjson.JSONArray" %>
+<%@ page import="java.text.SimpleDateFormat" %>
+<%@ page import="java.text.ParseException" %>
+<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %>
+<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %>
+<%@ page import="org.apache.http.impl.client.HttpClients" %>
+<%@ page import="org.apache.http.client.methods.HttpPost" %>
+<%@ page import="org.apache.http.entity.StringEntity" %>
+<%@ page import="org.apache.http.HttpEntity" %>
+<%@ page import="org.apache.http.util.EntityUtils" %>
+<%@ page import="java.io.IOException" %>
+<%@ page import="com.fdd.utils.HttpUtil" %>
+<%@ page import="com.fdd.dto.BaseDTO" %>
+<%@ page import="com.fdd.utils.SignTypeEnum" %>
+<%@ page import="com.fdd.utils.SignUtil" %>
+<%@ page import="java.sql.Timestamp" %>
+<%@ page import="java.text.DateFormat" %>
+<%@ page import="weaver.file.Prop" %>
+<%@ page import="java.net.URLEncoder" %>
+<%@ page import="java.io.UnsupportedEncodingException" %>
+<%@ page import="sun.misc.BASE64Encoder" %>
+<%@ page import="com.alibaba.fastjson.JSON" %>
+<%@ page import="java.security.MessageDigest" %>
+<%@ page import="java.security.NoSuchAlgorithmException" %>
+
+<%
+ int sum = 0;
+
+ String type = Util.null2String(request.getParameter("type"));
+ String account = Util.null2String(request.getParameter("account"));
+ String adminAccountId = "";
+ String companyName = "";
+
+ String data = registerAccount(type,account,adminAccountId,companyName);
+
+ sum++;
+
+%>
+
+<%!
+ RecordSet rst = new RecordSet();
+
+ /**
+ * 项目部署后向项目经理申请对接Api的APPID
+ */
+ private String APPID = rst.getPropValue("hrm_fadada", "fadada_appid");
+ /**
+ * 项目部署后向项目经理申请对接Api的APPSECRET
+ */
+ private String APPSECRET = rst.getPropValue("hrm_fadada", "fadada_secret");
+ /**
+ * 项目部署后,对外访问的域名
+ */
+ private String FDDHOST = rst.getPropValue("hrm_fadada", "fadada_url");
+
+ /**
+ * 注册账号
+ */
+ public String registerAccount(String type, String account, String adminAccountId, String companyName) {
+ Map map = new HashMap();// 业务参数都放在这里
+ map.put("type", type);
+ map.put("account", account);
+ map.put("adminAccountId", adminAccountId);
+ map.put("companyName", companyName);
+ String rep = request("/account/register", map, "POST");
+ rst.writeLog("[ApiUtil.registerAccount]:注册账号接口返回参数:" + rep);
+ JSONObject jsonObject = JSONObject.parseObject(rep);
+ String data = jsonObject.getString("data");
+ return data;
+ }
+
+ /**
+ * 实名认证状态查询
+ * @param type 类型 1 为个人,2为企业。
+ */
+ public String personCertificationStatus(String type, String customerId) {
+ Map map = new HashMap();// 业务参数都放在这里
+ map.put("customerId", customerId);
+ String rep = "";
+ if ("1".equals(type)) {
+ rep = request("/certification/person/get-status", map, "POST");
+ } else if ("2".equals(type)) {
+
+ rep = request("/certification/company/get-status", map, "POST");
+ }
+ rst.writeLog("[ApiUtil.personCertificationStatus]实名认证状态查询接口返回参数:" + rep);
+ return rep;
+ }
+
+ /**
+ * @param url
+ * @param map
+ */
+ public String request(String url, Map map, String type) {
+ String response = "";
+ try {
+ rst.writeLog("[ApiUtil.request]:接口传入业务参数:" + map.toString());
+ Map params = getParams(map);
+ rst.writeLog("[ApiUtil.request]:接口传入共通参数:" + params);
+ if ("POST".equals(type)) {
+ response = HttpUtil.postUrlAsJson(FDDHOST + url, params, "UTF-8");
+ } else if ("GET".equals(type)) {
+ response = getGetUrl(FDDHOST + url, params, "UTF-8");
+ }
+ } catch (Exception e) {
+ rst.writeLog("[ApiUtil.request]:错误信息:" + e.getMessage());
+ }
+ return response;
+ }
+
+ public Map getParams(Map map) {
+ Map params = null;
+ try {
+ String timestamp = getTimeStamp();// 获取时间戳
+ BaseDTO baseDTO = new BaseDTO();
+ baseDTO.setSignType(SignTypeEnum.SHA256.getValue());
+ baseDTO.setTimestamp(timestamp);
+ baseDTO.setAppId(APPID);
+ baseDTO.setAppSecret(APPSECRET);
+ String bizContent = bizContent(map);// 把所有业务参数
+ String sign = getSign(baseDTO.getAppId(), baseDTO.getAppSecret(), baseDTO.getSignType(),
+ baseDTO.getTimestamp(), bizContent);// 生成签名
+ params = new HashMap(8);
+ params.put("appId", APPID);
+ params.put("signType", SignTypeEnum.SHA256.getValue());
+ params.put("sign", sign);
+ params.put("timestamp", timestamp);
+ params.put("bizContent", bizContent);
+ } catch (Exception e) {
+ rst.writeLog("[ApiUtil.getParams]:错误信息:" + e.getMessage());
+ }
+ return params;
+ }
+
+ /**
+ * 根据数据获取签名
+ *
+ * @param appId
+ * @param appKey
+ * @param signType
+ * @param timestamp
+ * @param bizContent
+ * @return java.lang.String
+ * @author zhangq2@fadada.com
+ * @date 2019/1/2
+ */
+ public static String getSign(String appId, String appKey, String signType, String timestamp, String bizContent)
+ throws Exception {
+ // 可以优化
+ Map map = new HashMap(10);
+ map.put("appId", appId);
+ map.put("signType", signType);
+ map.put("timestamp", timestamp);
+ map.put("bizContent", bizContent);
+
+ List list = new ArrayList(map.keySet());
+ Collections.sort(list);
+ StringBuilder builder = new StringBuilder();
+ for (String key : list) {
+ Object value = map.get(key);
+ if (null != value && !"".equals(value)) {
+ builder.append(key).append("=").append(value).append("&");
+ }
+ }
+ String content = builder.substring(0, builder.length() - 1);
+ String sign = "";
+ switch (SignTypeEnum.valueOf(signType)) {
+ case SHA256:
+ String sha256 = CryptTool.sha256(CryptTool.sha256(content) + appKey);
+ sign = CryptTool.encryptBASE64(sha256.getBytes("UTF-8"));
+ break;
+ case SHA1:
+ String sha1 = CryptTool.sha1(CryptTool.sha1(content) + appKey);
+ sign = CryptTool.encryptBASE64(sha1.getBytes("UTF-8"));
+ break;
+ case MD5:
+ String md5 = CryptTool.md5(CryptTool.md5(content) + appKey);
+ sign = CryptTool.encryptBASE64(md5.getBytes("UTF-8"));
+ break;
+ default:
+ break;
+ }
+ return sign.trim();
+ }
+
+ /**
+ * 获取时间戳
+ *
+ * @return
+ */
+ public String getTimeStamp() {
+ Timestamp ts = new Timestamp(System.currentTimeMillis());
+ DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ return sdf.format(ts);
+ }
+
+ /**
+ * 获取手动签署地址
+ */
+ public String getGetUrl(String url, Map params, String encode) {
+ StringBuffer buf = new StringBuffer(url);
+ if (params != null) {
+ // 地址增加?或者&
+ String flag = (url.indexOf('?') == -1) ? "?" : "&";
+ // 添加参数
+ for (String name : params.keySet()) {
+ buf.append(flag);
+ buf.append(name);
+ buf.append("=");
+ try {
+ String param = params.get(name).toString();
+ if (param == null) {
+ param = "";
+ }
+ buf.append(URLEncoder.encode(param, encode));
+ } catch (UnsupportedEncodingException e) {
+ }
+ flag = "&";
+ }
+ }
+ return buf.toString();
+ }
+
+ /**
+ * 将字符串转为base-64编码
+ * @param s
+ * @return
+ */
+ public static String toBase64(String s) {
+ if (s == null) {
+ return s;
+ }
+ try {
+ BASE64Encoder base64Encoder = new BASE64Encoder();
+ return base64Encoder.encode(s.getBytes("UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ return s;
+ }
+ }
+
+ /**
+ * 利用java原生的摘要实现SHA256加密
+ * @param str 加密后的报文
+ * @return
+ */
+ public static String String2SHA256StrJava(String str){
+ MessageDigest messageDigest;
+ String encodeStr = "";
+ try {
+ messageDigest = MessageDigest.getInstance("SHA-256");
+ messageDigest.update(str.getBytes("UTF-8"));
+ encodeStr = byte2Hex(messageDigest.digest());
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ return encodeStr;
+ }
+
+ /**
+ * 将byte转为16进制
+ * @param bytes
+ * @return
+ */
+ private static String byte2Hex(byte[] bytes){
+ StringBuffer stringBuffer = new StringBuffer();
+ String temp = null;
+ for (int i=0;i
+
+
+
+
+
+
+Congratulation Mode 666666 !
+
+ sum <%=sum%>
+
+ data <%=data%>
+
+
\ No newline at end of file
diff --git a/领悦二开new/interface/lingyue/DemoTest.jsp b/领悦二开new/interface/lingyue/DemoTest.jsp
new file mode 100644
index 0000000..f06857e
--- /dev/null
+++ b/领悦二开new/interface/lingyue/DemoTest.jsp
@@ -0,0 +1,226 @@
+<%@ page import="weaver.general.Util" %>
+<%@ page import="java.math.BigDecimal" %>
+<%@ page contentType="text/html; charset=UTF-8" %>
+
+
+<%
+ int nodeid = Util.getIntValue(request.getParameter("nodeid"));//流程的节点id
+ bb.writeLog("========== 加班申请流程 nodeid ============"+ nodeid);
+ String sql = "select isstart from workflow_nodebase where id = " + nodeid;
+ rs.execute(sql);
+ rs.next();
+ int isstart = Util.getIntValue(rs.getString("isstart"));//判断是否是流程创建节点 1:是 0:否
+%>
+
\ No newline at end of file
diff --git a/领悦二开new/interface/lingyue/bb.jsp b/领悦二开new/interface/lingyue/bb.jsp
new file mode 100644
index 0000000..45e7658
--- /dev/null
+++ b/领悦二开new/interface/lingyue/bb.jsp
@@ -0,0 +1,492 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@page import="weaver.general.Util"%>
+<%@ page import="weaver.conn.RecordSet" %>
+<%@ page import="weaver.general.TimeUtil" %>
+<%@ page import="com.alibaba.fastjson.JSONObject" %>
+<%@ page import="java.util.*" %>
+<%@ page import="com.alibaba.fastjson.JSONArray" %>
+<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %>
+<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %>
+<%@ page import="org.apache.http.impl.client.HttpClients" %>
+<%@ page import="org.apache.http.client.methods.HttpPost" %>
+<%@ page import="org.apache.http.entity.StringEntity" %>
+<%@ page import="org.apache.http.HttpEntity" %>
+<%@ page import="org.apache.http.util.EntityUtils" %>
+<%@ page import="java.io.IOException" %>
+<%@ page import="com.google.common.collect.Maps" %>
+<%@ page import="com.google.common.collect.Lists" %>
+<%@ page import="weaver.interfaces.lingyue.util.HttpUtil" %>
+<%@ page import="com.engine.kq.biz.KQFormatBiz" %>
+<%@ page import="com.engine.kq.timer.KQTaskBean" %>
+<%@ page import="com.engine.kq.wfset.util.SplitActionUtil" %>
+<%@ page import="com.engine.kq.timer.KQQueue" %>
+<%@ page import="weaver.formmode.setup.ModeRightInfo" %>
+
+<%
+ int sum = 0;
+
+ String startdate = request.getParameter("startdate");
+ String starttime = request.getParameter("starttime");
+ String enddate = request.getParameter("enddate");
+ String endtime = request.getParameter("endtime");
+
+ String startTime = startdate + " "+ starttime;
+ String endTime = enddate + " "+ endtime;
+
+ List lsFormatData = new ArrayList<>();
+ JSONObject json_main = new JSONObject();
+ List> lsParams = new ArrayList<>();
+ try {
+ int index = 1;
+ json_main.put("starttime", startTime);
+ json_main.put("endtime", endTime);
+ json_main.put("number", 2000);
+
+ SynKqData(lsFormatData,index,json_main);
+
+ Map> overtimeMap = Maps.newHashMap();
+ List overtimeList = Lists.newArrayList();
+ List