Enford %!s(int64=5) %!d(string=hai) anos
pai
achega
9a789d1e86
Modificáronse 100 ficheiros con 17283 adicións e 0 borrados
  1. 14 0
      src/main/resources/License.xml
  2. 29 0
      src/main/resources/act/build.xml
  3. BIN=BIN
      src/main/resources/act/deployments/oa/test_audit/test_audit.bar
  4. BIN=BIN
      src/main/resources/act/designs/oa/expense_account/expense_account
  5. 212 0
      src/main/resources/act/designs/oa/expense_account/expense_account.xml
  6. 141 0
      src/main/resources/act/designs/oa/leave/leave.bpmn
  7. BIN=BIN
      src/main/resources/act/designs/oa/leave/leave.png
  8. 175 0
      src/main/resources/act/designs/oa/network_service/network.bpmn
  9. 171 0
      src/main/resources/act/designs/oa/test_audit/test_audit.bpmn
  10. BIN=BIN
      src/main/resources/act/designs/oa/test_audit/test_audit.png
  11. 1 0
      src/main/resources/app-ios.properties
  12. BIN=BIN
      src/main/resources/cacert/cacerts
  13. BIN=BIN
      src/main/resources/cacert/mykeystore.jks
  14. 33 0
      src/main/resources/cache/ehcache-local.xml
  15. 59 0
      src/main/resources/cache/ehcache-rmi.xml
  16. 35 0
      src/main/resources/editor.html
  17. 5 0
      src/main/resources/errors.properties
  18. 2457 0
      src/main/resources/freemarker/current.ftl
  19. 251 0
      src/main/resources/jeeplus.properties
  20. BIN=BIN
      src/main/resources/kinggrid/demo.doc
  21. BIN=BIN
      src/main/resources/kinggrid/demo.docx
  22. BIN=BIN
      src/main/resources/kinggrid/demo.pdf
  23. 96 0
      src/main/resources/kinggrid/demo.xml
  24. BIN=BIN
      src/main/resources/kinggrid/logo.png
  25. 3 0
      src/main/resources/license.properties
  26. 77 0
      src/main/resources/logback.xml
  27. 11 0
      src/main/resources/mappings/modules/act/ActDao.xml
  28. 166 0
      src/main/resources/mappings/modules/activityassignment/ActivityAssignmentDao.xml
  29. 145 0
      src/main/resources/mappings/modules/alterinfo/AlterInfoDao.xml
  30. 141 0
      src/main/resources/mappings/modules/appversion/AppversionsDao.xml
  31. 161 0
      src/main/resources/mappings/modules/buydetails/BuyDetailsDao.xml
  32. 152 0
      src/main/resources/mappings/modules/casebuildinfo/CaseBuildInfoDao.xml
  33. 149 0
      src/main/resources/mappings/modules/casecategory/CaseCategoryDao.xml
  34. 152 0
      src/main/resources/mappings/modules/casedesigninfo/CaseDesignInfoDao.xml
  35. 152 0
      src/main/resources/mappings/modules/caseexecuteinfo/CaseExecuteInfoDao.xml
  36. 582 0
      src/main/resources/mappings/modules/caseinfo/CaseInfoDao.xml
  37. 206 0
      src/main/resources/mappings/modules/casematerials/CaseMaterialsDao.xml
  38. 142 0
      src/main/resources/mappings/modules/casematerialsnorm/CaseMaterialsNormDao.xml
  39. 148 0
      src/main/resources/mappings/modules/casemechanicalnorm/CaseMechanicalNormDao.xml
  40. 125 0
      src/main/resources/mappings/modules/casemember/CaseMemberDao.xml
  41. 148 0
      src/main/resources/mappings/modules/casenorm/CaseNormDao.xml
  42. 148 0
      src/main/resources/mappings/modules/casepeoplenorm/CasePeopleNormDao.xml
  43. 138 0
      src/main/resources/mappings/modules/caseprojectfeature/CaseProjectFeatureDao.xml
  44. 125 0
      src/main/resources/mappings/modules/contractclient/WorkContractClientDao.xml
  45. 147 0
      src/main/resources/mappings/modules/echarts/ChinaWeatherDataBeanDao.xml
  46. 125 0
      src/main/resources/mappings/modules/echarts/PieClassDao.xml
  47. 216 0
      src/main/resources/mappings/modules/exampleeconomics/ExampleEconomicsDao.xml
  48. 217 0
      src/main/resources/mappings/modules/exampleexpend/ExampleExpendDao.xml
  49. 214 0
      src/main/resources/mappings/modules/exampleproject/ExampleProjectDao.xml
  50. 219 0
      src/main/resources/mappings/modules/examplesingle/ExampleSingleDao.xml
  51. 83 0
      src/main/resources/mappings/modules/gen/GenDataBaseDictDao.xml
  52. 121 0
      src/main/resources/mappings/modules/gen/GenSchemeDao.xml
  53. 185 0
      src/main/resources/mappings/modules/gen/GenTableColumnDao.xml
  54. 139 0
      src/main/resources/mappings/modules/gen/GenTableDao.xml
  55. 105 0
      src/main/resources/mappings/modules/gen/GenTemplateDao.xml
  56. 386 0
      src/main/resources/mappings/modules/hr/UserInfoDao.xml
  57. 179 0
      src/main/resources/mappings/modules/iim/ChatHistoryDao.xml
  58. 133 0
      src/main/resources/mappings/modules/iim/LayGroupDao.xml
  59. 164 0
      src/main/resources/mappings/modules/iim/LayGroupUserDao.xml
  60. 158 0
      src/main/resources/mappings/modules/iim/MailBoxDao.xml
  61. 157 0
      src/main/resources/mappings/modules/iim/MailComposeDao.xml
  62. 95 0
      src/main/resources/mappings/modules/iim/MailDao.xml
  63. 209 0
      src/main/resources/mappings/modules/iim/MyCalendarDao.xml
  64. 215 0
      src/main/resources/mappings/modules/isignature/ISignatureDocumentDao.xml
  65. 360 0
      src/main/resources/mappings/modules/leaveapply/LeaveApplyDao.xml
  66. 151 0
      src/main/resources/mappings/modules/leaveapply/LeaveCountDao.xml
  67. 297 0
      src/main/resources/mappings/modules/leaveapply/LeaveDetailDao.xml
  68. 254 0
      src/main/resources/mappings/modules/leavetype/LeaveTypeDao.xml
  69. 121 0
      src/main/resources/mappings/modules/modules/ModuleChooseDao.xml
  70. 102 0
      src/main/resources/mappings/modules/monitor/MonitorDao.xml
  71. 313 0
      src/main/resources/mappings/modules/oa/LeaveDao.xml
  72. 415 0
      src/main/resources/mappings/modules/oa/OaAttendanceDao.xml
  73. 162 0
      src/main/resources/mappings/modules/oa/OaAttendancePlaceDao.xml
  74. 169 0
      src/main/resources/mappings/modules/oa/OaAttendanceRuleDao.xml
  75. 316 0
      src/main/resources/mappings/modules/oa/OaNotifyDao.xml
  76. 38 0
      src/main/resources/mappings/modules/oa/OaNotifyDetailDao.xml
  77. 177 0
      src/main/resources/mappings/modules/oa/OaNotifyRecordDao.xml
  78. 192 0
      src/main/resources/mappings/modules/oa/TestAuditDao.xml
  79. 321 0
      src/main/resources/mappings/modules/oa_evection/oa_evection/OaEvectionDao.xml
  80. 169 0
      src/main/resources/mappings/modules/oaall/OaAllDao.xml
  81. 183 0
      src/main/resources/mappings/modules/oabuy/OaBuyDao.xml
  82. 184 0
      src/main/resources/mappings/modules/oaperformance/OaPerformanceDao.xml
  83. 221 0
      src/main/resources/mappings/modules/officehonor/OfficehonorDao.xml
  84. 180 0
      src/main/resources/mappings/modules/officeintroduce/OfficeintroduceDao.xml
  85. 168 0
      src/main/resources/mappings/modules/officelicense/OfficeLicenseDao.xml
  86. 221 0
      src/main/resources/mappings/modules/officequalify/OfficequalifyDao.xml
  87. 133 0
      src/main/resources/mappings/modules/project/ArchivedirectoryDao.xml
  88. 219 0
      src/main/resources/mappings/modules/project/BidInformationDao.xml
  89. 325 0
      src/main/resources/mappings/modules/project/ProjectDao.xml
  90. 155 0
      src/main/resources/mappings/modules/project/ProjectDepositManagementDao.xml
  91. 147 0
      src/main/resources/mappings/modules/project/ProjectEvaluationRecordDao.xml
  92. 175 0
      src/main/resources/mappings/modules/project/ProjectgeneralDao.xml
  93. 127 0
      src/main/resources/mappings/modules/project/WorkprojectgroupDao.xml
  94. 25 0
      src/main/resources/mappings/modules/projectclientlinkman/ProjectClientLinkmanDao.xml
  95. 220 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectBasedDataDao.xml
  96. 200 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectContentChangeDao.xml
  97. 244 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectContentDataDao.xml
  98. 355 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectReportChangeDao.xml
  99. 27 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectReportDataCompanyDao.xml
  100. 0 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectReportDataDao.xml

+ 14 - 0
src/main/resources/License.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<License>
+  <Data>
+    <Products>
+      <Product>Aspose.Total for Java</Product>
+      <Product>Aspose.Words for Java</Product>
+    </Products>
+    <EditionType>Enterprise</EditionType>
+    <SubscriptionExpiry>20991231</SubscriptionExpiry>
+    <LicenseExpiry>20991231</LicenseExpiry>
+    <SerialNumber>23dcc79f-44ec-4a23-be3a-03c1632404e9</SerialNumber>
+  </Data>
+  <Signature>2sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
+</License>

+ 29 - 0
src/main/resources/act/build.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="act" default="welcome">
+
+	<!-- properties from key value -->
+	<property name="designs" value="designs" />
+	<property name="deployments" value="deployments" />
+
+	<!-- 显示欢迎信息以及操作提示 -->
+	<target name="welcome">
+		<echo>Activiti打包程序,请输入命令后操作!</echo>
+	</target>
+
+	<!-- 请假流程定义打包 -->
+	<target name="oa.leave">
+		<echo>打包流程定义:请假流程</echo>
+		<copy file="${designs}/oa/leave/leave.bpmn" tofile="${designs}/oa/leave/leave.bpmn20.xml" />
+		<zip destfile="${deployments}/oa/leave/leave.bar" basedir="${designs}/oa/leave" update="true" includes="*.xml,*.png" />
+		<delete file="${designs}/oa/leave/leave.bpmn20.xml" />
+	</target>
+	
+	<!-- 请假流程定义打包-自定义表单 -->
+	<target name="oa.test_audit">
+		<echo>打包流程定义:测试审核流程</echo>
+		<copy file="${designs}/oa/test_audit/test_audit.bpmn" tofile="${designs}/oa/test_audit/test_audit.bpmn20.xml" />
+		<zip destfile="${deployments}/oa/test_audit/test_audit.bar" basedir="${designs}/oa/test_audit" update="true" includes="*.xml,*.png" />
+		<delete file="${designs}/oa/test_audit/test_audit.bpmn20.xml" />
+	</target>
+
+</project>

BIN=BIN
src/main/resources/act/deployments/oa/test_audit/test_audit.bar


BIN=BIN
src/main/resources/act/designs/oa/expense_account/expense_account


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 212 - 0
src/main/resources/act/designs/oa/expense_account/expense_account.xml


+ 141 - 0
src/main/resources/act/designs/oa/leave/leave.bpmn

@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="com.thinkgem.jeesite.modules.oa.leave">
+  <process id="leave" name="请假流程" isExecutable="true">
+    <documentation>请假流程演示</documentation>
+    <startEvent id="startevent1" name="Start" activiti:initiator="applyUserId"></startEvent>
+    <userTask id="deptLeaderAudit" name="部门领导审批" activiti:candidateGroups="dept"></userTask>
+    <exclusiveGateway id="exclusivegateway5" name="Exclusive Gateway"></exclusiveGateway>
+    <userTask id="modifyApply" name="调整申请" activiti:assignee="${applyUserId}">
+      <extensionElements>
+        <activiti:taskListener event="complete" delegateExpression="${leaveModifyProcessor}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <userTask id="hrAudit" name="人事审批" activiti:candidateGroups="hr"></userTask>
+    <exclusiveGateway id="exclusivegateway6" name="Exclusive Gateway"></exclusiveGateway>
+    <userTask id="reportBack" name="销假" activiti:assignee="${applyUserId}">
+      <extensionElements>
+        <activiti:taskListener event="complete" delegateExpression="${leaveReportProcessor}"></activiti:taskListener>
+      </extensionElements>
+    </userTask>
+    <endEvent id="endevent1" name="End"></endEvent>
+    <exclusiveGateway id="exclusivegateway7" name="Exclusive Gateway"></exclusiveGateway>
+    <sequenceFlow id="flow2" sourceRef="startevent1" targetRef="deptLeaderAudit"></sequenceFlow>
+    <sequenceFlow id="flow3" sourceRef="deptLeaderAudit" targetRef="exclusivegateway5"></sequenceFlow>
+    <sequenceFlow id="flow4" name="不同意" sourceRef="exclusivegateway5" targetRef="modifyApply">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!deptLeaderPass}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow5" name="同意" sourceRef="exclusivegateway5" targetRef="hrAudit">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${deptLeaderPass}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow6" sourceRef="hrAudit" targetRef="exclusivegateway6"></sequenceFlow>
+    <sequenceFlow id="flow7" name="同意" sourceRef="exclusivegateway6" targetRef="reportBack">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${hrPass}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow8" sourceRef="reportBack" targetRef="endevent1"></sequenceFlow>
+    <sequenceFlow id="flow9" name="不同意" sourceRef="exclusivegateway6" targetRef="modifyApply">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!hrPass}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow10" name="重新申请" sourceRef="exclusivegateway7" targetRef="deptLeaderAudit">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${reApply}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="flow11" sourceRef="modifyApply" targetRef="exclusivegateway7"></sequenceFlow>
+    <sequenceFlow id="flow12" name="结束流程" sourceRef="exclusivegateway7" targetRef="endevent1">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!reApply}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_leave">
+    <bpmndi:BPMNPlane bpmnElement="leave" id="BPMNPlane_leave">
+      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="10.0" y="90.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="deptLeaderAudit" id="BPMNShape_deptLeaderAudit">
+        <omgdc:Bounds height="55.0" width="105.0" x="90.0" y="80.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway5" id="BPMNShape_exclusivegateway5">
+        <omgdc:Bounds height="40.0" width="40.0" x="250.0" y="87.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="modifyApply" id="BPMNShape_modifyApply">
+        <omgdc:Bounds height="55.0" width="105.0" x="218.0" y="190.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="hrAudit" id="BPMNShape_hrAudit">
+        <omgdc:Bounds height="55.0" width="105.0" x="358.0" y="80.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway6" id="BPMNShape_exclusivegateway6">
+        <omgdc:Bounds height="40.0" width="40.0" x="495.0" y="87.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="reportBack" id="BPMNShape_reportBack">
+        <omgdc:Bounds height="55.0" width="105.0" x="590.0" y="80.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
+        <omgdc:Bounds height="35.0" width="35.0" x="625.0" y="283.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="exclusivegateway7" id="BPMNShape_exclusivegateway7">
+        <omgdc:Bounds height="40.0" width="40.0" x="250.0" y="280.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
+        <omgdi:waypoint x="45.0" y="107.0"></omgdi:waypoint>
+        <omgdi:waypoint x="90.0" y="107.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
+        <omgdi:waypoint x="195.0" y="107.0"></omgdi:waypoint>
+        <omgdi:waypoint x="250.0" y="107.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
+        <omgdi:waypoint x="270.0" y="127.0"></omgdi:waypoint>
+        <omgdi:waypoint x="270.0" y="190.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="14.0" width="36.0" x="10.0" y="0.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
+        <omgdi:waypoint x="290.0" y="107.0"></omgdi:waypoint>
+        <omgdi:waypoint x="358.0" y="107.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="14.0" width="24.0" x="-24.0" y="-17.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
+        <omgdi:waypoint x="463.0" y="107.0"></omgdi:waypoint>
+        <omgdi:waypoint x="495.0" y="107.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
+        <omgdi:waypoint x="535.0" y="107.0"></omgdi:waypoint>
+        <omgdi:waypoint x="590.0" y="107.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="14.0" width="24.0" x="-22.0" y="-17.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
+        <omgdi:waypoint x="642.0" y="135.0"></omgdi:waypoint>
+        <omgdi:waypoint x="642.0" y="283.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
+        <omgdi:waypoint x="515.0" y="127.0"></omgdi:waypoint>
+        <omgdi:waypoint x="514.0" y="217.0"></omgdi:waypoint>
+        <omgdi:waypoint x="323.0" y="217.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="14.0" width="36.0" x="24.0" y="3.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
+        <omgdi:waypoint x="250.0" y="300.0"></omgdi:waypoint>
+        <omgdi:waypoint x="142.0" y="299.0"></omgdi:waypoint>
+        <omgdi:waypoint x="142.0" y="135.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="14.0" width="48.0" x="8.0" y="-1.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
+        <omgdi:waypoint x="270.0" y="245.0"></omgdi:waypoint>
+        <omgdi:waypoint x="270.0" y="280.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
+        <omgdi:waypoint x="290.0" y="300.0"></omgdi:waypoint>
+        <omgdi:waypoint x="625.0" y="300.0"></omgdi:waypoint>
+        <bpmndi:BPMNLabel>
+          <omgdc:Bounds height="14.0" width="48.0" x="-15.0" y="-20.0"></omgdc:Bounds>
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

BIN=BIN
src/main/resources/act/designs/oa/leave/leave.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 175 - 0
src/main/resources/act/designs/oa/network_service/network.bpmn


+ 171 - 0
src/main/resources/act/designs/oa/test_audit/test_audit.bpmn

@@ -0,0 +1,171 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
+  <process id="test_audit" name="流程审批测试流程" isExecutable="true">
+    <startEvent id="start" name="启动审批" activiti:initiator="apply" activiti:formKey="/oa/testAudit/form"/>
+    <endEvent id="end" name="结束审批"/>
+    <userTask id="modify" name="员工薪酬档级修改" activiti:assignee="${apply}"/>
+    <userTask id="audit" name="薪酬主管初审" activiti:assignee="system"/>
+    <exclusiveGateway id="sid-C28BB5F6-013D-4570-B432-61B380C1F46F"/>
+    <userTask id="audit2" name="集团人力资源部部长审核" activiti:assignee="system"/>
+    <exclusiveGateway id="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0"/>
+    <sequenceFlow id="sid-EF2F51BB-1D99-4F0B-ACF2-B6C1300A7D2B" sourceRef="audit2" targetRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0"/>
+    <userTask id="audit3" name="集团人力资源部分管领导审核" activiti:assignee="system"/>
+    <exclusiveGateway id="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4"/>
+    <sequenceFlow id="sid-3DBCD661-5720-4480-8156-748BE0275FEF" sourceRef="audit3" targetRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4"/>
+    <userTask id="audit4" name="集团总经理审批" activiti:assignee="system"/>
+    <exclusiveGateway id="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477"/>
+    <userTask id="apply_end" name="薪酬档级兑现" activiti:assignee="system"/>
+    <sequenceFlow id="sid-02DB2AD9-1332-4198-AC8D-22A35169D15C" sourceRef="audit4" targetRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477"/>
+    <sequenceFlow id="sid-2AB7C01A-50EE-4AAC-8C8F-F6E1935B3DA7" sourceRef="audit" targetRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F"/>
+    <sequenceFlow id="sid-36E50C8B-6C7C-4968-B02D-EBAA425BF4BE" sourceRef="start" targetRef="audit"/>
+    <sequenceFlow id="sid-7D723190-1432-411D-A4A4-774225E54CD9" name="是" sourceRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" targetRef="apply_end">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-D44CAD43-0271-4920-A524-9B8533E52550" name="是" sourceRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" targetRef="audit4">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-53258502-43EE-4DE8-B1A4-DBD11922B8AF" name="否" sourceRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" targetRef="modify">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
+    </sequenceFlow>
+    <exclusiveGateway id="sid-5FED02D6-C388-48C6-870E-097DB2131EA0"/>
+    <sequenceFlow id="sid-163DBC60-DBC9-438B-971A-67738FB7715A" sourceRef="modify" targetRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0"/>
+    <sequenceFlow id="sid-72258A41-203E-428C-B71D-CA3506252D73" name="是" sourceRef="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" targetRef="audit2">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-8448EF4A-B62E-4899-ABC2-0E2DB2AE6838" name="重新申请" sourceRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0" targetRef="audit">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-A7589084-4623-4FEA-A774-00A70DDC1D20" name="是" sourceRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" targetRef="audit3">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-FA618636-3708-4D0C-8514-29A4BB8BC926" name="否" sourceRef="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" targetRef="modify">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-1525BFF4-3E9D-4D8A-BF80-1F63AFE16289" name="否" sourceRef="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" targetRef="modify">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-35CC8C6C-1067-4398-991C-CCF955115965" name="否" sourceRef="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" targetRef="modify">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
+    </sequenceFlow>
+    <sequenceFlow id="sid-BDB0AAB2-7E50-4D35-80EE-CE0BECDD9F57" sourceRef="apply_end" targetRef="end"/>
+    <sequenceFlow id="sid-44AFB9C1-4057-4C48-B1F2-1EC897A52CB7" name="销毁" sourceRef="sid-5FED02D6-C388-48C6-870E-097DB2131EA0" targetRef="end">
+      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_test_audit">
+    <bpmndi:BPMNPlane bpmnElement="test_audit" id="BPMNPlane_test_audit">
+      <bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
+        <omgdc:Bounds height="30.0" width="30.0" x="30.0" y="245.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
+        <omgdc:Bounds height="28.0" width="28.0" x="975.0" y="356.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="modify" id="BPMNShape_modify">
+        <omgdc:Bounds height="58.0" width="102.0" x="209.0" y="135.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="audit" id="BPMNShape_audit">
+        <omgdc:Bounds height="57.0" width="96.0" x="105.0" y="231.5"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="sid-C28BB5F6-013D-4570-B432-61B380C1F46F" id="BPMNShape_sid-C28BB5F6-013D-4570-B432-61B380C1F46F">
+        <omgdc:Bounds height="40.0" width="40.0" x="240.0" y="240.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="audit2" id="BPMNShape_audit2">
+        <omgdc:Bounds height="80.0" width="100.0" x="210.0" y="330.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0" id="BPMNShape_sid-ED46FE41-A0FD-496D-86DC-2C97AF5735F0">
+        <omgdc:Bounds height="40.0" width="40.0" x="345.0" y="350.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="audit3" id="BPMNShape_audit3">
+        <omgdc:Bounds height="80.0" width="100.0" x="420.0" y="330.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4" id="BPMNShape_sid-FE485B2D-9A23-4236-BD0D-D788CA6E30E4">
+        <omgdc:Bounds height="40.0" width="40.0" x="555.0" y="350.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="audit4" id="BPMNShape_audit4">
+        <omgdc:Bounds height="80.0" width="100.0" x="630.0" y="330.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="sid-3F53B6BD-F8F3-496B-AC08-50630BD11477" id="BPMNShape_sid-3F53B6BD-F8F3-496B-AC08-50630BD11477">
+        <omgdc:Bounds height="40.0" width="40.0" x="765.0" y="350.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="apply_end" id="BPMNShape_apply_end">
+        <omgdc:Bounds height="80.0" width="100.0" x="840.0" y="330.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="sid-5FED02D6-C388-48C6-870E-097DB2131EA0" id="BPMNShape_sid-5FED02D6-C388-48C6-870E-097DB2131EA0">
+        <omgdc:Bounds height="40.0" width="40.0" x="240.0" y="45.0"/>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="sid-3DBCD661-5720-4480-8156-748BE0275FEF" id="BPMNEdge_sid-3DBCD661-5720-4480-8156-748BE0275FEF">
+        <omgdi:waypoint x="520.0" y="370.0"/>
+        <omgdi:waypoint x="555.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-44AFB9C1-4057-4C48-B1F2-1EC897A52CB7" id="BPMNEdge_sid-44AFB9C1-4057-4C48-B1F2-1EC897A52CB7">
+        <omgdi:waypoint x="280.0" y="65.0"/>
+        <omgdi:waypoint x="989.0" y="65.0"/>
+        <omgdi:waypoint x="989.0" y="356.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-8448EF4A-B62E-4899-ABC2-0E2DB2AE6838" id="BPMNEdge_sid-8448EF4A-B62E-4899-ABC2-0E2DB2AE6838">
+        <omgdi:waypoint x="240.0" y="65.0"/>
+        <omgdi:waypoint x="153.0" y="65.0"/>
+        <omgdi:waypoint x="153.0" y="231.5"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-A7589084-4623-4FEA-A774-00A70DDC1D20" id="BPMNEdge_sid-A7589084-4623-4FEA-A774-00A70DDC1D20">
+        <omgdi:waypoint x="385.0" y="370.0"/>
+        <omgdi:waypoint x="420.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-35CC8C6C-1067-4398-991C-CCF955115965" id="BPMNEdge_sid-35CC8C6C-1067-4398-991C-CCF955115965">
+        <omgdi:waypoint x="785.0" y="350.0"/>
+        <omgdi:waypoint x="785.0" y="164.0"/>
+        <omgdi:waypoint x="311.0" y="164.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-EF2F51BB-1D99-4F0B-ACF2-B6C1300A7D2B" id="BPMNEdge_sid-EF2F51BB-1D99-4F0B-ACF2-B6C1300A7D2B">
+        <omgdi:waypoint x="310.0" y="370.0"/>
+        <omgdi:waypoint x="345.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-7D723190-1432-411D-A4A4-774225E54CD9" id="BPMNEdge_sid-7D723190-1432-411D-A4A4-774225E54CD9">
+        <omgdi:waypoint x="805.0" y="370.0"/>
+        <omgdi:waypoint x="840.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-2AB7C01A-50EE-4AAC-8C8F-F6E1935B3DA7" id="BPMNEdge_sid-2AB7C01A-50EE-4AAC-8C8F-F6E1935B3DA7">
+        <omgdi:waypoint x="201.0" y="260.0"/>
+        <omgdi:waypoint x="240.0" y="260.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-D44CAD43-0271-4920-A524-9B8533E52550" id="BPMNEdge_sid-D44CAD43-0271-4920-A524-9B8533E52550">
+        <omgdi:waypoint x="595.0" y="370.0"/>
+        <omgdi:waypoint x="630.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-FA618636-3708-4D0C-8514-29A4BB8BC926" id="BPMNEdge_sid-FA618636-3708-4D0C-8514-29A4BB8BC926">
+        <omgdi:waypoint x="365.0" y="350.0"/>
+        <omgdi:waypoint x="365.0" y="164.0"/>
+        <omgdi:waypoint x="311.0" y="164.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-02DB2AD9-1332-4198-AC8D-22A35169D15C" id="BPMNEdge_sid-02DB2AD9-1332-4198-AC8D-22A35169D15C">
+        <omgdi:waypoint x="730.0" y="370.0"/>
+        <omgdi:waypoint x="765.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-36E50C8B-6C7C-4968-B02D-EBAA425BF4BE" id="BPMNEdge_sid-36E50C8B-6C7C-4968-B02D-EBAA425BF4BE">
+        <omgdi:waypoint x="60.0" y="260.0"/>
+        <omgdi:waypoint x="105.0" y="260.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-53258502-43EE-4DE8-B1A4-DBD11922B8AF" id="BPMNEdge_sid-53258502-43EE-4DE8-B1A4-DBD11922B8AF">
+        <omgdi:waypoint x="260.0" y="240.0"/>
+        <omgdi:waypoint x="260.0" y="193.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-163DBC60-DBC9-438B-971A-67738FB7715A" id="BPMNEdge_sid-163DBC60-DBC9-438B-971A-67738FB7715A">
+        <omgdi:waypoint x="260.0" y="135.0"/>
+        <omgdi:waypoint x="260.0" y="85.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-BDB0AAB2-7E50-4D35-80EE-CE0BECDD9F57" id="BPMNEdge_sid-BDB0AAB2-7E50-4D35-80EE-CE0BECDD9F57">
+        <omgdi:waypoint x="940.0" y="370.0"/>
+        <omgdi:waypoint x="975.0" y="370.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-1525BFF4-3E9D-4D8A-BF80-1F63AFE16289" id="BPMNEdge_sid-1525BFF4-3E9D-4D8A-BF80-1F63AFE16289">
+        <omgdi:waypoint x="575.0" y="350.0"/>
+        <omgdi:waypoint x="575.0" y="164.0"/>
+        <omgdi:waypoint x="311.0" y="164.0"/>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="sid-72258A41-203E-428C-B71D-CA3506252D73" id="BPMNEdge_sid-72258A41-203E-428C-B71D-CA3506252D73">
+        <omgdi:waypoint x="260.0" y="280.0"/>
+        <omgdi:waypoint x="260.0" y="330.0"/>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>

BIN=BIN
src/main/resources/act/designs/oa/test_audit/test_audit.png


+ 1 - 0
src/main/resources/app-ios.properties

@@ -0,0 +1 @@
+ios=https://www.pgyer.com/J3Oq

BIN=BIN
src/main/resources/cacert/cacerts


BIN=BIN
src/main/resources/cacert/mykeystore.jks


+ 33 - 0
src/main/resources/cache/ehcache-local.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache updateCheck="false" name="defaultCache">
+
+	<diskStore path="../temp/jeeplus/ehcache" />
+
+	<!-- 默认缓存配置. 自动失效:最后一次访问时间间隔300秒失效,若没有访问过自创建时间600秒失效。-->
+	<defaultCache maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
+				  overflowToDisk="true" statistics="true"/>
+
+	<!-- 系统缓存 -->
+	<cache name="sysCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
+
+	<!-- 用户缓存 -->
+	<cache name="userCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
+
+	<!-- 集团缓存 -->
+	<cache name="corpCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
+
+	<!-- 内容管理模块缓存 -->
+	<cache name="cmsCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
+
+	<!-- 工作流模块缓存 -->
+	<cache name="actCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true" statistics="true"/>
+
+	<!-- 简单页面缓存 -->
+	<cache name="pageCachingFilter" maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="120"
+		   timeToLiveSeconds="120" overflowToDisk="true" memoryStoreEvictionPolicy="LFU" statistics="true"/>
+
+	<!-- 系统活动会话缓存 -->
+	<cache name="activeSessionsCache" maxEntriesLocalHeap="10000" eternal="true" overflowToDisk="true"
+		   diskPersistent="true" diskExpiryThreadIntervalSeconds="600" statistics="true"/>
+
+</ehcache>

+ 59 - 0
src/main/resources/cache/ehcache-rmi.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache updateCheck="false" name="defaultCache">
+<!-- 
+	<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+		properties="peerDiscovery=manual, socketTimeoutMillis=2000, rmiUrls=//localhost:40001/defaultCache" />
+	<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
+		properties="hostName=localhost, port=40000, socketTimeoutMillis=2000"/> -->
+		
+	<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
+		properties="peerDiscovery=automatic,multicastGroupAddress=230.0.0.1, multicastGroupPort=4446" />
+	<cacheManagerPeerListenerFactory class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory" />
+
+	<diskStore path="../temp/jeeplus/ehcache" />
+
+	<!-- 默认缓存配置. -->
+	<defaultCache maxEntriesLocalHeap="100" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
+		overflowToDisk="true" maxEntriesLocalDisk="100000" >
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
+			properties="replicatePuts=false,replicateUpdatesViaCopy=false"/>
+	</defaultCache>
+	
+	<!-- 系统缓存 -->
+	<cache name="sysCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true">
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
+	</cache>
+	
+	<!-- 用户缓存 -->
+	<cache name="userCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true">
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
+	</cache>
+	
+	<!-- 工作流模块缓存 -->
+	<cache name="actCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true">
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
+	</cache>
+	
+	<!-- 内容管理模块缓存
+	<cache name="cmsCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true">
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
+	</cache> -->
+	
+	<!-- 系统活动会话缓存 -->
+	<cache name="activeSessionsCache" maxEntriesLocalHeap="10000" overflowToDisk="true"
+			eternal="true" timeToLiveSeconds="0" timeToIdleSeconds="0"
+			diskPersistent="true" diskExpiryThreadIntervalSeconds="600">
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
+			properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
+				replicateUpdatesViaCopy=false, replicateRemovals=true "/>
+	</cache>
+
+	<!-- 简单页面缓存
+	<cache name="SimplePageCachingFilter" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true"
+		timeToIdleSeconds="120" timeToLiveSeconds="120" memoryStoreEvictionPolicy="LFU">
+		<cacheEventListenerFactory class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
+			properties="replicateAsynchronously=true, replicatePuts=true, replicateUpdates=true,
+				replicateUpdatesViaCopy=false, replicateRemovals=true "/>
+	</cache> -->
+		
+</ehcache>

+ 35 - 0
src/main/resources/editor.html

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:b3mn="http://b3mn.org/2007/b3mn" xmlns:ext="http://b3mn.org/2007/ext" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:atom="http://b3mn.org/2007/atom+xhtml">
+<head profile="http://purl.org/NET/erdf/profile">
+<title>流程设计器</title>
+<!-- libraries -->
+<script src="../libs/prototype-1.5.1.js" type="text/javascript" />
+<script src="../libs/path_parser.js" type="text/javascript" />
+<script src="../libs/ext-2.0.2/adapter/ext/ext-base.js" type="text/javascript" />
+<script src="../libs/ext-2.0.2/ext-all-debug.js" type="text/javascript" />
+<script src="../libs/ext-2.0.2/color-field.js" type="text/javascript" />
+<style media="screen" type="text/css">
+@import url("../libs/ext-2.0.2/resources/css/ext-all.css");
+@import url("../libs/ext-2.0.2/resources/css/xtheme-darkgray.css");
+</style>
+<link rel="Stylesheet" media="screen" href="../editor/css/theme_norm.css" type="text/css" />
+<link rel="Stylesheet" media="screen" href="../editor/css/theme_norm_signavio.css" type="text/css" />
+<link rel="Stylesheet" media="screen" href="../explorer/src/css/xtheme-smoky.css" type="text/css" />
+<link rel="Stylesheet" media="screen" href="../explorer/src/css/custom-style.css" type="text/css" />
+<!-- oryx editor -->
+<!-- language files -->
+<script src="../editor/i18n/translation_zh_CN.js" type="text/javascript" />
+<script src="../editor/i18n/translation_signavio_zh_CN.js" type="text/javascript" />
+<script src="../libs/utils.js" type="text/javascript" />
+<script src="../editor/oryx.debug.js" type="text/javascript" />
+<!-- erdf schemas -->
+<link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
+<link rel="schema.dcTerms" href="http://purl.org/dc/terms/" />
+<link rel="schema.b3mn" href="http://b3mn.org" />
+<link rel="schema.oryx" href="http://oryx-editor.org/" />
+<link rel="schema.raziel" href="http://raziel.org/" />
+</head>
+<body style="overflow:hidden;">
+</body>
+</html>

+ 5 - 0
src/main/resources/errors.properties

@@ -0,0 +1,5 @@
+
+#\u7cfb\u7edf\u9519\u8bef
+SYS-0001=\u7cfb\u7edf\u767b\u5f55\u8d85\u65f6\uff0c\u8bf7\u91cd\u65b0\u767b\u5f55\u3002
+SYS-0002=\u8be5\u9875\u9762\uff0c\u6ca1\u6709\u64cd\u4f5c\u6743\u9650\u3002
+SYS-0003=\u672a\u77e5\u9519\u8bef\uff0c\u8bf7\u8054\u7cfb\u7cfb\u7edf\u7ba1\u7406\u5458\u3002

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 2457 - 0
src/main/resources/freemarker/current.ftl


+ 251 - 0
src/main/resources/jeeplus.properties

@@ -0,0 +1,251 @@
+#============================#
+#===== Database sttings =====#
+#============================#
+
+#mysql database setting
+jdbc.type=mysql
+jdbc.driver=com.mysql.jdbc.Driver
+db.name=ruihuaoa-activity-data
+jdbc.url=jdbc:mysql://192.168.2.4:3306/total_process_master?useUnicode=true&characterEncoding=utf-8
+#jdbc.url=jdbc:mysql://127.0.0.1:3306/total_process_master?useUnicode=true&characterEncoding=utf-8
+jdbc.username=root
+#jdbc.password=123456
+jdbc.password=root
+
+#pool settings
+jdbc.pool.init=20
+jdbc.pool.minIdle=10
+jdbc.pool.maxActive=200
+
+#jdbc.testSql=SELECT 'x'
+jdbc.testSql=SELECT 'x' FROM DUAL
+
+#master
+#master.jdbc.url=jdbc:mysql://192.168.2.4:3306/total_process_master?useUnicode=true&characterEncoding=utf-8
+#master.jdbc.username=root
+#master.jdbc.password=root
+
+#slave
+#slave.jdbc.url=jdbc:mysql://192.168.2.4:3306/total_process_slave?useUnicode=true&characterEncoding=utf-8
+#slave.jdbc.username=root
+#slave.jdbc.password=root
+
+#redis settings
+redis.keyPrefix=jeeplus
+redis.host=192.168.2.4
+#redis.host=127.0.0.1
+#redis.port=6380
+redis.port=6379
+redis.timeout = 2000
+redis.password = 123456
+
+#============================#
+#===== System settings ======#
+#============================#
+
+#\u4EA7\u54C1\u4FE1\u606F\u8BBE\u7F6E
+productName=jsxg
+copyrightYear=2019
+version=V2.4
+
+#APP-213
+#ORG_NAME = 1177170605115438
+#APP_NAME = rhecoa
+#GRANT_TYPE= client_credentials
+#CLIENT_ID = YXA6tOGr0EpaEeenGAfBIPozTw
+#CLIENT_SECRET = YXA6qxWxXBIE5WM4odeGKgQzwwNx8x8
+#APP-85
+#APP\u4EA7\u54C1\u4FE1\u606F\u8BBE\u7F6E
+#ORG_NAME = 	1118180319099824
+#APP_NAME = ruihuaoa
+#GRANT_TYPE = client_credentials
+#CLIENT_ID = YXA6wNWrYCsbEeiembcJPnIT_A
+#CLIENT_SECRET = YXA6ZB3-Ov1lp1d9tFQLzP9FwTDuEXk
+#APP-pc
+ORG_NAME = 	1190180329099323
+APP_NAME = 	ruihuaoa-pc
+GRANT_TYPE = client_credentials
+CLIENT_ID = YXA6XedCEDMFEei5znX5NBisMg
+CLIENT_SECRET = YXA6lamMmbUx2gs32Uq6AJaxeRuITzo
+
+#\u6F14\u793A\u6A21\u5F0F: \u4E0D\u80FD\u64CD\u4F5C\u548C\u4FDD\u5B58\u7684\u6A21\u5757\uFF1A sys: area/office/user/role/menu/dict, cms: site/category
+demoMode=false
+
+#\u7BA1\u7406\u57FA\u7840\u8DEF\u5F84, \u9700\u540C\u6B65\u4FEE\u6539\uFF1Aweb.xml
+adminPath=/a
+
+#\u524D\u7AEF\u57FA\u7840\u8DEF\u5F84
+frontPath=/f
+
+#\u7F51\u7AD9URL\u540E\u7F00
+urlSuffix=.html
+
+#\u662F\u5426\u4E0D\u5141\u8BB8\u5237\u65B0\u4E3B\u9875\uFF0C\u4E0D\u5141\u8BB8\u60C5\u51B5\u4E0B\uFF0C\u5237\u65B0\u4E3B\u9875\u4F1A\u5BFC\u81F4\u91CD\u65B0\u767B\u5F55
+notAllowRefreshIndex=false
+
+#\u662F\u5426\u5141\u8BB8\u591A\u8D26\u53F7\u540C\u65F6\u767B\u5F55
+user.multiAccountLogin=true
+
+#\u5206\u9875\u914D\u7F6E
+page.pageSize=10
+
+#\u7855\u6B63\u7EC4\u4EF6\u662F\u5426\u4F7F\u7528\u7F13\u5B58
+supcan.useCache=false
+
+#\u901A\u77E5\u95F4\u9694\u65F6\u95F4\u8BBE\u7F6E, \u5355\u4F4D\uFF1A\u6BEB\u79D2, 30s=30000ms, 60s=60000ms
+oa.notify.remind.interval=60000
+
+#============================#
+#==== Framework settings ====#
+#============================#
+
+#\u4F1A\u8BDD\u8D85\u65F6\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C 20m=1200000ms, 30m=1800000ms, 60m=3600000ms
+session.sessionTimeout=864000000
+#\u4F1A\u8BDD\u6E05\u7406\u95F4\u9694\u65F6\u95F4\uFF0C \u5355\u4F4D\uFF1A\u6BEB\u79D2\uFF0C2m=120000ms\u3002
+session.sessionTimeoutClean=120000
+
+#\u7F13\u5B58\u8BBE\u7F6E
+ehcache.configFile=cache/ehcache-local.xml
+#ehcache.configFile=cache/ehcache-rmi.xml
+
+#\u7D22\u5F15\u9875\u8DEF\u5F84
+web.view.index=/a
+
+#\u89C6\u56FE\u6587\u4EF6\u5B58\u653E\u8DEF\u5F84
+web.view.prefix=/webpage/
+web.view.suffix=.jsp
+
+#\u6700\u5927\u6587\u4EF6\u4E0A\u4F20\u9650\u5236\uFF0C\u5355\u4F4D\u5B57\u8282. 10M=10*1024*1024(B)=10485760 bytes\uFF0C\u9700\u540C\u6B65\u4FEE\u6539\uFF1Ackfinder.xml
+web.maxUploadSize=30720000000
+
+#\u65E5\u5FD7\u62E6\u622A\u8BBE\u7F6E\uFF0C\u6392\u9664\u7684URI\uFF1B\u5305\u542B @RequestMapping\u6CE8\u89E3\u7684value\u3002\uFF08\u5DF2\u4F5C\u5E9F\uFF09
+#web.logInterceptExcludeUri=/, /login, /sys/menu/tree, /sys/menu/treeData, /oa/oaNotify/self/count
+#web.logInterceptIncludeRequestMapping=save, delete, import, updateSort
+
+#\u9759\u6001\u6587\u4EF6\u540E\u7F00
+web.staticFile=.css,.js,.png,.jpg,.gif,.jpeg,.bmp,.ico,.swf,.psd,.htc,.htm,.html,.crx,.xpi,.exe,.ipa,.apk
+
+#\u5355\u70B9\u767B\u5F55CAS\u8BBE\u7F6E
+cas.server.url=http://127.0.0.1:8180/cas 
+cas.project.url=http://127.0.0.1:8080/jeeplus
+
+#\u5DE5\u4F5C\u6D41\u8BBE\u7F6E
+activiti.isSynActivitiIndetity=false
+activiti.export.diagram.path=c:/activiti_diagram
+#activiti font (windows font: \u5B8B\u4F53  linux font: simsun)
+activiti.diagram.activityFontName=\u5B8B\u4F53
+activiti.diagram.labelFontName=\u5B8B\u4F53
+#activiti\u5916\u90E8\u8868\u5355\u6839\u5730\u5740\u914D\u7F6E
+activiti.form.server.url=
+
+#\u4E0A\u4F20\u6587\u4EF6\u7EDD\u5BF9\u8DEF\u5F84, \u8DEF\u5F84\u4E2D\u4E0D\u5141\u8BB8\u5305\u542B\u201Cuserfiles\u201D
+#userfiles.basedir=D:/jeeplus
+
+#\u5DE5\u7A0B\u8DEF\u5F84\uFF0C\u5728\u4EE3\u7801\u751F\u6210\u65F6\u83B7\u53D6\u4E0D\u5230\u5DE5\u7A0B\u8DEF\u5F84\u65F6\uFF0C\u53EF\u518D\u6B64\u6307\u5B9A\u7EDD\u5BF9\u8DEF\u5F84\u3002
+projectPath=C\:\\test
+
+#aliyunUrl=http://gangwan-app.oss-cn-hangzhou.aliyuncs.com
+aliyunUrl=http://oss.gangwaninfo.com
+aliyunDownloadUrl=http://cdn.gangwaninfo.com
+oSSUrl=http://cdn.gangwaninfo.com/jeeplus-resource-data/static
+endpoint=http://oss-cn-hangzhou.aliyuncs.com
+accessKeyId=LTAIi7VuxcgfJR2x
+accessKeySecret=Q9xF9V7tcnCI28ttUsP8H4GyAhZta7
+bucketName=gangwan-app
+avatarDir=app-img/avatar/
+notifyDir=app-img/notify/
+reportDir=app-img/report/
+rqcode=app-img/rqcode/
+goout=app-img/goout/
+leave=app-img/leave/
+logo=app-img/logo/
+photo=app-img/photo/
+overtimeform=app-img/overtimeform/
+oaBuy=app-img/oaBuy/
+oaAll=app-img/oaAll/
+sealform=app-img/sealform/
+workReimbur=app-img/workReimbur/
+evection=app-img/evection/
+im=app-img/im/
+notifyData=app-data/notify/
+appData=app-data/appfiles/
+userEvaluation=attachment-file/userEvaluation/
+workBidingDocument=attachment-file/workBidingDocument/
+workEngineeringProject=attachment-file/workEngineeringProject/
+workFullExecute=attachment-file/workFullExecute/
+workFullMeetingminutes=attachment-file/workFullMeetingminutes/
+workFullDesignchange=attachment-file/workFullDesignchange/
+workFullConstructsheet=attachment-file/workFullConstructsheet/
+workFullProprietorsheet=attachment-file/workFullProprietorsheet/
+workFullSupervisorsheet=attachment-file/workFullSupervisorsheet/
+workProjectReport=attachment-file/workProjectReport/
+workProjectBasis=attachment-file/workProjectBasis/
+workProjectRemote=attachment-file/workProjectRemote/
+workProjectSummary=attachment-file/workProjectSummary/
+workProjectOther=attachment-file/workProjectOther/
+workVisa=attachment-file/workVisa/
+jobResume=attachment-file/jobResume/
+satisfaction=attachment-file/satisfaction/
+certificate=attachment-file/certificate/
+judgeAttachment=attachment-file/judgeAttachment/
+iSignature=attachment-file/iSignature/
+staff_basic_file_path=attachment-file/staffBasic/
+app_version=app-data/appVersion/
+app_version_test=app-data/test/
+project.plan.template.path=template/oa/project/
+contract_num_path=app-img/contractnumpath/
+#
+fromEmail=
+toEmail=
+emailName=
+emailPassword=
+#
+sms_userid=26581
+sms_account=bjsshr
+sms_password=bjsshr
+sms_mobile=
+sms_content=
+sms_sendTime=
+sms_action=send
+sms_checkcontent=0
+cpu=100
+jvm=100
+ram=100
+
+rong_userid=8a216da86715511501673e331c24171e
+rong_token=3d7dc58c6a334ad6887317efbf847e41
+app_id=8a216da86715511501673e331c741725
+template_id=435329
+code_type=1
+
+#\u531E\u531E\u77ED\u4FE1\u6A21\u7248
+327821
+#\u745E\u534Eoa
+245207
+
+#openOffice
+open_office_addr=127.0.0.1
+open_office_port=8100
+
+#openfire\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05B7
+openfire.server=192.168.110.69
+sys.notify=http://cdn.gangwaninfo.com/jeeplus-resource-data/static/sys/notify.png
+
+
+#\u7528\u53CBAPI
+yy_apicode=35afe9ec3263424f9a18feb837177169
+yy_mhcxurl=https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseSearchByName
+yy_shcxurl=https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseTicketInfo
+#yy_mhcxurl=https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseSearchByName?keyword=KEY
+#yy_shcxurl=https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseTicketInfo?id=ID
+
+#\u767E\u5EA6BOS
+bos_access_key=9915286aab2949949b489e8ab3f70a09
+bos_secret_key=069036bdb93c4bc59c4995ccc543243e
+bos_endpoint=http://su.bcebos.com
+bos_buck_name=newxgccpm
+#bos_buck_name=xgccpm
+
+
+serverDomain=http://192.168.2.4:18080/total_process
+

BIN=BIN
src/main/resources/kinggrid/demo.doc


BIN=BIN
src/main/resources/kinggrid/demo.docx


BIN=BIN
src/main/resources/kinggrid/demo.pdf


+ 96 - 0
src/main/resources/kinggrid/demo.xml

@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kinggrid version="4.0" margin="20 20 30 30">
+
+	<table percent="100" spacingBefore="10" spacingAfter="15">
+		<tr>
+			<td borderWidth="0" align="center" fontWeight="bold" lineHeight="20" fontSize="16" >个人征信客户授权书</td>
+		</tr>
+	</table>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >尊敬的客户:为了维护您的权益,请在签署本授权书前,仔细阅读本授权</chunk>
+		<chunk fontSize="12" >书各条款(特别是黑字体条款),关注您在授权书中的权利、义务。</chunk>
+	</paragraph>
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >本人姓名:</chunk>
+		<chunk fontSize="12" >${姓名}</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >证件名称及号码:</chunk>
+		<chunk fontSize="12" >${cardname_ID}</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >签署日期:</chunk>
+		<chunk fontSize="12" >${year}</chunk>
+		<chunk fontSize="12" >年</chunk>
+		<chunk fontSize="12" >${month}</chunk>
+		<chunk fontSize="12" >月</chunk>
+		<chunk fontSize="12" >${day}</chunk>
+		<chunk fontSize="12" >日</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >一、本人同意并不可撤销地授权:</chunk>
+		<chunk fontSize="12" fontWeight="bold">贵公司按照国家相关规定采集并向金融信</chunk>
+		<chunk fontSize="12" fontWeight="bold">用信息基础数据库及其他依法成立的征信机构提供本人个人信息和包括信贷信</chunk>
+		<chunk fontSize="12" fontWeight="bold">息在内的信用信息(包含本人因未及时履行合同义务产生的不良信息。)</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >二、本人同意并不可撤销地授权:</chunk>
+		<chunk fontSize="12" fontWeight="bold">贵公司可以根据国家有关规定,在办理涉</chunk>
+		<chunk fontSize="12" fontWeight="bold">及本人的业务时,有权向金融信用信息基础数据库及其他依法成立的征信机构查</chunk>
+		<chunk fontSize="12" fontWeight="bold">询、打印、保存本人的信用信息,并用于下述用途:</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" hlineHeight="20">
+		<chunk fontSize="12" fontWeight="bold">(一)审核本人融资款/贷款、贷记卡(信用卡)、准贷记卡申请;</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" fontWeight="bold">(二)审核本人作为提出融资/贷款申请或特约商户申请的个人、组织或机构</chunk>
+		<chunk fontSize="12" fontWeight="bold">的负责人、法定代表人。出资人、担保人、企业经营者、实际控制人;</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" fontWeight="bold">(三)对已向本人或本人担任法人、出资人、担保人、企业经营者、实际控</chunk>
+		<chunk fontSize="12" fontWeight="bold">制人的个人、机构或组织发放的融资款/贷款、贷记卡(信用卡)、准贷记卡进行</chunk>
+		<chunk fontSize="12" fontWeight="bold">贷后风险管理;</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" fontWeight="bold">(四)向本人提供的其他贵公司合法经营范围内的业务。</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >三、如果贵公司超出本授权书范围进行数据报送和查询使用,则贵公司应</chunk>
+		<chunk fontSize="12" fontWeight="bold">承担与此有关的法律责任。本授权书有效期至本人业务结清之日止。</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >四、若本人在贵公司业务未获批准办理,本授权书及本人信用报告等资料</chunk>
+		<chunk fontSize="12" fontWeight="bold">无需退回本人。</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >五、本授权书内容与相关业务合同的条款不一致的,无论相关合同在本授</chunk>
+		<chunk fontSize="12" fontWeight="bold">权书之前或是之后签署,均应以本授权书的内容为准,但相关合同条款明确约</chunk>
+		<chunk fontSize="12" fontWeight="bold">定是针对本授权书内容所做修订的除外。</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >本人声明:本人已仔细阅读上述条款,并已特别注意字体加黑的内容。贵</chunk>
+		<chunk fontSize="12" >公司已应本人要求对相关条款予以明确说明。本人对所有条款的含义及相应的</chunk>
+		<chunk fontSize="12" >法律后果已全部通晓并充分理解,本人自愿作出上述授权、承诺和声明。</chunk>
+	</paragraph>
+	
+	<paragraph firstLineIndent="20" indentationLeft="80" indentationRight="80" lineHeight="20">
+		<chunk fontSize="12" >  </chunk>
+	</paragraph>
+	
+	
+	
+	
+</kinggrid>	

BIN=BIN
src/main/resources/kinggrid/logo.png


+ 3 - 0
src/main/resources/license.properties

@@ -0,0 +1,3 @@
+#\u8f93\u5165\u60a8\u7684\u7528\u6237\u540d\uff0c\u4ee5\u53calicense\uff0c\u4e00\u4e2alicense\u6388\u6743\u4e00\u4e2a\u9879\u76ee\u3002
+username=591489374
+license=0LR8ZC-8555506479575021

+ 77 - 0
src/main/resources/logback.xml

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration  debug="false" scan="true" scanPeriod="60 second">
+
+    <property name="PROJECT" value="ruihuaoa" />
+    <property name="ROOT" value="../logs/${PROJECT}/" />
+    <property name="FILESIZE" value="50MB" />
+    <property name="MAXHISTORY" value="100" />
+    <!--<timestamp key="DATETIME" datePattern="yyyy-MM-dd HH:mm:ss.SSS" />-->
+    <!-- 控制台打印 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder charset="utf-8">
+            <pattern>
+                %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n
+            </pattern>
+        </encoder>
+    </appender>
+    <!-- ERROR 输入到文件,按日期和文件大小 -->
+    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <encoder charset="utf-8">
+            <pattern>
+                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
+            </pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${ROOT}%d/error.%i.log</fileNamePattern>
+            <maxHistory>${MAXHISTORY}</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy
+                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${FILESIZE}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+    </appender>
+
+    <!-- INFO 输入到文件,按日期和文件大小 -->
+    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <encoder charset="utf-8">
+            <pattern>
+                [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - %msg%n
+            </pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${ROOT}%d/info.%i.log</fileNamePattern>
+            <maxHistory>${MAXHISTORY}</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>${FILESIZE}</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+    </appender>
+
+    <!-- project default level -->
+    <logger name="com.jeeplus.modules" level="debug" />
+
+    <!--log4jdbc -->
+    <logger name="jdbc.sqltiming" level="debug"/>
+    <logger name="com.ibatis" level="debug" />
+    <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="debug" />
+    <logger name="com.ibatis.common.jdbc.ScriptRunner" level="debug" />
+    <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate"
+            level="debug" />
+    <logger name="java.sql.Connection" level="debug" />
+    <logger name="java.sql.Statement" level="debug" />
+    <logger name="java.sql.PreparedStatement" level="debug" />
+    <logger name="java.sql.ResultSet" level="debug" />
+    <root level="info">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="INFO" />
+        <appender-ref ref="ERROR" />
+    </root>
+</configuration>

+ 11 - 0
src/main/resources/mappings/modules/act/ActDao.xml

@@ -0,0 +1,11 @@
+<?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.jeeplus.modules.act.dao.ActDao">
+    
+	<update id="updateProcInsIdByBusinessId">
+		UPDATE ${businessTable} SET 
+			proc_ins_id = #{procInsId}
+		WHERE id = #{businessId}
+	</update>
+	
+</mapper>

+ 166 - 0
src/main/resources/mappings/modules/activityassignment/ActivityAssignmentDao.xml

@@ -0,0 +1,166 @@
+<?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.jeeplus.modules.activityassignment.dao.ActivityAssignmentDao">
+    
+	<sql id="activityAssignmentColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.type AS "type",
+		a.user_id AS "user.id",
+		a.start_date AS "startDate",
+		a.end_date AS "endDate",
+		a.company_id AS "companyId",
+		u.name AS "user.name",
+		c.name AS "createBy.name"
+	</sql>
+	
+	<sql id="activityAssignmentJoins">
+		LEFT JOIN sys_user u ON u.id = a.user_id
+		LEFT JOIN sys_user c ON c.id = a.create_by
+		LEFT JOIN sys_user_office uo ON uo.user_id = a.create_by and uo.company_id = a.company_id
+		LEFT JOIN sys_office o ON o.id = uo.office_id
+	</sql>
+	
+    
+	<select id="get" resultType="ActivityAssignment" >
+		SELECT 
+			<include refid="activityAssignmentColumns"/>
+		FROM sys_activity_assignment a
+		<include refid="activityAssignmentJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getByUserIdAndDate" resultType="ActivityAssignment" >
+		SELECT
+			<include refid="activityAssignmentColumns"/>
+		FROM sys_activity_assignment a
+		<include refid="activityAssignmentJoins"/>
+		WHERE a.create_by = #{createBy.id}
+		AND (a.type = #{type} OR a.type = '1')
+		AND a.company_id = #{companyId}
+		AND #{startDate} BETWEEN a.start_date AND a.end_date
+	</select>
+
+	<select id="findList" resultType="ActivityAssignment" >
+		SELECT 
+			<include refid="activityAssignmentColumns"/>
+		FROM sys_activity_assignment a
+		<include refid="activityAssignmentJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			AND a.company_id = #{companyId}
+			<if test="type != null and type != ''">
+				AND a.type = #{type}
+			</if>
+			<choose>
+				<when test="user != null and user.id != null and user.id != ''">
+					AND a.user_id = #{user.id}
+				</when>
+				<when test="createBy != null and createBy.id != null and createBy.id != ''">
+					AND (a.user_id = #{createBy.id} OR a.create_by = #{createBy.id})
+				</when>
+				<when test="branchOffice != null and branchOffice != ''">
+					AND find_in_set(o.branch_office ,#{branchOffice})
+				</when>
+			</choose>
+			<if test="startDate != null and startDate != ''">
+				AND #{startDate} BETWEEN a.start_date AND a.end_date
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ActivityAssignment" >
+		SELECT 
+			<include refid="activityAssignmentColumns"/>
+		FROM sys_activity_assignment a
+		<include refid="activityAssignmentJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO sys_activity_assignment(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			type,
+			user_id,
+			start_date,
+			end_date,
+			company_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{type},
+			#{user.id},
+			#{startDate},
+			#{endDate},
+			#{companyId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE sys_activity_assignment SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			type = #{type},
+			user_id = #{user.id},
+			start_date = #{startDate},
+			end_date = #{endDate},
+			company_id = #{companyId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM sys_activity_assignment
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE sys_activity_assignment SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ActivityAssignment" statementType="STATEMENT">
+		select * FROM sys_activity_assignment  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 145 - 0
src/main/resources/mappings/modules/alterinfo/AlterInfoDao.xml

@@ -0,0 +1,145 @@
+<?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.jeeplus.modules.alterinfo.dao.AlterInfoDao">
+    
+	<sql id="alterInfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.reason AS "reason",
+		a.type AS "type",
+		a.before_id AS "beforeId",
+		a.style AS "style"
+	</sql>
+	
+	<sql id="alterInfoJoins">
+	</sql>
+
+	<select id="getByContractInfo" resultType="AlterInfo" parameterType="com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo">
+		SELECT 
+			<include refid="alterInfoColumns"/>
+		FROM alter_info a
+		WHERE a.del_flag = '0'
+			AND a.type = '1'
+			AND a.style = '1'
+			AND a.before_id = #{id}
+	</select>
+    
+	<select id="get" resultType="AlterInfo" >
+		SELECT 
+			<include refid="alterInfoColumns"/>
+		FROM alter_info a
+		<include refid="alterInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="AlterInfo" >
+		SELECT 
+			<include refid="alterInfoColumns"/>
+		FROM alter_info a
+		<include refid="alterInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="type != null and type != ''">
+				AND a.type = #{type}
+			</if>
+			<if test="style != null and style != ''">
+				AND a.style = #{style}
+			</if>
+			<if test="beforeId != null and beforeId != ''">
+				AND a.before_id = #{beforeId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="AlterInfo" >
+		SELECT 
+			<include refid="alterInfoColumns"/>
+		FROM alter_info a
+		<include refid="alterInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO alter_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			reason,
+			type,
+			before_id,
+			style
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{reason},
+			#{type},
+			#{beforeId},
+			#{style}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE alter_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			reason = #{reason},
+			type = #{type},
+			before_id = #{beforeId},
+			style = #{style}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM alter_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE alter_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="AlterInfo" statementType="STATEMENT">
+		select * FROM alter_info  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 141 - 0
src/main/resources/mappings/modules/appversion/AppversionsDao.xml

@@ -0,0 +1,141 @@
+<?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.jeeplus.modules.appversion.dao.AppversionsDao">
+    
+	<sql id="appversionsColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.versions AS "versions",
+		a.files AS "files",
+		a.content AS "content",
+		a.qrcode AS "qrcode",
+		a.url AS "url",
+		createBy.name AS "createBy.name"
+	</sql>
+	
+	<sql id="appversionsJoins">
+		LEFT JOIN sys_user createBy ON createBy.id = a.create_by
+	</sql>
+	
+    
+	<select id="get" resultType="Appversions" >
+		SELECT 
+			<include refid="appversionsColumns"/>
+		FROM app_versions a
+		<include refid="appversionsJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Appversions" >
+		SELECT 
+			<include refid="appversionsColumns"/>
+		FROM app_versions a
+		<include refid="appversionsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+            <if test="remarks != null and remarks != ''">
+                AND a.remarks = #{remarks}
+            </if>
+            <if test="versions != null and versions != ''">
+                AND a.versions like
+                <if test="dbName == 'oracle'">'%'||#{versions}||'%'</if>
+                <if test="dbName == 'mysql'">CONCAT('%', #{versions}, '%')</if>
+            </if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Appversions" >
+		SELECT 
+			<include refid="appversionsColumns"/>
+		FROM app_versions a
+		<include refid="appversionsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO app_versions(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			versions,
+			files,
+			content,
+			qrcode,
+			url
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{versions},
+			#{files},
+			#{content},
+			#{qrcode},
+			#{url}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE app_versions SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			versions = #{versions},
+			files = #{files},
+			content = #{content},
+			qrcode = #{qrcode},
+			url = #{url}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM app_versions
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE app_versions SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Appversions" statementType="STATEMENT">
+		select * FROM app_versions  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 161 - 0
src/main/resources/mappings/modules/buydetails/BuyDetailsDao.xml

@@ -0,0 +1,161 @@
+<?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.jeeplus.modules.buydetails.dao.BuyDetailsDao">
+    
+	<sql id="buyDetailsColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.oa_buyid AS "oaBuy.id",
+		a.name AS "name",
+		a.format AS "format",
+		a.amount AS "amount",
+		a.unit AS "unit",
+		a.price AS "price"
+	</sql>
+	
+	<sql id="buyDetailsJoins">
+		LEFT JOIN oa_buy oaBuy ON oaBuy.id = a.oa_buyid
+	</sql>
+	
+    
+	<select id="get" resultType="BuyDetails" >
+		SELECT 
+			<include refid="buyDetailsColumns"/>
+		FROM buy_details a
+		<include refid="buyDetailsJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="BuyDetails" >
+		SELECT 
+			<include refid="buyDetailsColumns"/>
+		FROM buy_details a
+		<include refid="buyDetailsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="oaBuy !=null and oaBuy.id!= null and oaBuy.id!= ''">
+				AND a.oa_buyid = #{oaBuy.id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="BuyDetails" >
+		SELECT 
+			<include refid="buyDetailsColumns"/>
+		FROM buy_details a
+		<include refid="buyDetailsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO buy_details(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			oa_buyid,
+			name,
+			format,
+			amount,
+			unit,
+			price
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{oaBuy.id},
+			#{name},
+			#{format},
+			#{amount},
+			#{unit},
+			#{price}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE buy_details SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			oa_buyid = #{oaBuy.id},
+			name = #{name},
+			format = #{format},
+			amount = #{amount},
+			unit = #{unit},
+			price = #{price}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM buy_details
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE buy_details SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="BuyDetails" statementType="STATEMENT">
+		select * FROM buy_details  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByoaBuy" resultType="OaBuy">
+		SELECT 
+			*
+		FROM oa_buy a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 152 - 0
src/main/resources/mappings/modules/casebuildinfo/CaseBuildInfoDao.xml

@@ -0,0 +1,152 @@
+<?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.jeeplus.modules.casebuildinfo.dao.CaseBuildInfoDao">
+    
+	<sql id="caseBuildInfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.linkedman AS "linkedman",
+		a.mobile AS "mobile",
+		a.email AS "email",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseBuildInfoJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseBuildInfo" >
+		SELECT 
+			<include refid="caseBuildInfoColumns"/>
+		FROM case_build_info a
+		<include refid="caseBuildInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseBuildInfo" >
+		SELECT 
+			<include refid="caseBuildInfoColumns"/>
+		FROM case_build_info a
+		<include refid="caseBuildInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="linkedman != null and linkedman != ''">
+				AND a.linkedman LIKE 
+					<if test="dbName == 'oracle'">'%'||#{linkedman}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{linkedman}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{linkedman},'%')</if>
+			</if>
+			<if test="mobile != null and mobile != ''">
+				AND a.mobile LIKE 
+					<if test="dbName == 'oracle'">'%'||#{mobile}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{mobile}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{mobile},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseBuildInfo" >
+		SELECT 
+			<include refid="caseBuildInfoColumns"/>
+		FROM case_build_info a
+		<include refid="caseBuildInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_build_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			linkedman,
+			mobile,
+			email,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{linkedman},
+			#{mobile},
+			#{email},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_build_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			linkedman = #{linkedman},
+			mobile = #{mobile},
+			email = #{email},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_build_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_build_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseBuildInfo" statementType="STATEMENT">
+		select * FROM case_build_info  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 149 - 0
src/main/resources/mappings/modules/casecategory/CaseCategoryDao.xml

@@ -0,0 +1,149 @@
+<?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.jeeplus.modules.casecategory.dao.CaseCategoryDao">
+    
+	<sql id="caseCategoryColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.parent_id AS "parent.id",
+		a.parent_ids AS "parentIds",
+		a.name AS "name",
+		a.sort AS "sort",
+		a.identifier AS "identifier"
+	</sql>
+	
+	<sql id="caseCategoryJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseCategory" >
+		SELECT 
+			<include refid="caseCategoryColumns"/>
+		FROM case_category a
+		<include refid="caseCategoryJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseCategory" >
+		SELECT 
+			<include refid="caseCategoryColumns"/>
+		FROM case_category a
+		<include refid="caseCategoryJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="parent != null and parent.id != null and parent.id != ''">
+				AND a.parent_id = #{parent.id}
+			</if>
+			<if test="parentIds != null and parentIds != ''">
+				AND a.parent_ids LIKE
+				<if test="dbName == 'oracle'">'%'||#{parentIds}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{parentIds}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{parentIds},'%')</if>
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+		</where>
+		ORDER BY a.sort ASC
+	</select>
+	
+	<select id="findAllList" resultType="CaseCategory" >
+		SELECT 
+			<include refid="caseCategoryColumns"/>
+		FROM case_category a
+		<include refid="caseCategoryJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		ORDER BY a.sort ASC
+	</select>
+	<select id="findByParentIdsLike" resultType="CaseCategory">
+		SELECT
+		a.id,
+		a.parent_id AS "parent.id",
+		a.parent_ids
+		FROM case_category a
+		<include refid="caseCategoryJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			AND a.parent_ids LIKE #{parentIds}
+		</where>
+		ORDER BY a.sort ASC
+	</select>
+	<insert id="insert">
+		INSERT INTO case_category(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			parent_id,
+			parent_ids,
+			name,
+			sort,
+			identifier
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{parent.id},
+			#{parentIds},
+			#{name},
+			#{sort},
+			#{identifier}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_category SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			parent_id = #{parent.id},
+			parent_ids = #{parentIds},
+			name = #{name},
+			sort = #{sort},
+			identifier = #{identifier}
+		WHERE id = #{id}
+	</update>
+	<update id="updateParentIds">
+		UPDATE case_category SET
+		parent_id = #{parent.id},
+		parent_ids = #{parentIds}
+		WHERE id = #{id}
+	</update>
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_category
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_category SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseCategory" statementType="STATEMENT">
+		select * FROM case_category  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 152 - 0
src/main/resources/mappings/modules/casedesigninfo/CaseDesignInfoDao.xml

@@ -0,0 +1,152 @@
+<?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.jeeplus.modules.casedesigninfo.dao.CaseDesignInfoDao">
+    
+	<sql id="caseDesignInfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.linkedman AS "linkedman",
+		a.mobile AS "mobile",
+		a.email AS "email",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseDesignInfoJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseDesignInfo" >
+		SELECT 
+			<include refid="caseDesignInfoColumns"/>
+		FROM case_design_info a
+		<include refid="caseDesignInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseDesignInfo" >
+		SELECT 
+			<include refid="caseDesignInfoColumns"/>
+		FROM case_design_info a
+		<include refid="caseDesignInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="linkedman != null and linkedman != ''">
+				AND a.linkedman LIKE 
+					<if test="dbName == 'oracle'">'%'||#{linkedman}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{linkedman}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{linkedman},'%')</if>
+			</if>
+			<if test="mobile != null and mobile != ''">
+				AND a.mobile LIKE 
+					<if test="dbName == 'oracle'">'%'||#{mobile}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{mobile}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{mobile},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseDesignInfo" >
+		SELECT 
+			<include refid="caseDesignInfoColumns"/>
+		FROM case_design_info a
+		<include refid="caseDesignInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_design_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			linkedman,
+			mobile,
+			email,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{linkedman},
+			#{mobile},
+			#{email},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_design_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			linkedman = #{linkedman},
+			mobile = #{mobile},
+			email = #{email},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_design_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_design_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseDesignInfo" statementType="STATEMENT">
+		select * FROM case_design_info  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 152 - 0
src/main/resources/mappings/modules/caseexecuteinfo/CaseExecuteInfoDao.xml

@@ -0,0 +1,152 @@
+<?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.jeeplus.modules.caseexecuteinfo.dao.CaseExecuteInfoDao">
+    
+	<sql id="caseExecuteInfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.linkedman AS "linkedman",
+		a.mobile AS "mobile",
+		a.email AS "email",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseExecuteInfoJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseExecuteInfo" >
+		SELECT 
+			<include refid="caseExecuteInfoColumns"/>
+		FROM case_execute_info a
+		<include refid="caseExecuteInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseExecuteInfo" >
+		SELECT 
+			<include refid="caseExecuteInfoColumns"/>
+		FROM case_execute_info a
+		<include refid="caseExecuteInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="linkedman != null and linkedman != ''">
+				AND a.linkedman LIKE 
+					<if test="dbName == 'oracle'">'%'||#{linkedman}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{linkedman}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{linkedman},'%')</if>
+			</if>
+			<if test="mobile != null and mobile != ''">
+				AND a.mobile LIKE 
+					<if test="dbName == 'oracle'">'%'||#{mobile}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{mobile}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{mobile},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseExecuteInfo" >
+		SELECT 
+			<include refid="caseExecuteInfoColumns"/>
+		FROM case_execute_info a
+		<include refid="caseExecuteInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_execute_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			linkedman,
+			mobile,
+			email,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{linkedman},
+			#{mobile},
+			#{email},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_execute_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			linkedman = #{linkedman},
+			mobile = #{mobile},
+			email = #{email},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_execute_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_execute_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseExecuteInfo" statementType="STATEMENT">
+		select * FROM case_execute_info  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 582 - 0
src/main/resources/mappings/modules/caseinfo/CaseInfoDao.xml

@@ -0,0 +1,582 @@
+<?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.jeeplus.modules.caseinfo.dao.CaseInfoDao">
+    
+	<sql id="caseInfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.class_id AS "caseCategory.id",
+		a.name AS "name",
+		a.source AS "source",
+		a.companyName AS "companyName",
+		a.start_date AS "startDate",
+		a.end_date AS "endDate",
+		a.area_id AS "area.id",
+		area.name AS "area.name",
+		a.price AS "price",
+		project.project_name AS "project.projectName",
+		a.project_id AS "project.id",
+		a.feature AS "feature",
+		a.record AS "record",
+		a.ext AS "ext",
+		a.contractName AS "contractName",
+		a.peculiarity AS "peculiarity",
+		a.unit AS "unit",
+		a.status AS "status",
+		a.userids AS "userids",
+		a.share_status AS "shareStatus",
+		a.company_id AS "companyId",
+		a.process_instance_id AS "processInstanceId",
+		a.office_id AS "officeId",
+		u.name AS "createBy.name",
+		u2.name AS "updateBy.name",
+		o.name AS "officeName",
+		c.name AS "caseCategory.name"
+	</sql>
+	
+	<sql id="caseInfoJoins">
+		LEFT JOIN case_category c ON c.id = a.class_id
+		left join sys_user u on a.create_by = u.id
+		left join sys_user u2 on a.update_by = u2.id
+		LEFT JOIN sys_area area ON area.id = a.area_id
+		LEFT JOIN project_records project ON project.id = a.project_id
+		JOIN sys_office o ON o.id = a.office_id
+		JOIN sys_office s ON s.id = a.company_id
+	</sql>
+	
+    
+	<select id="get" resultType="CaseInfo" >
+		SELECT 
+			<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="findListme" resultType="CaseInfo" >
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			<if test="id != null and id != ''">
+				AND a.id = #{id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findListoffice" resultType="CaseInfo" >
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL} and a.status in('2','5')
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="officeId != null and officeId != ''">
+				AND a.office_id = #{officeId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findListoffice2" resultType="CaseInfo" >
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL} and a.status =5
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="officeId != null and officeId != ''">
+				AND a.office_id = #{officeId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<!--<select id="findList" resultType="CaseInfo" >
+		SELECT 
+			<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			(a.share_status = '1' and
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="id != null and id != ''">
+				AND a.id = #{id}
+			</if>
+			) or
+			(
+			(a.del_flag = #{DEL_FLAG_NORMAL} AND a.status = '4'
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="id != null and id != ''">
+				AND a.id = #{id}
+			</if>
+			${sqlMap.dsf})
+			or(
+			(a.status != '4'
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="id != null and id != ''">
+				AND a.id = #{id}
+			</if>
+			) or (a.status in('2','3','4')
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				and find_in_set(#{createBy.id},a.userids)
+			</if>
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="id != null and id != ''">
+				AND a.id = #{id}
+			</if>
+			)
+			)
+			)
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>-->
+
+	<select id="findByAllList" resultType="CaseInfo" >
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.status = '5'
+			AND
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="shareStatus != null and shareStatus != ''">
+				AND a.share_status = #{shareStatus}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findByAllLists" resultType="CaseInfo" >
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.status = '5' and a.share_status is not null
+			AND
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="shareStatus != null and shareStatus != ''">
+				AND a.share_status = #{shareStatus}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+		</where>
+		<choose>
+			<when test="dateOrder == 1">
+				order by a.start_date  desc
+			</when>
+			<when test="dateOrder == 2">
+				order by a.start_date  asc
+			</when>
+			<!--<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>-->
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findBuyCase" resultType="CaseInfo" >
+		SELECT
+		DISTINCT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		LEFT join case_member cm on cm.case_id = a.id
+		<where>
+			a.status = '5' and a.share_status is not null
+			AND
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="memberId != null and memberId != ''">
+				AND cm.member_id = #{memberId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+		</where>
+		<choose>
+			<when test="dateOrder == 1">
+				order by a.start_date  desc
+			</when>
+			<when test="dateOrder == 2">
+				order by a.start_date  asc
+			</when>
+			<!--<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>-->
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findCompanyList" resultType="CaseInfo" >
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL} AND a.status = '5'
+			<if test="caseCategory != null and caseCategory.id != null and caseCategory.id != ''">
+				AND a.class_id = #{caseCategory.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="createBy != null and createBy != null and createBy.name != ''">
+				AND u.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{createBy.name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{createBy.name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{createBy.name},'%')</if>
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="startDate != null and startDate != ''">
+				AND a.start_date = #{startDate}
+			</if>
+			<if test="shareStatus != null and shareStatus != ''">
+				AND a.share_status = #{shareStatus}
+			</if>
+			<if test="officeId != null and officeId != ''">
+				AND a.office_id = #{officeId}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND find_in_set(a.company_id,#{companyId})
+			</if>
+
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findAllList" resultType="CaseInfo" >
+		SELECT 
+			<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			class_id,
+			name,
+			start_date,
+			end_date,
+			area_id,
+			price,
+			project_id,
+			feature,
+			source,
+			companyName,
+			ext,
+			contractName,
+			peculiarity,
+			unit,
+			status,
+			userids,
+			share_status,
+			company_id,
+			office_id,
+			record
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{caseCategory.id},
+			#{name},
+			#{startDate},
+			#{endDate},
+			#{area.id},
+			#{price},
+			#{project.id},
+			#{feature},
+			#{source},
+			#{companyName},
+			#{ext},
+			#{contractName},
+			#{peculiarity},
+			#{unit},
+			#{status},
+			#{userids},
+			#{shareStatus},
+			#{companyId},
+			#{officeId},
+			#{record}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			class_id = #{caseCategory.id},
+			name = #{name},
+			start_date = #{startDate},
+			end_date = #{endDate},
+			area_id = #{area.id},
+			price = #{price},
+			project_id = #{project.id},
+			feature = #{feature},
+			source = #{source},
+			ext = #{ext},
+			contractName = #{contractName},
+			peculiarity = #{peculiarity},
+			unit = #{unit},
+			status = #{status},
+			userids = #{userids},
+			share_status = #{shareStatus},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			record = #{record}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseInfo" statementType="STATEMENT">
+		select * FROM case_info  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByproject" resultType="WorkProject">
+		SELECT 
+			*
+		FROM work_project a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<update id="updateProcessInstanceId">
+		UPDATE case_info SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<select id="getByProcessInstanceId" resultType="CaseInfo">
+		SELECT
+		<include refid="caseInfoColumns"/>
+		FROM case_info a
+		<include refid="caseInfoJoins"/>
+		WHERE a.process_instance_id = #{processInstanceId}
+	</select>
+</mapper>

+ 206 - 0
src/main/resources/mappings/modules/casematerials/CaseMaterialsDao.xml

@@ -0,0 +1,206 @@
+<?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.jeeplus.modules.casematerials.dao.CaseMaterialsDao">
+    
+	<sql id="caseMaterialsColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.brand AS "brand",
+		a.specification AS "specification",
+		a.parameter_performance AS "pp",
+		a.calculate_unit AS "calculateUnit",
+		a.price AS "price",
+		a.count AS "count",
+		a.supplier AS "supplier",
+		a.linkedman AS "linkedman",
+		a.mobile AS "mobile",
+		a.area_id AS "area.id",
+		area.name AS "area.name",
+		a.taxPrice AS "taxPrice",
+		a.useDate AS "useDate",
+		a.source AS "source",
+		a.tax AS "tax",
+		a.material AS "material",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseMaterialsJoins">
+		LEFT JOIN sys_area area ON area.id = a.area_id
+	</sql>
+	
+    
+	<select id="get" resultType="CaseMaterials" >
+		SELECT 
+			<include refid="caseMaterialsColumns"/>
+		FROM case_materials a
+		<include refid="caseMaterialsJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseMaterials" >
+		SELECT 
+			<include refid="caseMaterialsColumns"/>
+		FROM case_materials a
+		<include refid="caseMaterialsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="brand != null and brand != ''">
+				AND a.brand LIKE 
+					<if test="dbName == 'oracle'">'%'||#{brand}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{brand}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{brand},'%')</if>
+			</if>
+			<if test="supplier != null and supplier != ''">
+				AND a.supplier LIKE 
+					<if test="dbName == 'oracle'">'%'||#{supplier}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{supplier}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{supplier},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseMaterials" >
+		SELECT 
+			<include refid="caseMaterialsColumns"/>
+		FROM case_materials a
+		<include refid="caseMaterialsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_materials(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			brand,
+			specification,
+			parameter_performance,
+			calculate_unit,
+			price,
+			count,
+			supplier,
+			linkedman,
+			mobile,
+			area_id,
+			taxPrice,
+			useDate,
+			source,
+			tax,
+			material,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{brand},
+			#{specification},
+			#{pp},
+			#{calculateUnit},
+			#{price},
+			#{count},
+			#{supplier},
+			#{linkedman},
+			#{mobile},
+			#{area.id},
+			#{taxPrice},
+			#{useDate},
+			#{source},
+			#{tax},
+			#{material},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_materials SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			brand = #{brand},
+			specification = #{specification},
+			parameter_performance = #{pp},
+			calculate_unit = #{calculateUnit},
+			price = #{price},
+			count = #{count},
+			supplier = #{supplier},
+			linkedman = #{linkedman},
+			mobile = #{mobile},
+			area_id = #{area.id},
+			taxPrice = #{taxPrice},
+			useDate = #{useDate},
+			source = #{source},
+			tax = #{tax},
+			material = #{material},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_materials
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteCase">
+		DELETE FROM case_materials
+		WHERE case_id = #{caseId}
+	</update>
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_materials SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseMaterials" statementType="STATEMENT">
+		select * FROM case_materials  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 142 - 0
src/main/resources/mappings/modules/casematerialsnorm/CaseMaterialsNormDao.xml

@@ -0,0 +1,142 @@
+<?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.jeeplus.modules.casematerialsnorm.dao.CaseMaterialsNormDao">
+    
+	<sql id="caseMaterialsNormColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.type AS "type",
+		a.unit_content AS "unitContent",
+		a.unit AS "unit",
+		a.all_price AS "allPrice",
+		a.proportion AS "proportion",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseMaterialsNormJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseMaterialsNorm" >
+		SELECT 
+			<include refid="caseMaterialsNormColumns"/>
+		FROM case_materials_norm a
+		<include refid="caseMaterialsNormJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseMaterialsNorm" >
+		SELECT 
+			<include refid="caseMaterialsNormColumns"/>
+		FROM case_materials_norm a
+		<include refid="caseMaterialsNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseMaterialsNorm" >
+		SELECT 
+			<include refid="caseMaterialsNormColumns"/>
+		FROM case_materials_norm a
+		<include refid="caseMaterialsNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_materials_norm(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			type,
+			unit_content,
+			unit,
+			all_price,
+			proportion,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{type},
+			#{unitContent},
+			#{unit},
+			#{allPrice},
+			#{proportion},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_materials_norm SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			type = #{type},
+			unit_content = #{unitContent},
+			unit = #{unit},
+			all_price = #{allPrice},
+			proportion = #{proportion},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_materials_norm
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_materials_norm SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseMaterialsNorm" statementType="STATEMENT">
+		select * FROM case_materials_norm  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 148 - 0
src/main/resources/mappings/modules/casemechanicalnorm/CaseMechanicalNormDao.xml

@@ -0,0 +1,148 @@
+<?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.jeeplus.modules.casemechanicalnorm.dao.CaseMechanicalNormDao">
+    
+	<sql id="caseMechanicalNormColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.type AS "type",
+		a.unit_content AS "unitContent",
+		a.unit AS "unit",
+		a.all_price AS "allPrice",
+		a.proportion AS "proportion",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseMechanicalNormJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseMechanicalNorm" >
+		SELECT 
+			<include refid="caseMechanicalNormColumns"/>
+		FROM case_mechanical_norm a
+		<include refid="caseMechanicalNormJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseMechanicalNorm" >
+		SELECT 
+			<include refid="caseMechanicalNormColumns"/>
+		FROM case_mechanical_norm a
+		<include refid="caseMechanicalNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseMechanicalNorm" >
+		SELECT 
+			<include refid="caseMechanicalNormColumns"/>
+		FROM case_mechanical_norm a
+		<include refid="caseMechanicalNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_mechanical_norm(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			type,
+			unit_content,
+			unit,
+			all_price,
+			proportion,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{type},
+			#{unitContent},
+			#{unit},
+			#{allPrice},
+			#{proportion},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_mechanical_norm SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			type = #{type},
+			unit_content = #{unitContent},
+			unit = #{unit},
+			all_price = #{allPrice},
+			proportion = #{proportion},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_mechanical_norm
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_mechanical_norm SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseMechanicalNorm" statementType="STATEMENT">
+		select * FROM case_mechanical_norm  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 125 - 0
src/main/resources/mappings/modules/casemember/CaseMemberDao.xml

@@ -0,0 +1,125 @@
+<?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.jeeplus.modules.casemember.dao.CaseMemberDao">
+    
+	<sql id="caseMemberColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.case_id AS "caseId",
+		a.member_id AS "memberId"
+	</sql>
+	
+	<sql id="caseMemberJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseMember" >
+		SELECT 
+			<include refid="caseMemberColumns"/>
+		FROM case_member a
+		<include refid="caseMemberJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseMember" >
+		SELECT 
+			<include refid="caseMemberColumns"/>
+		FROM case_member a
+		<include refid="caseMemberJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId != null and caseId != ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="memberId != null and memberId != ''">
+				AND a.member_id = #{memberId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseMember" >
+		SELECT 
+			<include refid="caseMemberColumns"/>
+		FROM case_member a
+		<include refid="caseMemberJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_member(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			case_id,
+			member_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{caseId},
+			#{memberId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_member SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			case_id = #{caseId},
+			member_id = #{memberId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_member
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_member SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseMember" statementType="STATEMENT">
+		select * FROM case_member  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 148 - 0
src/main/resources/mappings/modules/casenorm/CaseNormDao.xml

@@ -0,0 +1,148 @@
+<?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.jeeplus.modules.casenorm.dao.CaseNormDao">
+    
+	<sql id="caseNormColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.each_content AS "eachContent",
+		a.unit AS "unit",
+		a.percent AS "percent",
+		a.calculated_by AS "calculatedBy",
+		a.calculated_value AS "calculatedValue",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseNormJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseNorm" >
+		SELECT 
+			<include refid="caseNormColumns"/>
+		FROM case_norm a
+		<include refid="caseNormJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseNorm" >
+		SELECT 
+			<include refid="caseNormColumns"/>
+		FROM case_norm a
+		<include refid="caseNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseNorm" >
+		SELECT 
+			<include refid="caseNormColumns"/>
+		FROM case_norm a
+		<include refid="caseNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_norm(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			each_content,
+			unit,
+			percent,
+			calculated_by,
+			calculated_value,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{eachContent},
+			#{unit},
+			#{percent},
+			#{calculatedBy},
+			#{calculatedValue},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_norm SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			each_content = #{eachContent},
+			unit = #{unit},
+			percent = #{percent},
+			calculated_by = #{calculatedBy},
+			calculated_value = #{calculatedValue},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_norm
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_norm SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseNorm" statementType="STATEMENT">
+		select * FROM case_norm  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 148 - 0
src/main/resources/mappings/modules/casepeoplenorm/CasePeopleNormDao.xml

@@ -0,0 +1,148 @@
+<?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.jeeplus.modules.casepeoplenorm.dao.CasePeopleNormDao">
+    
+	<sql id="casePeopleNormColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.type AS "type",
+		a.unit_content AS "unitContent",
+		a.unit AS "unit",
+		a.all_price AS "allPrice",
+		a.proportion AS "proportion",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="casePeopleNormJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CasePeopleNorm" >
+		SELECT 
+			<include refid="casePeopleNormColumns"/>
+		FROM case_people_norm a
+		<include refid="casePeopleNormJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CasePeopleNorm" >
+		SELECT 
+			<include refid="casePeopleNormColumns"/>
+		FROM case_people_norm a
+		<include refid="casePeopleNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CasePeopleNorm" >
+		SELECT 
+			<include refid="casePeopleNormColumns"/>
+		FROM case_people_norm a
+		<include refid="casePeopleNormJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_people_norm(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			type,
+			unit_content,
+			unit,
+			all_price,
+			proportion,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{type},
+			#{unitContent},
+			#{unit},
+			#{allPrice},
+			#{proportion},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_people_norm SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			type = #{type},
+			unit_content = #{unitContent},
+			unit = #{unit},
+			all_price = #{allPrice},
+			proportion = #{proportion},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_people_norm
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_people_norm SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CasePeopleNorm" statementType="STATEMENT">
+		select * FROM case_people_norm  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 138 - 0
src/main/resources/mappings/modules/caseprojectfeature/CaseProjectFeatureDao.xml

@@ -0,0 +1,138 @@
+<?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.jeeplus.modules.caseprojectfeature.dao.CaseProjectFeatureDao">
+    
+	<sql id="caseProjectFeatureColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.value AS "value",
+		a.case_id AS "caseId"
+	</sql>
+	
+	<sql id="caseProjectFeatureJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="CaseProjectFeature" >
+		SELECT 
+			<include refid="caseProjectFeatureColumns"/>
+		FROM case_project_feature a
+		<include refid="caseProjectFeatureJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="CaseProjectFeature" >
+		SELECT 
+			<include refid="caseProjectFeatureColumns"/>
+		FROM case_project_feature a
+		<include refid="caseProjectFeatureJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="caseId!= null and caseId!= ''">
+				AND a.case_id = #{caseId}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="value != null and value != ''">
+				AND a.value LIKE 
+					<if test="dbName == 'oracle'">'%'||#{value}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{value}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{value},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="CaseProjectFeature" >
+		SELECT 
+			<include refid="caseProjectFeatureColumns"/>
+		FROM case_project_feature a
+		<include refid="caseProjectFeatureJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO case_project_feature(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			value,
+			case_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{value},
+			#{caseId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE case_project_feature SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			value = #{value},
+			case_id = #{caseId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM case_project_feature
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE case_project_feature SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="CaseProjectFeature" statementType="STATEMENT">
+		select * FROM case_project_feature  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 125 - 0
src/main/resources/mappings/modules/contractclient/WorkContractClientDao.xml

@@ -0,0 +1,125 @@
+<?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.jeeplus.modules.contractclient.dao.WorkContractClientDao">
+    
+	<sql id="workContractClientColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.contract_id AS "contractId",
+		a.client_id AS "clientId"
+	</sql>
+	
+	<sql id="workContractClientJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="WorkContractClient" >
+		SELECT 
+			<include refid="workContractClientColumns"/>
+		FROM work_contract_client a
+		<include refid="workContractClientJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="WorkContractClient" >
+		SELECT 
+			<include refid="workContractClientColumns"/>
+		FROM work_contract_client a
+		<include refid="workContractClientJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="contractId != null and contractId != ''">
+				AND a.contract_id = #{contractId}
+			</if>
+			<if test="clientId != null and clientId != ''">
+				AND a.client_id = #{clientId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="WorkContractClient" >
+		SELECT 
+			<include refid="workContractClientColumns"/>
+		FROM work_contract_client a
+		<include refid="workContractClientJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO work_contract_client(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			contract_id,
+			client_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{contractId},
+			#{clientId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE work_contract_client SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			contract_id = #{contractId},
+			client_id = #{clientId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM work_contract_client
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE work_contract_client SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="WorkContractClient" statementType="STATEMENT">
+		select * FROM work_contract_client  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 147 - 0
src/main/resources/mappings/modules/echarts/ChinaWeatherDataBeanDao.xml

@@ -0,0 +1,147 @@
+<?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.jeeplus.modules.echarts.dao.ChinaWeatherDataBeanDao">
+    
+	<sql id="chinaWeatherDataBeanColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.datestr AS "datestr",
+		a.beijing_maxtemp AS "beijingMaxTemp",
+		a.beijing_mintemp AS "beijingMinTemp",
+		a.changchun_maxtemp AS "changchunMaxTemp",
+		a.changchun_mintemp AS "changchunMinTemp",
+		a.shenyang_maxtemp AS "shenyangMaxTemp",
+		a.shenyang_mintemp AS "shenyangMinTemp",
+		a.haerbin_maxtemp AS "haerbinMaxTemp",
+		a.haerbin_mintemp AS "haerbinMinTemp"
+	</sql>
+	
+	<sql id="chinaWeatherDataBeanJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ChinaWeatherDataBean" >
+		SELECT 
+			<include refid="chinaWeatherDataBeanColumns"/>
+		FROM test_line_weather_main_city a
+		<include refid="chinaWeatherDataBeanJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="ChinaWeatherDataBean" >
+		SELECT 
+			<include refid="chinaWeatherDataBeanColumns"/>
+		FROM test_line_weather_main_city a
+		<include refid="chinaWeatherDataBeanJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ChinaWeatherDataBean" >
+		SELECT 
+			<include refid="chinaWeatherDataBeanColumns"/>
+		FROM test_line_weather_main_city a
+		<include refid="chinaWeatherDataBeanJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO test_line_weather_main_city(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			datestr,
+			beijing_maxtemp,
+			beijing_mintemp,
+			changchun_maxtemp,
+			changchun_mintemp,
+			shenyang_maxtemp,
+			shenyang_mintemp,
+			haerbin_maxtemp,
+			haerbin_mintemp
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{datestr},
+			#{beijingMaxTemp},
+			#{beijingMinTemp},
+			#{changchunMaxTemp},
+			#{changchunMinTemp},
+			#{shenyangMaxTemp},
+			#{shenyangMinTemp},
+			#{haerbinMaxTemp},
+			#{haerbinMinTemp}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE test_line_weather_main_city SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			datestr = #{datestr},
+			beijing_maxtemp = #{beijingMaxTemp},
+			beijing_mintemp = #{beijingMinTemp},
+			changchun_maxtemp = #{changchunMaxTemp},
+			changchun_mintemp = #{changchunMinTemp},
+			shenyang_maxtemp = #{shenyangMaxTemp},
+			shenyang_mintemp = #{shenyangMinTemp},
+			haerbin_maxtemp = #{haerbinMaxTemp},
+			haerbin_mintemp = #{haerbinMinTemp}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM test_line_weather_main_city
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE test_line_weather_main_city SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ChinaWeatherDataBean" statementType="STATEMENT">
+		select * FROM test_line_weather_main_city  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 125 - 0
src/main/resources/mappings/modules/echarts/PieClassDao.xml

@@ -0,0 +1,125 @@
+<?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.jeeplus.modules.echarts.dao.PieClassDao">
+    
+	<sql id="pieClassColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.class_name AS "className",
+		a.num AS "num"
+	</sql>
+	
+	<sql id="pieClassJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="PieClass" >
+		SELECT 
+			<include refid="pieClassColumns"/>
+		FROM test_pie_class a
+		<include refid="pieClassJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="PieClass" >
+		SELECT 
+			<include refid="pieClassColumns"/>
+		FROM test_pie_class a
+		<include refid="pieClassJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="className != null and className != ''">
+				AND a.class_name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{className}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{className}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{className},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="PieClass" >
+		SELECT 
+			<include refid="pieClassColumns"/>
+		FROM test_pie_class a
+		<include refid="pieClassJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO test_pie_class(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			class_name,
+			num
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{className},
+			#{num}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE test_pie_class SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			class_name = #{className},
+			num = #{num}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM test_pie_class
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE test_pie_class SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="PieClass" statementType="STATEMENT">
+		select * FROM test_pie_class  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 216 - 0
src/main/resources/mappings/modules/exampleeconomics/ExampleEconomicsDao.xml

@@ -0,0 +1,216 @@
+<?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.jeeplus.modules.exampleeconomics.dao.ExampleEconomicsDao">
+    
+	<sql id="exampleEconomicsColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.example_id AS "exampleId",
+		a.exampleindices_id AS "exampleindicesId",
+		a.index_id AS "indexId",
+		a.unit AS "unit",
+		a.digits AS "digits",
+		a.name AS "name",
+		a.money AS "money",
+		a.cost AS "cost",
+		a.proportion AS "proportion"
+	</sql>
+	
+	<sql id="exampleEconomicsJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ExampleEconomics" >
+		SELECT 
+			<include refid="exampleEconomicsColumns"/>
+		FROM example_economics a
+		<include refid="exampleEconomicsJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getCount" resultType="ExampleEconomics" >
+		SELECT
+			i.name AS "name",
+			count(a.index_id) AS counts,
+			sum(a.money) AS sums,
+			max(a.cost) AS maxs,
+			min(a.cost) AS mins,
+			e.build_scale AS avgs
+		FROM
+			example_economics a
+		INNER JOIN work_example e ON e.id = a.example_id
+		LEFT JOIN work_example_indices i ON i.id = a.exampleindices_id
+		INNER JOIN (
+			SELECT
+			id
+			FROM
+			main_dict_detail
+			WHERE
+			(FIND_IN_SET(#{dictId}, parent_ids) OR id = #{dictId})
+			AND end_flag = '1'
+			AND company_id =  #{companyId}
+		) d ON d.id = e.type
+		<if test="areaId != null and areaId != ''">
+			INNER JOIN (
+			select id from sys_area where (FIND_IN_SET(#{areaId},parent_ids) OR id = #{areaId})
+			) r ON r.id = e.address
+		</if>
+		WHERE
+			a.del_flag = '0'
+			AND e.company_id =  #{companyId}
+			AND i.is_disable = '0' AND i.one_items = '2'
+			AND a.index_id = #{indexId}
+			AND e.status = '5'
+		GROUP BY a.exampleindices_id;
+	</select>
+	
+	<select id="findList" resultType="ExampleEconomics" >
+		SELECT 
+			<include refid="exampleEconomicsColumns"/>
+		FROM example_economics a
+		<include refid="exampleEconomicsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleindicesId != null and exampleindicesId != ''">
+				AND a.exampleindices_id = #{exampleindicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ExampleEconomics" >
+		SELECT 
+			<include refid="exampleEconomicsColumns"/>
+		FROM example_economics a
+		<include refid="exampleEconomicsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO example_economics(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			example_id,
+			exampleindices_id,
+			index_id,
+			unit,
+			digits,
+			name,
+			money,
+			cost,
+			proportion
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{exampleId},
+			#{exampleindicesId},
+			#{indexId},
+			#{unit},
+			#{digits},
+			#{name},
+			#{money},
+			#{cost},
+			#{proportion}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE example_economics SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			example_id = #{exampleId},
+			exampleindices_id = #{exampleindicesId},
+			index_id = #{indexId},
+			unit = #{unit},
+			digits = #{digits},
+			name = #{name},
+			money = #{money},
+			cost = #{cost},
+			proportion = #{proportion}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM example_economics
+		WHERE id = #{id}
+	</update>
+	<update id="deleteByEId">
+		DELETE FROM example_economics
+		WHERE example_id = #{eId}
+	</update>
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE example_economics SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	<update id="delteByIndexId">
+		DELETE FROM example_economics
+		WHERE example_id = #{eId} and index_id = #{indexId}
+	</update>
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ExampleEconomics" statementType="STATEMENT">
+		select * FROM example_economics  where ${propertyName} = '${value}'
+	</select>
+
+	<select id="findEconomics" resultType="ExampleEconomics" >
+		SELECT
+		<include refid="exampleEconomicsColumns"/>
+		FROM example_economics a
+		<include refid="exampleEconomicsJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleindicesId != null and exampleindicesId != ''">
+				AND a.exampleindices_id = #{exampleindicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+	</select>
+</mapper>

+ 217 - 0
src/main/resources/mappings/modules/exampleexpend/ExampleExpendDao.xml

@@ -0,0 +1,217 @@
+<?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.jeeplus.modules.exampleexpend.dao.ExampleExpendDao">
+    
+	<sql id="exampleExpendColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.example_id AS "exampleId",
+		a.exampleindices_id AS "exampleindicesId",
+		a.index_id AS "indexId",
+		a.unit AS "unit",
+		a.digits AS "digits",
+		a.name AS "name",
+		a.count AS "count",
+		a.price AS "price",
+		a.quota AS "quota"
+	</sql>
+	
+	<sql id="exampleExpendJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ExampleExpend" >
+		SELECT 
+			<include refid="exampleExpendColumns"/>
+		FROM example_expend a
+		<include refid="exampleExpendJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getCount" resultType="ExampleExpend" >
+		SELECT
+			i.name AS "name",
+			count(a.index_id) AS counts,
+			sum(a.count) AS sums,
+			max(a.quota) AS maxs,
+			min(a.quota) AS mins,
+			e.build_scale AS avgs
+		FROM
+			example_expend a
+		INNER JOIN work_example e ON e.id = a.example_id
+		LEFT JOIN work_example_indices i ON i.id = a.exampleindices_id
+		INNER JOIN (
+			SELECT
+		id
+			FROM
+			main_dict_detail
+			WHERE
+			(FIND_IN_SET(#{dictId}, parent_ids) OR id = #{dictId})
+			AND end_flag = '1'
+			AND company_id =  #{companyId}
+		) d ON d.id = e.type
+        <if test="areaId != null and areaId != ''">
+            INNER JOIN (
+            select id from sys_area where (FIND_IN_SET(#{areaId},parent_ids) OR id = #{areaId})
+            ) r ON r.id = e.address
+        </if>
+		WHERE
+			a.del_flag = '0'
+			AND e.company_id =  #{companyId}
+			AND i.is_disable = '0' AND i.one_items = '2'
+			AND a.index_id = #{indexId}
+			AND e.status = '5'
+		GROUP BY a.exampleindices_id;
+	</select>
+	
+	<select id="findList" resultType="ExampleExpend" >
+		SELECT 
+			<include refid="exampleExpendColumns"/>
+		FROM example_expend a
+		<include refid="exampleExpendJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleindicesId != null and exampleindicesId != ''">
+				AND a.exampleindices_id = #{exampleindicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ExampleExpend" >
+		SELECT 
+			<include refid="exampleExpendColumns"/>
+		FROM example_expend a
+		<include refid="exampleExpendJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO example_expend(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			example_id,
+			exampleindices_id,
+			index_id,
+			unit,
+			digits,
+			name,
+			count,
+			price,
+			quota
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{exampleId},
+			#{exampleindicesId},
+			#{indexId},
+			#{unit},
+			#{digits},
+			#{name},
+			#{count},
+			#{price},
+			#{quota}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE example_expend SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			example_id = #{exampleId},
+			exampleindices_id = #{exampleindicesId},
+			index_id = #{indexId},
+			unit = #{unit},
+			digits = #{digits},
+			name = #{name},
+			count = #{count},
+			price = #{price},
+			quota = #{quota}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM example_expend
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteByEId">
+		DELETE FROM example_expend
+		WHERE example_id = #{eId}
+	</update>
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE example_expend SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	<update id="delteByIndexId">
+		DELETE FROM example_expend
+		WHERE example_id = #{eId} and index_id = #{indexId}
+	</update>
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ExampleExpend" statementType="STATEMENT">
+		select * FROM example_expend  where ${propertyName} = '${value}'
+	</select>
+
+	<select id="findExpend" resultType="ExampleExpend" >
+		SELECT
+		<include refid="exampleExpendColumns"/>
+		FROM example_expend a
+		<include refid="exampleExpendJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleindicesId != null and exampleindicesId != ''">
+				AND a.exampleindices_id = #{exampleindicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+	</select>
+</mapper>

+ 214 - 0
src/main/resources/mappings/modules/exampleproject/ExampleProjectDao.xml

@@ -0,0 +1,214 @@
+<?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.jeeplus.modules.exampleproject.dao.ExampleProjectDao">
+    
+	<sql id="exampleProjectColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.example_id AS "exampleId",
+		a.exampleindices_id AS "exampleindicesId",
+		a.index_id AS "indexId",
+		a.unit AS "unit",
+		a.digits AS "digits",
+		a.name AS "name",
+		a.count AS "count",
+		a.quota AS "quota"
+	</sql>
+	
+	<sql id="exampleProjectJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ExampleProject" >
+		SELECT 
+			<include refid="exampleProjectColumns"/>
+		FROM example_project a
+		<include refid="exampleProjectJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getCount" resultType="ExampleProject" >
+		SELECT
+			i.name AS "name",
+			count(a.index_id) AS counts,
+			sum(a.count) AS sums,
+			max(a.quota) AS maxs,
+			min(a.quota) AS mins,
+			e.build_scale AS avgs
+		FROM
+			example_project a
+		INNER JOIN work_example e ON e.id = a.example_id
+		LEFT JOIN work_example_indices i ON i.id = a.exampleindices_id
+		INNER JOIN (
+			SELECT
+				id
+			FROM
+			main_dict_detail
+			WHERE
+			(FIND_IN_SET(#{dictId}, parent_ids) OR id = #{dictId})
+			AND end_flag = '1'
+			AND company_id =  #{companyId}
+		) d ON d.id = e.type
+        <if test="areaId != null and areaId != ''">
+            INNER JOIN (
+            select id from sys_area where (FIND_IN_SET(#{areaId},parent_ids) OR id = #{areaId})
+            ) r ON r.id = e.address
+        </if>
+		WHERE
+			a.del_flag = '0'
+			AND e.company_id =  #{companyId}
+			AND i.is_disable = '0'
+			AND i.one_items = '2'
+			AND e.status = '5'
+			AND a.index_id = #{indexId}
+		GROUP BY a.exampleindices_id;
+	</select>
+	
+	<select id="findList" resultType="ExampleProject" >
+		SELECT 
+			<include refid="exampleProjectColumns"/>
+		FROM example_project a
+		<include refid="exampleProjectJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleindicesId != null and exampleindicesId != ''">
+				AND a.exampleindices_id = #{exampleindicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ExampleProject" >
+		SELECT 
+			<include refid="exampleProjectColumns"/>
+		FROM example_project a
+		<include refid="exampleProjectJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO example_project(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			example_id,
+			exampleindices_id,
+			index_id,
+			unit,
+			digits,
+			name,
+			count,
+			quota
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{exampleId},
+			#{exampleindicesId},
+			#{indexId},
+			#{unit},
+			#{digits},
+			#{name},
+			#{count},
+			#{quota}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE example_project SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			example_id = #{exampleId},
+			exampleindices_id = #{exampleindicesId},
+			index_id = #{indexId},
+			unit = #{unit},
+			digits = #{digits},
+			name = #{name},
+			count = #{count},
+			quota = #{quota}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM example_project
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE example_project SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteByEId">
+		DELETE FROM example_project
+		WHERE example_id = #{eId}
+	</update>
+	<update id="delteByIndexId">
+		DELETE FROM example_project
+		WHERE example_id = #{eId} and index_id = #{indexId}
+	</update>
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ExampleProject" statementType="STATEMENT">
+		select * FROM example_project  where ${propertyName} = '${value}'
+	</select>
+
+	<select id="findProject" resultType="ExampleProject" >
+		SELECT
+		<include refid="exampleProjectColumns"/>
+		FROM example_project a
+		<include refid="exampleProjectJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleindicesId != null and exampleindicesId != ''">
+				AND a.exampleindices_id = #{exampleindicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+	</select>
+</mapper>

+ 219 - 0
src/main/resources/mappings/modules/examplesingle/ExampleSingleDao.xml

@@ -0,0 +1,219 @@
+<?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.jeeplus.modules.examplesingle.dao.ExampleSingleDao">
+    
+	<sql id="exampleSingleColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.example_id AS "exampleId",
+		a.exampleindices_id AS "exampleIndicesId",
+		a.index_id AS "indexId",
+		a.unit AS "unit",
+		a.digits AS "digits",
+		a.name AS "name",
+		a.money AS "money",
+		a.cost AS "cost",
+		a.proportion AS "proportion"
+	</sql>
+	
+	<sql id="exampleSingleJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ExampleSingle" >
+		SELECT 
+			<include refid="exampleSingleColumns"/>
+		FROM example_single a
+		<include refid="exampleSingleJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	<select id="getCount" resultType="ExampleSingle" >
+		SELECT
+			i.name AS "name",
+			count(a.index_id) AS counts,
+			sum(a.money) AS sums,
+			max(a.cost) AS maxs,
+			min(a.cost) AS mins,
+			e.build_scale AS avgs
+		FROM
+			example_single a
+		INNER JOIN work_example e ON e.id = a.example_id
+		LEFT JOIN work_example_indices i ON i.id = a.exampleindices_id
+		INNER JOIN (
+			SELECT
+				id
+			FROM
+			main_dict_detail
+			WHERE
+			(FIND_IN_SET(#{dictId}, parent_ids) OR id = #{dictId})
+			AND end_flag = '1'
+			AND company_id =  #{companyId}
+		) d ON d.id = e.type
+        <if test="areaId != null and areaId != ''">
+            INNER JOIN (
+            select id from sys_area where (FIND_IN_SET(#{areaId},parent_ids) OR id = #{areaId})
+            ) r ON r.id = e.address
+        </if>
+		WHERE
+			a.del_flag = '0'
+			AND e.company_id =  #{companyId}
+			AND i.is_disable = '0' AND i.one_items = '2'
+			AND e.status = '5'
+			AND a.index_id = #{indexId}
+		GROUP BY a.exampleindices_id;
+	</select>
+
+	<select id="findList" resultType="ExampleSingle" >
+		SELECT 
+			<include refid="exampleSingleColumns"/>
+		FROM example_single a
+		<include refid="exampleSingleJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleIndicesId != null and exampleIndicesId != ''">
+				AND a.exampleindices_id = #{exampleIndicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ExampleSingle" >
+		SELECT 
+			<include refid="exampleSingleColumns"/>
+		FROM example_single a
+		<include refid="exampleSingleJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO example_single(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			example_id,
+			exampleindices_id,
+			index_id,
+			unit,
+			digits,
+			name,
+			money,
+			cost,
+			proportion
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{exampleId},
+			#{exampleIndicesId},
+			#{indexId},
+			#{unit},
+			#{digits},
+			#{name},
+			#{money},
+			#{cost},
+			#{proportion}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE example_single SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			example_id = #{exampleId},
+			exampleindices_id = #{exampleIndicesId},
+			index_id = #{indexId},
+			unit = #{unit},
+			digits = #{digits},
+			name = #{name},
+			money = #{money},
+			cost = #{cost},
+			proportion = #{proportion}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM example_single
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteByEId">
+		DELETE FROM example_single
+		WHERE example_id = #{eId}
+	</update>
+
+	<update id="delteByIndexId">
+		DELETE FROM example_single
+		WHERE example_id = #{eId} and index_id = #{indexId}
+	</update>
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE example_single SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ExampleSingle" statementType="STATEMENT">
+		select * FROM example_single  where ${propertyName} = '${value}'
+	</select>
+
+	<select id="findSingle" resultType="ExampleSingle" >
+		SELECT
+		<include refid="exampleSingleColumns"/>
+		FROM example_single a
+		<include refid="exampleSingleJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="exampleId != null and exampleId != ''">
+				AND a.example_id = #{exampleId}
+			</if>
+			<if test="exampleIndicesId != null and exampleIndicesId != ''">
+				AND a.exampleindices_id = #{exampleIndicesId}
+			</if>
+			<if test="indexId != null and indexId != ''">
+				AND a.index_id = #{indexId}
+			</if>
+			limit 1
+		</where>
+	</select>
+</mapper>

+ 83 - 0
src/main/resources/mappings/modules/gen/GenDataBaseDictDao.xml

@@ -0,0 +1,83 @@
+<?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.jeeplus.modules.gen.dao.GenDataBaseDictDao">
+    <!---->
+	<!--<select id="findTableList" resultType="GenTable">-->
+		<!--<if test="dbName == 'oracle'">-->
+			<!--SELECT -->
+				<!--t.TABLE_NAME AS name, -->
+				<!--c.COMMENTS AS comments-->
+			<!--FROM user_tables t, user_tab_comments c -->
+			<!--WHERE t.table_name = c.table_name-->
+			<!--<if test="name != null and name != ''">-->
+				<!--AND t.TABLE_NAME = upper(#{name})-->
+			<!--</if>-->
+			<!--ORDER BY t.TABLE_NAME-->
+		<!--</if>-->
+		<!--<if test="dbName == 'mysql'">			-->
+			<!--SELECT t.table_name AS name,t.TABLE_COMMENT AS comments -->
+			<!--FROM information_schema.`TABLES` t -->
+			<!--WHERE t.TABLE_SCHEMA = (select database())-->
+			<!--<if test="name != null and name != ''">-->
+				<!--AND t.TABLE_NAME = upper(#{name})-->
+			<!--</if>-->
+			<!--ORDER BY t.TABLE_NAME-->
+		<!--</if>-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findTableColumnList" resultType="GenTableColumn">-->
+		<!--<if test="dbName == 'oracle'">-->
+			<!--SELECT-->
+				<!--t.COLUMN_NAME AS name,&lt;!&ndash; -->
+				<!--t.DATA_TYPE,-->
+				<!--t.DATA_LENGTH,-->
+				<!--t.DATA_PRECISION,-->
+				<!--t.DATA_SCALE, &ndash;&gt;-->
+				<!--(CASE WHEN t.NULLABLE = 'Y' THEN '1' ELSE '0' END) AS isNull,-->
+				<!--(t.COLUMN_ID * 10) AS sort,-->
+				<!--c.COMMENTS AS comments,-->
+				<!--decode(t.DATA_TYPE,'DATE',t.DATA_TYPE || '(' || t.DATA_LENGTH || ')',-->
+					<!--'VARCHAR2', t.DATA_TYPE || '(' || t.DATA_LENGTH || ')',-->
+					<!--'VARCHAR', t.DATA_TYPE || '(' || t.DATA_LENGTH || ')',-->
+					<!--'NVARCHAR2', t.DATA_TYPE || '(' || t.DATA_LENGTH/2 || ')',-->
+					<!--'CHAR', t.DATA_TYPE || '(' || t.DATA_LENGTH || ')',-->
+					<!--'NUMBER',t.DATA_TYPE || (nvl2(t.DATA_PRECISION,nvl2(decode(t.DATA_SCALE,0,null,t.DATA_SCALE),-->
+						<!--'(' || t.DATA_PRECISION || ',' || t.DATA_SCALE || ')', -->
+						<!--'(' || t.DATA_PRECISION || ')'),'(18)')),t.DATA_TYPE) AS jdbcType -->
+			<!--FROM user_tab_columns t, user_col_comments c -->
+			<!--WHERE t.TABLE_NAME = c.table_name -->
+				<!--AND t.COLUMN_NAME = c.column_name -->
+			<!--<if test="name != null and name != ''">-->
+				<!--AND t.TABLE_NAME = upper(#{name})-->
+			<!--</if>-->
+			<!--ORDER BY t.COLUMN_ID-->
+		<!--</if>-->
+		<!--<if test="dbName == 'mysql'">	-->
+			<!--SELECT t.COLUMN_NAME AS name, (CASE WHEN t.IS_NULLABLE = 'YES' THEN '1' ELSE '0' END) AS isNull,-->
+				<!--(t.ORDINAL_POSITION * 10) AS sort,t.COLUMN_COMMENT AS comments,t.COLUMN_TYPE AS jdbcType -->
+			<!--FROM information_schema.`COLUMNS` t -->
+			<!--WHERE t.TABLE_SCHEMA = (select database())-->
+			<!--<if test="name != null and name != ''">-->
+				<!--AND t.TABLE_NAME = upper(#{name})-->
+			<!--</if>-->
+			<!--ORDER BY t.ORDINAL_POSITION-->
+		<!--</if>-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findTablePK" resultType="string">-->
+		<!--<if test="dbName == 'oracle'">-->
+			<!--SELECT lower(cu.COLUMN_NAME) AS columnName-->
+			<!--FROM user_cons_columns cu, user_constraints au-->
+			<!--WHERE cu.constraint_name = au.constraint_name-->
+				<!--AND au.constraint_type = 'P'-->
+				<!--AND au.table_name = upper(#{name})-->
+		<!--</if>-->
+		<!--<if test="dbName == 'mysql'">-->
+			<!--SELECT lower(au.COLUMN_NAME) AS columnName -->
+			<!--FROM information_schema.`COLUMNS` au-->
+			<!--WHERE au.TABLE_SCHEMA = (select database()) -->
+			<!--AND au.COLUMN_KEY='PRI' AND au.TABLE_NAME = upper(#{name})-->
+		<!--</if>-->
+	<!--</select>-->
+	<!---->
+</mapper>

+ 121 - 0
src/main/resources/mappings/modules/gen/GenSchemeDao.xml

@@ -0,0 +1,121 @@
+<?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.jeeplus.modules.gen.dao.GenSchemeDao">
+    <!---->
+    <!--<sql id="genSchemeColumns">-->
+		<!--a.*,-->
+		<!--a.gen_table_id AS "genTable.id"-->
+	<!--</sql>-->
+	<!---->
+	<!--<sql id="genSchemeJoins">-->
+		<!---->
+    <!--</sql>-->
+    <!---->
+    <!--<select id="get" resultType="GenScheme">-->
+		<!--SELECT -->
+			<!--<include refid="genSchemeColumns"/>-->
+		<!--FROM gen_scheme a-->
+		<!--<include refid="genSchemeJoins"/>-->
+		<!--WHERE a.id = #{id}-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findList" resultType="GenScheme">-->
+		<!--SELECT -->
+			<!--<include refid="genSchemeColumns"/>-->
+		<!--FROM gen_scheme a-->
+		<!--<include refid="genSchemeJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--<if test="name != null and name != ''">-->
+			<!--AND a.name LIKE -->
+				<!--<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>-->
+				<!--<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>-->
+				<!--<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>-->
+		<!--</if>-->
+		<!--ORDER BY a.update_date DESC-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findAllList" resultType="GenScheme">-->
+		<!--SELECT -->
+			<!--<include refid="genSchemeColumns"/>-->
+		<!--FROM gen_scheme a-->
+		<!--<include refid="genSchemeJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--ORDER BY a.update_date DESC-->
+	<!--</select>-->
+	<!---->
+	<!--<insert id="insert">-->
+		<!--INSERT INTO gen_scheme(-->
+			<!--id, -->
+			<!--name, -->
+			<!--category, -->
+			<!--package_name, -->
+			<!--module_name, -->
+			<!--sub_module_name, -->
+			<!--function_name, -->
+			<!--function_name_simple, -->
+			<!--function_author, -->
+			<!--gen_table_id, -->
+			<!--create_by, -->
+			<!--create_date, -->
+			<!--update_by, -->
+			<!--update_date, -->
+			<!--remarks, -->
+			<!--del_flag-->
+		<!--) VALUES (-->
+			<!--#{id}, -->
+			<!--#{name}, -->
+			<!--#{category},  -->
+			<!--#{packageName},  -->
+			<!--#{moduleName},  -->
+			<!--#{subModuleName},  -->
+			<!--#{functionName},  -->
+			<!--#{functionNameSimple},  -->
+			<!--#{functionAuthor},  -->
+			<!--#{genTable.id},  -->
+			<!--#{createBy.id}, -->
+			<!--#{createDate}, -->
+			<!--#{updateBy.id}, -->
+			<!--#{updateDate}, -->
+			<!--#{remarks}, -->
+			<!--#{delFlag}-->
+		<!--)-->
+	<!--</insert>-->
+	<!---->
+	<!--<update id="update">-->
+		<!--UPDATE gen_scheme SET -->
+			<!--name = #{name}, -->
+			<!--category = #{category},  -->
+			<!--package_name = #{packageName},  -->
+			<!--module_name = #{moduleName},  -->
+			<!--sub_module_name = #{subModuleName},  -->
+			<!--function_name = #{functionName},  -->
+			<!--function_name_simple = #{functionNameSimple},  -->
+			<!--function_author = #{functionAuthor},  -->
+			<!--gen_table_id = #{genTable.id},  -->
+			<!--update_by = #{updateBy.id}, -->
+			<!--update_date = #{updateDate}, -->
+			<!--remarks = #{remarks}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="delete">-->
+		<!--DELETE FROM gen_scheme-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="deleteByLogic">-->
+		<!--UPDATE gen_scheme SET -->
+			<!--del_flag = #{DEL_FLAG_DELETE}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--&lt;!&ndash; 根据实体名称和字段名称和字段值获取唯一记录 &ndash;&gt;-->
+	<!--<select id="findUniqueByProperty" resultType="GenScheme" statementType="STATEMENT">-->
+		<!--SELECT -->
+			<!--<include refid="genSchemeColumns"/>-->
+		<!--FROM gen_scheme a-->
+		<!--<include refid="genSchemeJoins"/>  where ${propertyName} = '${value}'-->
+	<!--</select>-->
+	<!---->
+	<!---->
+</mapper>

+ 185 - 0
src/main/resources/mappings/modules/gen/GenTableColumnDao.xml

@@ -0,0 +1,185 @@
+<?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.jeeplus.modules.gen.dao.GenTableColumnDao">
+    <!---->
+    <!--<sql id="genTableColumnColumns">-->
+		<!--a.*,-->
+		<!--b.id AS "genTable.id",-->
+		<!--b.name AS "genTable.name",-->
+		<!--b.comments AS "genTable.comments",-->
+		<!--b.class_name AS "genTable.className",-->
+		<!--b.parent_table AS "genTable.parentTable",-->
+		<!--b.parent_table_fk AS "genTable.parentTableFk"-->
+	<!--</sql>-->
+	<!---->
+	<!--<sql id="genTableColumnJoins">-->
+		<!--JOIN gen_table b ON b.id = a.gen_table_id-->
+    <!--</sql>-->
+    <!---->
+    <!--<select id="get" resultType="GenTableColumn">-->
+		<!--SELECT -->
+			<!--<include refid="genTableColumnColumns"/>-->
+		<!--FROM gen_table_column a-->
+		<!--<include refid="genTableColumnJoins"/>-->
+		<!--WHERE a.id = #{id}-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findList" resultType="GenTableColumn">-->
+		<!--SELECT -->
+			<!--<include refid="genTableColumnColumns"/>-->
+		<!--FROM gen_table_column a-->
+		<!--<include refid="genTableColumnJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--<if test="name != null and name != ''">-->
+			<!--AND a.name LIKE -->
+				<!--<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>-->
+				<!--<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>-->
+				<!--<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>-->
+		<!--</if>-->
+		<!--<if test="genTable != null and genTable.id != null and genTable.id != ''">-->
+			<!--AND a.gen_table_id = #{genTable.id}-->
+		<!--</if>-->
+		<!--ORDER BY a.sort ASC-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findAllList" resultType="GenTableColumn">-->
+		<!--SELECT -->
+			<!--<include refid="genTableColumnColumns"/>-->
+		<!--FROM gen_table_column a-->
+		<!--<include refid="genTableColumnJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--ORDER BY a.sort ASC-->
+	<!--</select>-->
+	<!---->
+	<!--<insert id="insert">-->
+		<!--INSERT INTO gen_table_column(-->
+			<!--id, -->
+			<!--gen_table_id, -->
+			<!--name, -->
+			<!--comments, -->
+			<!--jdbc_type, -->
+			<!--java_type, -->
+			<!--java_field, -->
+			<!--is_pk, -->
+			<!--is_null, -->
+			<!--is_insert, -->
+			<!--is_edit, -->
+			<!--is_form,-->
+			<!--is_list, -->
+			<!--is_query, -->
+			<!--query_type, -->
+			<!--show_type, -->
+			<!--dict_type, -->
+			<!--sort, -->
+			<!--create_by, -->
+			<!--create_date, -->
+			<!--update_by, -->
+			<!--update_date, -->
+			<!--remarks, -->
+			<!--del_flag,-->
+			<!--tableName,-->
+			<!--fieldLabels,-->
+			<!--fieldKeys,-->
+			<!--searchLabel,-->
+			<!--searchKey,-->
+			<!--validateType,-->
+			<!--min_length,-->
+			<!--max_length,-->
+			<!--min_value,-->
+			<!--max_value-->
+			<!---->
+		<!--) VALUES (-->
+			<!--#{id}, -->
+			<!--#{genTable.id}, -->
+			<!--#{name}, -->
+			<!--#{comments}, -->
+			<!--#{jdbcType}, -->
+			<!--#{javaType}, -->
+			<!--#{javaField}, -->
+			<!--#{isPk}, -->
+			<!--#{isNull}, -->
+			<!--#{isInsert}, -->
+			<!--#{isEdit}, -->
+			<!--#{isForm}, -->
+			<!--#{isList}, -->
+			<!--#{isQuery}, -->
+			<!--#{queryType}, -->
+			<!--#{showType}, -->
+			<!--#{dictType}, -->
+			<!--#{sort}, -->
+			<!--#{createBy.id}, -->
+			<!--#{createDate}, -->
+			<!--#{updateBy.id}, -->
+			<!--#{updateDate}, -->
+			<!--#{remarks}, -->
+			<!--#{delFlag},-->
+			<!--#{tableName},-->
+			<!--#{fieldLabels},-->
+			<!--#{fieldKeys},-->
+			<!--#{searchLabel},-->
+			<!--#{searchKey},-->
+			<!--#{validateType},-->
+			<!--#{minLength},-->
+			<!--#{maxLength},-->
+			<!--#{minValue},-->
+			<!--#{maxValue}-->
+		<!--)-->
+	<!--</insert>-->
+	<!---->
+	<!--<update id="update">-->
+		<!--UPDATE gen_table_column SET -->
+			<!--comments = #{comments}, -->
+			<!--jdbc_type = #{jdbcType}, -->
+			<!--java_type = #{javaType}, -->
+			<!--java_field = #{javaField}, -->
+			<!--is_pk = #{isPk}, -->
+			<!--is_null = #{isNull}, -->
+			<!--is_insert = #{isInsert}, -->
+			<!--is_edit = #{isEdit}, -->
+			<!--is_list = #{isList}, -->
+			<!--is_query = #{isQuery}, -->
+			<!--query_type = #{queryType}, -->
+			<!--show_type = #{showType}, -->
+			<!--dict_type = #{dictType}, -->
+			<!--sort = #{sort}, -->
+			<!--update_by = #{updateBy.id}, -->
+			<!--update_date = #{updateDate}, -->
+			<!--remarks = #{remarks},-->
+			<!--del_flag = #{delFlag},-->
+			<!--tableName = #{tableName},-->
+			<!--fieldLabels = #{fieldLabels},-->
+			<!--fieldKeys = #{fieldKeys},-->
+			<!--searchLabel = #{searchLabel},-->
+			<!--searchKey = #{searchKey},-->
+			<!--validateType = #{validateType},-->
+			<!--min_length = #{minLength},-->
+			<!--max_length = #{maxLength},-->
+			<!--min_value = #{minValue},-->
+			<!--max_value = #{maxValue}-->
+			<!---->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="delete">-->
+		<!--DELETE FROM gen_table_column -->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="deleteByLogic">-->
+		<!--UPDATE gen_table_column SET -->
+			<!--del_flag = #{DEL_FLAG_DELETE}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="deleteByGenTable">-->
+		<!--DELETE FROM gen_table_column -->
+		<!--WHERE gen_table_id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="deleteByGenTableByLogic">-->
+		<!--UPDATE gen_table_column SET -->
+			<!--del_flag = '1'-->
+		<!--WHERE gen_table_id = #{id}-->
+	<!--</update>-->
+	<!---->
+</mapper>

+ 139 - 0
src/main/resources/mappings/modules/gen/GenTableDao.xml

@@ -0,0 +1,139 @@
+<?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.jeeplus.modules.gen.dao.GenTableDao">
+    <!---->
+    <!--<sql id="genTableColumns">-->
+		<!--a.*-->
+	<!--</sql>-->
+	<!---->
+	<!--<sql id="genTableJoins">-->
+		<!---->
+    <!--</sql>-->
+    <!---->
+    <!--<select id="get" resultType="GenTable">-->
+		<!--SELECT -->
+			<!--<include refid="genTableColumns"/>-->
+		<!--FROM gen_table a-->
+		<!--<include refid="genTableJoins"/>-->
+		<!--WHERE a.id = #{id}-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findList" resultType="GenTable">-->
+		<!--SELECT -->
+			<!--<include refid="genTableColumns"/>-->
+		<!--FROM gen_table a-->
+		<!--<include refid="genTableJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--<if test="name != null and name != ''">-->
+			<!--AND a.name = #{name}-->
+		<!--</if>-->
+		<!--<if test="nameLike != null and nameLike != ''">-->
+			<!--AND a.name LIKE -->
+				<!--<if test="dbName == 'oracle'">'%'||#{nameLike}||'%'</if>-->
+				<!--<if test="dbName == 'mssql'">'%'+#{nameLike}+'%'</if>-->
+				<!--<if test="dbName == 'mysql'">concat('%',#{nameLike},'%')</if>-->
+		<!--</if>-->
+		<!--<if test="comments != null and comments != ''">-->
+			<!--AND a.comments LIKE -->
+				<!--<if test="dbName == 'oracle'">'%'||#{comments}||'%'</if>-->
+				<!--<if test="dbName == 'mssql'">'%'+#{comments}+'%'</if>-->
+				<!--<if test="dbName == 'mysql'">concat('%',#{comments},'%')</if>-->
+		<!--</if>-->
+		<!--<if test="parentTable != null and parentTable != ''">-->
+			<!--AND a.parent_table = #{parentTable}-->
+		<!--</if>-->
+		<!--<choose>-->
+			<!--<when test="page.orderBy != null and page.orderBy != ''">-->
+				<!--ORDER BY ${page.orderBy}-->
+			<!--</when>-->
+			<!--<otherwise>-->
+				<!--ORDER BY a.name ASC-->
+			<!--</otherwise>-->
+		<!--</choose>-->
+	<!--</select>-->
+	<!--<select id="findAllList" resultType="GenTable">-->
+		<!--SELECT -->
+			<!--<include refid="genTableColumns"/>-->
+		<!--FROM gen_table a-->
+		<!--<include refid="genTableJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL}-->
+		<!--<choose>-->
+			<!--<when test="page !=null and page.orderBy != null and page.orderBy != ''">-->
+				<!--ORDER BY ${page.orderBy}-->
+			<!--</when>-->
+			<!--<otherwise>-->
+				<!--ORDER BY a.name ASC-->
+			<!--</otherwise>-->
+		<!--</choose>-->
+	<!--</select>-->
+	<!---->
+	<!--<insert id="insert">-->
+		<!--INSERT INTO gen_table(-->
+			<!--id, -->
+			<!--name, -->
+			<!--comments, -->
+			<!--table_type,-->
+			<!--class_name, -->
+			<!--parent_table, -->
+			<!--parent_table_fk, -->
+			<!--create_by, -->
+			<!--create_date, -->
+			<!--update_by, -->
+			<!--update_date, -->
+			<!--remarks, -->
+			<!--del_flag,-->
+			<!--issync-->
+		<!--) VALUES (-->
+			<!--#{id}, -->
+			<!--#{name}, -->
+			<!--#{comments},-->
+			<!--#{tableType}, -->
+			<!--#{className}, -->
+			<!--#{parentTable}, -->
+			<!--#{parentTableFk}, -->
+			<!--#{createBy.id}, -->
+			<!--#{createDate}, -->
+			<!--#{updateBy.id}, -->
+			<!--#{updateDate}, -->
+			<!--#{remarks}, -->
+			<!--#{delFlag},-->
+			<!--#{isSync}-->
+		<!--)-->
+	<!--</insert>-->
+	<!---->
+	<!--<update id="update">-->
+		<!--UPDATE gen_table SET &lt;!&ndash; -->
+			<!--name = #{name},  &ndash;&gt;-->
+			<!--comments = #{comments}, -->
+			<!--table_type = #{tableType},-->
+			<!--class_name = #{className}, -->
+			<!--parent_table = #{parentTable}, -->
+			<!--parent_table_fk = #{parentTableFk}, -->
+			<!--update_by = #{updateBy.id}, -->
+			<!--update_date = #{updateDate}, -->
+			<!--remarks = #{remarks},-->
+			<!--issync = #{isSync}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="delete">-->
+		<!--DELETE FROM gen_table -->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="deleteByLogic">-->
+		<!--UPDATE gen_table SET -->
+			<!--del_flag = #{DEL_FLAG_DELETE}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="buildTable" statementType="STATEMENT">  -->
+		<!--${sql}-->
+	<!--</update>-->
+	<!---->
+	<!--&lt;!&ndash; 根据实体名称和字段名称和字段值获取唯一记录 &ndash;&gt;-->
+	<!--<select id="findUniqueByProperty" resultType="GenTable" statementType="STATEMENT">-->
+		<!--select * FROM gen_table  where ${propertyName} = '${value}'-->
+	<!--</select>-->
+	<!---->
+</mapper>

+ 105 - 0
src/main/resources/mappings/modules/gen/GenTemplateDao.xml

@@ -0,0 +1,105 @@
+<?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.jeeplus.modules.gen.dao.GenTemplateDao">
+    <!---->
+    <!--<sql id="genTemplateColumns">-->
+		<!--a.*-->
+	<!--</sql>-->
+	<!---->
+	<!--<sql id="genTemplateJoins">-->
+		<!---->
+    <!--</sql>-->
+    <!---->
+    <!--<select id="get" resultType="GenTemplate">-->
+		<!--SELECT -->
+			<!--<include refid="genTemplateColumns"/>-->
+		<!--FROM gen_template a-->
+		<!--<include refid="genTemplateJoins"/>-->
+		<!--WHERE a.id = #{id}-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findList" resultType="GenTemplate">-->
+		<!--SELECT -->
+			<!--<include refid="genTemplateColumns"/>-->
+		<!--FROM gen_template a-->
+		<!--<include refid="genTemplateJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--<if test="name != null and name != ''">-->
+			<!--AND a.name LIKE -->
+				<!--<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>-->
+				<!--<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>-->
+				<!--<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>-->
+		<!--</if>-->
+		<!--<if test="category != null and category != ''">-->
+			<!--AND a.category LIKE -->
+				<!--<if test="dbName == 'oracle'">'%'||#{category}||'%'</if>-->
+				<!--<if test="dbName == 'mssql'">'%'+#{category}+'%'</if>-->
+				<!--<if test="dbName == 'mysql'">concat('%',#{category},'%')</if>-->
+		<!--</if>-->
+		<!--ORDER BY a.name, a.update_date DESC-->
+	<!--</select>-->
+	<!---->
+	<!--<select id="findAllList" resultType="GenTemplate">-->
+		<!--SELECT -->
+			<!--<include refid="genTemplateColumns"/>-->
+		<!--FROM gen_template a-->
+		<!--<include refid="genTemplateJoins"/>-->
+		<!--WHERE a.del_flag = #{DEL_FLAG_NORMAL} -->
+		<!--ORDER BY a.name, a.update_date DESC-->
+	<!--</select>-->
+	<!---->
+	<!--<insert id="insert">-->
+		<!--INSERT INTO gen_template(-->
+			<!--id, -->
+			<!--name, -->
+			<!--category, -->
+			<!--file_path, -->
+			<!--file_name, -->
+			<!--content, -->
+			<!--create_by, -->
+			<!--create_date, -->
+			<!--update_by, -->
+			<!--update_date, -->
+			<!--remarks, -->
+			<!--del_flag-->
+		<!--) VALUES (-->
+			<!--#{id}, -->
+			<!--#{name}, -->
+			<!--#{category},  -->
+			<!--#{filePath},  -->
+			<!--#{fileName},  -->
+			<!--#{content},  -->
+			<!--#{createBy.id}, -->
+			<!--#{createDate}, -->
+			<!--#{updateBy.id}, -->
+			<!--#{updateDate}, -->
+			<!--#{remarks}, -->
+			<!--#{delFlag}-->
+		<!--)-->
+	<!--</insert>-->
+	<!---->
+	<!--<update id="update">-->
+		<!--UPDATE gen_template SET -->
+			<!--name = #{name}, -->
+			<!--category = #{category},  -->
+			<!--file_path = #{filePath},  -->
+			<!--file_name = #{fileName},  -->
+			<!--content = #{content},  -->
+			<!--update_by = #{updateBy.id}, -->
+			<!--update_date = #{updateDate}, -->
+			<!--remarks = #{remarks}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="delete">-->
+		<!--DELETE FROM gen_template -->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+	<!--<update id="deleteByLogic">-->
+		<!--UPDATE gen_template SET -->
+			<!--del_flag = #{DEL_FLAG_DELETE}-->
+		<!--WHERE id = #{id}-->
+	<!--</update>-->
+	<!---->
+</mapper>

+ 386 - 0
src/main/resources/mappings/modules/hr/UserInfoDao.xml

@@ -0,0 +1,386 @@
+<?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.jeeplus.modules.hr.dao.UserInfoDao">
+    
+	<sql id="userInfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.user_id AS "userId",
+		a.company_id AS "companyId",
+		a.name AS "name",
+		a.nick_name AS "nickName",
+		a.gender AS "gender",
+		a.job_number AS "jobNumber",
+		a.highest_degree AS "highestDegree",
+		a.highest_school AS "highestSchool",
+		a.highest_profession AS "highestProfession",
+		a.highest_graduationtime AS "highestGraduationTime",
+		a.first_degree AS "firstDegree",
+		a.first_chool AS "firstSchool",
+		a.first_profession AS "firstProfession",
+		a.first_graduationtime AS "firstGraduationTime",
+		a.birthday AS "birthday",
+		a.id_card AS "idCard",
+		a.professional_title AS "professionalTitle",
+		a.professional_getdate AS "professionalGetdate",
+		a.social_insurance_account AS "socialInsuranceAccount",
+		a.medical_insurance_account AS "medicalInsuranceAccount",
+		a.bank_account AS "bankAccount",
+		a.provident_fund_account AS "providentFundAccount",
+		a.qq AS "qq",
+		a.weixin AS "weixin",
+		a.mobilephone AS "mobilePhone",
+		a.email AS "email",
+		a.is_costengineer AS "isCostengineer",
+		a.costengineer_getdate AS "costengineerGetdate",
+		a.workstart_date AS "workstartDate",
+		a.probation_position AS "probationPosition",
+		a.probation_duration AS "probationDuration",
+		a.probation_enddate AS "probationEnddate",
+		a.professional_qualification AS "professionalQualification",
+		a.engaged_job AS "engagedJob",
+		a.other_qualification AS "otherQualification",
+		a.personal_profile AS "personalProfile"
+	</sql>
+	
+	<sql id="userInfoJoins">
+	</sql>
+
+
+	<select id="findUserInfoList" resultType="UserInfo" >
+		SELECT
+			ui.id AS "id",
+			ui.create_by AS "createBy",
+			ui.create_date AS "reateDate",
+			ui.update_by AS "updateBy.id",
+			ui.update_date AS "updateDate",
+			ui.remarks AS "remarks",
+			ui.del_flag AS "delFlag",
+			ui.user_id AS "userId",
+			ui.company_id AS "companyId",
+			ui.name AS "name",
+			ui.nick_name AS "nickName",
+			ui.gender AS "gender",
+			ui.job_number AS "jobNumber",
+			ui.highest_degree AS "highestDegree",
+			ui.highest_school AS "highestSchool",
+			ui.highest_profession AS "highestProfession",
+			ui.highest_graduationtime AS "highestGraduationTime",
+			ui.first_degree AS "firstDegree",
+			ui.first_chool AS "firstSchool",
+			ui.first_profession AS "firstProfession",
+			ui.first_graduationtime AS "firstGraduationTime",
+			ui.birthday AS "birthday",
+			ui.id_card AS "idCard",
+			ui.professional_title AS "professionalTitle",
+			ui.professional_getdate AS "professionalGetdate",
+			ui.social_insurance_account AS "socialInsuranceAccount",
+			ui.medical_insurance_account AS "medicalInsuranceAccount",
+			ui.bank_account AS "bankAccount",
+			ui.provident_fund_account AS "providentFundAccount",
+			ui.qq AS "qq",
+			ui.weixin AS "weixin",
+			ui.mobilephone AS "mobilePhone",
+			ui.email AS "email",
+			ui.is_costengineer AS "isCostengineer",
+			ui.costengineer_getdate AS "costengineerGetdate",
+			ui.workstart_date AS "workstartDate",
+			ui.probation_position AS "probationPosition",
+			ui.probation_duration AS "probationDuration",
+			ui.probation_enddate AS "probationEnddate",
+			ui.professional_qualification AS "professionalQualification",
+			ui.engaged_job AS "engagedJob",
+			ui.other_qualification AS "otherQualification",
+			ui.personal_profile AS "personalProfile",
+			uo.id AS "userOffice.id",
+			uo.create_by AS "userOffice.createBy.id",
+			uo.create_date AS "userOffice.createDate",
+			uo.update_by AS "userOffice.updateBy.id",
+			uo.update_date AS "userOffice.updateDate",
+			uo.remarks AS "userOffice.remarks",
+			uo.del_flag AS "userOffice.delFlag",
+			uo.user_id AS "userOffice.userId",
+			uo.company_id AS "userOffice.companyId",
+			uo.office_id AS "userOffice.officeId",
+			uo.master AS "userOffice.master",
+			uo.status AS "userOffice.status",
+			u.id AS "userOffice.user.id",
+			u.com_id AS "userOffice.user.comId",
+			u.company_id AS "userOffice.user.company.id",
+			u.office_id AS "userOffice.user.office.id",
+			u.login_name AS "userOffice.user.loginName",
+			u.password AS "userOffice.user.passwork",
+			u.password_remake AS "userOffice.user.passwordRemake",
+			u.no AS "userOffice.user.no",
+			u.name AS "userOffice.user.name",
+			u.sex AS "userOffice.user.sex",
+			u.email AS "userOffice.user.email",
+			u.phone AS "userOffice.user.phone",
+			u.mobile AS "userOffice.user.mobile",
+			u.ishide AS "userOffice.user.ishide",
+			u.user_type AS "userOffice.user.userType",
+			u.login_ip AS "userOffice.user.loginIp",
+			u.login_date AS "userOffice.user.loginDate",
+			u.remarks AS "userOffice.user.remarks",
+			u.login_flag AS "userOffice.user.loginFlag",
+			u.photo AS "userOffice.user.photo",
+			u.default_photo AS "userOffice.user.defaultPhoto",
+			u.qrcode AS "userOffice.user.qrcode",
+			u.sign AS "userOffice.user.sign",
+			u.create_by AS "userOffice.user.createBy.id",
+			u.create_date AS "userOffice.user.createDate",
+			u.update_by AS "userOffice.user.updateBy.id",
+			u.update_date AS "userOffice.user.updateDate",
+			u.del_flag AS "userOffice.user.delFlag"
+		FROM sys_user_office uo
+		LEFT JOIN sys_user u ON u.id = uo.user_id
+		LEFT JOIN sys_user_info ui ON ui.sys_user_office_id = uo.id
+		<where>
+			uo.del_flag = '0'
+			AND uo.status = '3'
+			<if test="companyId !=null and companyId !=''">
+				AND uo.company_id = #{companyId}
+			</if>
+			<if test="name != null and name !=''">
+				AND (ui.name LIKE concat('%',#{name},'%') or  u.name LIKE concat('%',#{name},'%'))
+			</if>
+			<if test="gender != null and gender !=''">
+				AND (ui.gender = #{gender} or u.sex = #{gender})
+			</if>
+			<if test="mobilePhone !=null and mobilePhone != ''">
+				AND (ui.mobilePhone LIKE  concat('%',#{mobilePhone},'%') or u.phone LIKE concat ('%',#{mobilePhone},'%'))
+			</if>
+			<if test="idCard !=null and idCard !=''">
+				AND (ui.id_card LIKE concat('%',#{idCard},'%'))
+			</if>
+			<if test="officeId != null and officeId !=''">
+				AND uo.office_id = #{officeId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY uo.create_by DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findUserInfoByUserIdCompanyId" resultType="UserInfo">
+		SELECT <include refid="userInfoColumns"/>
+		FROM sys_user_info a
+		WHERE a.del_flag = '0'
+			  AND user_id = #{userId}
+			  AND company_id = #{companyId}
+	</select>
+    
+	<select id="get" resultType="UserInfo" >
+		SELECT 
+			<include refid="userInfoColumns"/>
+		FROM sys_user_info a
+		<include refid="userInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="findList" resultType="UserInfo">
+		SELECT 
+			<include refid="userInfoColumns"/>,
+		FROM sys_user_info a
+			<include refid="userInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="UserInfo" >
+		SELECT 
+			<include refid="userInfoColumns"/>
+		FROM sys_user_info a
+		<include refid="userInfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO sys_user_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			user_id,
+			company_id,
+			sys_user_office_id,
+			name,
+			nick_name,
+			gender,
+			job_number,
+			highest_degree,
+			highest_school,
+			highest_profession,
+			highest_graduationtime,
+			first_degree,
+			first_chool,
+			first_profession,
+			first_graduationtime,
+			birthday,
+			id_card,
+			professional_title,
+			professional_getdate,
+			social_insurance_account,
+			medical_insurance_account,
+			bank_account,
+			provident_fund_account,
+			qq,
+			weixin,
+			mobilephone,
+			email,
+			is_costengineer,
+			costengineer_getdate,
+			workstart_date,
+			probation_position,
+			probation_duration,
+			probation_enddate,
+			professional_qualification,
+			engaged_job,
+			other_qualification,
+			personal_profile
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{userId},
+			#{companyId},
+			#{userOffice.id},
+			#{name},
+			#{nickName},
+			#{gender},
+			#{jobNumber},
+			#{highestDegree},
+			#{highestSchool},
+			#{highestProfession},
+			#{highestGraduationTime},
+			#{firstDegree},
+			#{firstSchool},
+			#{firstProfession},
+			#{firstGraduationTime},
+			#{birthday},
+			#{idCard},
+			#{professionalTitle},
+			#{professionalGetdate},
+			#{socialInsuranceAccount},
+			#{medicalInsuranceAccount},
+			#{bankAccount},
+			#{providentFundAccount},
+			#{qq},
+			#{weixin},
+			#{mobilePhone},
+			#{email},
+			#{isCostengineer},
+			#{costengineerGetdate},
+			#{workstartDate},
+			#{probationPosition},
+			#{probationDuration},
+			#{probationEnddate},
+			#{professionalQualification},
+			#{engagedJob},
+			#{otherQualification},
+			#{personalProfile}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE sys_user_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			user_id = #{userId},
+			company_id = #{companyId},
+			name = #{name},
+			nick_name = #{nickName},
+			gender = #{gender},
+			job_number = #{jobNumber},
+			highest_degree = #{highestDegree},
+			highest_school = #{highestSchool},
+			highest_profession = #{highestProfession},
+			highest_graduationtime = #{highestGraduationTime},
+			first_degree = #{firstDegree},
+			first_chool = #{firstSchool},
+			first_profession = #{firstProfession},
+			first_graduationtime = #{firstGraduationTime},
+			birthday = #{birthday},
+			id_card = #{idCard},
+			professional_title = #{professionalTitle},
+			professional_getdate = #{professionalGetdate},
+			social_insurance_account = #{socialInsuranceAccount},
+			medical_insurance_account = #{medicalInsuranceAccount},
+			bank_account = #{bankAccount},
+			provident_fund_account = #{providentFundAccount},
+			qq = #{qq},
+			weixin = #{weixin},
+			mobilephone = #{mobilePhone},
+			email = #{email},
+			is_costengineer = #{isCostengineer},
+			costengineer_getdate = #{costengineerGetdate},
+			workstart_date = #{workstartDate},
+			probation_position = #{probationPosition},
+			probation_duration = #{probationDuration},
+			probation_enddate = #{probationEnddate},
+			professional_qualification = #{professionalQualification},
+			engaged_job = #{engagedJob},
+			other_qualification = #{otherQualification},
+			personal_profile = #{personalProfile},
+			sys_user_office_id = #{userOffice.id}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM sys_user_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE sys_user_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="UserInfo" statementType="STATEMENT">
+		select * FROM sys_user_info  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 179 - 0
src/main/resources/mappings/modules/iim/ChatHistoryDao.xml

@@ -0,0 +1,179 @@
+<?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.jeeplus.modules.iim.dao.ChatHistoryDao">
+    
+	<sql id="chatHistoryColumns">
+		a.id AS "id",
+		a.userid1 AS "userid1",
+		a.userid2 AS "userid2",
+		a.msg AS "msg",
+		a.status AS "status",
+		a.create_date AS "createDate",
+		a.type AS "type"
+	</sql>
+	
+	<sql id="chatHistoryJoins">
+	</sql>
+    
+	<select id="get" resultType="ChatHistory">
+		SELECT 
+			<include refid="chatHistoryColumns"/>
+		FROM iim_chat_history a
+		<include refid="chatHistoryJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="ChatHistory">
+		SELECT 
+			<include refid="chatHistoryColumns"/>
+		FROM iim_chat_history a 
+		<include refid="chatHistoryJoins"/>
+		<where>
+			
+			<if test="userid1 != null and userid1 != ''">
+				AND a.userid1 = #{userid1}
+			</if>
+			<if test="userid2 != null and userid2 != ''">
+				AND a.userid2 = #{userid2}
+			</if>
+			<if test="msg != null and msg != ''">
+				AND a.msg LIKE 
+					<if test="dbName == 'oracle'">'%'||#{msg}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{msg}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{msg},'%')</if>
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="createDate != null and createDate != ''">
+				AND a.create_date = #{createDate}
+			</if>
+		</where>
+		group by userid2
+				ORDER BY a.create_date asc
+	</select>
+	
+	<select id="findLogList" resultType="ChatHistory">
+		SELECT 
+			<include refid="chatHistoryColumns"/>
+		FROM iim_chat_history a
+		<include refid="chatHistoryJoins"/>
+		<where>
+			
+			<if test="userid1 != null and userid1 != '' and userid2 != null and userid2 != ''">
+				AND  ((a.userid1 = #{userid1} AND a.userid2 = #{userid2}) or  (a.userid1 = #{userid2} AND a.userid2 = #{userid1}))
+			</if>
+			<if test="msg != null and msg != ''">
+				AND a.msg LIKE 
+					<if test="dbName == 'oracle'">'%'||#{msg}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{msg}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{msg},'%')</if>
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="createDate != null and createDate != ''">
+				AND a.create_date = #{createDate}
+			</if>
+		</where>
+				ORDER BY a.create_date desc
+	</select>
+
+	<select id="getIMUserContacts" resultType="ChatHistory">
+		SELECT
+			<include refid="chatHistoryColumns"/>
+		FROM iim_chat_history a
+		<include refid="chatHistoryJoins"/>
+		<where>
+			a.type = 'friend'
+			<if test="userid2 != null and userid2 != ''">
+				AND  a.userid2 = #{userid2}
+			</if>
+		</where>
+				GROUP BY a.userid1
+				ORDER BY a.create_date desc
+				LIMIT 10
+	</select>
+
+	<select id="findGroupLogList" resultType="ChatHistory">
+		SELECT 
+			<include refid="chatHistoryColumns"/>
+		FROM iim_chat_history a
+		<include refid="chatHistoryJoins"/>
+		<where>
+			
+			<if test="userid2 != null and userid2 != ''">
+				AND a.userid2 = #{userid2}
+			</if>
+			<if test="msg != null and msg != ''">
+				AND a.msg LIKE 
+					<if test="dbName == 'oracle'">'%'||#{msg}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{msg}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{msg},'%')</if>
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="createDate != null and createDate != ''">
+				AND a.create_date = #{createDate}
+			</if>
+		</where>
+				ORDER BY a.create_date desc
+	</select>
+	<select id="findAllList" resultType="ChatHistory">
+		SELECT 
+			<include refid="chatHistoryColumns"/>
+		FROM iim_chat_history a
+		<include refid="chatHistoryJoins"/>
+		<where>
+			
+		</where>		
+		ORDER BY a.create_date asc
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO iim_chat_history(
+			id,
+			userid1,
+			userid2,
+			msg,
+			status,
+			create_date,
+			type
+		) VALUES (
+			#{id},
+			#{userid1},
+			#{userid2},
+			#{msg},
+			#{status},
+			#{createDate},
+			#{type}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE iim_chat_history SET 	
+			userid1 = #{userid1},
+			userid2 = #{userid2},
+			msg = #{msg},
+			status = #{status},
+			create_date = #{createDate},
+			type = #{type}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="delete">
+		DELETE FROM iim_chat_history
+		WHERE id = #{id}
+	</update>
+	
+	<!-- 查询全部用户数目 -->
+	<select id="findUnReadCount" resultType="int">
+		SELECT
+			COUNT(1)
+		FROM iim_chat_history a WHERE
+				a.userid1 = #{userid2} AND a.userid2 = #{userid1}
+				AND a.status = '0'
+	</select>
+	
+</mapper>

+ 133 - 0
src/main/resources/mappings/modules/iim/LayGroupDao.xml

@@ -0,0 +1,133 @@
+<?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.jeeplus.modules.iim.dao.LayGroupDao">
+    
+	<sql id="layGroupColumns">
+		a.id AS "id",
+		a.groupname AS "groupname",
+		a.avatar AS "avatar",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		t_user.name AS "createBy.name",
+		t_user.photo AS "createBy.photo",
+		t_user.login_name AS "createBy.loginName"
+	</sql>
+	
+	<sql id="layGroupJoins">
+	LEFT JOIN sys_user t_user ON t_user.id = a.create_by
+	</sql>
+	
+    
+	<select id="get" resultType="LayGroup" >
+		SELECT 
+			<include refid="layGroupColumns"/>
+		FROM t_group a
+		<include refid="layGroupJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="LayGroup" >
+		SELECT 
+			<include refid="layGroupColumns"/>
+		FROM t_group a
+		<include refid="layGroupJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			<if test="groupname != null and groupname != ''">
+				AND a.groupname  LIKE
+				<if test="dbName == 'oracle'">'%'||#{groupname}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{groupname}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{groupname},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="LayGroup" >
+		SELECT 
+			<include refid="layGroupColumns"/>
+		FROM t_group a
+		<include refid="layGroupJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO t_group(
+			id,
+			groupname,
+			avatar,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag
+		) VALUES (
+			#{id},
+			#{groupname},
+			#{avatar},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE t_group SET 	
+			groupname = #{groupname},
+			avatar = #{avatar},
+			create_by = #{createBy.id},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM t_group
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE t_group SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="LayGroup" statementType="STATEMENT">
+		select * FROM t_group  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 164 - 0
src/main/resources/mappings/modules/iim/LayGroupUserDao.xml

@@ -0,0 +1,164 @@
+<?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.jeeplus.modules.iim.dao.LayGroupUserDao">
+    
+	<sql id="layGroupUserColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.user_id AS "user.id",
+		a.group_id AS "group.id",
+		a.is_admin AS "isAdmin",
+		t_user.name AS "user.name",
+		t_user.photo AS "user.photo",
+		t_user.login_name AS "user.loginName"
+	</sql>
+	
+	<sql id="layGroupUserJoins">
+		LEFT JOIN t_group b ON b.id = a.group_id
+		LEFT JOIN sys_user t_user ON t_user.id = a.user_id
+	</sql>
+	
+    
+	<select id="get" resultType="LayGroupUser" >
+		SELECT 
+			<include refid="layGroupUserColumns"/>
+		FROM group_user a
+		<include refid="layGroupUserJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="LayGroupUser" >
+		SELECT 
+			<include refid="layGroupUserColumns"/>
+		FROM group_user a
+		<include refid="layGroupUserJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="user != null and user.id != null and user.id != ''">
+				AND a.user_id = #{user.id}
+			</if>
+			<if test="isAdmin != null and isAdmin != ''">
+				AND a.is_admin = #{isAdmin}
+			</if>
+			<if test="group != null and group.id != null and group.id != ''">
+				AND a.group_id = #{group.id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.create_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="LayGroupUser" >
+		SELECT 
+			<include refid="layGroupUserColumns"/>
+		FROM group_user a
+		<include refid="layGroupUserJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.create_date ASC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO group_user(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			user_id,
+			is_admin,
+			group_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{user.id},
+			#{isAdmin},
+			#{group.id}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE group_user SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			user_id = #{user.id},
+			is_admin = #{isAdmin},
+			group_id = #{group.id}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM group_user
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE group_id = #{group.id}
+			</otherwise>
+		</choose>
+	</update>
+
+	<!--物理删除-->
+	<update id="deleteUser">
+		DELETE FROM group_user
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE group_id = #{group.id} AND user_id = #{user.id}
+			</otherwise>
+		</choose>
+	</update>
+
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE group_user SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE group_id = #{group.id}
+			</otherwise>
+		</choose>
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="LayGroupUser" statementType="STATEMENT">
+		select * FROM group_user  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 158 - 0
src/main/resources/mappings/modules/iim/MailBoxDao.xml

@@ -0,0 +1,158 @@
+<?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.jeeplus.modules.iim.dao.MailBoxDao">
+    
+	<sql id="mailBoxColumns">
+		a.id AS "id",
+		a.readstatus AS "readstatus",
+		a.senderid AS "sender.id",
+		a.receiverid AS "receiver.id",
+		a.sendtime AS "sendtime",
+		a.mailid AS "mail.id",
+		receiver.name AS "receiver.name",
+		sender.name AS "sender.name",
+		sender.photo AS "sender.photo",
+		mail.title AS "mail.title",
+		mail.overview AS "mail.overview",
+		mail.content AS "mail.content"
+	</sql>
+	
+	<sql id="mailBoxJoins">
+		LEFT JOIN iim_mail mail ON mail.id = a.mailid
+		LEFT JOIN sys_user receiver ON receiver.id = a.receiverid
+		LEFT JOIN sys_user sender ON sender.id = a.senderid
+	</sql>
+     <resultMap type="MailBox" id="MailMap" autoMapping="true">
+    	<association property="mail"  javaType="Mail">
+			<id property="id" column="mail.id"/>
+			<result property="title" column="mail.title"/>
+			<result property="overview" column="mail.overview"/>
+			<result property="content" column="mail.content" typeHandler="com.jeeplus.common.mapper.ConvertBlobTypeHandler"/>
+		</association>
+	</resultMap>
+	<select id="get" resultMap="MailMap">
+		SELECT 
+			<include refid="mailBoxColumns"/>
+		FROM iim_mail_box a
+		<include refid="mailBoxJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="MailBox">
+		SELECT 
+			<include refid="mailBoxColumns"/>
+		FROM iim_mail_box a
+		<include refid="mailBoxJoins"/>
+		<where>
+			<if test="receiver != null and receiver.id != null and receiver.id != ''">
+				AND a.receiverid = #{receiver.id}
+			</if>
+			<if test="readstatus != null and readstatus != ''">
+				AND a.readstatus = #{readstatus}
+			</if>
+			<if test="mail != null and mail.title != null and mail.title != ''">
+				AND ( mail.title like 
+					<if test="dbName == 'oracle'">'%'||#{mail.title}||'%'</if>
+					<if test="dbName == 'mysql'">CONCAT('%', #{mail.title}, '%')</if>
+					or 
+					mail.content like
+					<if test="dbName == 'oracle'">'%'||#{mail.title}||'%'</if>
+					<if test="dbName == 'mysql'">CONCAT('%', #{mail.title}, '%')</if>
+					)
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="MailBox">
+		SELECT 
+			<include refid="mailBoxColumns"/>
+		FROM iim_mail_box a
+		<include refid="mailBoxJoins"/>
+		<where>
+			
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="getCount" resultType="java.lang.Integer">
+		SELECT count(*)
+		FROM iim_mail_box a
+		<include refid="mailBoxJoins"/>
+		<where>
+			<if test="receiver != null and receiver.id != null and receiver.id != ''">
+				AND a.receiverid = #{receiver.id}
+			</if>
+			
+			<if test="readstatus !=null and readstatus != ''">
+				and a.readstatus = #{readstatus}
+			</if>
+		</where>		
+	
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO iim_mail_box(
+			id,
+			readstatus,
+			senderid,
+			receiverid,
+			sendtime,
+			mailid
+		) VALUES (
+			#{id},
+			#{readstatus},
+			#{sender.id},
+			#{receiver.id},
+			#{sendtime},
+			#{mail.id}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE iim_mail_box SET 	
+			readstatus = #{readstatus},
+			senderid = #{sender.id},
+			receiverid = #{receiver.id},
+			sendtime = #{sendtime},
+			mailid = #{mail.id}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="delete">
+		DELETE FROM iim_mail_box
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE mailid = #{mail.id}
+			</otherwise>
+		</choose>
+	</update>
+	
+<!-- 	<update id="deleteByLogic">
+		DELETE FROM iim_mail_box
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE mailid = #{mail.id}
+			</otherwise>
+		</choose>
+	</update>-->
+	
+</mapper>

+ 157 - 0
src/main/resources/mappings/modules/iim/MailComposeDao.xml

@@ -0,0 +1,157 @@
+<?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.jeeplus.modules.iim.dao.MailComposeDao">
+    
+	<sql id="mailComposeColumns">
+		a.id AS "id",
+		a.status AS "status",
+		a.readstatus AS "readstatus",
+		a.senderid AS "sender.id",
+		a.receiverid AS "receiver.id",
+		a.sendtime AS "sendtime",
+		a.mailid AS "mail.id",
+		receiver.name AS "receiver.name",
+		mail.title AS "mail.title",
+		mail.overview AS "mail.overview",
+		mail.content AS "mail.content"
+	</sql>
+	
+	<sql id="mailComposeJoins">
+		LEFT JOIN iim_mail mail ON mail.id = a.mailid
+		LEFT JOIN sys_user receiver ON receiver.id = a.receiverid
+	</sql>
+      <resultMap type="MailCompose" id="MailMap" autoMapping="true">
+    	<association property="mail"  javaType="Mail">
+			<id property="id" column="mail.id"/>
+			<result property="title" column="mail.title"/>
+			<result property="overview" column="mail.overview"/>
+			<result property="content" column="mail.content" typeHandler="com.jeeplus.common.mapper.ConvertBlobTypeHandler"/>
+		</association>
+	</resultMap>
+	<select id="get" resultMap="MailMap">
+		SELECT 
+			<include refid="mailComposeColumns"/>
+		FROM iim_mail_compose a
+		<include refid="mailComposeJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="MailCompose">
+		SELECT 
+			<include refid="mailComposeColumns"/>
+		FROM iim_mail_compose a
+		<include refid="mailComposeJoins"/>
+		<where>
+			<if test="status != null  and status != ''">
+				AND a.status = #{status}
+			</if>
+			
+			<if test="mail != null and mail.title != null and mail.title != ''">
+				AND ( mail.title like 
+					<if test="dbName == 'oracle'">'%'||#{mail.title}||'%'</if>
+					<if test="dbName == 'mysql'">CONCAT('%', #{mail.title}, '%')</if>
+					or 
+					mail.content like
+					<if test="dbName == 'oracle'">'%'||#{mail.title}||'%'</if>
+					<if test="dbName == 'mysql'">CONCAT('%', #{mail.title}, '%')</if>
+					)
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="MailCompose">
+		SELECT 
+			<include refid="mailComposeColumns"/>
+		FROM iim_mail_compose a
+		<include refid="mailComposeJoins"/>
+		<where>
+			
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="getCount" resultType="java.lang.Integer">
+		SELECT count(*)
+		FROM iim_mail_compose a
+		<include refid="mailComposeJoins"/>
+		<where>
+			<if test="sender != null and sender.id != null and sender.id != ''">
+				AND a.senderid = #{sender.id}
+			</if>
+			
+			<if test="status !=null and status != ''">
+				and a.status = #{status}
+			</if>
+		</where>		
+	
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO iim_mail_compose(
+			id,
+			status,
+			readstatus,
+			senderid,
+			receiverid,
+			sendtime,
+			mailid
+		) VALUES (
+			#{id},
+			#{status},
+			#{readstatus},
+			#{sender.id},
+			#{receiver.id},
+			#{sendtime},
+			#{mail.id}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE iim_mail_compose SET 	
+			status = #{status},
+			readstatus = #{readstatus},
+			senderid = #{sender.id},
+			receiverid = #{receiver.id},
+			sendtime = #{sendtime},
+			mailid = #{mail.id}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="delete">
+		DELETE FROM iim_mail_compose
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE mailid = #{mail.id}
+			</otherwise>
+		</choose>
+	</update>
+	
+	<!-- <update id="deleteByLogic">
+		DELETE FROM iim_mail_compose
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE mailid = #{mail.id}
+			</otherwise>
+		</choose>
+	</update>-->
+	
+</mapper>

+ 95 - 0
src/main/resources/mappings/modules/iim/MailDao.xml

@@ -0,0 +1,95 @@
+<?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.jeeplus.modules.iim.dao.MailDao">
+    
+	<sql id="mailColumns">
+		a.id AS "id",
+		a.title AS "title",
+		a.overview AS "overview",
+		a.content AS "content"
+	</sql>
+	
+	<sql id="mailJoins">
+	</sql>
+    
+	<select id="get" resultType="Mail">
+		SELECT 
+			<include refid="mailColumns"/>
+		FROM iim_mail a
+		<include refid="mailJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Mail">
+		SELECT 
+			<include refid="mailColumns"/>
+		FROM iim_mail a
+		<include refid="mailJoins"/>
+		<where>
+			
+			<if test="title != null and title != ''">
+				AND a.title LIKE 
+					<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{title}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{title},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Mail">
+		SELECT 
+			<include refid="mailColumns"/>
+		FROM iim_mail a
+		<include refid="mailJoins"/>
+		<where>
+			
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO iim_mail(
+			id,
+			title,
+			overview,
+			content
+		) VALUES (
+			#{id},
+			#{title},
+			#{overview},
+			#{content}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE iim_mail SET 	
+			title = #{title},
+			overview = #{overview},
+			content = #{content}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="delete">
+		DELETE FROM iim_mail
+		WHERE id = #{id}
+	</update>
+	
+	<!-- <update id="deleteByLogic">
+		DELETE FROM iim_mail
+		WHERE id = #{id}
+	</update>-->
+	
+</mapper>

+ 209 - 0
src/main/resources/mappings/modules/iim/MyCalendarDao.xml

@@ -0,0 +1,209 @@
+<?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.jeeplus.modules.iim.dao.MyCalendarDao">
+
+	<sql id="myCalendarColumns">
+		a.id AS "id",
+		a.title AS "title",
+		a.starttime AS "start",
+		a.endtime AS "end",
+		a.allday AS "adllDay",
+		a.color AS "color",
+		a.userid AS "user.id",
+		a.location AS "location",
+		a.noticetime AS "notice",
+		tuser.name AS "user.name",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId"
+		<!--新加location字段和notice字段 -->
+	</sql>
+
+	<sql id="myCalendarJoins">
+		LEFT JOIN sys_user tuser ON tuser.id = a.userid
+	</sql>
+
+	<select id="get" resultType="MyCalendar">
+		SELECT
+		<include refid="myCalendarColumns" />
+		FROM calendar a
+		<include refid="myCalendarJoins" />
+		WHERE a.id = #{id}
+	</select>
+
+    <select id="getByUserIdCount" resultType="MyCalendar">
+        SELECT
+        a.userid AS "user.id",
+        count(*) AS "count"
+        FROM calendar a
+        <include refid="myCalendarJoins" />
+        WHERE 1=1
+        <if test="start != null  and start != ''">
+        AND	str_to_date(a.starttime,'%Y-%m-%d') = str_to_date(#{start},'%Y-%m-%d')
+        or ( str_to_date(a.starttime,'%Y-%m-%d') &lt; str_to_date( #{start},'%Y-%m-%d')
+        and str_to_date(a.endtime,'%Y-%m-%d') &gt;= str_to_date( #{start},'%Y-%m-%d'))
+        </if>
+        GROUP BY a.userid
+    </select>
+
+	<select id="findList" resultType="MyCalendar">
+		SELECT
+		<include refid="myCalendarColumns" />
+		FROM calendar a
+		<include refid="myCalendarJoins" />
+		<where>
+
+			<if test="user != null and user.id != null and user.id != ''">
+				AND a.userid = #{user.id}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findListByDate" resultType="MyCalendar">
+		SELECT
+		<include refid="myCalendarColumns" />
+		FROM calendar a
+		<include refid="myCalendarJoins" />
+		<where>
+
+			<if test="user != null and user.id != null and user.id != ''">
+				AND a.userid = #{user.id}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="start != null  and start != '' and end != null  and end != ''">
+				AND a.starttime &lt;= #{start}
+				AND a.endtime &gt;= #{end}
+			</if>
+
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findListByStart" resultType="MyCalendar">
+		SELECT
+		<include refid="myCalendarColumns" />
+		FROM calendar a
+		<include refid="myCalendarJoins" />
+		<where>
+
+			<if test="user != null and user.id != null and user.id != ''">
+				AND a.userid = #{user.id}
+			</if>
+
+			<if test="start != null  and start != ''">
+				AND a.starttime like CONCAT(#{start},'%')
+			</if>
+
+
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+
+
+	<select id="findAllList" resultType="MyCalendar">
+		SELECT
+		<include refid="myCalendarColumns" />
+		FROM calendar a
+		<include refid="myCalendarJoins" />
+		<where>
+
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+
+	<insert id="insert">
+		INSERT INTO calendar(
+		id,
+		title,
+		starttime,
+		endtime,
+		allday,
+		color,
+		userid,
+		location,
+		company_id,
+		office_id,
+		noticetime
+		) VALUES (
+		#{id},
+		#{title},
+		#{start},
+		#{end},
+		#{adllDay},
+		#{color},
+		#{user.id},
+		#{location},
+		#{companyId},
+		#{officeId},
+		#{notice}
+		)
+	</insert>
+
+	<update id="update">
+		UPDATE calendar SET
+		title = #{title},
+		starttime = #{start},
+		endtime = #{end},
+		allday = #{adllDay},
+		color = #{color},
+		userid = #{user.id},
+		location = #{location},
+		company_id = #{companyId},
+		office_id = #{officeId},
+		noticetime = #{notice}
+		WHERE id = #{id}
+	</update>
+
+
+	<!--物理删除 -->
+	<update id="delete">
+		DELETE FROM calendar
+		WHERE id = #{id}
+	</update>
+
+	<!--逻辑删除 -->
+	<update id="deleteByLogic">
+		UPDATE calendar SET
+		del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+
+
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="MyCalendar"
+		statementType="STATEMENT">
+		select * FROM calendar where ${propertyName} =
+		'${value}'
+	</select>
+
+</mapper>

+ 215 - 0
src/main/resources/mappings/modules/isignature/ISignatureDocumentDao.xml

@@ -0,0 +1,215 @@
+<?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.jeeplus.modules.isignature.dao.ISignatureDocumentDao">
+    
+	<sql id="iSignatureDocumentColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.record_id AS "recordId",
+		a.subject AS "subject",
+		a.type AS "type",
+		a.status AS "status",
+		a.company_id AS "companyId",
+		a.file_path AS "filePath",
+		a.file_name AS "fileName",
+		a.image_path AS "imagePath",
+		a.isignature_status as "isignatureStatus"
+	</sql>
+	
+	<sql id="iSignatureDocumentJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ISignatureDocument" >
+		SELECT 
+			<include refid="iSignatureDocumentColumns"/>
+		FROM isignature_document a
+		<include refid="iSignatureDocumentJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getByRecordId" resultType="ISignatureDocument" >
+		SELECT
+			<include refid="iSignatureDocumentColumns"/>
+		FROM isignature_document a
+		<include refid="iSignatureDocumentJoins"/>
+		WHERE a.record_id = #{recordId}
+	</select>
+	
+	<select id="findList" resultType="ISignatureDocument" >
+		SELECT 
+			<include refid="iSignatureDocumentColumns"/>
+		FROM isignature_document a
+		<include refid="iSignatureDocumentJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="companyId != null and companyId !=''">
+				AND a.company_id = #{companyId}
+			</if>
+			<!--<if test="createBy != null and createBy.id !=null and createBy.id !=''">
+				AND a.create_by = #{createBy.id}
+			</if>-->
+			<if test="subject != null and subject !=''">
+				AND a.subject like "%"#{subject}"%"
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ISignatureDocument" >
+		SELECT 
+			<include refid="iSignatureDocumentColumns"/>
+		FROM isignature_document a
+		<include refid="iSignatureDocumentJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO isignature_document(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			record_id,
+			subject,
+			type,
+			status,
+			company_id,
+			file_path,
+			file_name,
+			image_path,
+			isignature_status
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{recordId},
+			#{subject},
+			#{type},
+			#{status},
+			#{companyId},
+			#{filePath},
+			#{fileName},
+			#{imagePath},
+			#{isignatureStatus}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE isignature_document SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			record_id = #{recordId},
+			subject = #{subject},
+			type = #{type},
+			status = #{status},
+			company_id = #{companyId},
+			file_path = #{filePath},
+			file_name = #{fileName},
+			image_path = #{imagePath},
+			isignature_status = #{isignatureStatus}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM isignature_document
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE isignature_document SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ISignatureDocument" statementType="STATEMENT">
+		select * FROM isignature_document  where ${propertyName} = '${value}'
+	</select>
+
+	<update id="updateSelective">
+		UPDATE isignature_document
+		SET
+		<trim suffixOverrides=",">
+			<if test="updateBy!=null">
+				update_by = #{updateBy.id},
+			</if>
+			<if test="updateDate!=null">
+				update_date = #{updateDate},
+			</if>
+			<if test="remarks!=null">
+				remarks = #{remarks},
+			</if>
+			<if test="recordId!=null">
+				record_id = #{recordId},
+			</if>
+			<if test="subject!=null">
+				subject = #{subject},
+			</if>
+			<if test="type!=null">
+				type = #{type},
+			</if>
+			<if test="status!=null">
+				status = #{status},
+			</if>
+			<if test="companyId!=null">
+				company_id = #{companyId},
+			</if>
+			<if test="filePath!=null">
+				file_path = #{filePath},
+			</if>
+			<if test="fileName!=null">
+				file_name = #{fileName},
+			</if>
+			<if test="imagePath!=null">
+				image_path = #{imagePath},
+			</if>
+			<if test="isignatureStatus!=null">
+				isignature_status = #{isignatureStatus}
+			</if>
+		</trim>
+		WHERE id = #{id}
+	</update>
+
+	<select id="getCount" resultType="int" >
+		SELECT
+		count(*)
+		FROM isignature_document a
+		join work_attachment w on w.id=a.record_id and w.attachment_id=#{id}
+		where a.isignature_status='1'
+	</select>
+</mapper>

+ 360 - 0
src/main/resources/mappings/modules/leaveapply/LeaveApplyDao.xml

@@ -0,0 +1,360 @@
+<?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.jeeplus.modules.leaveapply.dao.LeaveApplyDao">
+    
+	<sql id="leaveApplyColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.office_id AS "officeId",
+		a.company_id AS "companyId",
+		a.branch_office AS "branchOffice",
+		a.staff_id AS "staffId",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.start_type AS "startType",
+		a.end_type AS "endType",
+		a.long_time AS "longTime",
+		a.status AS "status",
+		a.process_instance_id AS "processInstanceId",
+		a.sell_status AS "sellStatus",
+		a.apply_time AS "applyTime",
+		a.no AS "no",
+		a.reason AS "reason",
+		w.name AS "basicInfo.name",
+		w.id AS "basicInfo.id",
+		w.no AS "basicInfo.no",
+		w.status as "basicInfo.status",
+		m.top_company AS "basicInfo.office.name",
+		m.id AS "basicInfo.office.id",
+		j.name AS "basicInfo.jobGrade.name",
+		a.applyer,
+		a.back_time,
+		a.contrast,
+		a.back_start_type as "backStartType"
+
+	</sql>
+	
+	<sql id="leaveApplyJoins">
+		left join work_staff_achives w on w.id=a.staff_id
+		left join sys_office m on m.id=w.office_id
+		left join work_job_grade j on j.id=w.job_grade
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		LEFT JOIN sys_user u ON u.id = a.create_by
+	</sql>
+	
+    
+	<select id="get" resultType="LeaveApply" >
+		SELECT 
+			<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		<include refid="leaveApplyJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getByStaffIdAndTime" resultType="LeaveApply" >
+		SELECT
+		<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		<include refid="leaveApplyJoins"/>
+		LEFT JOIN leave_detail d ON d.leave_id = a.id
+		WHERE a.staff_id = #{staffId}
+		AND a.status IN ('5','8')
+		AND #{time}
+		BETWEEN d.start_time AND d.end_time
+		AND #{time} &lt;= d.real_end_time;
+	</select>
+	
+	<select id="findList" resultType="LeaveApply" >
+		SELECT 
+			<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		<include refid="leaveApplyJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="beginApplyTime != null and endApplyTime != null and beginApplyTime != '' and endApplyTime != ''">
+				AND a.apply_time BETWEEN #{beginApplyTime} AND #{endApplyTime}
+			</if>
+			<if test="basicInfo != null and basicInfo.name != null and basicInfo.name != ''">
+				AND w.name  LIKE
+				<if test="dbName == 'oracle'">'%'||#{basicInfo.name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{basicInfo.name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{basicInfo.name},'%')</if>
+			</if>
+			${sqlMap.dsf}
+			<if test="staffId != null and staffId != ''">
+				AND a.staff_id = #{staffId}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="LeaveApply" >
+		SELECT 
+			<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		<include refid="leaveApplyJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO leave_apply(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			office_id,
+			company_id,
+			branch_office,
+			staff_id,
+			start_time,
+			end_time,
+			start_type,
+			end_type,
+			long_time,
+			status,
+			process_instance_id,
+			sell_status,
+			apply_time,
+			no,
+			reason,
+			applyer,
+			back_time,
+		    contrast,
+		    back_start_type
+
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{officeId},
+			#{companyId},
+			#{branchOffice},
+			#{basicInfo.id},
+			#{startTime},
+			#{endTime},
+			#{startType},
+			#{endType},
+			#{longTime},
+			#{status},
+			#{processInstanceId},
+			#{sellStatus},
+			#{applyTime},
+			#{no},
+			#{reason},
+			#{applyer},
+			#{backTime},
+			#{contrast},
+			#{backStartType}
+
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE leave_apply SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			office_id = #{officeId},
+			company_id = #{companyId},
+			branch_office = #{branchOffice},
+			staff_id = #{basicInfo.id},
+			start_time = #{startTime},
+			end_time = #{endTime},
+			start_type = #{startType},
+			end_type = #{endType},
+			long_time = #{longTime},
+			status = #{status},
+			process_instance_id = #{processInstanceId},
+			sell_status = #{sellStatus},
+			apply_time = #{applyTime},
+			no = #{no},
+			reason = #{reason},
+			applyer=#{applyer},
+			back_time = #{backTime},
+			contrast=#{contrast},
+			back_start_type = #{backStartType}
+
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM leave_apply
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE leave_apply SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="LeaveApply" statementType="STATEMENT">
+		select * FROM leave_apply  where ${propertyName} = '${value}'
+	</select>
+	<update id="updateProcessIdAndStatus" >
+        UPDATE  leave_apply SET
+        process_instance_id = #{processInstanceId},
+        status = #{status}
+        WHERE id = #{id}
+    </update>
+
+	<select id="getCount" resultType="LeaveApply" >
+		SELECT
+		<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		<include refid="leaveApplyJoins"/>
+		WHERE a.staff_id = #{basicInfo.id} and a.status not in ('8')
+	</select>
+	<select id="getMaxTime" resultType="java.lang.String" parameterType="java.lang.String">
+	    SELECT
+	       max(DATE_FORMAT(end_time, '%Y-%m-%d')) AS endTime
+         FROM `leave_apply` l
+        WHERE
+       del_flag='0'
+      and staff_id = #{staffId}
+      and id !=#{id}
+	</select>
+
+	<select id="findHisTime" resultType="java.lang.Integer">
+	SELECT
+	count(*) as "total"
+	FROM leave_detail a
+	<where>
+		a.del_flag = '0'
+		AND a.leave_id in
+		(select y.id from leave_apply y where y.staff_id=#{staffId} and y.status='8' and y.del_flag='0'
+		<if test="id != null and id != ''">
+			and y.id!=#{id}
+		</if>)
+		and ((#{startTime}> a.start_time  and #{startTime} &lt; a.end_time)
+		or (#{endTime} &gt; a.start_time and #{endTime} &lt; a.end_time))
+	</where>
+</select>
+	<select id="findHisDate" resultType="java.lang.Integer">
+		SELECT
+	count(*) AS "total" FROM
+	leave_detail a WHERE
+	a.del_flag = '0' AND a.leave_id IN (
+	SELECT y.id FROM leave_apply y WHERE y.staff_id =#{staffId}
+	AND y. STATUS = '8'
+	AND y.del_flag = '0'
+	AND y.id !=#{id})
+    AND ((a.start_time = #{startTime} and a.start_type=#{startType})
+	    OR (a.start_time = #{endTime} and a.start_type=#{endType})
+	    OR (a.end_time = #{startTime} and a.end_type=#{startType})
+        OR (a.end_time = #{endTime} and a.end_type=#{endType}))
+	</select>
+
+	<select id="getMange" resultType="LeaveApply" >
+		SELECT
+		<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		<include refid="leaveApplyJoins"/>
+		WHERE a.company_id=#{companyId} and a.del_flag = '0' and a.status in('5','8','6','7','9')
+		<if test="basicInfo != null and basicInfo.name != null and basicInfo.name != ''">
+			AND w.name LIKE
+			<if test="dbName == 'oracle'">'%'||#{basicInfo.name}||'%'</if>
+			<if test="dbName == 'mssql'">'%'+#{basicInfo.name}+'%'</if>
+			<if test="dbName == 'mysql'">concat('%',#{basicInfo.name},'%')</if>
+		</if>
+		<if test="basicInfo != null and basicInfo.office != null  and basicInfo.office.id != null and basicInfo.office.id != ''">
+			AND a.office_id = #{basicInfo.office.id}
+		</if>
+<!--		有异常-->
+<!--		group by a.staff_id order by w.no ASC-->
+	</select>
+
+	<select id="getSumDays" resultType="LeaveApply" parameterType="java.lang.String">
+		SELECT
+	ifnull(sum(a.sums),0) as "sumDays"
+		FROM leave_count a
+		where
+			a.del_flag = '0'
+			and a.staff_id =#{staffId}
+	</select>
+	<select id="getResetState" resultType="int" parameterType="java.lang.String">
+		SELECT
+		count(*)
+		FROM leave_count a
+		where
+			a.del_flag = '0'
+			and a.staff_id =#{staffId}
+			and a.reset_state='0'
+	</select>
+	<update id="updateDetailFlat">
+		UPDATE leave_detail a SET
+			a.flat = '1',a.state='0'
+		WHERE a.leave_id=#{id}
+	</update>
+	<update id="deleteDetail">
+		DELETE FROM leave_detail
+		WHERE leave_id = #{id} and state='1'
+	</update>
+
+	<update id="updateBack">
+		UPDATE leave_apply a SET
+			a.back_time=null,
+		a.contrast=null
+		WHERE a.id=#{id}
+	</update>
+	<update id="updateLongTime">
+		UPDATE leave_apply a SET
+			a.long_time=(select ifnull(sum(days),0) from leave_detail
+		WHERE leave_id = #{id} and state!='1')
+		WHERE a.id=#{id}
+	</update>
+
+
+	<select id="getBackTaskList" resultType="LeaveApply" >
+     SELECT
+		<include refid="leaveApplyColumns"/>
+		FROM leave_apply a
+		left join work_staff_achives w on w.id=a.staff_id
+		left join sys_office m on m.id=w.office_id
+		left join work_job_grade j on j.id=w.job_grade
+      where a.id in (SELECT a.id FROM leave_apply a
+		LEFT JOIN (SELECT d.leave_id, max(d.end_time) AS end_time FROM leave_detail d
+		WHERE d.del_flag = '0' GROUP BY d.leave_id) i ON i.leave_id = a.id
+		WHERE a.del_flag = '0'
+		AND a.`status` = '5'
+		AND date_add(DATE_FORMAT(i.end_time, '%Y-%m-%d'),INTERVAL 1 day)=DATE_FORMAT(now(), '%Y-%m-%d'))
+	</select>
+</mapper>

+ 151 - 0
src/main/resources/mappings/modules/leaveapply/LeaveCountDao.xml

@@ -0,0 +1,151 @@
+<?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.jeeplus.modules.leaveapply.dao.LeaveCountDao">
+    
+	<sql id="leaveCountColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.staff_id AS "staffId",
+		a.reset_state as "resetState",
+		a.leave_type_id AS "leaveTypeId",
+		a.counts AS "counts",
+		a.sums AS "sums",
+		a.up_days AS "upDays",
+		a.year AS "year",
+		a.reset_date AS "resetDate",
+		l.name as "leaveType.name",
+		l.method as "leaveType.method",
+		l.zero as "leaveType.zero"
+	</sql>
+	
+	<sql id="leaveCountJoins">
+		left join leave_type l on l.id=a.leave_type_id
+	</sql>
+	
+    
+	<select id="get" resultType="LeaveCount" >
+		SELECT 
+			<include refid="leaveCountColumns"/>
+		FROM leave_count a
+		<include refid="leaveCountJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="LeaveCount" >
+		SELECT 
+			<include refid="leaveCountColumns"/>
+		FROM leave_count a
+		<include refid="leaveCountJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="staffId != null and staffId != ''">
+				AND a.staff_id = #{staffId}
+			</if>
+			<if test="leaveTypeId != null and leaveTypeId != ''">
+				AND a.leave_type_id = #{leaveTypeId}
+			</if>
+			<if test="year != null and year != ''">
+				AND a.year = #{year}
+			</if>
+			<if test="resetState != null and resetState != ''">
+				AND a.reset_state = #{resetState}
+			</if>
+		</where>
+	</select>
+	
+	<select id="findAllList" resultType="LeaveCount" >
+		SELECT 
+			<include refid="leaveCountColumns"/>
+		FROM leave_count a
+		<include refid="leaveCountJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO leave_count(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			staff_id,
+			leave_type_id,
+			counts,
+			sums,
+			reset_date,
+			reset_state,
+			up_days,
+			year
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{staffId},
+			#{leaveTypeId},
+			#{counts},
+			#{sums},
+			#{resetDate},
+			#{resetState},
+			#{upDays},
+			#{year}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE leave_count SET
+			counts = #{counts},
+			sums = #{sums},
+			update_date = #{updateDate}
+		WHERE id = #{id}
+	</update>
+	<update id="updateReset" parameterType="java.lang.String">
+		UPDATE leave_count SET
+			counts ='0',
+			sums = '0',
+		    reset_date=now(),
+		    reset_state='1',
+		    update_date=now()
+		WHERE id = #{id}
+	</update>
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM leave_count
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE leave_count SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="LeaveCount" statementType="STATEMENT">
+		select * FROM leave_count  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 297 - 0
src/main/resources/mappings/modules/leaveapply/LeaveDetailDao.xml

@@ -0,0 +1,297 @@
+<?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.jeeplus.modules.leaveapply.dao.LeaveDetailDao">
+    
+	<sql id="leaveDetailColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.leave_id AS "leaveId",
+		a.days AS "days",
+		a.flat AS "flat",
+		a.state AS "state",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.real_end_time AS "realEndTime",
+		a.real_end_type AS "realEndType",
+		a.real_days AS "realDays",
+		a.is_use AS "isUse",
+		a.start_type AS "startType",
+		a.end_type AS "endType",
+		a.leave_type_id AS "leaveTypeId",
+		b.name as "leaveType.name",
+		b.model as "leaveType.model",
+		b.unit as "leaveType.unit",
+		b.method as "leaveType.method",
+		b.zero as "leaveType.zero",
+		b.is_attendance as "leaveType.isAttendance",
+		b.is_next as "leaveType.isNext",
+		b.no as "leaveType.no",
+		b.id as "leaveType.id"
+	</sql>
+	
+	<sql id="leaveDetailJoins">
+		left join leave_type b on b.id=a.leave_type_id
+	</sql>
+	
+    
+	<select id="get" resultType="LeaveDetail" >
+		SELECT 
+			<include refid="leaveDetailColumns"/>
+		FROM leave_detail a
+		<include refid="leaveDetailJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="LeaveDetail" >
+		SELECT 
+			<include refid="leaveDetailColumns"/>
+		FROM leave_detail a
+		<include refid="leaveDetailJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			AND a.leave_id = #{leaveId}
+		</where>
+		ORDER BY a.create_date Asc
+	</select>
+	
+	<select id="findAllList" resultType="LeaveDetail" >
+		SELECT 
+			<include refid="leaveDetailColumns"/>
+		FROM leave_detail a
+		<include refid="leaveDetailJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO leave_detail(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			leave_id,
+			days,
+			flat,
+			leave_type_id,
+			start_time,
+		    end_time,
+		    start_type,
+		    end_type,
+		    state,
+		    real_end_time,
+		    is_use,
+		    real_end_type,
+		    real_days
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{leaveId},
+			#{days},
+			#{flat},
+			#{leaveType.id},
+			#{startTime},
+			#{endTime},
+			#{startType},
+			#{endType},
+			#{state},
+			#{realEndTime},
+			#{isUse},
+			#{realEndType},
+			#{realDays}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE leave_detail SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			leave_id = #{leaveId},
+			days = #{days},
+			del_flag=#{delFlag},
+			leave_type_id = #{leaveType.id},
+			start_time = #{startTime},
+			end_time = #{endTime},
+			start_type = #{startType},
+			end_type = #{endType}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM leave_detail
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE leave_detail SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="LeaveDetail" statementType="STATEMENT">
+		select * FROM leave_detail  where ${propertyName} = '${value}'
+	</select>
+	<select id="findListHis" resultType="LeaveDetail" parameterType="java.lang.String">
+		SELECT
+		b.name as "name",
+		a.sums as "sumDays",
+		a.counts as "counts",
+		a.sums as "days"
+		FROM leave_count a
+		left join leave_type b on b.id=a.leave_type_id
+		<where>
+			a.staff_id=#{staffId}
+		</where>
+	</select>
+	<select id="findListResetHis" resultType="LeaveDetail" parameterType="java.lang.String">
+		SELECT
+		b.name as "name",
+		sum(a.days) as "sumDays",
+		count(*) as "counts",
+		sum(a.days) as "days"
+		FROM leave_detail a
+		left join leave_type b on b.id=a.leave_type_id
+		<where>
+			a.del_flag = '0'  and (a.reset_state='0' or a.reset_state is null)
+			AND a.leave_id in (select id from leave_apply y where y.staff_id=#{staffId} and y.status='8' and y.del_flag='0')
+			group by a.leave_type_id
+		</where>
+	</select>
+
+	<update id="updateReset"  parameterType="java.lang.String">
+		update leave_detail a
+		set a.reset_state='1',
+		reset_time=now()
+		<where>
+			a.del_flag = '0'  and (a.reset_state='0' or a.reset_state is null)
+			AND a.leave_id in (select id from leave_apply y where y.staff_id=#{staffId} and y.status='8' and y.del_flag='0')
+		</where>
+	</update>
+
+	<select id="findHisList" resultType="LeaveDetail" parameterType="java.lang.String">
+		SELECT
+		<include refid="leaveDetailColumns"/>
+		FROM leave_detail a
+		<include refid="leaveDetailJoins"/>
+		<where>
+			a.del_flag = '0'
+            and a.is_use='0'
+			AND a.leave_id in (select id from leave_apply y where y.staff_id=#{staffId} and y.status='8' and y.del_flag='0')
+		</where>
+	</select>
+    <select id="findListValidateTime" resultType="LeaveDetail" parameterType="java.lang.String">
+        SELECT
+        <include refid="leaveDetailColumns"/>
+        FROM leave_detail a
+        <include refid="leaveDetailJoins"/>
+        <where>
+            a.del_flag = '0'
+            and a.is_use='0'
+            AND a.leave_id in (select id from leave_apply y where y.staff_id=#{staffId} and y.del_flag='0'AND y.status not in('1','3','4') )
+        </where>
+    </select>
+
+
+	<update id="updateState" >
+		update leave_detail a
+		set a.state='0'
+		<where>
+			a.del_flag = '0'
+			AND a.leave_id =#{leaveId}
+		</where>
+	</update>
+
+
+
+	<select id="findMaxEndTime" resultType="java.lang.String" parameterType="java.lang.String">
+		SELECT
+	    max(DATE_FORMAT(end_time, '%Y-%m-%d')) AS endTime
+	    FROM
+	    leave_detail a
+	    WHERE
+	    a.del_flag = '0' and a.state = '0'
+	    AND a.leave_id =#{leaveId}
+	</select>
+
+    <update id="updateRealEndDate" >
+        update leave_detail a
+        set a.real_end_time=#{time},
+        a.real_end_type=#{type},
+		a.real_days=#{realDays}
+        <where>
+          a.id =#{id}
+        </where>
+    </update>
+    <update id="updateIsUse" >
+        update leave_detail a
+        set a.is_use='1'
+        <where>
+            a.id =#{id}
+        </where>
+    </update>
+
+	<select id="sumday" resultType="java.lang.String" parameterType="java.lang.String">
+		SELECT
+	ifnull(sum(d.real_days),0) sumday
+         FROM
+	leave_detail d
+         WHERE
+	d.is_use = '0'
+  AND d.del_flag = '0'
+  AND d.state = '0'
+  AND d.leave_type_id =#{typeId}
+  AND d.leave_id !=#{leaveId}
+	</select>
+	<select id="onlyOne" resultType="LeaveDetail" parameterType="java.lang.String">
+		SELECT
+		<include refid="leaveDetailColumns"/>
+		FROM leave_detail a
+		<include refid="leaveDetailJoins"/>
+         WHERE
+	a.is_use = '0'
+  AND a.del_flag = '0'
+  AND a.state = '0'
+  and a.leave_id in (select id from leave_apply y where y.staff_id=#{staffId} and y.status='8' and y.del_flag='0')
+  and a.leave_type_id=#{typeId}
+	</select>
+
+	<select id="maxdays" resultType="java.lang.String" parameterType="java.lang.String">
+		SELECT
+	ifnull(sum(d.real_days),0) sumday
+         FROM
+	leave_detail d
+         WHERE
+	d.is_use = '0'
+  AND d.del_flag = '0'
+  AND d.state = '0'
+  AND d.leave_type_id =#{typeId}
+  AND d.leave_id in (select id from leave_apply y where y.staff_id=#{staffId} and y.status='8' and y.del_flag='0')
+	</select>
+</mapper>

+ 254 - 0
src/main/resources/mappings/modules/leavetype/LeaveTypeDao.xml

@@ -0,0 +1,254 @@
+<?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.jeeplus.modules.leavetype.dao.LeaveTypeDao">
+    
+	<sql id="leaveTypeColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.branch_office AS "branchOffice",
+		a.name AS "name",
+		a.no AS "no",
+		a.state AS "state",
+		a.model AS "model",
+		a.unit AS "unit",
+		a.method AS "method",
+		a.zero AS "zero",
+		a.max_days AS "maxDays",
+		a.is_attendance AS "isAttendance",
+		a.is_subsidized AS "isSubsidized",
+		a.is_next AS "isNext",
+		a.set_days AS "setDays",
+		a.is_sys AS "isSys",
+		a.parent_id AS "parentId",
+		a.parent_ids AS "parentIds",
+		a.is_end AS "isEnd",
+		b.name as "parentName",
+		a.set_key as "key"
+	</sql>
+	
+	<sql id="leaveTypeJoins">
+		left join leave_type b on b.id=a.parent_id
+	</sql>
+	
+    
+	<select id="get" resultType="LeaveType" >
+		SELECT 
+			<include refid="leaveTypeColumns"/>
+		FROM leave_type a
+		<include refid="leaveTypeJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="LeaveType" >
+		SELECT 
+			<include refid="leaveTypeColumns"/>
+		FROM leave_type a
+		<include refid="leaveTypeJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="no != null and no != ''">
+				AND a.no LIKE 
+					<if test="dbName == 'oracle'">'%'||#{no}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{no}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{no},'%')</if>
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="state != null and state != ''">
+				AND a.state = #{state}
+			</if>
+			<if test="model != null and model != ''">
+				AND a.model = #{model}
+			</if>
+			<if test="unit != null and unit != ''">
+				AND a.unit = #{unit}
+			</if>
+			<if test="method != null and method != ''">
+				AND a.method = #{method}
+			</if>
+			<if test="zero != null and zero != ''">
+				AND a.zero = #{zero}
+			</if>
+			<if test="maxDays != null and maxDays != ''">
+				AND a.max_days = #{maxDays}
+			</if>
+			<if test="isAttendance != null and isAttendance != ''">
+				AND a.is_attendance = #{isAttendance}
+			</if>
+			<if test="isSubsidized != null and isSubsidized != ''">
+				AND a.is_subsidized = #{isSubsidized}
+			</if>
+			<if test="isNext != null and isNext != ''">
+				AND a.is_next = #{isNext}
+			</if>
+			<if test="setDays != null and setDays != ''">
+				AND a.set_days = #{setDays}
+			</if>
+			<if test="isSys != null and isSys != ''">
+				AND a.is_sys = #{isSys}
+			</if>
+			<if test="isEnd != null and isEnd != ''">
+				AND a.is_end = #{isEnd}
+			</if>
+		</where>
+		ORDER BY a.parent_ids ASC,a.no asc
+	</select>
+	
+	<select id="findAllList" resultType="LeaveType" >
+		SELECT 
+			<include refid="leaveTypeColumns"/>
+		FROM leave_type a
+		<include refid="leaveTypeJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO leave_type(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			company_id,
+			office_id,
+			branch_office,
+			name,
+			no,
+			state,
+			model,
+			unit,
+			method,
+			zero,
+			max_days,
+			is_attendance,
+			is_subsidized,
+			is_next,
+			set_days,
+			is_sys,
+			parent_id,
+			parent_ids,
+			is_end,
+			set_key
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{companyId},
+			#{officeId},
+			#{branchOffice},
+			#{name},
+			#{no},
+			#{state},
+			#{model},
+			#{unit},
+			#{method},
+			#{zero},
+			#{maxDays},
+			#{isAttendance},
+			#{isSubsidized},
+			#{isNext},
+			#{setDays},
+			#{isSys},
+			#{parentId},
+			#{parentIds},
+			#{isEnd},
+			#{key}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE leave_type SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			branch_office = #{branchOffice},
+			name = #{name},
+			no = #{no},
+			model = #{model},
+			unit = #{unit},
+			method = #{method},
+			zero = #{zero},
+			max_days = #{maxDays},
+			is_attendance = #{isAttendance},
+			is_subsidized = #{isSubsidized},
+			is_next = #{isNext},
+			set_days = #{setDays},
+			is_sys = #{isSys},
+			parent_id = #{parentId},
+			parent_ids = #{parentIds},
+			is_end = #{isEnd}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM leave_type
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE leave_type SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="LeaveType" statementType="STATEMENT">
+		select * FROM leave_type  where ${propertyName} = '${value}'
+	</select>
+	<!-- 修改末级标志 -->
+	<update id="upateEndFlag">
+		UPDATE leave_type SET
+			is_end = #{isEnd}
+		WHERE id = #{id}
+	</update>
+	<update id="updateDelFlag">
+		UPDATE leave_type SET
+			state = #{flat}
+		WHERE id = #{id}
+	</update>
+	<select id="getNameByIdAndKey" resultType="LeaveType" >
+		SELECT
+		<include refid="leaveTypeColumns"/>
+		FROM leave_type a
+		<include refid="leaveTypeJoins"/>
+		WHERE a.set_key = #{key}
+		and a.company_id=#{companyId}
+	</select>
+
+</mapper>

+ 121 - 0
src/main/resources/mappings/modules/modules/ModuleChooseDao.xml

@@ -0,0 +1,121 @@
+<?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.jeeplus.modules.modules.dao.ModuleChooseDao">
+    
+	<sql id="moduleChooseColumns">
+		a.id AS "id",
+		a.user_id AS "user.id",
+		a.module_id AS "moduleId",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		user.name AS "user.name"
+	</sql>
+	
+	<sql id="moduleChooseJoins">
+		LEFT JOIN sys_user user ON user.id = a.user_id
+	</sql>
+	
+    
+	<select id="get" resultType="ModuleChoose" >
+		SELECT 
+			<include refid="moduleChooseColumns"/>
+		FROM work_module_choose a
+		<include refid="moduleChooseJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="ModuleChoose" >
+		SELECT 
+			<include refid="moduleChooseColumns"/>
+		FROM work_module_choose a
+		<include refid="moduleChooseJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ModuleChoose" >
+		SELECT 
+			<include refid="moduleChooseColumns"/>
+		FROM work_module_choose a
+		<include refid="moduleChooseJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO work_module_choose(
+			id,
+			user_id,
+			module_id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag
+		) VALUES (
+			#{id},
+			#{user.id},
+			#{moduleId},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE work_module_choose SET 	
+			user_id = #{user.id},
+			module_id = #{moduleId},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM work_module_choose
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE work_module_choose SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ModuleChoose" statementType="STATEMENT">
+		select * FROM work_module_choose  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 102 - 0
src/main/resources/mappings/modules/monitor/MonitorDao.xml

@@ -0,0 +1,102 @@
+<?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.jeeplus.modules.monitor.dao.MonitorDao">
+    
+	<sql id="monitorColumns">
+		a.id AS "id",
+		a.cpu AS "cpu",
+		a.jvm AS "jvm",
+		a.ram AS "ram",
+		a.toemail AS "toEmail"
+	</sql>
+	
+	<sql id="monitorJoins">
+	</sql>
+    
+	<select id="get" resultType="Monitor">
+		SELECT 
+			<include refid="monitorColumns"/>
+		FROM monitor a
+		<include refid="monitorJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Monitor">
+		SELECT 
+			<include refid="monitorColumns"/>
+		FROM monitor a
+		<include refid="monitorJoins"/>
+		<where>
+			
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Monitor">
+		SELECT 
+			<include refid="monitorColumns"/>
+		FROM monitor a
+		<include refid="monitorJoins"/>
+		<where>
+			
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO monitor(
+			id,
+			cpu,
+			jvm,
+			ram,
+			toemail
+		) VALUES (
+			#{id},
+			#{cpu},
+			#{jvm},
+			#{ram},
+			#{toEmail}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE monitor SET 	
+			cpu = #{cpu},
+			jvm = #{jvm},
+			ram = #{ram},
+			toemail = #{toEmail}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM monitor
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE monitor SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Monitor" statementType="STATEMENT">
+		select * FROM monitor  where ${propertyName} = '${value}'
+	</select>
+</mapper>

+ 313 - 0
src/main/resources/mappings/modules/oa/LeaveDao.xml

@@ -0,0 +1,313 @@
+<?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.jeeplus.modules.oa.dao.LeaveDao">
+
+	<sql id="leaveColumns">
+		a.*,
+		u.id AS "createBy.id",
+		u.name AS "createBy.name",
+		o.id AS "createBy.office.id",
+		o.name AS "createBy.office.name"
+	</sql>
+
+	<sql id="leaveJoins">
+		JOIN sys_user u ON u.id = a.create_by
+		JOIN sys_office o ON o.id = u.office_id
+    </sql>
+
+	<select id="get" resultType="Leave">
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getCreateDateList" resultType="string">
+		SELECT create_date FROM oa_leave
+		WHERE  #{date} LIKE  LEFT (create_date,7)
+		<if test="companyId != null and companyId !=''">
+			AND    company_id = #{companyId}
+		</if>
+		ORDER BY  create_date asc
+	</select>
+
+    <select id="getByProcessInstanceId" resultType="Leave">
+        SELECT
+        <include refid="leaveColumns"/>
+        FROM oa_leave a
+        <include refid="leaveJoins"/>
+        WHERE a.process_instance_id = #{processInstanceId}
+    </select>
+
+	<select id="findList" resultType="Leave">
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL}
+		<if test="createDateStart != null and createDateStart != ''">
+			AND a.create_date &gt;= #{createDateStart}
+		</if>
+		<if test="createDateEnd != null and createDateEnd != ''">
+			AND a.create_date &lt;= #{createDateEnd}
+		</if>
+		<if test="leaveType != null and leaveType != ''">
+			AND a.leave_type = #{leaveType}
+		</if>
+		<if test="status != null and status != ''">
+			AND a.status = #{status}
+		</if>
+        <if test="updateBy != null and updateBy.id != null and updateBy.id != ''">
+            AND a.update_by = #{updateBy.id}
+        </if>
+        <if test="createBy != null and createBy.id != null and createBy.id != ''">
+            AND a.create_by = #{createBy.id}
+        </if>
+		<if test="ids != null and ids != ''">
+			AND a.id IN (${ids})
+		</if>
+		<if test="companyId != null and companyId != ''">
+			AND a.company_id = #{companyId}
+		</if>
+		${sqlMap.dsf}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findAllList" resultType="Leave">
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<insert id="insert">
+		INSERT INTO oa_leave(
+			id, 
+			process_instance_id, 
+			start_time, 
+			end_time, 
+			leave_days,
+			leave_time,
+			leave_type, 
+			reason, 
+			apply_time, 
+			reality_start_time, 
+			reality_end_time, 
+			create_by, 
+			create_date, 
+			update_by, 
+			update_date, 
+			remarks, 
+			del_flag,
+			leave_Details,
+			company_id,
+			office_id,
+			files,
+			status
+		) VALUES (
+			#{id},
+			#{processInstanceId},
+			#{startTime},
+			#{endTime},
+			#{leaveDays},
+			#{leaveTime},
+			#{leaveType},
+			#{reason},
+			#{createDate},
+			#{realityStartTime},
+			#{realityEndTime},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{leaveDetails},
+			#{companyId},
+			#{officeId},
+			#{files},
+			#{status}
+		)
+	</insert>
+
+	<update id="update">
+		UPDATE oa_leave SET
+		leave_type = #{leaveType},
+		start_time = #{startTime},
+		end_time = #{endTime},
+		leave_days = #{leaveDays},
+		leave_time = #{leaveTime},
+		reason = #{reason},
+		update_by = #{updateBy.id},
+		update_date = #{updateDate},
+		remarks = #{remarks},
+		del_flag=#{delFlag},
+		leave_Details=#{leaveDetails},
+		company_id=#{companyId},
+		office_id = #{officeId},
+		files=#{files},
+		status=#{status}
+		WHERE id = #{id}
+	</update>
+
+	<update id="updateRealityTime">
+		UPDATE oa_leave SET
+		reality_start_time = #{realityStartTime},
+		reality_end_time = #{realityEndTime},
+		update_by = #{updateBy.id},
+		update_date = #{updateDate},
+		remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+
+	<update id="updateProcessInstanceId">
+		UPDATE oa_leave SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<update id="delete">
+		DELETE FROM oa_leave
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteByLogic">
+		UPDATE oa_leave SET
+		del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+
+	<select id="findByCompany2" resultType="Leave" parameterType="java.util.Map">
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		<where>
+			a.del_flag = #{leave.DEL_FLAG_NORMAL}
+			<if test="date != null and date != ''">
+				AND #{date} LIKE  LEFT (a.create_date , 7)
+			</if>
+			<if test="leave.companyId != null and leave.companyId != ''">
+				AND a.company_id = #{leave.companyId}
+			</if>
+		</where>
+		<choose>
+			<when test="leave.page !=null and leave.page.orderBy != null and leave.page.orderBy != ''">
+				ORDER BY ${leave.page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findByCompany" resultType="Leave" >
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="createDate != null and createDate != ''">
+				AND Date(a.create_date) = #{createDate}
+			</if>
+            <if test="companyId != null and companyId != ''">
+                AND a.company_id = #{companyId}
+            </if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+
+	<select id="getCreateDateList1" resultType="string">
+		SELECT a.create_date FROM oa_leave a
+		WHERE   DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+	       and a.create_by=#{userId}
+	       ORDER BY  a.create_date asc
+	</select>
+	<select id="findByCompany1" resultType="Leave">
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+		and a.create_by=#{userId}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="getCreateDateListAll" resultType="string">
+		SELECT a.create_date
+		FROM oa_leave a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		WHERE   DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+	      ${sqlStr}
+	       ORDER BY  a.create_date asc
+	</select>
+	<select id="findByCompanyAll" resultType="Leave">
+		SELECT
+		a.*
+		FROM oa_leave a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+		${sqlStr}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findByCompanySelf" resultType="Leave">
+		SELECT
+		<include refid="leaveColumns"/>
+		FROM oa_leave a
+		<include refid="leaveJoins"/>
+		where
+		a.del_flag = '0'
+		<if test="time != null and time != ''">
+			and DATE_FORMAT(a.create_date, '%Y-%m-%d') = #{time}
+		</if>
+		<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+			and DATE_FORMAT(a.create_date, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		</if>
+		and a.create_by=#{userId}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findByManage" resultType="Leave">
+		SELECT
+		a.*,
+		u.id AS "createBy.id",
+		u.name AS "createBy.name",
+		o.id AS "createBy.office.id",
+		o.name AS "createBy.office.name"
+		FROM oa_leave a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		where
+		a.del_flag = '0'
+		<if test="time != null and time != ''">
+			and DATE_FORMAT(a.create_date, '%Y-%m-%d') = #{time}
+		</if>
+		<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+			and DATE_FORMAT(a.create_date, '%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		</if>
+		${sqlStr}
+		ORDER BY a.update_date DESC
+	</select>
+</mapper>

+ 415 - 0
src/main/resources/mappings/modules/oa/OaAttendanceDao.xml

@@ -0,0 +1,415 @@
+<?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.jeeplus.modules.oa.dao.OaAttendanceDao">
+    
+	<sql id="oaAttendanceColumns">
+		a.id AS "id",
+		a.company_id AS "company.id",
+		a.rule_id AS "rule.id",
+		a.user_id AS "user.id",
+		a.sign_date AS "signDate",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.office_id AS "office.id",
+		company.name AS "company.name",
+		office.name AS "office.name",
+		rule.name AS "rule.name",
+		user.name AS "user.name",
+		rule.workdays AS "rule.workdays",
+		rule.start_time AS "rule.startTime",
+		rule.end_time AS "rule.endTime"
+	</sql>
+	
+	<sql id="oaAttendanceJoins">
+		LEFT JOIN sys_office company ON company.id = a.company_id
+		LEFT JOIN sys_office office ON  office.id = a.office_id
+		LEFT JOIN oa_attendance_rule rule ON rule.id = a.rule_id
+		LEFT JOIN sys_user user ON user.id = a.user_id
+	</sql>
+
+	<select id="getOaAttendanceByCompanyIdAndUserIdAndSignDate" resultType="OaAttendance">
+		SELECT <include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		WHERE a.del_flag = '0'
+		AND a.company_id = #{companyId}
+		AND a.user_id = #{userId}
+		AND a.sign_date = #{signDate}
+	</select>
+
+	<select id="getOaAttendanceList" resultType="OaAttendance">
+		SELECT <include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		WHERE  a.del_flag = '0'
+		AND a.company_id = #{companyId}
+		AND a.sign_date = #{signDate}
+		limit 1
+	</select>
+
+	<select id="getCompanyList" resultType="string">
+		SELECT DISTINCT company_id
+		FROM oa_attendance a
+		WHERE a.del_flag = '0'
+	</select>
+	
+	<select id="getCreateDateList" resultType="string">
+		SELECT create_date FROM oa_attendance
+		WHERE  #{date} LIKE  LEFT (create_date,7)
+		<if test="companyId !=null and companyId !=''">
+			AND    company_id = #{companyId}
+		</if>
+		ORDER BY  create_date asc
+	</select>
+    
+	<select id="get" resultType="OaAttendance" >
+		SELECT 
+			<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaAttendance" >
+		SELECT
+			<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="company != null and company.id != null and company.id != ''">
+				AND a.company_id = #{company.id}
+			</if>
+			<if test="user !=null and user.name != null and user.name != ''">
+				AND user.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{user.name}||'%'</if>
+				<if test="dbName == 'mysql'">CONCAT('%', #{user.name}, '%')</if>
+			</if>
+            <if test="user != null and user.id != null and user.id != ''">
+                AND a.user_id = #{user.id}
+            </if>
+			<if test="fromThisDay != null  and fromThisDay != ''">
+				AND a.sign_date <![CDATA[>=]]> #{fromThisDay}
+			</if>
+			<if test="toThisDay !=null and toThisDay !=''">
+				AND a.sign_date <![CDATA[<=]]> #{toThisDay}
+			</if>
+			<if test="signDate !=null and signDate !=''">
+				AND a.sign_date = #{signDate}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.sign_date DESC ,a.create_date ASC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findListByUser" resultType="OaAttendance" >
+		SELECT
+		<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="user != null and user.id != null and user.id != ''">
+				AND a.user_id = #{user.id}
+			</if>
+			<if test="company != null and company.id != ''">
+				AND a.company_id = #{company.id}
+			</if>
+			<if test="user != null and user.name != null and user.name != ''">
+				AND user.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{user.name}||'%'</if>
+				<if test="dbName == 'mysql'">CONCAT('%', #{user.name}, '%')</if>
+			</if>
+			<if test="signDate != null  and signDate != ''">
+				AND a.sign_date = #{signDate}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findByCompany2" resultType="OaAttendance" parameterType="java.util.Map">
+		SELECT
+		<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		<where>
+			a.del_flag = #{attendance.DEL_FLAG_NORMAL}
+
+			<if test="date != null and date != ''">
+				AND #{date} LIKE  LEFT (a.create_date,7)
+			</if>
+			<if test="attendance.company != null and attendance.company.id != ''">
+				AND a.company_id = #{attendance.company.id}
+			</if>
+		</where>
+		<choose>
+			<when test="attendance.page !=null and attendance.page.orderBy != null and attendance.page.orderBy != ''">
+				ORDER BY ${attendance.page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findByCompany" resultType="OaAttendance" >
+		SELECT
+		<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+
+			<if test="createDate != null and createDate != ''">
+				AND Date(a.create_date) = #{createDate}
+			</if>
+			<if test="company != null and company.id != ''">
+				AND a.company_id = #{company.id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OaAttendance" >
+		SELECT 
+			<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_attendance(
+			id,
+			company_id,
+			office_id,
+			rule_id,
+			user_id,
+			sign_date,
+			start_time,
+			end_time,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag
+		) VALUES (
+			#{id},
+			#{company.id},
+			#{office.id},
+			#{rule.id},
+			#{user.id},
+			#{signDate},
+			#{startTime},
+			#{endTime},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_attendance SET 	
+			company_id = #{company.id},
+			office_id = #{office.id},
+			rule_id = #{rule.id},
+			user_id = #{user.id},
+			sign_date = #{signDate},
+			start_time = #{startTime},
+			end_time = #{endTime},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_attendance
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_attendance SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaAttendance" statementType="STATEMENT">
+		select * FROM oa_attendance  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByrule" resultType="OaAttendanceRule">
+		SELECT 
+			*
+		FROM oa_attendance_rule a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id == #{id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	
+	<select id="findListByComapny" resultType="Office">
+		SELECT 
+			*
+		FROM oa_attendance_rule a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+			AND a.id == #{id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="getCreateDateList1" resultType="string">
+		SELECT a.create_date FROM oa_attendance a
+		WHERE   DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+	       and a.create_by=#{userId}
+	       ORDER BY  a.create_date asc
+	</select>
+	<select id="findByCompany1" resultType="OaAttendance">
+		SELECT
+		<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+		and a.create_by=#{userId}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="getCreateDateListAll" resultType="string">
+		SELECT a.create_date
+		FROM oa_attendance a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		WHERE   DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+	      ${sqlStr}
+	       ORDER BY  a.create_date asc
+	</select>
+	<select id="findByCompanyAll" resultType="OaAttendance">
+		SELECT
+		a.*
+		FROM oa_attendance a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+		${sqlStr}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findByCompanySelf" resultType="OaAttendance">
+		SELECT
+		<include refid="oaAttendanceColumns"/>
+		FROM oa_attendance a
+		<include refid="oaAttendanceJoins"/>
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m-%d') = #{time}
+		and a.create_by=#{userId}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findByManage" resultType="OaAttendance">
+		SELECT
+		a.id AS "id",
+		a.company_id AS "company.id",
+		a.rule_id AS "rule.id",
+		a.user_id AS "user.id",
+		a.sign_date AS "signDate",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.office_id AS "office.id",
+		s.name AS "company.name",
+		o.name AS "office.name",
+		rule.name AS "rule.name",
+		u.name AS "user.name",
+		rule.workdays AS "rule.workdays",
+		rule.start_time AS "rule.startTime",
+		rule.end_time AS "rule.endTime"
+		FROM oa_attendance a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN oa_attendance_rule rule ON rule.id = a.rule_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m-%d') = #{time}
+		${sqlStr}
+		ORDER BY a.update_date DESC
+	</select>
+</mapper>

+ 162 - 0
src/main/resources/mappings/modules/oa/OaAttendancePlaceDao.xml

@@ -0,0 +1,162 @@
+<?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.jeeplus.modules.oa.dao.OaAttendancePlaceDao">
+    
+	<sql id="oaAttendancePlaceColumns">
+		a.id AS "id",
+		a.company_id AS "company.id",
+		a.place_name AS "placeName",
+		a.place_scope AS "placeScope",
+		a.longitude AS "longitude",
+		a.latitude AS "latitude",
+		a.oa_attendance_rule_id AS "oaAttendanceRule.id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		company.name AS "company.name",
+		a.del_flag AS "delFlag"
+	</sql>
+	
+	<sql id="oaAttendancePlaceJoins">
+		LEFT JOIN sys_office company ON company.id = a.company_id
+	</sql>
+	
+    
+	<select id="get" resultType="OaAttendancePlace" >
+		SELECT 
+			<include refid="oaAttendancePlaceColumns"/>
+		FROM oa_attendance_place a
+		<include refid="oaAttendancePlaceJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaAttendancePlace" >
+		SELECT 
+			<include refid="oaAttendancePlaceColumns"/>
+		FROM oa_attendance_place a
+		<include refid="oaAttendancePlaceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="company != null and company.id != null and company.id != ''">
+				AND a.company_id = #{company.id}
+			</if>
+			<if test="oaAttendanceRule != null and oaAttendanceRule != ''">
+				AND a.oa_attendance_rule_id = #{oaAttendanceRule.id}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.create_date ASC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OaAttendancePlace" >
+		SELECT 
+			<include refid="oaAttendancePlaceColumns"/>
+		FROM oa_attendance_place a
+		<include refid="oaAttendancePlaceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.create_date ASC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_attendance_place(
+			id,
+			company_id,
+			place_name,
+			place_scope,
+			longitude,
+			latitude,
+			oa_attendance_rule_id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag
+		) VALUES (
+			#{id},
+			#{company.id},
+			#{placeName},
+			#{placeScope},
+			#{longitude},
+			#{latitude},
+			#{oaAttendanceRule.id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_attendance_place SET 	
+			company_id = #{company.id},
+			place_name = #{placeName},
+			place_scope = #{placeScope},
+			longitude = #{longitude},
+			latitude = #{latitude},
+			oa_attendance_rule_id = #{oaAttendanceRule.id},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_attendance_place
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE oa_attendance_rule_id = #{oaAttendanceRule.id}
+			</otherwise>
+		</choose>
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_attendance_place SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		<choose>
+			<when test="id !=null and id != ''">
+				WHERE id = #{id}
+			</when>
+			<otherwise>
+				WHERE oa_attendance_rule_id = #{oaAttendanceRule.id}
+			</otherwise>
+		</choose>
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaAttendancePlace" statementType="STATEMENT">
+		select * FROM oa_attendance_place  where ${propertyName} = '${value}'
+	</select>
+
+	<select id="getPlaceNameById" resultType="string">
+		SELECT  place_name AS "placeName"
+		FROM    oa_attendance_place a
+		where   a.id  = #{placeId}
+	</select>
+</mapper>

+ 169 - 0
src/main/resources/mappings/modules/oa/OaAttendanceRuleDao.xml

@@ -0,0 +1,169 @@
+<?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.jeeplus.modules.oa.dao.OaAttendanceRuleDao">
+    
+	<sql id="oaAttendanceRuleColumns">
+		a.id AS "id",
+		a.company_id AS "company.id",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.workdays AS "workdays",
+		a.wifi AS "wifi",
+		a.wifi_name AS "wifiName",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.place_id AS "placeId",
+		company.name AS "company.name"
+	</sql>
+	
+	<sql id="oaAttendanceRuleJoins">
+		LEFT JOIN sys_office company ON company.id = a.company_id
+	</sql>
+	
+    
+	<select id="get" resultType="OaAttendanceRule" >
+		SELECT 
+			<include refid="oaAttendanceRuleColumns"/>
+		FROM oa_attendance_rule a
+		<include refid="oaAttendanceRuleJoins"/>
+		WHERE a.id = #{id} 
+		GROUP BY a.id
+	</select>
+	
+	<select id="findList" resultType="OaAttendanceRule" >
+		SELECT 
+			<include refid="oaAttendanceRuleColumns"/>
+		FROM oa_attendance_rule a
+		<include refid="oaAttendanceRuleJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="company != null and company.id != null and company.id != ''">
+				AND a.company_id = #{company.id}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name = #{name}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC 
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OaAttendanceRule" >
+		SELECT 
+			<include refid="oaAttendanceRuleColumns"/>
+		FROM oa_attendance_rule a
+		<include refid="oaAttendanceRuleJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_attendance_rule(
+			id,
+			company_id,
+			start_time,
+			end_time,
+			workdays,
+			place_id,
+			wifi,
+			wifi_name,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name
+		) VALUES (
+			#{id},
+			#{company.id},
+			#{startTime},
+			#{endTime},
+			#{workdays},
+			#{placeId},
+			#{wifi},
+			#{wifiName},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_attendance_rule SET 	
+			company_id = #{company.id},
+			start_time = #{startTime},
+			end_time = #{endTime},
+			workdays = #{workdays},
+			place_id = #{placeId},
+			wifi = #{wifi},
+			wifi_name = #{wifiName},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_attendance_rule
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_attendance_rule SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaAttendanceRule" statementType="STATEMENT">
+		select * FROM oa_attendance_rule  where ${propertyName} = '${value}'
+	</select>
+	
+	
+		<select id="findListByComapny" resultType="OaAttendanceRule">
+		SELECT 
+			*
+		FROM oa_attendance_rule a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="company.id != null and company.id != ''">
+				AND a.company_id = #{company.id}
+			</if>
+		</where>
+	</select>
+
+	<!-- 查询规则 -->
+	<select id="queryRuleByCompanyIdAndRuleId" parameterType="java.util.HashMap" resultType="OaAttendanceRule">
+		select * from oa_attendance_rule where id = #{ruleId} and company_id = #{companyId}
+	</select>
+</mapper>

+ 316 - 0
src/main/resources/mappings/modules/oa/OaNotifyDao.xml

@@ -0,0 +1,316 @@
+<?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.jeeplus.modules.oa.dao.OaNotifyDao">
+    
+	<sql id="oaNotifyColumns">
+		a.ID AS "id",
+		a.TYPE AS "type",
+		a.TITLE AS "title",
+		a.CONTENT AS "content",
+		CONCAT(a.CONTENTS,<![CDATA['<style>img{max-width:100%!important;}</style>']]>) AS "contents",
+		a.FILES AS "files",
+		a.STATUS AS "status",
+		a.CREATE_BY AS "createBy.id",
+		a.CREATE_DATE AS "createDate",
+		a.UPDATE_BY AS "updateBy.id",
+		a.UPDATE_DATE AS "updateDate",
+		a.REMARKS AS "remarks",
+		a.DEL_FLAG AS "delFlag",
+		a.company_id AS "company.id",
+		a.office_id AS "office.id",
+		a.number AS "number",
+		a.start_date AS "startDate",
+		a.end_date AS "endDate",
+		a.process_instance_id AS "processInstanceId",
+	    b.read_num ,
+	    b.un_read_num,
+	    u.name AS "createBy.name",
+	    o.top_company AS "office.name"
+	</sql>
+	
+	<sql id="oaNotifyJoins">
+		<!-- 查询已读和未读条数 -->
+		LEFT JOIN (
+			SELECT r.oa_notify_id,
+				sum(case when r.read_flag = '1' then 1 else 0 end) read_num,
+				sum(case when r.read_flag != '1' then 1 else 0 end) un_read_num
+			FROM oa_notify_record r WHERE r.user_id is not null and r.read_flag != '' GROUP BY r.oa_notify_id
+		) b ON b.oa_notify_id = a.id
+		LEFT JOIN sys_user u ON u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+	</sql>
+    
+	<select id="get" resultType="OaNotify">
+		SELECT 
+			<include refid="oaNotifyColumns"/>
+		FROM oa_notify a
+		<include refid="oaNotifyJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaNotify">
+		SELECT 
+			<include refid="oaNotifyColumns"/>
+			<if test="isSelf">,
+                    r.read_flag
+			</if>
+		FROM oa_notify a
+		<include refid="oaNotifyJoins"/>
+		<!-- 我的通告 -->
+		<if test="isSelf">
+			JOIN oa_notify_record r ON r.oa_notify_id = a.id AND r.user_id = #{currentUser.id,jdbcType=VARCHAR}
+		</if>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL}
+		<!-- 未读0,已读1 -->
+		<if test="readFlag != null and readFlag != ''">
+			AND r.read_flag = #{readFlag}
+		</if>
+		<if test="title != null and title != ''">
+			AND a.TITLE LIKE 
+					<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
+					<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
+		</if>
+		<if test="type != null and type != ''">
+			AND a.TYPE = #{type}
+		</if>
+		<if test="number != null and number != ''">
+			AND a.number = #{number}
+		</if>
+		<if test="status != null and status != ''">
+			AND a.STATUS = #{status}
+		</if>
+		<!-- 我的通告:只查询"发布"状态的,不要"草稿"状态的 -->
+		<if test="isSelf">
+			AND a.STATUS = '5'
+		</if>
+		<if test="title != null and title != ''">
+			AND a.title like
+			<if test="dbName == 'oracle'">'%'||#{ctitle}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
+		</if>
+		<if test="content != null and content != ''">
+			AND a.content like
+			<if test="dbName == 'oracle'">'%'||#{content}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{content}, '%')</if>
+		</if>
+		<if test="company != null and company.id !=null and company.id != ''">
+			AND a.company_id = #{company.id}
+		</if>
+		<if test="office != null and office.id !=null and office.id != ''">
+			AND a.office_id = #{office.id}
+		</if>
+        <if test="createBy != null and createBy.id !=null and createBy.id != ''">
+            AND a.CREATE_BY = #{createBy.id}
+        </if>
+        <if test="createBy != null and createBy.name !=null and createBy.name != ''">
+            AND u.name like
+			<if test="dbName == 'oracle'">'%'||#{createBy.name}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{createBy.name}, '%')</if>
+        </if>
+		<if test="createStartDate != null and createStartDate != ''">
+			AND a.create_date &gt;= #{createStartDate}
+		</if>
+		<if test="createEndDate != null and createEndDate != ''">
+			AND a.create_date &lt;= #{createEndDate}
+		</if>
+		<if test="nowDate != null and nowDate != ''">
+			AND a.start_date &lt;= #{nowDate} AND a.end_date &gt;= #{nowDate}
+		</if>
+
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findListByPc" resultType="OaNotify">
+		SELECT
+		a.ID AS "id",
+		a.TYPE AS "type",
+		a.TITLE AS "title",
+		a.CONTENT AS "content",
+		CONCAT(a.CONTENTS,<![CDATA['<style>img{max-width:100%!important;}</style>']]>) AS "contents",
+		a.FILES AS "files",
+		a.STATUS AS "status",
+		a.CREATE_BY AS "createBy.id",
+		a.CREATE_DATE AS "createDate",
+		a.UPDATE_BY AS "updateBy.id",
+		a.UPDATE_DATE AS "updateDate",
+		a.REMARKS AS "remarks",
+		a.DEL_FLAG AS "delFlag",
+		a.company_id AS "company.id",
+		a.office_id AS "office.id",
+		u.name AS "createBy.name",
+		o.top_company AS "office.name",
+		a.start_date AS "startDate",
+		a.end_date AS "endDate",
+		a.number AS "number",
+        a.process_instance_id AS "processInstanceId"
+		FROM oa_notify a
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		LEFT JOIN sys_user u ON u.id = a.create_by
+		<!-- 我的通告 -->
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL}
+		<if test="title != null and title != ''">
+			AND a.TITLE LIKE
+			<if test="dbName == 'oracle'">'%'||#{title}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
+		</if>
+		<if test="type != null and type != ''">
+			AND a.TYPE = #{type}
+		</if>
+		<if test="number != null and number != ''">
+			AND a.number = #{number}
+		</if>
+		<if test="status != null and status != ''">
+			AND a.STATUS = #{status}
+		</if>
+		<if test="title != null and title != ''">
+			AND a.title like
+			<if test="dbName == 'oracle'">'%'||#{ctitle}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{title}, '%')</if>
+		</if>
+		<if test="content != null and content != ''">
+			AND a.content like
+			<if test="dbName == 'oracle'">'%'||#{content}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{content}, '%')</if>
+		</if>
+		<if test="office != null and office.id !=null and office.id != ''">
+			AND a.office_id = #{office.id}
+		</if>
+		<if test="createStartDate != null and createStartDate != ''">
+			AND a.create_date &gt;= #{createStartDate}
+		</if>
+		<if test="createEndDate != null and createEndDate != ''">
+			AND a.create_date &lt;= #{createEndDate}
+		</if>
+		<if test="createBy != null and createBy.name !=null and createBy.name != ''">
+			AND u.name like
+			<if test="dbName == 'oracle'">'%'||#{createBy.name}||'%'</if>
+			<if test="dbName == 'mysql'">CONCAT('%', #{createBy.name}, '%')</if>
+		</if>
+		${sqlMap.dsf}
+		ORDER BY a.update_date DESC
+	</select>
+	
+	<select id="findAllList" resultType="OaNotify">
+		SELECT 
+			<include refid="oaNotifyColumns"/>
+		FROM oa_notify a
+		<include refid="oaNotifyJoins"/>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL} 
+		ORDER BY a.update_date DESC
+	</select>
+	
+	<select id="findCount" resultType="Long">
+		SELECT 
+			count(1)
+		FROM oa_notify a
+		<if test="isSelf">
+			JOIN oa_notify_record r ON r.oa_notify_id = a.id AND r.user_id = #{currentUser.id}
+				<if test="readFlag != null and readFlag != ''">
+					AND r.read_flag = #{readFlag}
+				</if>
+		</if>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL}
+		<if test="isSelf">
+			AND a.STATUS = '1'
+		</if>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_notify(
+			ID,
+			TYPE,
+			COMPANY_ID,
+			OFFICE_ID,
+			TITLE,
+			CONTENT,
+			CONTENTS,
+			FILES,
+			STATUS,
+			CREATE_BY,
+			CREATE_DATE,
+			UPDATE_BY,
+			UPDATE_DATE,
+			REMARKS,
+			start_date,
+			end_date,
+			number,
+			process_instance_id,
+			DEL_FLAG
+		) VALUES (
+			#{id},
+			#{type},
+			#{company.id},
+			#{office.id},
+			#{title},
+			#{content},
+			#{contents},
+			#{files},
+			#{status},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{startDate},
+			#{endDate},
+			#{number},
+			#{processInstanceId},
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_notify SET 	
+			TYPE = #{type},
+			TITLE = #{title},
+			COMPANY_ID = #{company.id},
+			OFFICE_ID = #{office.id},
+			CONTENT = #{content},
+			CONTENTS = #{contents},
+			FILES = #{files},
+			STATUS = #{status},
+			UPDATE_BY = #{updateBy.id},
+			UPDATE_DATE = #{updateDate},
+			start_date = #{startDate},
+			end_date = #{endDate},
+			end_date = #{endDate},
+			number = #{number},
+			process_instance_id = #{processInstanceId},
+			REMARKS = #{remarks}
+		WHERE id = #{id}
+	</update>
+	<update id="saveRemarks">
+		UPDATE oa_notify SET
+			REMARKS = #{remarks}
+		WHERE id = #{id}
+	</update>
+
+	<update id="delete">
+		DELETE FROM oa_notify
+		WHERE id = #{id}
+	</update>
+	
+	<update id="deleteByLogic">
+		UPDATE oa_notify SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+
+	<select id="getCreateId" resultType="string">
+		SELECT create_by FROM oa_notify WHERE id = #{id}
+	</select>
+
+    <update id="updateStatusById">
+        UPDATE oa_notify SET
+        status = #{status}
+        WHERE id = #{id}
+    </update>
+
+    <update id="updateProcessIdAndStatus" >
+        UPDATE  oa_notify SET
+        process_instance_id = #{processInstanceId},
+        status = #{status}
+        WHERE id = #{id}
+    </update>
+</mapper>

+ 38 - 0
src/main/resources/mappings/modules/oa/OaNotifyDetailDao.xml

@@ -0,0 +1,38 @@
+<?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.jeeplus.modules.oa.dao.OaNotifyDetailDao">
+
+	<insert id="batchInsert" parameterType="java.util.Map">
+		INSERT INTO oa_notify_detail
+		(notify_id ,handler_id, flag)
+		VALUES
+		<foreach collection="handlerList" item="linkman" separator=",">
+			( #{notifyId}, #{linkman.id}, #{flag})
+		</foreach>
+	</insert>
+
+	<delete id="deleteHandlers">
+		DELETE FROM oa_notify_detail
+		WHERE notify_id = #{notifyId}
+		AND flag = #{flag}
+	</delete>
+
+    <select id="queryUserList" resultType="User">
+        SELECT t1.id,t1.name,t1.photo,GROUP_CONCAT(t3.name ORDER BY t3.parent_ids SEPARATOR '-') AS 'officeName'
+        FROM oa_notify_detail t
+        LEFT JOIN sys_user t1 ON t.handler_id = t1.id
+        LEFT JOIN sys_office t2 ON t1.office_id = t2.id
+        LEFT JOIN sys_office t3 ON (FIND_IN_SET(t3.id,t2.parent_ids) OR t3.id = t2.id)
+        WHERE t.notify_id = #{id} AND flag = 0
+        GROUP BY t1.id;
+    </select>
+
+    <select id="queryOfficeList" resultType="Office">
+        SELECT t1.id,GROUP_CONCAT(t2.name ORDER BY t2.parent_ids SEPARATOR '-') AS 'name'
+        FROM oa_notify_detail t
+        LEFT JOIN sys_office t1 ON t.handler_id = t1.id
+	    LEFT JOIN sys_office t2 ON (FIND_IN_SET(t2.id,t1.parent_ids) OR t2.id = t1.id)
+	    WHERE t.notify_id = #{id} AND flag = 1
+	    GROUP BY t1.id;
+    </select>
+</mapper>

+ 177 - 0
src/main/resources/mappings/modules/oa/OaNotifyRecordDao.xml

@@ -0,0 +1,177 @@
+<?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.jeeplus.modules.oa.dao.OaNotifyRecordDao">
+    
+	<sql id="oaNotifyRecordColumns">
+		a.ID AS "id",
+		a.OA_NOTIFY_ID AS "oaNotify.id",
+		a.USER_ID AS "user.id",
+		a.READ_FLAG AS "readFlag",
+		a.READ_DATE AS "readDate",
+		u.name AS "user.name",
+		o.name AS "user.office.name",
+		o.name AS "user.officeName",
+		so.name AS "officeName"
+	</sql>
+		<sql id="oaNotifyRecordColumn">
+		a.ID AS "id",
+		a.OA_NOTIFY_ID AS "oaNotify.id",
+		a.USER_ID AS "user.id",
+		a.READ_FLAG AS "readFlag",
+		a.READ_DATE AS "readDate"
+		
+	</sql>
+	
+	
+	
+	<sql id="oaNotifyRecordJoins">
+		LEFT JOIN sys_user u ON u.id = a.user_id
+		LEFT JOIN sys_office o ON o.id = u.office_id
+		LEFT JOIN sys_office so ON so.id = a.office_id
+	</sql>
+    
+	<select id="get" resultType="OaNotifyRecord">
+		SELECT 
+			<include refid="oaNotifyRecordColumns"/>
+		FROM oa_notify_record a
+		<include refid="oaNotifyRecordJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaNotifyRecord">
+		SELECT 
+			<include refid="oaNotifyRecordColumns"/>
+		FROM oa_notify_record a
+		<include refid="oaNotifyRecordJoins"/>
+		WHERE 1=1
+		<if test="oaNotify != null and oaNotify.id != null and oaNotify.id != ''">
+			AND oa_notify_id = #{oaNotify.id}
+		</if>
+		AND a.read_flag=#{readFlag}
+		AND a.office_id is NULL
+		ORDER BY a.read_flag ASC
+	</select>
+
+	<select id="findOffices" resultType="OaNotifyRecord">
+		SELECT
+		<include refid="oaNotifyRecordColumns"/>
+		FROM oa_notify_record a
+		<include refid="oaNotifyRecordJoins"/>
+		WHERE a.user_id is NULL
+		<if test="oaNotify != null and oaNotify.id != null and oaNotify.id != ''">
+			AND oa_notify_id = #{oaNotify.id}
+		</if>
+		ORDER BY a.id ASC
+	</select>
+	<select id="findUsers" resultType="OaNotifyRecord">
+		SELECT
+		<include refid="oaNotifyRecordColumns"/>
+		FROM oa_notify_record a
+		<include refid="oaNotifyRecordJoins"/>
+		WHERE a.office_id is NULL
+		<if test="oaNotify != null and oaNotify.id != null and oaNotify.id != ''">
+			AND oa_notify_id = #{oaNotify.id}
+		</if>
+		ORDER BY a.id ASC
+	</select>
+
+	<!--PC端使用:包含已读和未读 -->
+	<select id="findList2" resultType="OaNotifyRecord">
+		SELECT
+		<include refid="oaNotifyRecordColumns"/>
+		FROM oa_notify_record a
+		<include refid="oaNotifyRecordJoins"/>
+		WHERE 1=1
+		<if test="oaNotify != null and oaNotify.id != null and oaNotify.id != ''">
+			AND a.oa_notify_id = #{oaNotify.id}
+		</if>
+		AND a.office_id is NULL
+		ORDER BY a.read_flag ASC
+	</select>
+
+		<select id="findUserList" resultType="OaNotifyRecord">
+		SELECT 
+			<include refid="oaNotifyRecordColumn"/>
+		FROM oa_notify_record a
+		WHERE a.read_flag=#{readFlag}
+			AND a.oa_notify_id = #{oaNotify.id}
+	</select>
+	
+	<select id="findAllList" resultType="OaNotifyRecord">
+		SELECT 
+			<include refid="oaNotifyRecordColumns"/>
+		FROM oa_notify_record a
+		<include refid="oaNotifyRecordJoins"/>
+		WHERE 1=1
+		ORDER BY a.read_flag ASC
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_notify_record(
+			ID,
+			OA_NOTIFY_ID,
+			USER_ID,
+			READ_FLAG,
+			READ_DATE
+		) VALUES (
+			#{id},
+			#{oaNotify.id},
+			#{user.id},
+			#{readFlag},
+			#{readDate}
+		)
+	</insert>
+	
+	<insert id="insertAll" parameterType="List">
+		INSERT INTO oa_notify_record(
+			ID,
+			OA_NOTIFY_ID,
+			USER_ID,
+			READ_FLAG,
+			READ_DATE
+		)
+		<foreach collection="list" item="e" separator=" UNION ALL ">
+			SELECT
+				#{e.id},
+				#{e.oaNotify.id},
+				#{e.user.id},
+				#{e.readFlag},
+				#{e.readDate}
+			FROM dual
+		</foreach>
+	</insert>
+	<insert id="insertOfficeAll" parameterType="List">
+		INSERT INTO oa_notify_record(
+			ID,
+			OA_NOTIFY_ID,
+			OFFICE_ID
+		)
+		<foreach collection="list" item="e" separator=" UNION ALL ">
+			SELECT
+				#{e.id},
+				#{e.oaNotify.id},
+				#{e.officeId}
+			FROM dual
+		</foreach>
+	</insert>
+
+	<update id="update">
+		UPDATE oa_notify_record SET 	
+			READ_FLAG = #{readFlag},
+			READ_DATE = #{readDate}
+		WHERE OA_NOTIFY_ID = #{oaNotify.id}
+			AND USER_ID = #{user.id}
+			AND READ_FLAG != '1'
+	</update>
+	
+	<delete id="delete">
+		DELETE FROM oa_notify_record  
+		WHERE id = #{id}
+	</delete>
+	
+	<update id="deleteByOaNotifyId">
+		UPDATE oa_notify_record SET READ_FLAG = ''
+		WHERE oa_notify_id = #{oaNotifyId}
+	</update>
+	
+</mapper>

+ 192 - 0
src/main/resources/mappings/modules/oa/TestAuditDao.xml

@@ -0,0 +1,192 @@
+<?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.jeeplus.modules.oa.dao.TestAuditDao">
+    
+    <sql id="testAuditColumns">
+		a.id, 
+		a.post, 
+		a.age, 
+		a.edu, 
+		a.content, 
+		a.olda, 
+		a.oldb, 
+		a.oldc, 
+		a.newa, 
+		a.newb, 
+		a.newc, 
+		a.add_num, 
+		a.exe_date,
+		a.hr_text,
+		a.lead_text,
+		a.main_lead_text,
+		a.proc_ins_id, 
+		u.id AS "user.id", 
+		u.name AS "user.name", 
+		o.id AS "office.id", 
+		o.name AS "office.name", 
+		a.create_by AS "createBy.id", 
+		a.create_date, 
+		a.update_by AS "updateBy.id", 
+		a.update_date, 
+		a.remarks, 
+		a.del_flag
+	</sql>
+	
+	<sql id="testAuditJoins">
+		JOIN sys_user u ON u.id=a.user_id
+		JOIN sys_office o ON o.id=a.office_id
+    </sql>
+    
+    <select id="get" resultType="TestAudit">
+		SELECT 
+			<include refid="testAuditColumns"/>
+		FROM oa_test_audit a
+		<include refid="testAuditJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+    <select id="getByProcInsId" resultType="TestAudit">
+		SELECT 
+			<include refid="testAuditColumns"/>
+		FROM oa_test_audit a
+		<include refid="testAuditJoins"/>
+		WHERE a.proc_ins_id = #{procInsId}
+	</select>
+	
+	<select id="findList" resultType="TestAudit">
+		SELECT 
+			<include refid="testAuditColumns"/>
+		FROM oa_test_audit a
+		<include refid="testAuditJoins"/>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL} 
+		<if test="user != null and user.id != null and user.id != ''">
+			AND u.id LIKE 
+					<if test="dbName == 'oracle'">'%'||#{user.id}||'%'</if>
+					<if test="dbName == 'mysql'">CONCAT('%', #{user.id}, '%')</if>
+		</if>
+		ORDER BY a.update_date DESC
+	</select>
+	
+	<select id="findAllList" resultType="TestAudit">
+		SELECT 
+			<include refid="testAuditColumns"/>
+		FROM oa_test_audit a
+		<include refid="testAuditJoins"/>
+		WHERE a.del_flag = #{DEL_FLAG_NORMAL} 
+		ORDER BY a.update_date DESC
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_test_audit(
+			id, 
+			user_id, 
+			office_id, 
+			post, 
+			age, 
+			edu, 
+			content, 
+			olda, 
+			oldb, 
+			oldc, 
+			newa, 
+			newb, 
+			newc, 
+			add_num, 
+			exe_date,
+			create_by, 
+			create_date, 
+			update_by, 
+			update_date, 
+			remarks, 
+			del_flag
+		) VALUES (
+			#{id}, 
+			#{user.id}, 
+			#{office.id}, 
+			#{post}, 
+			#{age}, 
+			#{edu}, 
+			#{content}, 
+			#{olda}, 
+			#{oldb}, 
+			#{oldc}, 
+			#{newa}, 
+			#{newb}, 
+			#{newc}, 
+			#{addNum}, 
+			#{exeDate},
+			#{createBy.id}, 
+			#{createDate}, 
+			#{updateBy.id}, 
+			#{updateDate}, 
+			#{remarks}, 
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_test_audit SET 
+			user_id = #{user.id}, 
+			office_id = #{office.id}, 
+			post = #{post}, 
+			age = #{age}, 
+			edu = #{edu}, 
+			content = #{content}, 
+			olda = #{olda}, 
+			oldb = #{oldb}, 
+			oldc = #{oldc}, 
+			newa = #{newa}, 
+			newb = #{newb}, 
+			newc = #{newc}, 
+			add_num = #{addNum}, 
+			exe_date = #{exeDate},
+			update_by = #{updateBy.id}, 
+			update_date = #{updateDate}, 
+			remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="updateInsId">
+		UPDATE oa_test_audit SET 
+			proc_ins_id = #{procInsId},
+			update_by = #{updateBy.id}, 
+			update_date = #{updateDate}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="updateHrText">
+		UPDATE oa_test_audit SET 
+			hr_text = #{hrText},
+			update_by = #{updateBy.id}, 
+			update_date = #{updateDate}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="updateLeadText">
+		UPDATE oa_test_audit SET 
+			lead_text = #{leadText},
+			update_by = #{updateBy.id}, 
+			update_date = #{updateDate}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="updateMainLeadText">
+		UPDATE oa_test_audit SET 
+			main_lead_text = #{mainLeadText},
+			update_by = #{updateBy.id}, 
+			update_date = #{updateDate}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="delete">
+		DELETE FROM oa_test_audit 
+		WHERE id = #{id}
+	</update>
+	
+	<update id="deleteByLogic">
+		UPDATE oa_test_audit SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+</mapper>

+ 321 - 0
src/main/resources/mappings/modules/oa_evection/oa_evection/OaEvectionDao.xml

@@ -0,0 +1,321 @@
+<?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.jeeplus.modules.oa_evection.dao.oa_evection.OaEvectionDao">
+    
+	<sql id="oaEvectionColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.remarks AS "remarks",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.process_instance_id AS "processInstanceId",
+		a.reality_start_time AS "realityStartTime",
+		a.reality_end_time AS "realityEndTime",
+		a.reason AS "reason",
+		a.address AS "address",
+		a.date_count AS "dateCount",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.files AS "files",
+		a.status AS "status",
+		u.name AS "createBy.name",
+		o.id AS "createBy.office.id",
+		o.name AS "createBy.office.name"
+	</sql>
+	
+	<sql id="oaEvectionJoins">
+		JOIN sys_user u ON u.id = a.create_by
+		JOIN sys_office o ON o.id = u.office_id
+	</sql>
+
+	<select id="getCreateDateList" resultType="string">
+		SELECT create_date FROM oa_evection
+		WHERE  #{date} LIKE  LEFT (create_date,7)
+		<if test="companyId != null and companyId !=''">
+			AND    company_id = #{companyId}
+		</if>
+		ORDER BY  create_date asc
+	</select>
+    
+	<select id="get" resultType="OaEvection" >
+		SELECT 
+			<include refid="oaEvectionColumns"/>
+		FROM oa_evection a
+		<include refid="oaEvectionJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+    <select id="getByProcessInstanceId" resultType="OaEvection">
+        SELECT
+        <include refid="oaEvectionColumns"/>
+        FROM oa_evection a
+        <include refid="oaEvectionJoins"/>
+        WHERE a.process_instance_id = #{processInstanceId}
+    </select>
+
+	<select id="findList" resultType="OaEvection" >
+		SELECT 
+			<include refid="oaEvectionColumns"/>
+		FROM oa_evection a
+		<include refid="oaEvectionJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+            <if test="createDate != null and createDate != ''">
+                AND Date(a.create_date) = #{createDate}
+            </if>
+			<if test="createDateStart != null and createDateStart != ''">
+				AND a.create_date &gt;= #{createDateStart}
+			</if>
+			<if test="createDateEnd != null and createDateEnd != ''">
+				AND a.create_date &lt;= #{createDateEnd}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+            <if test="companyId != null and companyId != ''">
+                AND a.company_id = #{companyId}
+            </if>
+            <if test="updateBy != null and updateBy.id != null and updateBy.id != ''">
+                AND a.update_by = #{updateBy.id}
+            </if>
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			${sqlMap.dsf}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findByCompany2" resultType="OaEvection" parameterType="java.util.Map">
+		SELECT
+		<include refid="oaEvectionColumns"/>
+		FROM oa_evection a
+		<include refid="oaEvectionJoins"/>
+		<where>
+			a.del_flag = #{evection.DEL_FLAG_NORMAL}
+			<if test="date != null and date != ''">
+				AND #{date} LIKE  LEFT (a.create_date , 7)
+			</if>
+			<if test="evection.companyId != null and evection.companyId != ''">
+				AND a.company_id = #{evection.companyId}
+			</if>
+		</where>
+		<choose>
+			<when test="evection.page !=null and evection.page.orderBy != null and evection.page.orderBy != ''">
+				ORDER BY ${evection.page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findAllList" resultType="OaEvection" >
+		SELECT 
+			<include refid="oaEvectionColumns"/>
+		FROM oa_evection a
+		<include refid="oaEvectionJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_evection(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			del_flag,
+			remarks,
+			start_time,
+			end_time,
+			process_instance_id,
+			reality_start_time,
+			reality_end_time,
+			reason,
+			address,
+			date_count,
+			company_id,
+			office_id,
+			status,
+			files
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{delFlag},
+			#{remarks},
+			#{startTime},
+			#{endTime},
+			#{processInstanceId},
+			#{realityStartTime},
+			#{realityEndTime},
+			#{reason},
+			#{address},
+			#{dateCount},
+			#{companyId},
+			#{officeId},
+			#{status},
+			#{files}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_evection SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			start_time = #{startTime},
+			end_time = #{endTime},
+			process_instance_id = #{processInstanceId},
+			reality_start_time = #{realityStartTime},
+			reality_end_time = #{realityEndTime},
+			reason = #{reason},
+			address = #{address},
+			date_count = #{dateCount},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			files = #{files},
+			status = #{status}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_evection
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_evection SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	<update id="updateProcessInstanceId">
+		UPDATE oa_evection SET 
+			process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaEvection" statementType="STATEMENT">
+		select * FROM oa_evection  where ${propertyName} = '${value}'
+	</select>
+
+
+	<select id="getCreateDateList1" resultType="string">
+		SELECT a.create_date FROM oa_evection a
+		WHERE   DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+	       and a.create_by=#{userId}
+	       ORDER BY  a.create_date asc
+	</select>
+	<select id="findByCompany1" resultType="OaEvection">
+		SELECT
+		<include refid="oaEvectionColumns"/>
+		FROM oa_evection a
+		<include refid="oaEvectionJoins"/>
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+		and a.create_by=#{userId}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="getCreateDateListAll" resultType="string">
+		SELECT a.create_date
+		FROM oa_evection a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		WHERE   DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+	      ${sqlStr}
+	       ORDER BY  a.create_date asc
+	</select>
+	<select id="findByCompanyAll" resultType="OaEvection">
+		SELECT
+		a.*
+		FROM oa_evection a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m') = #{time}
+		${sqlStr}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findByCompanySelf" resultType="OaEvection">
+		SELECT
+		<include refid="oaEvectionColumns"/>
+		FROM oa_evection a
+		<include refid="oaEvectionJoins"/>
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m-%d') = #{time}
+		and a.create_by=#{userId}
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findByManage" resultType="OaEvection">
+		SELECT
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.remarks AS "remarks",
+		a.start_time AS "startTime",
+		a.end_time AS "endTime",
+		a.process_instance_id AS "processInstanceId",
+		a.reality_start_time AS "realityStartTime",
+		a.reality_end_time AS "realityEndTime",
+		a.reason AS "reason",
+		a.address AS "address",
+		a.date_count AS "dateCount",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.files AS "files",
+		a.status AS "status",
+		u.name AS "createBy.name",
+		o.id AS "createBy.office.id",
+		o.name AS "createBy.office.name"
+		FROM oa_evection a
+		LEFT JOIN sys_user u on u.id = a.create_by
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		where
+		a.del_flag = '0'
+		and DATE_FORMAT(a.create_date, '%Y-%m-%d') = #{time}
+		${sqlStr}
+		ORDER BY a.update_date DESC
+	</select>
+</mapper>

+ 169 - 0
src/main/resources/mappings/modules/oaall/OaAllDao.xml

@@ -0,0 +1,169 @@
+<?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.jeeplus.modules.oaall.dao.OaAllDao">
+    
+	<sql id="oaAllColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.apply_content AS "applyContent",
+		files AS "files",
+		a.approve_detail AS "approveDetail",
+		a.process_instance_id AS "processInstanceId",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.status AS "status",
+		(select name from sys_user where id = a.create_by)  AS "createBy.name"
+	</sql>
+	
+	<sql id="oaAllJoins">
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+	</sql>
+	
+    
+	<select id="get" resultType="OaAll" >
+		SELECT 
+			<include refid="oaAllColumns"/>
+		FROM oa_all a
+		<include refid="oaAllJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaAll" >
+		SELECT 
+			<include refid="oaAllColumns"/>
+		FROM oa_all a
+		<include refid="oaAllJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="createDateStart != null and createDateStart != ''">
+				AND a.create_date &gt;= #{createDateStart}
+			</if>
+			<if test="createDateEnd != null and createDateEnd != ''">
+				AND a.create_date &lt;= #{createDateEnd}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="updateBy != null and updateBy.id != null and updateBy.id != ''">
+				AND a.update_by = #{updateBy.id}
+			</if>
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			${sqlMap.dsf}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OaAll" >
+		SELECT 
+			<include refid="oaAllColumns"/>
+		FROM oa_all a
+		<include refid="oaAllJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_all(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			apply_content,
+			approve_detail,
+			company_id,
+			office_id,
+			status,
+			files
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{applyContent},
+			#{approveDetail},
+			#{companyId},
+			#{officeId},
+			#{status},
+			#{files}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_all SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			apply_content = #{applyContent},
+			approve_detail = #{approveDetail},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			status = #{status},
+			files = #{files}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_all
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_all SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaAll" statementType="STATEMENT">
+		select * FROM oa_all  where ${propertyName} = '${value}'
+	</select>
+
+	<update id="updateProcessInstanceId">
+		UPDATE oa_all SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<select id="getByProcessInstanceId" resultType="OaAll">
+		SELECT
+		<include refid="oaAllColumns"/>
+		FROM oa_all a
+		<include refid="oaAllJoins"/>
+		WHERE a.process_instance_id = #{processInstanceId}
+	</select>
+	
+</mapper>

+ 183 - 0
src/main/resources/mappings/modules/oabuy/OaBuyDao.xml

@@ -0,0 +1,183 @@
+<?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.jeeplus.modules.oabuy.dao.OaBuyDao">
+    
+	<sql id="oaBuyColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.status AS "status",
+		a.totalPrice AS "totalPrice",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		files AS "files",
+		a.process_instance_id AS "processInstanceId",
+		a.apply_content AS "applyContent",
+		a.buy_sort AS "buySort",
+		a.deliver_date AS "deliverDate",
+		a.pay_style AS "payStyle",
+		(select name from sys_user where id = a.create_by)  AS "createBy.name"
+	</sql>
+	
+	<sql id="oaBuyJoins">
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+	</sql>
+	
+    
+	<select id="get" resultType="OaBuy" >
+		SELECT 
+			<include refid="oaBuyColumns"/>
+		FROM oa_buy a
+		<include refid="oaBuyJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaBuy" >
+		SELECT 
+			<include refid="oaBuyColumns"/>
+		FROM oa_buy a
+		<include refid="oaBuyJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="createDateStart != null and createDateStart != ''">
+				AND a.create_date &gt;= #{createDateStart}
+			</if>
+			<if test="createDateEnd != null and createDateEnd != ''">
+				AND a.create_date &lt;= #{createDateEnd}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="updateBy != null and updateBy.id != null and updateBy.id != ''">
+				AND a.update_by = #{updateBy.id}
+			</if>
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			${sqlMap.dsf}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OaBuy" >
+		SELECT 
+			<include refid="oaBuyColumns"/>
+		FROM oa_buy a
+		<include refid="oaBuyJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_buy(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			status,
+			company_id,
+			office_id,
+			process_instance_id,
+			apply_content,
+			buy_sort,
+			deliver_date,
+			pay_style,
+			files,
+			totalPrice
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{status},
+			#{companyId},
+			#{officeId},
+			#{processInstanceId},
+			#{applyContent},
+			#{buySort},
+			#{deliverDate},
+			#{payStyle},
+			#{files},
+			#{totalPrice}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_buy SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			status = #{status},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			process_instance_id = #{processInstanceId},
+			apply_content = #{applyContent},
+			buy_sort = #{buySort},
+			deliver_date = #{deliverDate},
+			pay_style = #{payStyle},
+			files = #{files},
+			totalPrice = #{totalPrice}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_buy
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_buy SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaBuy" statementType="STATEMENT">
+		select * FROM oa_buy  where ${propertyName} = '${value}'
+	</select>
+
+	<update id="updateProcessInstanceId">
+		UPDATE oa_buy SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<select id="getByProcessInstanceId" resultType="OaBuy">
+		SELECT
+		<include refid="oaBuyColumns"/>
+		FROM oa_buy a
+		<include refid="oaBuyJoins"/>
+		WHERE a.process_instance_id = #{processInstanceId}
+	</select>
+</mapper>

+ 184 - 0
src/main/resources/mappings/modules/oaperformance/OaPerformanceDao.xml

@@ -0,0 +1,184 @@
+<?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.jeeplus.modules.oaperformance.dao.OaPerformanceDao">
+    
+	<sql id="oaPerformanceColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.status AS "status",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.process_instance_id AS "processInstanceId",
+		a.last_work AS "lastWork",
+		a.finish_work AS "finishWork",
+		a.finish_rate AS "finishRate",
+		a.last_performance AS "lastPerformance",
+		a.now_work AS "nowWork",
+		a.now_plan AS "nowPlan",
+		(select name from sys_user where id = a.create_by)  AS "createBy.name"
+	</sql>
+	
+	<sql id="oaPerformanceJoins">
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+	</sql>
+	
+    
+	<select id="get" resultType="OaPerformance" >
+		SELECT 
+			<include refid="oaPerformanceColumns"/>
+		FROM oa_performance a
+		<include refid="oaPerformanceJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OaPerformance" >
+		SELECT 
+			<include refid="oaPerformanceColumns"/>
+		FROM oa_performance a
+		<include refid="oaPerformanceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="createDateStart != null and createDateStart != ''">
+				AND a.create_date &gt;= #{createDateStart}
+			</if>
+			<if test="createDateEnd != null and createDateEnd != ''">
+				AND a.create_date &lt;= #{createDateEnd}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="updateBy != null and updateBy.id != null and updateBy.id != ''">
+				AND a.update_by = #{updateBy.id}
+			</if>
+			<if test="createBy != null and createBy.id != null and createBy.id != ''">
+				AND a.create_by = #{createBy.id}
+			</if>
+			${sqlMap.dsf}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OaPerformance" >
+		SELECT 
+			<include refid="oaPerformanceColumns"/>
+		FROM oa_performance a
+		<include refid="oaPerformanceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO oa_performance(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			status,
+			company_id,
+			office_id,
+			process_instance_id,
+			last_work,
+			finish_work,
+			finish_rate,
+			last_performance,
+			now_work,
+			now_plan
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{status},
+			#{companyId},
+			#{officeId},
+			#{processInstanceId},
+			#{lastWork},
+			#{finishWork},
+			#{finishRate},
+			#{lastPerformance},
+			#{nowWork},
+			#{nowPlan}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE oa_performance SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			status = #{status},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			process_instance_id = #{processInstanceId},
+			last_work = #{lastWork},
+			finish_work = #{finishWork},
+			finish_rate = #{finishRate},
+			last_performance = #{lastPerformance},
+			now_work = #{nowWork},
+			now_plan = #{nowPlan}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM oa_performance
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE oa_performance SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OaPerformance" statementType="STATEMENT">
+		select * FROM oa_performance  where ${propertyName} = '${value}'
+	</select>
+
+
+	<update id="updateProcessInstanceId">
+		UPDATE oa_performance SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<select id="getByProcessInstanceId" resultType="OaPerformance">
+		SELECT
+		<include refid="oaPerformanceColumns"/>
+		FROM oa_performance a
+		<include refid="oaPerformanceJoins"/>
+		WHERE a.process_instance_id = #{processInstanceId}
+	</select>
+</mapper>

+ 221 - 0
src/main/resources/mappings/modules/officehonor/OfficehonorDao.xml

@@ -0,0 +1,221 @@
+<?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.jeeplus.modules.officehonor.dao.OfficehonorDao">
+    
+	<sql id="officehonorColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.honor_type AS "honorType",
+		a.issued_date AS "issuedDate",
+		a.content AS "content",
+		a.issued_agency AS "issuedAgency",
+		office.name AS "office.name",
+		a.company_id AS "companyId",
+		a.user_name AS "userName",
+		a.prove_file AS "proveFile",
+		a.file_place AS "filePlace",
+		a.image AS "image",
+		a.upload_date AS "uploadDate",
+		a.name AS "name",
+		a.company_name AS "companyName",
+		a.num AS "num",
+		wa.attachment_name AS "uName",
+		wa.url AS "url",
+		a.sysoffice_id AS "office.id"
+	</sql>
+	
+	<sql id="officehonorJoins">
+		LEFT JOIN sys_office office ON office.id = a.sysoffice_id
+		LEFT join work_attachment wa on wa.attachment_id = a.id
+	</sql>
+	
+    
+	<select id="get" resultType="Officehonor" >
+		SELECT 
+			<include refid="officehonorColumns"/>
+		FROM office_honor a
+		<include refid="officehonorJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Officehonor" >
+		SELECT 
+			<include refid="officehonorColumns"/>
+		FROM office_honor a
+		<include refid="officehonorJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="honorType != null and honorType != ''">
+				AND a.honor_type = #{honorType}
+			</if>
+			<if test="(companyId == null or companyId == '') and office != null and office.id != null and office.id != ''">
+				AND a.sysoffice_id = #{office.id}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="companyName != null and companyName != ''">
+				AND a.company_name LIKE
+				<if test="dbName == 'oracle'">'%'||#{companyName}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{companyName}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{companyName},'%')</if>
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="content != null and content != ''">
+				AND a.content = #{content}
+			</if>
+			<if test="issuedAgency != null and issuedAgency != ''">
+				AND a.issued_agency = #{issuedAgency}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Officehonor" >
+		SELECT 
+			<include refid="officehonorColumns"/>
+		FROM office_honor a
+		<include refid="officehonorJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO office_honor(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			honor_type,
+			issued_date,
+			content,
+			issued_agency,
+			user_name,
+			prove_file,
+			file_place,
+			image,
+			upload_date,
+			name,
+			company_name,
+			num,
+			company_id,
+			sysoffice_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{honorType},
+			#{issuedDate},
+			#{content},
+			#{issuedAgency},
+			#{userName},
+			#{proveFile},
+			#{filePlace},
+			#{image},
+			#{uploadDate},
+			#{name},
+			#{companyName},
+			#{num},
+			#{companyId},
+			#{office.id}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE office_honor SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			honor_type = #{honorType},
+			issued_date = #{issuedDate},
+			content = #{content},
+			issued_agency = #{issuedAgency},
+			user_name = #{userName},
+			prove_file = #{proveFile},
+			file_place = #{filePlace},
+			image = #{image},
+			upload_date= #{uploadDate},
+			name = #{name},
+			company_name = #{companyName},
+			num = #{num},
+			company_id = #{companyId},
+			sysoffice_id = #{office.id}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM office_honor
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE office_honor SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Officehonor" statementType="STATEMENT">
+		select * FROM office_honor  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByoffice" resultType="Office">
+		SELECT 
+			*
+		FROM sys_office a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+				<if test="dbName == 'oracle'">#{name}||'%'</if>
+				<if test="dbName == 'mssql'">#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 180 - 0
src/main/resources/mappings/modules/officeintroduce/OfficeintroduceDao.xml

@@ -0,0 +1,180 @@
+<?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.jeeplus.modules.officeintroduce.dao.OfficeintroduceDao">
+    
+	<sql id="officeintroduceColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.introduce AS "introduce",
+		wa.attachment_name AS "uName",
+		office.name AS "office.name",
+		a.company_id AS "companyId",
+		wa.url AS "url",
+		a.upload_date AS "uploadDate",
+		a.company_name AS "companyName",
+		a.num AS "num",
+		a.sysoffice_id AS "office.id"
+	</sql>
+	
+	<sql id="officeintroduceJoins">
+		LEFT JOIN sys_office office ON office.id = a.sysoffice_id
+		LEFT join work_attachment wa on wa.attachment_id = a.id
+	</sql>
+	
+    
+	<select id="get" resultType="Officeintroduce" >
+		SELECT 
+			<include refid="officeintroduceColumns"/>
+		FROM office_introduce a
+		<include refid="officeintroduceJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Officeintroduce" >
+		SELECT 
+			<include refid="officeintroduceColumns"/>
+		FROM office_introduce a
+		<include refid="officeintroduceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="(companyId == null or companyId == '') and office != null and office.id != null and office.id != ''">
+				AND a.sysoffice_id = #{office.id}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="companyName != null and companyName != ''">
+				AND a.company_name LIKE
+				<if test="dbName == 'oracle'">'%'||#{companyName}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{companyName}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{companyName},'%')</if>
+			</if>
+			<if test="introduce != null and introduce != ''">
+				AND a.introduce LIKE
+				<if test="dbName == 'oracle'">'%'||#{introduce}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{introduce}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{introduce},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Officeintroduce" >
+		SELECT 
+			<include refid="officeintroduceColumns"/>
+		FROM office_introduce a
+		<include refid="officeintroduceJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO office_introduce(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			introduce,
+			upload_date,
+			company_name,
+			num,
+			company_id,
+			sysoffice_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{introduce},
+			#{uploadDate},
+			#{companyName},
+			#{num},
+			#{companyId},
+			#{office.id}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE office_introduce SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			introduce = #{introduce},
+			upload_date= #{uploadDate},
+			company_name = #{companyName},
+			num = #{num},
+			company_id = #{companyId},
+			sysoffice_id = #{office.id}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM office_introduce
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE office_introduce SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Officeintroduce" statementType="STATEMENT">
+		select * FROM office_introduce  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByoffice" resultType="Office">
+		SELECT 
+			*
+		FROM sys_office a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+				<if test="dbName == 'oracle'">#{name}||'%'</if>
+				<if test="dbName == 'mssql'">#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 168 - 0
src/main/resources/mappings/modules/officelicense/OfficeLicenseDao.xml

@@ -0,0 +1,168 @@
+<?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.jeeplus.modules.officelicense.dao.OfficeLicenseDao">
+    
+	<sql id="officeLicenseColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.company_name AS "companyName",
+		a.num AS "num",
+		a.upload_date AS "uploadDate",
+		a.sysoffice_id AS "office.id",
+		office.name AS "office.name",
+		a.name AS "name",
+		wa.attachment_name AS "uName",
+		wa.url AS "url",
+		a.company_id AS "companyId",
+		a.is_chapter AS "isChapter"
+	</sql>
+	
+	<sql id="officeLicenseJoins">
+		LEFT JOIN sys_office office ON office.id = a.sysoffice_id
+		LEFT join work_attachment wa on wa.attachment_id = a.id
+	</sql>
+	
+    
+	<select id="get" resultType="OfficeLicense" >
+		SELECT 
+			<include refid="officeLicenseColumns"/>
+		FROM office_license a
+		<include refid="officeLicenseJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="OfficeLicense" >
+		SELECT 
+			<include refid="officeLicenseColumns"/>
+		FROM office_license a
+		<include refid="officeLicenseJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="num != null and num != ''">
+				AND a.num = #{num}
+			</if>
+			<if test="(companyId == null or companyId == '') and office != null and office.id != null and office.id != ''">
+				AND a.sysoffice_id = #{office.id}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="companyName != null and companyName != ''">
+				AND a.company_name LIKE
+				<if test="dbName == 'oracle'">'%'||#{companyName}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{companyName}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{companyName},'%')</if>
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="isChapter != null and isChapter != ''">
+				AND a.is_chapter = #{isChapter}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="OfficeLicense" >
+		SELECT 
+			<include refid="officeLicenseColumns"/>
+		FROM office_license a
+		<include refid="officeLicenseJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO office_license(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			company_name,
+			num,
+			upload_date,
+			sysoffice_id,
+			name,
+			company_id,
+			is_chapter
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{companyName},
+			#{num},
+			#{uploadDate},
+			#{office.id},
+			#{name},
+			#{companyId},
+			#{isChapter}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE office_license SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			company_name = #{companyName},
+			num = #{num},
+			upload_date = #{uploadDate},
+			sysoffice_id = #{office.id},
+			name = #{name},
+			company_id = #{companyId},
+			is_chapter = #{isChapter}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM office_license
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE office_license SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="OfficeLicense" statementType="STATEMENT">
+		select * FROM office_license  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 221 - 0
src/main/resources/mappings/modules/officequalify/OfficequalifyDao.xml

@@ -0,0 +1,221 @@
+<?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.jeeplus.modules.officequalify.dao.OfficequalifyDao">
+    
+	<sql id="officequalifyColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.qualify_grade AS "qualifyGrade",
+		a.specialty AS "specialty",
+		a.first_date AS "firstDate",
+		a.end_date AS "endDate",
+		a.continue_date AS "continueDate",
+		a.issued_agency AS "issuedAgency",
+		a.introduction AS "introduction",
+		a.image AS "image",
+		a.company_name AS "companyName",
+		a.num AS "num",
+		a.upload_date AS "uploadDate",
+		wa.attachment_name AS "uName",
+		office.name AS "office.name",
+		a.company_id AS "companyId",
+		wa.url AS "url",
+		a.sysoffice_id AS "office.id"
+	</sql>
+	
+	<sql id="officequalifyJoins">
+		LEFT JOIN sys_office office ON office.id = a.sysoffice_id
+		LEFT join work_attachment wa on wa.attachment_id = a.id
+	</sql>
+	
+    
+	<select id="get" resultType="Officequalify" >
+		SELECT 
+			<include refid="officequalifyColumns"/>
+		FROM office_qualify a
+		<include refid="officequalifyJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Officequalify" >
+		SELECT 
+			<include refid="officequalifyColumns"/>
+		FROM office_qualify a
+		<include refid="officequalifyJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL} and wa.attachment_flag = '109'
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="(companyId == null or companyId == '') and office != null and office.id != null and office.id != ''">
+				AND a.sysoffice_id = #{office.id}
+			</if>
+			<if test="companyId != null and companyId != ''">
+				AND a.company_id = #{companyId}
+			</if>
+			<if test="companyName != null and companyName != ''">
+				AND a.company_name LIKE
+				<if test="dbName == 'oracle'">'%'||#{companyName}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{companyName}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{companyName},'%')</if>
+			</if>
+			<if test="qualifyGrade != null and qualifyGrade != ''">
+				AND a.qualify_grade = #{qualifyGrade}
+			</if>
+			<if test="specialty != null and specialty != ''">
+				AND a.specialty = #{specialty}
+			</if>
+			<if test="issuedAgency != null and issuedAgency != ''">
+				AND a.issued_agency = #{issuedAgency}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Officequalify" >
+		SELECT 
+			<include refid="officequalifyColumns"/>
+		FROM office_qualify a
+		<include refid="officequalifyJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO office_qualify(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			qualify_grade,
+			specialty,
+			first_date,
+			end_date,
+			continue_date,
+			issued_agency,
+			introduction,
+			image,
+			company_name,
+		    num,
+		    upload_date,
+		    company_id,
+			sysoffice_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{qualifyGrade},
+			#{specialty},
+			#{firstDate},
+			#{endDate},
+			#{continueDate},
+			#{issuedAgency},
+			#{introduction},
+			#{image},
+			#{companyName},
+			#{num},
+			#{uploadDate},
+			#{companyId},
+			#{office.id}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE office_qualify SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			qualify_grade = #{qualifyGrade},
+			specialty = #{specialty},
+			first_date = #{firstDate},
+			end_date = #{endDate},
+			continue_date = #{continueDate},
+			issued_agency = #{issuedAgency},
+			introduction = #{introduction},
+			image = #{image},
+			company_name = #{companyName},
+			num = #{num},
+			upload_date = #{uploadDate},
+			company_id = #{companyId},
+			sysoffice_id = #{office.id}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM office_qualify
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE office_qualify SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Officequalify" statementType="STATEMENT">
+		select * FROM office_qualify  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByoffice" resultType="Office">
+		SELECT 
+			*
+		FROM sys_office a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+				<if test="dbName == 'oracle'">#{name}||'%'</if>
+				<if test="dbName == 'mssql'">#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 133 - 0
src/main/resources/mappings/modules/project/ArchivedirectoryDao.xml

@@ -0,0 +1,133 @@
+<?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.jeeplus.modules.project.dao.ArchivedirectoryDao">
+    
+	<sql id="archivedirectoryColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.name AS "name",
+		a.number AS "number",
+		a.page_number AS "pageNumber",
+		a.bid_information_id AS "bidInformationId"
+	</sql>
+	
+	<sql id="archivedirectoryJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="Archivedirectory" >
+		SELECT 
+			<include refid="archivedirectoryColumns"/>
+		FROM archive_directory a
+		<include refid="archivedirectoryJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getbidInformationById" resultType="Archivedirectory" >
+		SELECT (SELECT COUNT(id) FROM archive_directory AS tbl1 WHERE tbl1.id &lt;= tbl2.id and bid_information_id = #{id}) as seq,
+		id,create_by,create_date,update_by,update_date,remarks,del_flag,name,number,page_number,bid_information_id
+		FROM archive_directory AS tbl2 where bid_information_id = #{id}
+	</select>
+
+	<select id="findList" resultType="Archivedirectory" >
+		SELECT 
+			<include refid="archivedirectoryColumns"/>
+		FROM archive_directory a
+		<include refid="archivedirectoryJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Archivedirectory" >
+		SELECT 
+			<include refid="archivedirectoryColumns"/>
+		FROM archive_directory a
+		<include refid="archivedirectoryJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO archive_directory(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			name,
+			number,
+			page_number,
+			bid_information_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{name},
+			#{number},
+			#{pageNumber},
+			#{bidInformationId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE archive_directory SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			name = #{name},
+			number = #{number},
+			page_number = #{pageNumber},
+			bid_information_id = #{bidInformationId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM archive_directory
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE archive_directory SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Archivedirectory" statementType="STATEMENT">
+		select * FROM archive_directory  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 219 - 0
src/main/resources/mappings/modules/project/BidInformationDao.xml

@@ -0,0 +1,219 @@
+<?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.jeeplus.modules.project.dao.BidInformationDao">
+
+	<sql id="bidInformationColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.bid_opening_time AS "bidOpeningTime",
+		a.winning_bid_number AS "winningBidNumber",
+		a.central_investment_online AS "centralInvestmentOnline",
+		a.tenderee_archives AS "tendereeArchives",
+		a.paper_archiving AS "paperArchiving",
+		a.time_of_winning_bid AS "timeOfWinningBid",
+		a.filing_time AS "filingTime",
+		a.first_acceptance_time AS "firstAcceptanceTime",
+		a.final_archiving_time AS "finalArchivingTime",
+		a.process_instance_id AS "processInstanceId",
+		a.status AS "status",
+		a.project_id AS "projectId"
+	</sql>
+
+	<sql id="bidInformationJoins">
+	</sql>
+
+	<sql id="bidInformationColumn">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		Date(a.bid_opening_time) AS "bidOpeningTime",
+		a.winning_bid_number AS "winningBidNumber",
+		a.central_investment_online AS "centralInvestmentOnline",
+		a.tenderee_archives AS "tendereeArchives",
+		a.paper_archiving AS "paperArchiving",
+		Date(a.time_of_winning_bid) AS "timeOfWinningBid",
+		Date(a.filing_time) AS "filingTime",
+		Date(a.first_acceptance_time) AS "firstAcceptanceTime",
+		Date(a.final_archiving_time) AS "finalArchivingTime",
+		a.process_instance_id AS "processInstanceId",
+		a.status AS "status",
+		a.project_id AS "projectId",
+		b.create_date AS "project.createDate",
+        b.project_number AS "project.projectNumber",
+        b.project_name AS "project.projectName",
+        e.name AS "workClientInfo.name",
+		cc.leader AS "workprojectgroup.leader",
+		GROUP_CONCAT(f.name) AS "archivedirectory.name",
+        GROUP_CONCAT(f.number) AS "archivedirectory.number",
+        GROUP_CONCAT(f.remarks) AS "archivedirectory.remarks",
+        GROUP_CONCAT(f.page_number) AS "archivedirectory.pageNumber"
+	</sql>
+
+	<sql id="bidInformationJoin">
+		left join project b on a.project_id=b.id
+		left join project_group_info cc on cc.project_id = b.id
+		left join work_contract_info dd on dd.id = b.contract_info
+        left join work_client_info e on dd.client_id = e.id
+        left join archive_directory f on f.bid_information_id = a.id
+	</sql>
+	
+    
+	<select id="get" resultType="BidInformation" >
+		SELECT
+			<include refid="bidInformationColumn"/>
+		FROM bid_information a
+		<include refid="bidInformationJoin"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="BidInformation" >
+		SELECT
+			<include refid="bidInformationColumn"/>
+		FROM bid_information a
+		<include refid="bidInformationJoin"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="project != null and project.projectName != null and project.projectName != ''">
+				AND b.project_name = #{project.projectName}
+			</if>
+			<if test="project != null and project.projectNumber != null and project.projectNumber != ''">
+				AND b.project_number = #{project.projectNumber}
+			</if>
+			<if test="project != null and project.createDate != null and project.createDate != ''">
+				AND #{project.createDate}  LIKE
+					concat('%' ,DATE(b.create_date),'%')
+			</if>
+			<if test="workClientInfo != null and workClientInfo.name != null and workClientInfo.name != ''">
+				AND e.name = #{workClientInfo.name}
+			</if>
+			<if test="workprojectgroup != null and workprojectgroup.leader != null and workprojectgroup.leader != ''">
+				AND cc.leader = #{workprojectgroup.leader}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			${sqlMap.dsf}
+		</where>
+		GROUP BY a.id
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="BidInformation" >
+		SELECT 
+			<include refid="bidInformationColumns"/>
+		FROM bid_information a
+		<include refid="bidInformationJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO bid_information(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			bid_opening_time,
+			winning_bid_number,
+			central_investment_online,
+			tenderee_archives,
+			paper_archiving,
+			time_of_winning_bid,
+			filing_time,
+			first_acceptance_time,
+			final_archiving_time,
+			process_instance_id,
+			status,
+			project_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{bidOpeningTime},
+			#{winningBidNumber},
+			#{centralInvestmentOnline},
+			#{tendereeArchives},
+			#{paperArchiving},
+			#{timeOfWinningBid},
+			#{filingTime},
+			#{firstAcceptanceTime},
+			#{finalArchivingTime},
+			#{processInstanceId},
+			#{status},
+			#{projectId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE bid_information SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			bid_opening_time = #{bidOpeningTime},
+			winning_bid_number = #{winningBidNumber},
+			central_investment_online = #{centralInvestmentOnline},
+			tenderee_archives = #{tendereeArchives},
+			paper_archiving = #{paperArchiving},
+			time_of_winning_bid = #{timeOfWinningBid},
+			filing_time = #{filingTime},
+			first_acceptance_time = #{firstAcceptanceTime},
+			final_archiving_time = #{finalArchivingTime},
+			process_instance_id = #{processInstanceId},
+			status = #{status},
+			project_id = #{projectId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM bid_information
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE bid_information SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="BidInformation" statementType="STATEMENT">
+		select * FROM bid_information  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 325 - 0
src/main/resources/mappings/modules/project/ProjectDao.xml

@@ -0,0 +1,325 @@
+<?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.jeeplus.modules.project.dao.ProjectDao">
+    
+	<sql id="projectColumns">
+		a.id AS "id",
+		a.status AS "status",
+		a.project_number AS "projectNumber",
+		a.project_name AS "projectName",
+		a.tenderee_type AS "tendereeType",
+		a.batch AS "batch",
+		a.investment_amounts AS "investmentAmounts",
+		a.entrust_company AS "entrustCompany.id",
+		a.contract_info AS "contractInfo.id",
+		a.project_general AS "projectGeneral.id",
+		a.work_client_linkman AS "workClientLinkman.id",
+		a.project_evaluation_record AS "projectEvaluationRecord.id",
+		a.project_group_info AS "workprojectgroup.id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag"
+	</sql>
+	
+	<sql id="projectJoins">
+	</sql>
+
+	<!--只是备注该表与其他表的关联关系 -->
+	<sql id="projectJoins2">
+		LEFT JOIN work_client_linkman entrustCompany ON entrustCompany.id = a.entrust_company
+		LEFT JOIN work_contract_info contractInfo ON contractInfo.id = a.contract_info
+		LEFT JOIN project_general projectGeneral ON projectGeneral.id = a.project_general
+		LEFT JOIN project_evaluation_record projectEvaluationRecord ON projectEvaluationRecord.id = a.project_evaluation_record
+		LEFT JOIN project_group_info workprojectgroup ON workprojectgroup.id = a.project_group_info
+	</sql>
+	
+    
+	<select id="get" resultType="Project" >
+		SELECT 
+			<include refid="projectColumns"/>
+		FROM project a
+		<include refid="projectJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Project" >
+		SELECT 
+			<include refid="projectColumns"/>,
+			clientInfo.name AS "contractInfo.client.name",
+			workprojectgroup.leader AS "workprojectgroup.leader",
+			contractInfo.name AS "contractInfo.name",
+			contractInfo.contract_num AS "contractInfo.contractNum"
+		FROM project a
+		LEFT JOIN work_contract_info contractInfo ON contractInfo.id = a.contract_info
+		LEFT JOIN work_client_info   clientInfo ON clientInfo.id = contractInfo.client_id
+		LEFT JOIN project_group_info workprojectgroup ON workprojectgroup.id = a.project_group_info
+
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="projectNumber != null and projectNumber != ''">
+				AND a.project_number LIKE
+				<if test="dbName == 'oracle'">'%'||#{projectNumber}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{projectNumber}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{projectNumber},'%')</if>
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name LIKE
+				<if test="dbName == 'oracle'">'%'||#{projectName}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{projectName}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{projectName},'%')</if>
+			</if>
+			<if test="tendereeType != null and tendereeType != ''">
+				AND a.tenderee_type = #{tendereeType}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Project" >
+		SELECT 
+			<include refid="projectColumns"/>
+		FROM project a
+		<include refid="projectJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project(
+			id,
+			status,
+			project_number,
+			project_name,
+			tenderee_type,
+			batch,
+			investment_amounts,
+			entrust_company,
+			contract_info,
+			project_general,
+			work_client_linkman,
+			project_evaluation_record,
+			project_group_info,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag
+		) VALUES (
+			#{id},
+			#{status},
+			#{projectNumber},
+			#{projectName},
+			#{tendereeType},
+			#{batch},
+			#{investmentAmounts},
+			#{entrustCompany},
+			#{contractInfo},
+			#{projectGeneral},
+			#{workClientLinkman},
+			#{projectEvaluationRecord},
+			#{workprojectgroup},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project SET 	
+			status = #{status},
+			project_number = #{projectNumber},
+			project_name = #{projectName},
+			tenderee_type = #{tendereeType},
+			batch = #{batch},
+			investment_amounts = #{investmentAmounts},
+			entrust_company = #{entrustCompany},
+			contract_info = #{contractInfo},
+			project_general = #{projectGeneral},
+			work_client_linkman = #{workClientLinkman},
+			project_evaluation_record = #{projectEvaluationRecord},
+			project_group_info = #{workprojectgroup},
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Project" statementType="STATEMENT">
+		select * FROM project  where ${propertyName} = '${value}'
+	</select>
+	
+	<select id="findListByentrustCompany" resultType="WorkClientLinkman">
+		SELECT 
+			*
+		FROM work_client_linkman a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findListBycontractInfo" resultType="WorkContractInfo">
+		SELECT 
+			*
+		FROM work_contract_info a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findListByprojectGeneral" resultType="Projectgeneral">
+		SELECT 
+			*
+		FROM project_general a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findListByworkClientLinkman" resultType="WorkClientLinkman">
+		SELECT 
+			*
+		FROM work_client_linkman a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findListByprojectEvaluationRecord" resultType="ProjectEvaluationRecord">
+		SELECT 
+			*
+		FROM project_evaluation_record a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	<select id="findListByworkprojectgroup" resultType="Workprojectgroup">
+		SELECT 
+			*
+		FROM project_group_info a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="id != null and id != ''">
+				AND a.id LIKE 
+				<if test="dbName == 'oracle'">#{id}||'%'</if>
+				<if test="dbName == 'mssql'">#{id}+'%'</if>
+				<if test="dbName == 'mysql'">concat(#{id},'%')</if>
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 155 - 0
src/main/resources/mappings/modules/project/ProjectDepositManagementDao.xml

@@ -0,0 +1,155 @@
+<?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.jeeplus.modules.project.dao.ProjectDepositManagementDao">
+    
+	<sql id="projectDepositManagementColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.deposit_amount AS "depositAmount",
+		a.project_id AS "projectId",
+		a.status AS "status",
+		a.process_instance_id AS "processInstanceId",
+		p.project_name AS "project.projectName",
+		p.project_number AS "project.projectNumber",
+		r.openbid_time AS "openbidTime",
+		a.client_Id AS "clientId",
+		i.name AS "clientName"
+	</sql>
+	
+	<sql id="projectDepositManagementJoins">
+		LEFT JOIN  project p ON p.id = a.project_id
+		LEFT JOIN  work_client_info i ON i.id = a.client_id
+		LEFT JOIN  project_evaluation_record r ON r.project_id = a.project_id
+	</sql>
+
+	<select id="get" resultType="ProjectDepositManagement" >
+		SELECT 
+			<include refid="projectDepositManagementColumns"/>
+		FROM project_deposit_management a
+		<include refid="projectDepositManagementJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getByProcessInstanceId" resultType="ProjectDepositManagement">
+		SELECT
+		<include refid="projectDepositManagementColumns"/>
+		FROM project_deposit_management a
+		<include refid="projectDepositManagementJoins"/>
+		WHERE a.process_instance_id = #{processInstanceId}
+	</select>
+	
+	<select id="findList" resultType="ProjectDepositManagement" >
+		SELECT 
+			<include refid="projectDepositManagementColumns"/>
+		FROM project_deposit_management a
+		<include refid="projectDepositManagementJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="depositAmount != null and depositAmount != ''">
+				AND a.deposit_amount = #{depositAmount}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY a.update_date ASC
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ProjectDepositManagement" >
+		SELECT 
+			<include refid="projectDepositManagementColumns"/>
+		FROM project_deposit_management a
+		<include refid="projectDepositManagementJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_deposit_management(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			deposit_amount,
+			project_id,
+			status,
+			client_Id,
+			process_instance_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{depositAmount},
+			#{projectName},
+			#{status},
+			#{clientId},
+			#{processInstanceId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_deposit_management SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			deposit_amount = #{depositAmount},
+			project_id = #{projectId},
+			status = #{status},
+			process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_deposit_management
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_deposit_management SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+
+	<update id="updateProcessInstanceId">
+		UPDATE project_deposit_management SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ProjectDepositManagement" statementType="STATEMENT">
+		select * FROM project_deposit_management  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 147 - 0
src/main/resources/mappings/modules/project/ProjectEvaluationRecordDao.xml

@@ -0,0 +1,147 @@
+<?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.jeeplus.modules.project.dao.ProjectEvaluationRecordDao">
+    
+	<sql id="projectEvaluationRecordColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.client_id AS "clientId",
+		a.bidsuccess_money AS "bidsuccessMoney",
+		a.duration AS "duration",
+		a.project_manager AS "projectManager",
+		a.openbid_time AS "openbidMime",
+		a.openbid_place AS "openbidPlace",
+		a.assessbid_time AS "assessbidTime",
+		a.assessbid_place AS "assessbidPlace",
+		a.project_id AS "projectId"
+	</sql>
+	
+	<sql id="projectEvaluationRecordJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="ProjectEvaluationRecord" >
+		SELECT 
+			<include refid="projectEvaluationRecordColumns"/>
+		FROM project_evaluation_record a
+		<include refid="projectEvaluationRecordJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="ProjectEvaluationRecord" >
+		SELECT 
+			<include refid="projectEvaluationRecordColumns"/>
+		FROM project_evaluation_record a
+		<include refid="projectEvaluationRecordJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ProjectEvaluationRecord" >
+		SELECT 
+			<include refid="projectEvaluationRecordColumns"/>
+		FROM project_evaluation_record a
+		<include refid="projectEvaluationRecordJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_evaluation_record(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			client_id,
+			bidsuccess_money,
+			duration,
+			project_manager,
+			openbid_time,
+			openbid_place,
+			assessbid_time,
+			assessbid_place,
+			project_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{clientId},
+			#{bidsuccessMoney},
+			#{duration},
+			#{projectManager},
+			#{openbidMime},
+			#{openbidPlace},
+			#{assessbidTime},
+			#{assessbidPlace},
+			#{projectId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_evaluation_record SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			client_id = #{clientId},
+			bidsuccess_money = #{bidsuccessMoney},
+			duration = #{duration},
+			project_manager = #{projectManager},
+			openbid_time = #{openbidMime},
+			openbid_place = #{openbidPlace},
+			assessbid_time = #{assessbidTime},
+			assessbid_place = #{assessbidPlace},
+			project_id = #{projectId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_evaluation_record
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_evaluation_record SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ProjectEvaluationRecord" statementType="STATEMENT">
+		select * FROM project_evaluation_record  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 175 - 0
src/main/resources/mappings/modules/project/ProjectgeneralDao.xml

@@ -0,0 +1,175 @@
+<?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.jeeplus.modules.project.dao.ProjectgeneralDao">
+    
+	<sql id="projectgeneralColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.demand_department AS "demandDepartment",
+		a.project_type AS "projectType",
+		a.construction_site AS "constructionSite",
+		a.supervision_unit AS "supervisionUnit",
+		a.service_classification AS "serviceClassification",
+		a.fund_attribute AS "fundAttribute",
+		a.asset_nature AS "assetNature",
+		a.tender_scope AS "tenderScope",
+		a.online_bidding AS "onlineBidding",
+		a.evaluation_expert AS "evaluationExpert",
+		a.price_ceiling AS "priceCeiling",
+		a.bid_price_or_bid_control_price AS "bidPriceOrBidControlPrice",
+		a.bid_price_or_bid_control_price_money AS "bidPriceOrBidControlPriceMoney",
+		a.bid_evaluation_officer AS "bidEvaluationOfficer",
+		a.bid_evaluation_staff AS "bidEvaluationStaff",
+		a.project_id AS "projectId"
+	</sql>
+	
+	<sql id="projectgeneralJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="Projectgeneral" >
+		SELECT 
+			<include refid="projectgeneralColumns"/>
+		FROM project_general a
+		<include refid="projectgeneralJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Projectgeneral" >
+		SELECT 
+			<include refid="projectgeneralColumns"/>
+		FROM project_general a
+		<include refid="projectgeneralJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Projectgeneral" >
+		SELECT 
+			<include refid="projectgeneralColumns"/>
+		FROM project_general a
+		<include refid="projectgeneralJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_general(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			demand_department,
+			project_type,
+			construction_site,
+			supervision_unit,
+			service_classification,
+			fund_attribute,
+			asset_nature,
+			tender_scope,
+			online_bidding,
+			evaluation_expert,
+			price_ceiling,
+			bid_price_or_bid_control_price,
+			bid_price_or_bid_control_price_money,
+			bid_evaluation_officer,
+			bid_evaluation_staff,
+			project_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{demandDepartment},
+			#{projectType},
+			#{constructionSite},
+			#{supervisionUnit},
+			#{serviceClassification},
+			#{fundAttribute},
+			#{assetNature},
+			#{tenderScope},
+			#{onlineBidding},
+			#{evaluationExpert},
+			#{priceCeiling},
+			#{bidPriceOrBidControlPrice},
+			#{bidPriceOrBidControlPriceMoney},
+			#{bidEvaluationOfficer},
+			#{bidEvaluationStaff},
+			#{projectId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_general SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			demand_department = #{demandDepartment},
+			project_type = #{projectType},
+			construction_site = #{constructionSite},
+			supervision_unit = #{supervisionUnit},
+			service_classification = #{serviceClassification},
+			fund_attribute = #{fundAttribute},
+			asset_nature = #{assetNature},
+			tender_scope = #{tenderScope},
+			online_bidding = #{onlineBidding},
+			evaluation_expert = #{evaluationExpert},
+			price_ceiling = #{priceCeiling},
+			bid_price_or_bid_control_price = #{bidPriceOrBidControlPrice},
+			bid_price_or_bid_control_price_money = #{bidPriceOrBidControlPriceMoney},
+			bid_evaluation_officer = #{bidEvaluationOfficer},
+			bid_evaluation_staff = #{bidEvaluationStaff},
+			project_id = #{projectId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_general
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_general SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Projectgeneral" statementType="STATEMENT">
+		select * FROM project_general  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 127 - 0
src/main/resources/mappings/modules/project/WorkprojectgroupDao.xml

@@ -0,0 +1,127 @@
+<?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.jeeplus.modules.project.dao.WorkprojectgroupDao">
+    
+	<sql id="workprojectgroupColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.leader AS "leader",
+		a.member_ids AS "memberIds",
+		a.list_preparation AS "listPreparation",
+		a.project_id AS "projectId"
+	</sql>
+	
+	<sql id="workprojectgroupJoins">
+	</sql>
+	
+    
+	<select id="get" resultType="Workprojectgroup" >
+		SELECT 
+			<include refid="workprojectgroupColumns"/>
+		FROM project_group_info a
+		<include refid="workprojectgroupJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="Workprojectgroup" >
+		SELECT 
+			<include refid="workprojectgroupColumns"/>
+		FROM project_group_info a
+		<include refid="workprojectgroupJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="Workprojectgroup" >
+		SELECT 
+			<include refid="workprojectgroupColumns"/>
+		FROM project_group_info a
+		<include refid="workprojectgroupJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_group_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			leader,
+			member_ids,
+			list_preparation,
+			project_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{leader},
+			#{memberIds},
+			#{listPreparation},
+			#{projectId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_group_info SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			leader = #{leader},
+			member_ids = #{memberIds},
+			list_preparation = #{listPreparation},
+			project_id = #{projectId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_group_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_group_info SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Workprojectgroup" statementType="STATEMENT">
+		select * FROM project_group_info  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 25 - 0
src/main/resources/mappings/modules/projectclientlinkman/ProjectClientLinkmanDao.xml

@@ -0,0 +1,25 @@
+<?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.jeeplus.modules.projectrecord.dao.ProjectClientLinkmanDao">
+
+	<insert id="batchInsert" parameterType="java.util.Map">
+		INSERT INTO project_client_linkman
+		(project_id ,linkman_id, client_id, is_entrust)
+		VALUES
+		<foreach collection="linkmanList" item="linkman" separator=",">
+			( #{projectId}, #{linkman.id}, #{linkman.clientId.id}, #{isEntrust})
+		</foreach>
+	</insert>
+
+	<delete id="deleteProjectLinkmans">
+		DELETE FROM project_client_linkman
+		WHERE project_id = #{projectId}
+		AND is_entrust = #{isEntrust}
+	</delete>
+
+	<select id="getLinkManByNameAndOffice" parameterType="WorkClientLinkman" resultType="WorkClientLinkman">
+		select *
+		from project_client_linkman
+		where name = #{name} and office = #{office}
+	</select>
+</mapper>

+ 220 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectBasedDataDao.xml

@@ -0,0 +1,220 @@
+<?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.jeeplus.modules.projectcontentinfo.dao.ProjectBasedDataDao">
+    
+	<sql id="projectBasedDataColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.name AS "name",
+		a.number AS "number",
+		a.type AS "type",
+		a.provider AS "provider",
+		a.provide_date AS "provideDate",
+		a.project_id AS "project.id",
+		a.upload_environment AS "uploadEnvironment",
+		a.upload_user AS "uploadUser.id",
+		a.upload_date AS "uploadDate",
+		u.name AS "uploadUser.name"
+	</sql>
+	
+	<sql id="projectBasedDataJoins">
+		LEFT JOIN project_records r ON r.id = a.project_id
+		LEFT JOIN sys_user u ON u.id = a.upload_user
+	</sql>
+	
+    
+	<select id="get" resultType="ProjectBasedData" >
+		SELECT 
+			<include refid="projectBasedDataColumns"/>
+		FROM project_based_data a
+		<include refid="projectBasedDataJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="findReportBased" resultType="ProjectBasedData" >
+		SELECT
+		<include refid="projectBasedDataColumns"/>
+		FROM project_based_data a
+		<include refid="projectBasedDataJoins"/>
+		JOIN project_report_content rc ON rc.content_id = a.id
+		WHERE rc.report_id = #{reportId}
+		AND rc.type = #{type}
+		AND a.del_flag = '0'
+		ORDER BY a.update_date DESC
+	</select>
+	
+	<select id="findList" resultType="ProjectBasedData" >
+		SELECT 
+			<include refid="projectBasedDataColumns"/>
+		FROM project_based_data a
+		<include refid="projectBasedDataJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="project != null and project.id != null and project.id != ''">
+				AND a.project_id = #{project.id}
+			</if>
+			<if test="type != null and type != ''">
+				AND a.type = #{type}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name like
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mysql'">CONCAT('%', #{name}, '%')</if>
+			</if>
+			<if test="number != null and number != ''">
+				AND a.number = #{number}
+			</if>
+			<if test="uploadUser!=null and uploadUser.id != null and uploadUser.id != ''">
+				AND a.upload_user = #{uploadUser.id}
+			</if>
+			<if test="provider!=null and provider != ''">
+				AND a.provider like
+				<if test="dbName == 'oracle'">'%'||#{provider}||'%'</if>
+				<if test="dbName == 'mysql'">CONCAT('%', #{provider}, '%')</if>
+			</if>
+			<if test="startDate != null and startDate != ''">
+				AND a.upload_date &gt;= #{startDate}
+			</if>
+			<if test="endDate != null and endDate != ''">
+				AND a.upload_date &lt;= #{endDate}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="ProjectBasedData" >
+		SELECT 
+			<include refid="projectBasedDataColumns"/>
+		FROM project_based_data a
+		<include refid="projectBasedDataJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="getNumber" resultType="ProjectBasedData" >
+		SELECT
+			a.id AS "id",
+			a.number AS "number"
+		FROM project_based_data a
+		WHERE
+		a.del_flag = #{DEL_FLAG_NORMAL}
+		AND a.project_id = #{project.id}
+		ORDER BY a.number DESC
+		limit 1
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_based_data(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			company_id,
+			office_id,
+			name,
+			number,
+			type,
+			provider,
+			provide_date,
+			project_id,
+			upload_environment,
+			upload_user,
+			upload_date
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{companyId},
+			#{officeId},
+			#{name},
+			#{number},
+			#{type},
+			#{provider},
+			#{provideDate},
+			#{project.id},
+			#{uploadEnvironment},
+			#{uploadUser.id},
+			#{uploadDate}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_based_data SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			name = #{name},
+			number = #{number},
+			type = #{type},
+			provider = #{provider},
+			provide_date = #{provideDate},
+			project_id = #{project.id},
+			upload_environment = #{uploadEnvironment},
+			upload_user = #{uploadUser.id},
+			upload_date = #{uploadDate}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_based_data
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_based_data SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ProjectBasedData" statementType="STATEMENT">
+		select * FROM project_based_data  where ${propertyName} = '${value}'
+	</select>
+
+    <select id="queryListByContentId" resultType="ProjectBasedData">
+        SELECT
+        <include refid="projectBasedDataColumns"/>
+        FROM project_based_data a
+        <include refid="projectBasedDataJoins"/>
+        LEFT JOIN project_content_based pb ON pb.based_id = a.id
+        WHERE
+          pb.content_id = #{contentId}
+        ORDER BY a.update_date DESC
+    </select>
+</mapper>

+ 200 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectContentChangeDao.xml

@@ -0,0 +1,200 @@
+<?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.jeeplus.modules.projectcontentinfo.dao.ProjectContentChangeDao">
+    
+	<sql id="projectcontentinfoColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.parent_id AS "parent.id",
+		a.parent_ids AS "parentIds",
+		a.sort AS "sort",
+		a.project_id AS "project.id",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.type AS "type",
+		a.info_id AS "infoId",
+		a.dict_type AS "dictType",
+		a.name AS "name",
+		a.link_id AS "linkId"
+	</sql>
+	
+	<sql id="projectcontentinfoJoins">
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		LEFT JOIN sys_user u ON u.id = a.create_by
+	</sql>
+	
+    
+	<select id="get" resultType="Projectcontentinfo" >
+		SELECT 
+			<include refid="projectcontentinfoColumns"/>
+		FROM project_content_change a
+		<include refid="projectcontentinfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getByInfoId" resultType="Projectcontentinfo" >
+		SELECT
+		<include refid="projectcontentinfoColumns"/>
+		FROM project_content_change a
+		<include refid="projectcontentinfoJoins"/>
+		WHERE a.info_id = #{infoId}
+	</select>
+	
+	<select id="findList" resultType="Projectcontentinfo" >
+		SELECT 
+			<include refid="projectcontentinfoColumns"/>
+		FROM project_content_change a
+		<include refid="projectcontentinfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="name != null and name != ''">
+				AND a.name LIKE 
+					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			<if test="type != null and type != ''">
+				AND a.type = #{type}
+			</if>
+			<if test="parentIds != null and parentIds != ''">
+				AND a.parent_ids = #{parentIds}
+			</if>
+			<if test="project != null and project.id != null and project.id != ''">
+				AND a.project_id = #{project.id}
+			</if>
+			<if test="infoId != null and infoId != ''">
+				AND a.info_id = #{infoId}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.sort ASC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findAllList" resultType="Projectcontentinfo" >
+		SELECT 
+			<include refid="projectcontentinfoColumns"/>
+		FROM project_content_change a
+		<include refid="projectcontentinfoJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_content_change(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			parent_id,
+			parent_ids,
+			sort,
+			project_id,
+			company_id,
+			office_id,
+			type,
+			info_id,
+			dict_type,
+			name,
+			link_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{parent.id},
+			#{parentIds},
+			#{sort},
+			#{project.id},
+			#{companyId},
+			#{officeId},
+			#{type},
+			#{infoId},
+			#{dictType},
+			#{name},
+			#{linkId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_content_change SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			type = #{type},
+			info_id = #{infoId},
+			dict_type = #{dictType},
+			parent_id = #{parent.id},
+			parent_ids = #{parentIds},
+			sort = #{sort},
+			project_id = #{project.id},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			name = #{name}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_content_change
+		WHERE id = #{id}
+	</update>
+	<!--物理删除-->
+	<update id="deleteChange">
+		DELETE FROM project_content_change
+		WHERE info_id = #{infoId} AND project_id = #{project.id}
+	</update>
+
+	<insert id="saveProjectContentDataRelevanceInfo">
+		insert into project_content_data_relevance (
+		  project_content_id,
+		  project_content_dynamic_id
+		)
+		values
+		  (
+			#{projectContentId},
+			#{projectContentDynamicId}
+		  ) ;
+	</insert>
+
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_content_change SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="Projectcontentinfo" statementType="STATEMENT">
+		select * FROM project_content_change  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 244 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectContentDataDao.xml

@@ -0,0 +1,244 @@
+<?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.jeeplus.modules.projectcontentinfo.dao.ProjectContentDataDao">
+    
+	<sql id="projectContentDataColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.project_id AS "project.id",
+		a.name AS "name",
+		a.number AS "number",
+		a.type AS "type",
+		a.master AS "master.id",
+		a.content_details_id AS "contentDetailsId",
+		su.name AS "master.name"
+	</sql>
+	
+	<sql id="projectContentDataJoins">
+        LEFT JOIN sys_user su ON su.id = a.master
+	</sql>
+	
+    
+	<select id="get" resultType="ProjectContentData" >
+		SELECT 
+			<include refid="projectContentDataColumns"/>
+		FROM project_content_data a
+		<include refid="projectContentDataJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="ProjectContentData" >
+		SELECT 
+			<include refid="projectContentDataColumns"/>
+		FROM project_content_data a
+		<include refid="projectContentDataJoins"/>
+		<where>
+            <if test="name !=null and name != ''">
+                AND a.name LIKE concat('%',#{name},'%')
+            </if>
+            <if test="number !=null and number != ''">
+                AND a.number = #{number}
+            </if>
+            <if test="master !=null and master.name != null and master.name !=''">
+                AND su.name LIKE concat('%',#{master.name},'%')
+            </if>
+            <if test="project!=null and project.id!=null and project.id!=''">
+                AND a.project_id = #{project.id}
+            </if>
+            <if test="type!=null and type!=''">
+                AND a.type = #{type}
+            </if>
+            <if test="parentType != null">
+                AND a.type LIKE concat(#{parentType},'%')
+            </if>
+            <if test="startDate != null">
+                AND a.create_date >= #{startDate}
+            </if>
+            <if test="endDate != null">
+                AND a.create_date &lt;= #{endDate}
+            </if>
+            <if test="extId !=null and extId!=''">
+                AND a.id != #{extId}
+            </if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findReportContent" resultType="ProjectContentData" >
+		SELECT
+			<include refid="projectContentDataColumns"/>
+		FROM project_content_data a
+		<include refid="projectContentDataJoins"/>
+		JOIN project_report_content rc ON rc.content_id = a.id
+		WHERE rc.report_id = #{reportId}
+		AND rc.type = #{type}
+		AND a.del_flag = '0'
+		ORDER BY a.update_date DESC
+	</select>
+
+	<select id="findAllList" resultType="ProjectContentData" >
+		SELECT 
+			<include refid="projectContentDataColumns"/>
+		FROM project_content_data a
+		<include refid="projectContentDataJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="getNumber" resultType="ProjectContentData" >
+		SELECT
+		<include refid="projectContentDataColumns"/>
+		FROM project_content_data a
+		WHERE
+		a.del_flag = #{DEL_FLAG_NORMAL}
+		AND a.project_id = #{project.id}
+		ORDER BY a.number DESC
+		limit 1
+	</select>
+
+
+	<insert id="insert">
+		INSERT INTO project_content_data(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			company_id,
+			office_id,
+			project_id,
+			name,
+			number,
+			type,
+			master,
+			content_details_id
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{companyId},
+			#{officeId},
+			#{project.id},
+			#{name},
+			#{number},
+			#{type},
+			#{master.id},
+			#{contentDetailsId}
+		)
+	</insert>
+	<insert id="saveReportContent">
+		INSERT INTO project_report_content(
+			report_id,
+			content_id,
+			type
+		) VALUES (
+			#{reportId},
+			#{contentId},
+			#{type}
+		)
+	</insert>
+
+	<update id="update">
+		UPDATE project_content_data SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			project_id = #{project.id},
+			name = #{name},
+			number = #{number},
+			type = #{type},
+			master = #{master.id},
+			content_details_id = #{contentDetailsId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		UPDATE project_content_data SET
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_content_data SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ProjectContentData" statementType="STATEMENT">
+		select * FROM project_content_data  where ${propertyName} = '${value}'
+	</select>
+
+    <select id="querySerialNum" resultType="int">
+        SELECT MAX(cast(`number` as UNSIGNED INTEGER))
+        from project_content_data pd LEFT JOIN work_content_type wt ON wt.type_id = pd.type
+        WHERE pd.project_id = #{project.id} AND wt.parent_id = (SELECT parent_id from work_content_type where type_id = #{type})
+    </select>
+
+    <update id="deleteBasedByContentId">
+        DELETE FROM project_content_based WHERE content_id = #{contentId}
+    </update>
+
+    <update id="deleteBasedData">
+        DELETE FROM project_content_based WHERE content_id = #{contentId} and based_id = #{basedId}
+    </update>
+    <update id="deleteReportDataInfo">
+        DELETE FROM project_report_content WHERE content_id = #{contentId} and report_id = #{reportId} AND type = #{type}
+    </update>
+    <update id="deleteReportDataMenu">
+        DELETE FROM project_content_change WHERE info_id = #{reportId} and project_id = #{projectId} and link_id = #{linkId}
+    </update>
+
+    <insert id="batchInsertBaseData" parameterType="java.util.Map">
+        INSERT INTO project_content_based
+        (content_id ,based_id)
+        VALUES
+        <foreach collection="projectBasedDataList" item="projectBasedData" separator=",">
+            ( #{contentId}, #{projectBasedData.id})
+        </foreach>
+    </insert>
+
+    <select id="countByBaseId" resultType="int">
+        SELECT count(*) FROM project_content_based WHERE based_id = #{basedId}
+    </select>
+
+    <select id="findByLinkId" resultType="java.lang.String">
+        SELECT id FROM project_content_info WHERE info_id = #{contentId} and project_id = #{projectId}
+    </select>
+</mapper>

+ 355 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectReportChangeDao.xml

@@ -0,0 +1,355 @@
+<?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.jeeplus.modules.projectcontentinfo.dao.ProjectReportChangeDao">
+    
+	<sql id="projectReportDataColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.project_id AS "project.id",
+		a.name AS "name",
+		a.number AS "number",
+		a.type AS "type",
+		a.achievement_type AS "achievementType",
+		a.review_standard AS "reviewStandard",
+		a.sign_cost_one AS "signCostOne.id",
+		a.sign_cost_two AS "signCostTwo.id",
+		a.master AS "master.id",
+		a.report_date AS "reportDate",
+		a.file_status AS "fileStatus",
+		a.status AS "status",
+		a.process_instance_id AS "processInstanceId",
+		m.name AS "master.name",
+		a.report_id AS "reportId",
+		a.before_count AS "beforeCount",
+		a.before_id AS "beforeEntity.id",
+		a.report_type AS "reportType",
+		a.number_path as "numberPath",
+		a.review_fee AS "reviewFee",
+		a.approval_fee AS "approvalFee",
+		a.contract_fee AS "contractFee",
+		a.verify_fee AS "verifyFee",
+		a.verify_rate AS "verifyRate",
+		a.consult_fee AS "consultFee",
+		a.building_fee AS "buildingFee",
+		a.install_fee AS "installFee"
+	</sql>
+	
+	<sql id="projectReportDataJoins">
+		LEFT JOIN sys_user m ON m.id = a.master
+	</sql>
+	
+    
+	<select id="get" resultType="ProjectReportData" >
+		SELECT
+			<include refid="projectReportDataColumns"/>
+		FROM project_report_change a
+		<include refid="projectReportDataJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	<select id="findByBefore" resultType="ProjectReportData" >
+		SELECT
+			<include refid="projectReportDataColumns"/>
+		FROM project_report_change a
+		<include refid="projectReportDataJoins"/>
+		WHERE a.report_id = #{reportId} AND a.status = '5'
+		ORDER BY before_count DESC
+		limit 1
+	</select>
+
+	<select id="getNumber" resultType="ProjectReportData" >
+		SELECT
+		a.id AS "id",
+		a.number AS "number"
+		FROM project_report_change a
+		WHERE
+		a.del_flag = #{DEL_FLAG_NORMAL}
+		AND a.project_id = #{project.id}
+		ORDER BY a.number DESC
+		limit 1
+	</select>
+	
+	<select id="findList" resultType="ProjectReportData" >
+		SELECT 
+			<include refid="projectReportDataColumns"/>
+		FROM project_report_change a
+		<include refid="projectReportDataJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL} AND a.report_id is NOT NULL
+			<if test="project != null and project.id != null and project.id != ''">
+				AND a.project_id = #{project.id}
+			</if>
+			<if test="type != null and type != ''">
+				AND a.type = #{type}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name like
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mysql'">CONCAT('%', #{name}, '%')</if>
+			</if>
+			<if test="number != null and number != ''">
+				AND a.number = #{number}
+			</if>
+			<if test="status != null and status != ''">
+				AND a.status = #{status}
+			</if>
+			<if test="master!=null and master.id != null and master.id != ''">
+				AND a.master = #{master.id}
+			</if>
+			<if test="startDate != null and startDate != ''">
+				AND a.report_date &gt;= #{startDate}
+			</if>
+			<if test="endDate != null and endDate != ''">
+				AND a.report_date &lt;= #{endDate}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+
+	<select id="findAllList" resultType="ProjectReportData" >
+		SELECT 
+			<include refid="projectReportDataColumns"/>
+		FROM project_report_change a
+		<include refid="projectReportDataJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO project_report_change(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			company_id,
+			office_id,
+			project_id,
+			name,
+			number,
+			type,
+			achievement_type,
+			review_standard,
+			sign_cost_one,
+			sign_cost_two,
+			master,
+			report_date,
+			file_status,
+			status,
+			report_id,
+			before_count,
+			before_id,
+			report_type,
+			number_path,
+			review_fee,
+		    approval_fee,
+		    contract_fee,
+		    verify_fee,
+		    verify_rate,
+		    consult_fee,
+		    building_fee,
+		    install_fee
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{companyId},
+			#{officeId},
+			#{project.id},
+			#{name},
+			#{number},
+			#{type},
+			#{achievementType},
+			#{reviewStandard},
+			#{signCostOne.id},
+			#{signCostTwo.id},
+			#{master.id},
+			#{reportDate},
+			#{fileStatus},
+			#{status},
+			#{reportId},
+			#{beforeCount},
+			#{beforeEntity.id},
+			#{reportType},
+			#{numberPath},
+			#{reviewFee},
+			#{approvalFee},
+			#{contractFee},
+			#{verifyFee},
+			#{verifyRate},
+			#{consultFee},
+			#{buildingFee},
+			#{installFee}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE project_report_change SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			project_id = #{project.id},
+			name = #{name},
+			number = #{number},
+			type = #{type},
+			achievement_type = #{achievementType},
+			review_standard = #{reviewStandard},
+			sign_cost_one = #{signCostOne.id},
+			sign_cost_two = #{signCostTwo.id},
+			master = #{master.id},
+			report_date = #{reportDate},
+			status = #{status},
+			report_id = #{reportId},
+			report_type = #{reportType},
+			number_path = #{numberPath},
+			review_fee = #{reviewFee},
+			approval_fee = #{approvalFee},
+			contract_fee = #{contractFee},
+			verify_fee = #{verifyFee},
+			verify_rate = #{verifyRate},
+			consult_fee = #{consultFee},
+			building_fee = #{buildingFee},
+			install_fee = #{installFee}
+		WHERE id = #{id}
+	</update>
+
+	<update id="saveInvalid">
+		UPDATE project_report_change SET
+		update_by = #{updateBy.id},
+		update_date = #{updateDate},
+		remarks = #{remarks},
+		<if test="invalidStatus != null and invalidStatus != ''">
+			invalid_status = #{invalidStatus},
+		</if>
+		status = #{status}
+		WHERE id = #{id}
+	</update>
+
+	<update id="changeProjectReportData">
+		UPDATE project_report_data
+		SET update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			project_id = #{project.id},
+			name = #{name},
+			number = #{number},
+			type = #{type},
+			achievement_type = #{achievementType},
+			review_standard = #{reviewStandard},
+			sign_cost_one = #{signCostOne.id},
+			sign_cost_two = #{signCostTwo.id},
+			master = #{master.id},
+			report_date = #{reportDate},
+			status = #{status}
+		WHERE id = #{id}
+	</update>
+
+	<update id="changeBerforProjectReportData">
+		UPDATE project_report_data
+		SET update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			company_id = #{companyId},
+			office_id = #{officeId},
+			project_id = #{project.id},
+			name = #{name},
+			number = #{number},
+			type = #{type},
+			achievement_type = #{achievementType},
+			review_standard = #{reviewStandard},
+			sign_cost_one = #{signCostOne.id},
+			sign_cost_two = #{signCostTwo.id},
+			master = #{master.id},
+			report_date = #{reportDate},
+			status = #{status},
+			file_status = #{fileStatus}
+		WHERE id = #{id}
+	</update>
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM project_report_change
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteTree">
+		DELETE FROM project_content_change
+		WHERE project_id = #{project.id} and info_id = #{id}
+	</update>
+
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE project_report_change SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="ProjectReportData" statementType="STATEMENT">
+		select * FROM project_report_change  where ${propertyName} = '${value}'
+	</select>
+
+	<update id="updateProcessInstanceId">
+		UPDATE project_report_change SET
+		process_instance_id = #{processInstanceId}
+		WHERE id = #{id}
+	</update>
+
+	<update id="deleteReportDataInfo">
+		DELETE FROM project_report_content WHERE report_id = #{reportId} AND type = '2'
+	</update>
+	<update id="deleteReportDataBased">
+		DELETE FROM project_report_content WHERE report_id = #{reportId} AND type = '4'
+	</update>
+	<update id="deleteContentChange">
+		DELETE FROM project_content_change WHERE info_id = #{infoId}
+	</update>
+
+	<update id="reportNumber">
+		UPDATE project_report_change SET
+		number = #{number}
+		WHERE id = #{reportId}
+	</update>
+
+	<!-- 获取流程ID -->
+	<select id="getByProcessInstanceId" resultType="ProjectReportData" >
+		SELECT
+		<include refid="projectReportDataColumns"/>
+		FROM project_report_change a
+		<include refid="projectReportDataJoins"/>
+		WHERE a.process_instance_id = #{processInstanceId}
+	</select>
+	
+</mapper>

+ 27 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectReportDataCompanyDao.xml

@@ -0,0 +1,27 @@
+<?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.jeeplus.modules.projectcontentinfo.dao.ProjectReportDataCompanyDao">
+
+
+	<select id="findList" resultType="ProjectReportDataCompany" >
+		select
+		a.id AS "id",
+		a.top_company AS "name",
+		a.type As "type",
+		count(DISTINCT t3.id) AS "reportCount"
+		from sys_office a
+		left join sys_office t2 on (t2.parent_ids like concat('%',a.id,'%') and t2.type='2')
+		left join project_report_data t3 on t3.office_id = t2.id and t3.status = '5' and t3.del_flag = '0'
+		<if test="date!=null and date !=''">
+			AND YEAR(t3.report_date) = #{date}
+		</if>
+		where a.type in('1','3')
+			<if test="officeId != null and officeId != ''">
+				AND a.office_id = #{officeId}
+			</if>
+		and ( a.parent_id = #{companyId} or a.id = #{companyId})
+		group by a.id
+		order by a.create_date ASC;
+	</select>
+
+</mapper>

+ 0 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectReportDataDao.xml


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