Explorar o código

Merge branch '1.0'

verguenza %!s(int64=4) %!d(string=hai) anos
pai
achega
4ee074fc2d
Modificáronse 100 ficheiros con 4934 adicións e 207 borrados
  1. 0 0
      BanedDockerfile
  2. 102 0
      deploy.sh
  3. 34 1
      pom.xml
  4. BIN=BIN
      src/main/.DS_Store
  5. BIN=BIN
      src/main/java/.DS_Store
  6. BIN=BIN
      src/main/java/com/.DS_Store
  7. BIN=BIN
      src/main/java/com/galaxis/.DS_Store
  8. 8 0
      src/main/java/com/galaxis/manatee/ManateeApplication.java
  9. 2 0
      src/main/java/com/galaxis/manatee/configuration/ManateeSecurity.java
  10. 14 0
      src/main/java/com/galaxis/manatee/configuration/SpringAsyncConfiguration.java
  11. 40 0
      src/main/java/com/galaxis/manatee/configuration/WebServiceConfig.java
  12. 31 0
      src/main/java/com/galaxis/manatee/constant/ChuanYunConstant.java
  13. 3 6
      src/main/java/com/galaxis/manatee/controller/ChuanyunTestController.java
  14. 137 0
      src/main/java/com/galaxis/manatee/controller/GetController.java
  15. 19 2
      src/main/java/com/galaxis/manatee/dao/ChuanyunAskForLeaveDao.java
  16. 19 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunBudgetStatisticsDao.java
  17. 7 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunCompanyDao.java
  18. 11 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunCostCollectionDao.java
  19. 35 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunDayWorkAbcDao.java
  20. 4 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunGroupProjectDao.java
  21. 9 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunHolidaySalaryRuleDao.java
  22. 18 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunLaborCostDao.java
  23. 52 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunMemberCostDao.java
  24. 16 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunMonthLaborCostDao.java
  25. 16 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPayrollDao.java
  26. 53 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPersonDaysDao.java
  27. 10 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunProjectCashFlowDao.java
  28. 45 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunProjectCostDao.java
  29. 10 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunProjectTypeDao.java
  30. 11 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunPurCostDao.java
  31. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementAmountDao.java
  32. 6 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementDao.java
  33. 10 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementItemsDao.java
  34. 45 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunSelfCostDao.java
  35. 85 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunSelfWorkHourDao.java
  36. 14 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunSpecialProcedureDao.java
  37. 7 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunUserCompanyDao.java
  38. 7 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunUserDao.java
  39. 51 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunWeekMemberHourDao.java
  40. 61 0
      src/main/java/com/galaxis/manatee/dao/ChuanyunWorkHourDao.java
  41. 58 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAdjustAccountDO.java
  42. 191 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAskForLeaveDO.java
  43. 0 128
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAskForLeaveDo.java
  44. 53 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBudgetAmountDO.java
  45. 51 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBudgetStatisticsDO.java
  46. 21 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunCommonDO.java
  47. 6 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunCompanyDO.java
  48. 77 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunCostCollectionDO.java
  49. 73 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunDayWorkAbcDO.java
  50. 28 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunEquipmentType.java
  51. 62 12
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunGroupProjectDO.java
  52. 7 1
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunGroupProjectDetailDO.java
  53. 65 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunHolidaySalaryRuleDO.java
  54. 24 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunLaborCostDO.java
  55. 6 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunLogDO.java
  56. 47 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberCostDO.java
  57. 45 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberHourDO.java
  58. 75 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberMonthCostDO.java
  59. 49 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMonthLaborCostDO.java
  60. 40 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunOutDepartmentDO.java
  61. 280 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPayrollDO.java
  62. 27 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPersonDaysDO.java
  63. 41 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectCashFlowDO.java
  64. 47 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectCostDO.java
  65. 37 1
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectDO.java
  66. 57 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectMemberCostDO.java
  67. 70 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectMemberWeekHourDO.java
  68. 49 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectTotalCostDO.java
  69. 35 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectTypeDO.java
  70. 44 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPurCostDO.java
  71. 29 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementAmountDO.java
  72. 28 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDO.java
  73. 2 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDetailDO.java
  74. 63 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementItemsDO.java
  75. 80 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSelfCostDO.java
  76. 49 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSelfWorkHourDO.java
  77. 71 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSpecialProcedureDO.java
  78. 32 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUpdateDeptDO.java
  79. 34 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUserCompanyDO.java
  80. 6 1
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUserDO.java
  81. 48 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunWeekMemberHourDO.java
  82. 48 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunWorkHourDO.java
  83. 43 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunAskForLeaveDTO.java
  84. 36 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunDayWorkAbcDTO.java
  85. 17 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunLaborCostDTO.java
  86. 24 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunLaborCostPrimaryKey.java
  87. 27 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunProjectCashFlowDTO.java
  88. 31 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunPurCostDTO.java
  89. 11 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunSupplierDTO.java
  90. 11 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunWebServiceDTO.java
  91. 1 0
      src/main/java/com/galaxis/manatee/entity/chuanyun/dto/Filter.java
  92. 29 0
      src/main/java/com/galaxis/manatee/exception/BigSizeException.java
  93. 16 3
      src/main/java/com/galaxis/manatee/manager/ChuanYunManager.java
  94. 39 0
      src/main/java/com/galaxis/manatee/manager/ClawFeign.java
  95. 69 6
      src/main/java/com/galaxis/manatee/manager/impl/DefaultChuanyunManagerImpl.java
  96. 34 0
      src/main/java/com/galaxis/manatee/service/ChuanyunService.java
  97. 15 9
      src/main/java/com/galaxis/manatee/service/DingTalkScheduledTask.java
  98. 311 0
      src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java
  99. 1059 37
      src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java
  100. 0 0
      src/main/java/com/galaxis/manatee/task/ChuanyunFinancialScheduledTask.java

Dockerfile → BanedDockerfile


+ 102 - 0
deploy.sh

@@ -0,0 +1,102 @@
+#!/bin/bash
+
+# 修改APP_NAME为云效上的应用名
+APP_NAME=manatee
+
+
+PROG_NAME=$0
+ACTION=$1
+APP_START_TIMEOUT=20    # 等待应用启动的时间
+APP_PORT=8080          # 应用端口
+HEALTH_CHECK_URL=http://127.0.0.1:${APP_PORT}  # 应用健康检查URL
+APP_HOME=/home/admin/${APP_NAME} # 从package.tgz中解压出来的jar包放到这个目录下
+JAR_NAME=${APP_HOME}/manatee-1.0.jar # jar包的名字
+JAVA_OUT=${APP_HOME}/logs/start.log  #应用的启动日志
+
+# 创建出相关目录
+mkdir -p ${APP_HOME}
+mkdir -p ${APP_HOME}/logs
+usage() {
+    echo "Usage: $PROG_NAME {start|stop|restart}"
+    exit 2
+}
+
+#health_check() {
+#    exptime=0
+#    echo "checking ${HEALTH_CHECK_URL}"
+#    while true
+#        do
+#            status_code=`/usr/bin/curl -L -o /dev/null --connect-timeout 5 -s -w %{http_code}  ${HEALTH_CHECK_URL}`
+#            if [ "$?" != "0" ]; then
+#               echo -n -e "\rapplication not started"
+#            else
+#                echo "code is $status_code"
+#                if [ "$status_code" == "200" ];then
+#                    break
+#                fi
+#            fi
+#            sleep 1
+#            ((exptime++))
+#
+#            echo -e "\rWait app to pass health check: $exptime..."
+#
+#            if [ $exptime -gt ${APP_START_TIMEOUT} ]; then
+#                echo 'app start failed'
+#               exit 1
+#            fi
+#        done
+#    echo "check ${HEALTH_CHECK_URL} success"
+#}
+start_application() {
+    echo "starting java process"
+    nohup java -jar ${JAR_NAME} > ${JAVA_OUT} 2>&1 &
+    echo "started java process"
+}
+
+stop_application() {
+   checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'`
+
+   if [[ ! $checkjavapid ]];then
+      echo -e "\rno java process"
+      return
+   fi
+
+   echo "stop java process"
+   times=60
+   for e in $(seq 60)
+   do
+        sleep 1
+        COSTTIME=$(($times - $e ))
+        checkjavapid=`ps -ef | grep java | grep ${APP_NAME} | grep -v grep |grep -v 'deploy.sh'| awk '{print$2}'`
+        if [[ $checkjavapid ]];then
+            kill -9 $checkjavapid
+            echo -e  "\r        -- stopping java lasts `expr $COSTTIME` seconds."
+        else
+            echo -e "\rjava process has exited"
+            break;
+        fi
+   done
+   echo ""
+}
+start() {
+    start_application
+#    health_check
+}
+stop() {
+    stop_application
+}
+case "$ACTION" in
+    start)
+        start
+    ;;
+    stop)
+        stop
+    ;;
+    restart)
+        stop
+        start
+    ;;
+    *)
+        usage
+    ;;
+esac

+ 34 - 1
pom.xml

@@ -58,6 +58,13 @@
         </dependency>
 
         <dependency>
+            <groupId>net.sf.json-lib</groupId>
+            <artifactId>json-lib</artifactId>
+            <version>2.4</version>
+            <classifier>jdk15</classifier>
+        </dependency>
+
+        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
@@ -97,6 +104,14 @@
             <artifactId>capsule</artifactId>
             <version>1.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web-services</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>wsdl4j</groupId>
+            <artifactId>wsdl4j</artifactId>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>
@@ -111,13 +126,31 @@
         </dependencies>
     </dependencyManagement>
 
-
     <build>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxb2-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <executions>
+                    <execution>
+                        <id>xjc</id>
+                        <goals>
+                            <goal>xjc</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <clearOutputDir>false</clearOutputDir>
+                    <sources>
+                        <source>${project.basedir}/src/main/resources/chuanyun.xsd</source>
+                    </sources>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
 

BIN=BIN
src/main/.DS_Store


BIN=BIN
src/main/java/.DS_Store


BIN=BIN
src/main/java/com/.DS_Store


BIN=BIN
src/main/java/com/galaxis/.DS_Store


+ 8 - 0
src/main/java/com/galaxis/manatee/ManateeApplication.java

@@ -5,6 +5,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
+import javax.annotation.PostConstruct;
+import java.util.TimeZone;
+
 /**
  * @author zcj
  * @version 0.1
@@ -14,6 +17,11 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 @EnableFeignClients
 public class ManateeApplication {
 
+    @PostConstruct
+    void started() {
+        TimeZone.setDefault(TimeZone.getTimeZone("UTC+8"));
+    }
+
     public static void main(String[] args) {
         SpringApplication.run(ManateeApplication.class, args);
     }

+ 2 - 0
src/main/java/com/galaxis/manatee/configuration/ManateeSecurity.java

@@ -40,6 +40,8 @@ public class ManateeSecurity extends WebSecurityConfigurerAdapter {
                 .antMatchers(HttpMethod.POST, SIGN_UP_URL).permitAll()
                 .antMatchers(HttpMethod.GET,GO_CONFIRM).permitAll()
                 .antMatchers(HttpMethod.GET,"/test/**").permitAll()
+                .antMatchers(HttpMethod.GET,"/ws/**").permitAll()
+                .antMatchers(HttpMethod.POST,"/ws/**").permitAll()
                 .anyRequest().authenticated()
                 .and()
                 .addFilter(new JwtAuthenticationFilter(authenticationManager()))

+ 14 - 0
src/main/java/com/galaxis/manatee/configuration/SpringAsyncConfiguration.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.configuration;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/6/12 8:46 上午
+ */
+@Configuration
+@EnableAsync
+public class SpringAsyncConfiguration {
+}

+ 40 - 0
src/main/java/com/galaxis/manatee/configuration/WebServiceConfig.java

@@ -0,0 +1,40 @@
+package com.galaxis.manatee.configuration;
+
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.ws.config.annotation.EnableWs;
+import org.springframework.ws.config.annotation.WsConfigurerAdapter;
+import org.springframework.ws.transport.http.MessageDispatcherServlet;
+import org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition;
+import org.springframework.xml.xsd.SimpleXsdSchema;
+import org.springframework.xml.xsd.XsdSchema;
+
+@EnableWs
+@Configuration
+public class WebServiceConfig extends WsConfigurerAdapter {
+	@Bean
+	public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
+		MessageDispatcherServlet servlet = new MessageDispatcherServlet();
+		servlet.setApplicationContext(applicationContext);
+		servlet.setTransformWsdlLocations(true);
+		return new ServletRegistrationBean(servlet, "/ws/*");
+	}
+
+	@Bean(name = "chuanyun")
+	public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema countriesSchema) {
+		DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
+		wsdl11Definition.setPortTypeName("chuanyun");
+		wsdl11Definition.setLocationUri("/ws");
+		wsdl11Definition.setTargetNamespace("http://galaxis.com/manatee/chuanyun-web-service");
+		wsdl11Definition.setSchema(countriesSchema);
+		return wsdl11Definition;
+	}
+
+	@Bean
+	public XsdSchema countriesSchema() {
+		return new SimpleXsdSchema(new ClassPathResource("chuanyun.xsd"));
+	}
+}

+ 31 - 0
src/main/java/com/galaxis/manatee/constant/ChuanYunConstant.java

@@ -15,6 +15,26 @@ import java.util.Map;
 public class ChuanYunConstant {
 
     /**
+     * 审核结束
+     */
+    public static final String FINISH="1";
+
+    /**
+     * 审核流程中
+     */
+    public static final String IN_PROCESS="2";
+
+    /**
+     * 生产项目项目类型
+     */
+    public static final String PRODUCTION_PROJECT="生产项目";
+
+    /**
+     * 生产项目类型项目号
+     */
+    public static final String PRODUCTION_PROJECT_ID="production_project";
+
+    /**
      * 保存项目号、项目ObjectId的映射关系
      */
     public static Map<String,String> PROJECT_CODE=new HashMap<>(2048);
@@ -23,6 +43,17 @@ public class ChuanYunConstant {
      * 保存用户ID和工号的映射关系
      */
     public static Map<String,String> USER_EMPLOYEE_NUMBER=new HashMap<>(2048);
+
+    /**
+     * 保存用户id和所属部门id
+     */
+    public static Map<String,Object> USER_DEPARTMENT=new HashMap<>();
+
+    /**
+     * 用户ID和BG关系
+     */
+    public static Map<String,String> USER_BUSINESS_GROUP=new HashMap<>();
+
     /**
      * 调用地址
      */

+ 3 - 6
src/main/java/com/galaxis/manatee/controller/ChuanyunTestController.java

@@ -6,6 +6,7 @@ import com.galaxis.manatee.entity.chuanyun.bo.MaterialResendBO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ProjectLogDO;
 import com.galaxis.manatee.entity.chuanyun.dto.*;
+import com.galaxis.manatee.exception.BigSizeException;
 import com.galaxis.manatee.manager.ChuanYunManager;
 import org.hibernate.Session;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -26,10 +27,6 @@ public class ChuanyunTestController {
 
     private final ChuanYunManager chuanYunManager;
     private final EntityManager entityManager;
-//    public ChuanyunTestController(ChuanYunManager chuanYunManager) {
-//        this.chuanYunManager = chuanYunManager;
-//    }
-
 
     public ChuanyunTestController(ChuanYunManager chuanYunManager, EntityManager entityManager) {
         this.chuanYunManager = chuanYunManager;
@@ -75,7 +72,7 @@ public class ChuanyunTestController {
      * @return  保存结果
      */
     @GetMapping("/chuanyunTest/testSave")
-    public String testSave() throws JsonProcessingException {
+    public String testSave() throws JsonProcessingException, BigSizeException {
         MaterialResendBO resendVO=new MaterialResendBO();
         resendVO.setRequestDate(LocalDate.now());
         resendVO.setRequestType("test");
@@ -90,7 +87,7 @@ public class ChuanyunTestController {
      * @throws JsonProcessingException  json处理异常
      */
     @GetMapping("/chuanyunTest/testSaveAll")
-    public String testSaveAll() throws JsonProcessingException {
+    public String testSaveAll() throws JsonProcessingException, BigSizeException {
         MaterialResendBO resend1=new MaterialResendBO();
         MaterialResendBO resend2=new MaterialResendBO();
         resend1.setRequestType("helloChuanyunSaveAll1");

+ 137 - 0
src/main/java/com/galaxis/manatee/controller/GetController.java

@@ -0,0 +1,137 @@
+package com.galaxis.manatee.controller;
+
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCostCollectionDO;
+import com.galaxis.manatee.service.ChuanyunService;
+import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
+import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
+import org.springframework.http.ResponseEntity;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 提供手工触发更新氚云数据的接口
+ * @author zcj
+ * @version 0.1
+ * @date 2020/6/7 10:26 上午
+ */
+@RestController
+public class GetController {
+
+    private final ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask;
+    private final ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask;
+    private final ChuanyunService chuanyunService;
+
+    public GetController(ChuanyunHumanResourceScheduledTask chuanyunHumanResourceScheduledTask, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask, ChuanyunService chuanyunService) {
+        this.chuanyunHumanResourceScheduledTask = chuanyunHumanResourceScheduledTask;
+        this.chuanyunBasicDataScheduledTask = chuanyunBasicDataScheduledTask;
+        this.chuanyunService = chuanyunService;
+    }
+
+    /**
+     * 手动更新chuanyunPayRoll
+     */
+    @Async
+    @GetMapping("/test/getChuanyunPayroll")
+    public void getChuanyunPayroll(){
+        chuanyunHumanResourceScheduledTask.getPayrollManually();
+    }
+
+    /**
+     * 手动更新日志
+     */
+    @Async
+    @GetMapping("/test/getUpdateLog")
+    public void getUpdateLog() {
+        chuanyunHumanResourceScheduledTask.getUpdateLog();
+    }
+
+    /**
+     * 手动更新项目组成员
+     */
+    @Async
+    @GetMapping("/test/getProjectMember")
+    public void getProjectMember() {
+        chuanyunService.updateProjectMember();
+    }
+
+    /**
+     * 手动更新人员-归属公司
+     */
+    @Async
+    @GetMapping("/test/getUserCompany")
+    public void getUserCompanyManually() {
+        chuanyunBasicDataScheduledTask.getUserCompanyManually();
+    }
+
+    /**
+     * 手动更新人员信息
+     */
+    @Async
+    @GetMapping("/test/getUserList")
+    public void getUserListManually() {
+        chuanyunBasicDataScheduledTask.getUserListManually();
+    }
+
+    /**
+     * 手动更新公司信息
+     */
+    @Async
+    @GetMapping("/test/getCompany")
+    public void getCompanyManually() {
+        chuanyunBasicDataScheduledTask.getCompanyManually();
+    }
+
+    /**
+     * 手动更新集团项目信息
+     */
+    @Async
+    @GetMapping("/test/getGroupProject")
+    public void getGroupProjectManually() {
+        chuanyunBasicDataScheduledTask.getGroupProjectManually();
+    }
+
+    @Async
+    @GetMapping("/test/getCostCollectionManually")
+    public void getCostCollectionManually() {
+        chuanyunBasicDataScheduledTask.getCostCollectionManually();
+    }
+
+    @Async
+    @GetMapping("/test/getReimbursementItemsManually")
+    public void getReimbursementItemsManually() {
+        chuanyunBasicDataScheduledTask.getReimbursementItemsManually();
+    }
+
+    /**
+     * 获取人员费用归集
+     * @return
+     */
+    @GetMapping("/test/getAllCostCollection")
+    public ResponseEntity getAllCostCollection() {
+        List<ChuanyunCostCollectionDO> list = chuanyunService.getAllCostCollection();
+        return ResponseEntity.ok(list);
+    }
+
+    /**
+     * 更新人员所属部门
+     * @param code
+     */
+    @GetMapping("/test/updateProjectDept")
+    public void updateProjectDept(@RequestParam("code") String code) {
+        chuanyunService.updateChuanyunDept(code);
+    }
+
+    /**
+     * 将领导从特定项目中剔除
+     */
+    @GetMapping("/test/deleteProjectMember")
+    public void deleteProjectMember() {
+        chuanyunService.deleteProjectMember();
+    }
+
+
+}

+ 19 - 2
src/main/java/com/galaxis/manatee/dao/ChuanyunAskForLeaveDao.java

@@ -1,15 +1,32 @@
 package com.galaxis.manatee.dao;
 
 import com.galaxis.capsule.util.GalaxisRepository;
-import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunAskForLeaveDo;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunAskForLeaveDO;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * Created by IntelliJ IDEA.
  * User: xuj
  * Date: 2020/7/24
  */
 @Repository
-public interface ChuanyunAskForLeaveDao extends GalaxisRepository<ChuanyunAskForLeaveDo,String> {
+public interface ChuanyunAskForLeaveDao extends GalaxisRepository<ChuanyunAskForLeaveDO,String> {
+
+    /**
+     * SQL 查询是否存在请假信息,避免重复提交
+     * @param title
+     * @return
+     */
+    @Query(value = "SELECT * FROM chuanyun_askforleave WHERE title = ?1", nativeQuery = true)
+    List<ChuanyunAskForLeaveDO> findByTitleSQL(String title);
 
+    /**
+     * SQL 查询请假信息
+     * @return
+     */
+    @Query(value = "SELECT t.* FROM chuanyun_askforleave t GROUP BY t.title", nativeQuery = true )
+    List<ChuanyunAskForLeaveDO> findAllAskForLeave();
 }

+ 19 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunBudgetStatisticsDao.java

@@ -0,0 +1,19 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunBudgetStatisticsDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMemberCostDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ChuanyunBudgetStatisticsDao extends GalaxisRepository<ChuanyunBudgetStatisticsDO,String> {
+
+    @Query(value="SELECT chuanyun_group_project.object_id as project,chuanyun_budget_statist.object_id,SUM(chuanyun_budget_statist.budget_amount) AS budget_amount,SUM(chuanyun_budget_statist.final_amount) AS final_amount,\n" +
+            "chuanyun_budget_statist.fee_type,SUM(chuanyun_budget_statist.budget_amount)-SUM(chuanyun_budget_statist.final_amount) AS difference_amount\n" +
+            "FROM chuanyun_budget_statist LEFT JOIN chuanyun_group_project ON chuanyun_group_project.`name` = chuanyun_budget_statist.project\n" +
+            "GROUP BY\tchuanyun_budget_statist.project,chuanyun_budget_statist.fee_type",nativeQuery = true)
+    List<ChuanyunBudgetStatisticsDO> getTotalByProject();
+}

+ 7 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunCompanyDao.java

@@ -11,4 +11,11 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface ChuanyunCompanyDao extends GalaxisRepository<ChuanyunCompanyDO,String> {
+
+    /**
+     * 根据id获取详情
+     * @param id
+     * @return
+     */
+    ChuanyunCompanyDO findByObjectId(String id);
 }

+ 11 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunCostCollectionDao.java

@@ -0,0 +1,11 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCompanyDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCostCollectionDO;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface ChuanyunCostCollectionDao extends GalaxisRepository<ChuanyunCostCollectionDO,String> {
+}

+ 35 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunDayWorkAbcDao.java

@@ -0,0 +1,35 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunDayWorkAbcDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunUserCompanyDO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunDayWorkAbcDTO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by IntelliJ IDEA.
+ * author: xuj
+ * Date: 2020/8/7
+ * description: 项目工时ABC分析
+ */
+@Repository
+public interface ChuanyunDayWorkAbcDao extends GalaxisRepository<ChuanyunDayWorkAbcDO,String> {
+
+    @Query(value = "select a.project_id as project_id,b.project_code,b.project_name,sum(a.standard_work_hour) as total_time from chuanyun_self_work_hour a " +
+       "left join chuanyun_project b on a.project_id = b.object_id where  b.project_code is not null and b.project_name is not null group by a.project_id ",nativeQuery = true)
+    List<Map> queryDayWorkAbc();
+
+    @Query(value = " SELECT c.project_id,sum( c.standard_work_hour ) AS total_time,'' as object_id,'' as project_code,'' as project_name,'' as plan_time,'' as sell_time,'' as other_time from " +
+            "( SELECT a.project_id,a.standard_work_hour, b.user_type FROM chuanyun_self_work_hour a LEFT JOIN chuanyun_user_company b ON a.user_id = b.user_id ) c "+
+            "WHERE c.project_id = ?1 and c.user_type = ?2 group by c.project_id"
+            ,nativeQuery = true)
+    ChuanyunDayWorkAbcDO queryDayWorkAbcTotalTime(@Param("projctId")String projectId, @Param("userType")int userType);
+
+    ChuanyunDayWorkAbcDO findByProjectId(String projectId);
+
+}

+ 4 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunGroupProjectDao.java

@@ -2,6 +2,8 @@ package com.galaxis.manatee.dao;
 
 import com.galaxis.capsule.util.GalaxisRepository;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -11,4 +13,6 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface ChuanyunGroupProjectDao extends GalaxisRepository<ChuanyunGroupProjectDO,String> {
+
+    Page<ChuanyunGroupProjectDO> findAllByStatus(int status,Pageable pageable);
 }

+ 9 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunHolidaySalaryRuleDao.java

@@ -0,0 +1,9 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunHolidaySalaryRuleDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunHolidaySalaryRuleDao extends GalaxisRepository<ChuanyunHolidaySalaryRuleDO,String> {
+}

+ 18 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunLaborCostDao.java

@@ -0,0 +1,18 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLaborCostDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ChuanyunLaborCostDao extends GalaxisRepository<ChuanyunLaborCostDO,String> {
+//
+//    @Query(value="SELECT project_id AS object_id,chuanyun_user.name,(SUM(chuanyun_day_log.hours_worked)/184)*chuanyun_payroll.wages_payable AS owner_payroll,chuanyun_user.object_id AS userId"+
+//    " FROM chuanyun_project LEFT JOIN chuanyun_day_log ON chuanyun_day_log.project_id = chuanyun_project.object_id LEFT JOIN chuanyun_log ON chuanyun_log.object_id = chuanyun_day_log.parent_object_id LEFT JOIN chuanyun_user ON chuanyun_user.object_id = chuanyun_log.user_id"+
+//            " LEFT JOIN chuanyun_payroll ON chuanyun_payroll.employee_id = chuanyun_user.employee_number AND DATE_FORMAT(chuanyun_day_log.day_log_date,'%Y-%m') = DATE_FORMAT(chuanyun_payroll.period,'%Y-%m')"+
+//            " WHERE project_id = ? GROUP BY chuanyun_day_log.project_id,chuanyun_log.user_id,DATE_FORMAT(chuanyun_day_log.day_log_date,'%Y-%m')",nativeQuery = true)
+//    List<ChuanyunLaborCostDO> findLaborCost(String projectCode);
+}

+ 52 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunMemberCostDao.java

@@ -0,0 +1,52 @@
+package com.galaxis.manatee.dao;
+
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMemberCostDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @author kxuan
+ */
+@Repository
+public interface ChuanyunMemberCostDao extends GalaxisRepository<ChuanyunMemberCostDO,String> {
+
+    /**
+     * 获取项目人员总工时总成本
+     * @return
+     */
+    @Query(value="SELECT chuanyun_self_cost.object_id," +
+            "SUM(chuanyun_self_cost.total_hour) AS total_hour," +
+            "SUM(chuanyun_self_cost.cost) AS cost," +
+            "chuanyun_self_cost.project_type," +
+            "chuanyun_self_cost.project_id," +
+            "chuanyun_self_cost.status," +
+            "chuanyun_self_cost.user_id," +
+            "chuanyun_self_cost.monthly_total_hour AS person_days"+
+            " FROM chuanyun_self_cost " +
+            "GROUP BY chuanyun_self_cost.project_id," +
+            "chuanyun_self_cost.status," +
+            "chuanyun_self_cost.user_id",
+            nativeQuery = true)
+    List<ChuanyunMemberCostDO> getMemberCost();
+
+    /**
+     * 根据项目ID和人员ID获取工时成本数据
+     * @param userId    用户ID
+     * @param projectId 项目Id
+     * @param status    项目流程状态
+     * @return  人员-项目工时
+     */
+    ChuanyunMemberCostDO findByUserIdAndProjectIdAndStatus(String userId,String projectId,String status);
+
+    /**
+     * 删除审核中数据
+     * @param status
+     */
+    @Transactional
+    void deleteAllByStatus(String status);
+}

+ 16 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunMonthLaborCostDao.java

@@ -0,0 +1,16 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMonthLaborCostDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPayrollDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunMonthLaborCostDao extends GalaxisRepository<ChuanyunMonthLaborCostDO,String> {
+
+    @Query(value="SELECT SUM(chuanyun_month_laborcost.amount)AS totoalamount ,chuanyun_month_laborcost.* FROM chuanyun_month_laborcost \n" +
+            "LEFT JOIN chuanyun_group_project ON chuanyun_group_project.project_code = chuanyun_month_laborcost.project_code\n" +
+            "WHERE chuanyun_group_project.object_id = ? GROUP BY chuanyun_month_laborcost.project_code",nativeQuery = true)
+    ChuanyunMonthLaborCostDO getTotalCost(String projectCode);
+}

+ 16 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPayrollDao.java

@@ -0,0 +1,16 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPayrollDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunPayrollDao extends GalaxisRepository<ChuanyunPayrollDO,String> {
+
+    @Query(value="SELECT * FROM chuanyun_payroll LEFT JOIN chuanyun_user ON chuanyun_payroll.employee_id = chuanyun_user.employee_number"+
+            " WHERE chuanyun_user.object_id =?1 AND chuanyun_payroll.period=?2 ",nativeQuery = true)
+    ChuanyunPayrollDO  getPayroll(@Param("userId") String userId, @Param("period") String period);
+}

+ 53 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPersonDaysDao.java

@@ -0,0 +1,53 @@
+package com.galaxis.manatee.dao;
+
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLaborCostDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPersonDaysDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface ChuanyunPersonDaysDao extends GalaxisRepository<ChuanyunPersonDaysDO,String> {
+
+//    @Query(value="SELECT total.project_id AS object_id,SUM((self_work_hour.hours_worked / total.total_hour) * 8) / 8 AS person_days FROM(SELECT project_id,SUM(chuanyun_day_log.hours_worked)AS total_hour,user_id FROM chuanyun_project"+
+//            " LEFT JOIN chuanyun_day_log ON chuanyun_day_log.project_id = chuanyun_project.object_id LEFT JOIN chuanyun_log ON chuanyun_log.object_id = chuanyun_day_log.parent_object_id"+
+//            " GROUP BY chuanyun_project.object_id) total LEFT JOIN (SELECT chuanyun_day_log.hours_worked,chuanyun_log.user_id,chuanyun_day_log.project_id,chuanyun_day_log.project_type"+
+//            " FROM chuanyun_day_log LEFT JOIN chuanyun_log ON chuanyun_day_log.parent_object_id = chuanyun_log.object_id WHERE chuanyun_day_log.project_type NOT IN ('生产项目','管理项目')"+
+//            "GROUP BY chuanyun_day_log.project_id,chuanyun_log.user_id,chuanyun_day_log.day_log_date) self_work_hour ON self_work_hour.user_id = total.user_id WHERE total.project_id =?",nativeQuery = true)
+//    ChuanyunPersonDaysDO getPersonDays(String projectId);
+
+    /**
+     * 项目每人每天工时
+     * @param projectId
+     * @return
+     */
+    @Query(value="SELECT chuanyun_day_log.object_id,chuanyun_day_log.hours_worked,chuanyun_log.user_id,chuanyun_day_log.project_id,chuanyun_day_log.project_type FROM chuanyun_day_log"+
+            "\tLEFT JOIN chuanyun_log ON chuanyun_day_log.parent_object_id = chuanyun_log.object_id WHERE project_id = ?"+
+            "\tGROUP BY chuanyun_day_log.project_id,chuanyun_log.user_id,chuanyun_day_log.day_log_date",nativeQuery = true)
+    List<ChuanyunPersonDaysDO> getSelfWorkHour(String projectId);
+
+    /**
+     * 每人在项目总工时
+     * @param projectId
+     * @return
+     */
+    @Query(value="SELECT chuanyun_day_log.object_id,SUM(chuanyun_day_log.hours_worked) AS hours_worked,chuanyun_log.user_id,chuanyun_day_log.project_id FROM chuanyun_day_log"+
+            " LEFT JOIN chuanyun_log ON chuanyun_day_log.parent_object_id = chuanyun_log.object_id WHERE chuanyun_log.user_id = ?1 AND chuanyun_day_log.project_id=?2"+
+            " GROUP BY chuanyun_day_log.project_id,chuanyun_log.user_id",nativeQuery = true)
+    ChuanyunPersonDaysDO getTotalWorkHour(@Param("userId") String userId, @Param("projectId") String projectId);
+
+    /**
+     * 项目每人每天工时
+     * @param projectId
+     * @return
+     */
+    @Query(value="SELECT chuanyun_day_log.object_id,chuanyun_day_log.hours_worked,chuanyun_log.user_id,chuanyun_day_log.project_id,chuanyun_day_log.project_type FROM chuanyun_day_log"+
+            "\tLEFT JOIN chuanyun_log ON chuanyun_day_log.parent_object_id = chuanyun_log.object_id WHERE project_id = ?1 AND chuanyun_log.user_id = ?2"+
+            "\tGROUP BY chuanyun_day_log.project_id,chuanyun_log.user_id,chuanyun_day_log.day_log_date",nativeQuery = true)
+    List<ChuanyunPersonDaysDO> getSelfUserWorkHour(@Param("projectId")String projectId,@Param("userId")String userId);
+
+}

+ 10 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunProjectCashFlowDao.java

@@ -0,0 +1,10 @@
+package com.galaxis.manatee.dao;
+
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCashFlowDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunProjectCashFlowDao extends GalaxisRepository<ChuanyunProjectCashFlowDO,String> {
+}

+ 45 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunProjectCostDao.java

@@ -0,0 +1,45 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMemberCostDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCostDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @author kxuan
+ */
+@Repository
+public interface ChuanyunProjectCostDao extends GalaxisRepository<ChuanyunProjectCostDO,String> {
+
+    /**
+     * 获取项目总工时成本
+     * @return  项目总工时
+     */
+    @Query(value="SELECT chuanyun_member_cost.object_id," +
+            "SUM(chuanyun_member_cost.cost) AS cost," +
+            "SUM(chuanyun_member_cost.total_hour) AS total_hour," +
+            "SUM(chuanyun_member_cost.person_days) AS person_days," +
+            "chuanyun_member_cost.project_type," +
+            "chuanyun_member_cost.status," +
+            "chuanyun_member_cost.project_id, " +
+            "chuanyun_member_cost.cost AS amount" +
+            " FROM chuanyun_member_cost " +
+            "GROUP BY chuanyun_member_cost.project_id,"+
+            "chuanyun_member_cost.status",
+            nativeQuery = true)
+    List<ChuanyunProjectCostDO> getProjectCost();
+
+    /**
+     * 根据项目号获取工时数据
+     * @param projectId 项目Id
+     * @return  项目工时对象
+     */
+    ChuanyunProjectCostDO findByProjectId(String projectId);
+
+    @Transactional
+    void deleteAllByStatus(String status);
+}

+ 10 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunProjectTypeDao.java

@@ -0,0 +1,10 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectTypeDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunProjectTypeDao extends GalaxisRepository<ChuanyunProjectTypeDO,String> {
+}

+ 11 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunPurCostDao.java

@@ -0,0 +1,11 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPurCostDO;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+
+@Repository
+public interface ChuanyunPurCostDao extends JpaRepository<ChuanyunPurCostDO,String> {
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementAmountDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunMemberCostDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementAmountDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunReimbursementAmountDao extends GalaxisRepository<ChuanyunReimbursementAmountDO,String> {
+
+    @Query(value="SELECT SUM(chuanyun_reimbursement.amount) AS total_amount,chuanyun_reimbursement.object_id  FROM chuanyun_reimbursement WHERE chuanyun_reimbursement.group_project_id = ?",nativeQuery = true)
+    ChuanyunReimbursementAmountDO getAmount(String projectId);
+}

+ 6 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementDao.java

@@ -6,6 +6,8 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 
 /**
  * @author zcj
@@ -22,4 +24,8 @@ public interface ChuanyunReimbursementDao extends GalaxisRepository<ChuanyunReim
      * @return  列表
      */
     Page<ChuanyunReimbursementDO> findAllByErpFlag(Integer erpFlag, Pageable pageable);
+
+    List<ChuanyunReimbursementDO> findAllByGroupProjectId(String projectId);
+
+
 }

+ 10 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunReimbursementItemsDao.java

@@ -0,0 +1,10 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCompanyDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementItemsDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface ChuanyunReimbursementItemsDao extends GalaxisRepository<ChuanyunReimbursementItemsDO,String> {
+}

+ 45 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSelfCostDao.java

@@ -0,0 +1,45 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfCostDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfWorkHourDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Repository
+public interface ChuanyunSelfCostDao extends GalaxisRepository<ChuanyunSelfCostDO,String> {
+
+    /**
+     * 根据状态查询月工时统计记录
+     * @param status    状态
+     * @param userId    用户Id
+     * @return  月工时统计列表
+     */
+    List<ChuanyunSelfCostDO> findAllByStatusAndUserId(String status,String userId);
+
+    /**
+     * 获取项目人员总工时
+     * @return  月工时统计列表
+     */
+    @Query(value="SELECT chuanyun_self_cost.object_id,SUM(chuanyun_self_cost.total_hour) AS total_hour,SUM(chuanyun_self_cost.cost) AS cost,chuanyun_self_cost.project_id,chuanyun_self_cost.user_id"+
+            " FROM chuanyun_self_cost GROUP BY chuanyun_self_cost.project_id,chuanyun_self_cost.user_id",nativeQuery = true)
+    List<ChuanyunSelfCostDO> getMemberCost();
+
+    /**
+     * 根据用户ID和项目ID,日期获取工时成本数据
+     * @param userId    用户Id
+     * @param projectId 项目Id
+     * @param status    工时状态
+     * @param dayLogDate    日期
+     * @return  月工时统计列表
+     */
+    @Query(value="SELECT * FROM chuanyun_self_cost " +
+            "WHERE user_id = ?1 " +
+            "AND project_id = ?2 " +
+            "AND DATE_FORMAT(chuanyun_self_cost.day_log_date,'%Y-%m')=DATE_FORMAT(?3,'%Y-%m') AND status=?4",nativeQuery = true)
+    ChuanyunSelfCostDO getOldSelfDO(@Param("userId")String userId,@Param("projectId")String projectId,@Param("dayLogDate")String dayLogDate,String status);
+}

+ 85 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSelfWorkHourDao.java

@@ -0,0 +1,85 @@
+package com.galaxis.manatee.dao;
+
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSelfWorkHourDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunWorkHourDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author kxuan
+ */
+@Repository
+public interface ChuanyunSelfWorkHourDao extends GalaxisRepository<ChuanyunSelfWorkHourDO,String> {
+
+    /**
+     * 根据项目id,用户id,日期获取工时数据
+     * @param userId    用户Id
+     * @param projectId 项目Id
+     * @param dayLogDate    日志日期
+     * @return  日工时记录
+     */
+    ChuanyunSelfWorkHourDO findByUserIdAndAndProjectIdAndAndDayLogDate(String userId, String projectId, LocalDateTime dayLogDate);
+
+    /**
+     * 根据用户Id,项目Id,起止时间获取工时列表
+     * @param userId    用户Id
+     * @param projectId 项目Id
+     * @param status    状态
+     * @param start     开始时间
+     * @param end       结束时间
+     * @return  日工时列表
+     */
+    List<ChuanyunSelfWorkHourDO> findAllByUserIdAndProjectIdAndStatusAndDayLogDateBetween(String userId,String projectId,String status,LocalDateTime start,LocalDateTime end);
+
+    /**
+     * 获取人员-项目-月度标准总工时
+     * @param userId    用户ID
+     * @return  汇总数据
+     */
+    @Query(value="SELECT SUM(chuanyun_self_work_hour.standard_work_hour) AS standard_work_hour," +
+            "chuanyun_self_work_hour.day_log_date," +
+            "chuanyun_self_work_hour.user_id," +
+            "chuanyun_self_work_hour.project_id," +
+            "chuanyun_self_work_hour.project_type," +
+            "chuanyun_self_work_hour.status," +
+            "chuanyun_self_work_hour.object_id " +
+            "FROM chuanyun_self_work_hour " +
+            "WHERE chuanyun_self_work_hour.user_id=? " +
+            "GROUP BY chuanyun_self_work_hour.user_id," +
+            "DATE_FORMAT(chuanyun_self_work_hour.day_log_date,'%Y-%m')," +
+            "chuanyun_self_work_hour.project_id," +
+            "chuanyun_self_work_hour.status," +
+            "chuanyun_self_work_hour.project_type",
+            nativeQuery = true)
+    List<ChuanyunSelfWorkHourDO> getMonthProjectHour(String userId);
+
+    /**
+     * 获取人员月度标准工时汇总
+     * @param userId    用户ID
+     * @param dayLogDate    查询月份日期
+     * @param status        工时状态
+     * @return  汇总数据
+     */
+    @Query(value="SELECT SUM(chuanyun_self_work_hour.standard_work_hour) AS standard_work_hour," +
+            "chuanyun_self_work_hour.day_log_date," +
+            "chuanyun_self_work_hour.user_id," +
+            "chuanyun_self_work_hour.status," +
+            "chuanyun_self_work_hour.project_type," +
+            "chuanyun_self_work_hour.project_id," +
+            "chuanyun_self_work_hour.object_id "+
+            "FROM chuanyun_self_work_hour " +
+            "WHERE chuanyun_self_work_hour.user_id= ?1 " +
+            "AND  chuanyun_self_work_hour.status= ?3 "+
+            "AND DATE_FORMAT(chuanyun_self_work_hour.day_log_date,'%Y-%m')=DATE_FORMAT(?2,'%Y-%m') "+
+            "GROUP BY chuanyun_self_work_hour.user_id," +
+            "chuanyun_self_work_hour.status," +
+            "DATE_FORMAT(chuanyun_self_work_hour.day_log_date,'%Y-%m')",
+            nativeQuery = true)
+    ChuanyunSelfWorkHourDO getMonthHour(@Param("userId") String userId,@Param("dayLogDate") String dayLogDate,@Param("status")String status);
+}

+ 14 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunSpecialProcedureDao.java

@@ -0,0 +1,14 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunSpecialProcedureDO;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/6/6 10:07 上午
+ */
+@Repository
+public interface ChuanyunSpecialProcedureDao extends GalaxisRepository<ChuanyunSpecialProcedureDO,String> {
+}

+ 7 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunUserCompanyDao.java

@@ -1,7 +1,10 @@
 package com.galaxis.manatee.dao;
 
 import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunUserCompanyDO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -20,4 +23,8 @@ public interface ChuanyunUserCompanyDao extends GalaxisRepository<ChuanyunUserCo
      * @return  返回值
      */
     List<ChuanyunUserCompanyDO> findAllByUserId(String userId);
+
+    ChuanyunUserCompanyDO findByUserId(String userId);
+
+    Page<ChuanyunUserCompanyDO> findAllByStatus(int status, Pageable pageable);
 }

+ 7 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunUserDao.java

@@ -17,4 +17,11 @@ public interface ChuanyunUserDao extends GalaxisRepository<ChuanyunUserDO,String
      * @return  对象
      */
     ChuanyunUserDO findByName(String name);
+
+    /**
+     * 根据钉钉号获取用户对象
+     * @param dingTalkAccount   钉钉号
+     * @return  氚云对象
+     */
+    ChuanyunUserDO findByDingTalkAccountContaining(String dingTalkAccount);
 }

+ 51 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunWeekMemberHourDao.java

@@ -0,0 +1,51 @@
+package com.galaxis.manatee.dao;
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCostDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunWeekMemberHourDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Repository
+public interface ChuanyunWeekMemberHourDao extends GalaxisRepository<ChuanyunWeekMemberHourDO,String> {
+
+    /**
+     * 根据状态删除数据
+     * @param status    状态
+     * @return  删除条数
+     */
+    @Transactional
+    Integer deleteAllByStatus(String status);
+
+    /**
+     * 人员-项目-周度工时汇总
+     * @return
+     */
+    @Query(value="SELECT chuanyun_self_work_hour.object_id," +
+            "DATE_FORMAT(day_log_date,'%Y') as year," +
+            "WEEKOFYEAR(chuanyun_self_work_hour.day_log_date) AS week," +
+            "project_id,user_id," +
+            "SUM(standard_work_hour)AS standard_work_hour," +
+            "project_type," +
+            "`status`" +
+            "FROM chuanyun_self_work_hour " +
+            "WHERE project_id !='' " +
+            "GROUP BY chuanyun_self_work_hour.project_id," +
+            "chuanyun_self_work_hour.user_id," +
+            "DATE_FORMAT(day_log_date,'%Y')," +
+            "WEEKOFYEAR(chuanyun_self_work_hour.day_log_date)," +
+            "chuanyun_self_work_hour.`status`",nativeQuery = true)
+    List<ChuanyunWeekMemberHourDO> getWeekMemberHour();
+
+    /**
+     * 项目人员周度是否存在
+     * @param projectId
+     * @param userId
+     * @param week
+     * @return
+     */
+    ChuanyunWeekMemberHourDO findByProjectIdAndUserIdAndWeekAndStatusAndProjectTypeAndYear(String projectId,String userId,String week,String status,String projectType,String year);
+}

+ 61 - 0
src/main/java/com/galaxis/manatee/dao/ChuanyunWorkHourDao.java

@@ -0,0 +1,61 @@
+package com.galaxis.manatee.dao;
+
+
+import com.galaxis.capsule.util.GalaxisRepository;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunWorkHourDO;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author kxuan
+ */
+@Repository
+public interface ChuanyunWorkHourDao extends GalaxisRepository<ChuanyunWorkHourDO,String> {
+
+    /**
+     * 根据用户Id获取用户日志明细,并按日期拍
+     * @param userId    用户Id
+     * @return  日志数据
+     */
+    @Query(value="SELECT chuanyun_day_log.object_id," +
+            "SUM(chuanyun_day_log.hours_worked) AS hours_worked," +
+            "chuanyun_day_log.project_id," +
+            "chuanyun_day_log.project_type," +
+            "chuanyun_log.user_id," +
+            "chuanyun_log.status," +
+            "chuanyun_day_log.day_log_date " +
+            "FROM chuanyun_day_log "+
+            "LEFT JOIN chuanyun_log ON chuanyun_day_log.parent_object_id = chuanyun_log.object_id " +
+            " WHERE chuanyun_log.user_id = ? " +
+            " GROUP BY chuanyun_day_log.project_id," +
+            "chuanyun_log.user_id," +
+            "chuanyun_log.status," +
+            "chuanyun_day_log.day_log_date",
+            nativeQuery = true)
+    List<ChuanyunWorkHourDO> getSelfWorkHour(String userId);
+
+    /**
+     * 根据用户ID和日期筛选工时数据
+     * @param userId    用户Id
+     * @param day   日期
+     * @return  人员工时数据
+     */
+    @Query(value="SELECT chuanyun_day_log.object_id," +
+            "SUM(chuanyun_day_log.hours_worked) AS hours_worked," +
+            "chuanyun_day_log.project_id," +
+            "chuanyun_day_log.project_type," +
+            "chuanyun_log.user_id," +
+            "chuanyun_log.status," +
+            "chuanyun_day_log.day_log_date " +
+            "FROM chuanyun_day_log "+
+            "LEFT JOIN chuanyun_log ON chuanyun_day_log.parent_object_id = chuanyun_log.object_id " +
+            "WHERE chuanyun_log.user_id = ? " +
+            "AND chuanyun_day_log.day_log_date =? " +
+            "GROUP BY chuanyun_log.user_id," +
+            "chuanyun_day_log.day_log_date",
+            nativeQuery = true)
+    ChuanyunWorkHourDO getDayWorkHour(String userId,LocalDateTime day);
+}

+ 58 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAdjustAccountDO.java

@@ -0,0 +1,58 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_ADJUSTACCOUNT")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunAdjustAccountDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017892ee29d6120484e65b033773717c8548f";
+
+    @JsonProperty("F0000002")
+    private String projectCode;
+
+
+    /**
+     * 核算实施人天
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal personDays;
+
+    /**
+     * 核算实施人力成本
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal laborCost;
+
+    /**
+     * 核算实施费用
+     */
+    @JsonProperty("F0000005")
+    private BigDecimal implementationCosts;
+
+    /**
+     *核算实施总成本
+     */
+    @JsonProperty("F0000006")
+    private BigDecimal totalImplementationCosts;
+
+
+
+}

+ 191 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAskForLeaveDO.java

@@ -0,0 +1,191 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.dingtalk.api.response.OapiProcessinstanceGetResponse;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import net.sf.json.JSONArray;
+import org.springframework.beans.BeanUtils;
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: xuj
+ * Date: 2020/7/23
+ * @author xuj
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_ASKFORLEAVE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunAskForLeaveDO extends BasicDO {
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789c490c2213711480d8b2c3eee7099e39d";
+
+    /**
+     * 标题
+     */
+    @JsonProperty("F0000001")
+    private String title;
+
+    /**
+     * 抄送人
+     */
+    @JsonProperty("cc_userids")
+    private String ccUserids;
+
+    /**
+     * 操作
+     */
+    @JsonProperty("biz_action")
+    private String bizAction;
+
+    /**
+     * 创建时间
+     */
+    @JsonProperty("create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 结束时间
+     */
+    @JsonProperty("finish_time")
+    private LocalDateTime finishTime;
+
+
+    @JsonProperty("main_process_instance_id")
+    private String mainProcessInstanceId;
+
+    @JsonProperty("is_canncel")
+    private int isCanncel;
+
+    /**
+     * 发起人userId
+     */
+    @JsonProperty("originator_userid")
+    private String originatorUserid;
+
+    /**
+     * 发起人姓名
+     */
+    @JsonProperty("F0000007")
+    private String originatorUserName;
+
+    /**
+     * 发起部门
+     */
+    @JsonProperty("originator_dept_id")
+    private String originatorDeptId;
+
+    /**
+     * 审批结果: 同意 和 不同意
+     */
+    @JsonProperty("approvalResult")
+    private String approvalResult;
+
+    /**
+     * 审批实例业务编号
+     */
+    @JsonProperty("business_id")
+    private String businessId;
+
+    /**
+     * 发起部门
+     */
+    @JsonProperty("F0000002")
+    private String originatorDeptName;
+
+    /**
+     * 请假事由
+     */
+    @JsonProperty("F0000005")
+    private String leaveType;
+
+    /**
+     * 劳动合同所属公司
+     */
+    @JsonProperty("F0000004")
+    private String contractOwnerLtd;
+
+    @JsonProperty("F0000006")
+    private String result;
+
+    /**
+     * 请假开始时间
+     */
+    @JsonProperty("F0000016")
+    private String startTime;
+
+    /**
+     * 请假结束时间
+     */
+    private String endTime;
+
+    /**
+     * 请假时长
+     */
+    @JsonProperty("F0000017")
+    private BigDecimal totalDay;
+
+    /**
+     * 请假人Id
+     */
+    @JsonProperty("F0000018")
+    private String askForLeaveUserId;
+
+    /**
+     * 根据ProcessInstanceTopVo获得chuanyunAskForLeaveDo
+     * @param processInstanceTopVo   传输数据
+     * @return  保存数据
+     */
+    public static ChuanyunAskForLeaveDO fromAskForLeaveDTO(OapiProcessinstanceGetResponse.ProcessInstanceTopVo processInstanceTopVo){
+        ChuanyunAskForLeaveDO chuanyunAskForLeaveDo = new ChuanyunAskForLeaveDO();
+        chuanyunAskForLeaveDo.setIsCanncel(0);
+        if(processInstanceTopVo.getOperationRecords()!= null) {
+            if(processInstanceTopVo.getOperationRecords().get(0).getUserid().equals(processInstanceTopVo.getOperationRecords().get(processInstanceTopVo.getOperationRecords().size() -1).getUserid())
+                    && processInstanceTopVo.getOperationRecords().get(0).getUserid().equals(processInstanceTopVo.getOriginatorUserid())  ) {
+                if(processInstanceTopVo.getOperationRecords().get(0).getOperationType().equals("START_PROCESS_INSTANCE")
+                        && processInstanceTopVo.getOperationRecords().get(processInstanceTopVo.getOperationRecords().size() -1).getOperationType().equals("TERMINATE_PROCESS_INSTANCE")) {
+                    chuanyunAskForLeaveDo.setIsCanncel(1);
+                }
+            }
+        }
+        BeanUtils.copyProperties(processInstanceTopVo, chuanyunAskForLeaveDo);
+        List<OapiProcessinstanceGetResponse.FormComponentValueVo> formComponentList = processInstanceTopVo.getFormComponentValues();
+        if(formComponentList != null && formComponentList.size() > 0) {
+            for (OapiProcessinstanceGetResponse.FormComponentValueVo formComponentValueVo : formComponentList) {
+                if ("请假事由".equals(formComponentValueVo.getName())) {
+                    chuanyunAskForLeaveDo.setLeaveType(formComponentValueVo.getValue());
+                }
+                if ("劳动合同所属公司".equals(formComponentValueVo.getName())) {
+                    chuanyunAskForLeaveDo.setContractOwnerLtd(formComponentValueVo.getValue());
+                }
+                if(("[\"开始时间\",\"结束时间\"]").equals(formComponentValueVo.getName())){
+                    try {
+                        JSONArray json = JSONArray.fromObject(formComponentValueVo.getValue());
+                        chuanyunAskForLeaveDo.setStartTime((String)json.get(0));
+                        chuanyunAskForLeaveDo.setEndTime((String)json.get(1));
+                        chuanyunAskForLeaveDo.setTotalDay(new BigDecimal(String.valueOf(json.get(2))));
+                        chuanyunAskForLeaveDo.setTitle((String.valueOf(json.get(0)) + chuanyunAskForLeaveDo.getTitle()));
+                    }catch(Exception e) {
+                        log.warn("请假信息解析异常");
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+        chuanyunAskForLeaveDo.setObjectId(UUID.randomUUID().toString());
+        return chuanyunAskForLeaveDo;
+    }
+
+}

+ 0 - 128
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunAskForLeaveDo.java

@@ -1,128 +0,0 @@
-package com.galaxis.manatee.entity.chuanyun.data.object;
-
-import com.dingtalk.api.response.OapiProcessinstanceGetResponse;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.databind.annotation.JsonNaming;
-import com.galaxis.capsule.dto.MaterialDTO;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-
-import javax.persistence.Entity;
-import java.nio.file.LinkOption;
-import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.UUID;
-
-/**
- * Created by IntelliJ IDEA.
- * User: xuj
- * Date: 2020/7/23
- */
-@Slf4j
-@EqualsAndHashCode(callSuper = true)
-@Data
-@Entity(name = "CHUANYUN_ASKFORLEAVE")
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class ChuanyunAskForLeaveDo extends BasicDO {
-
-    /**
-     * 标题
-     */
-    @JsonProperty("title")
-    private String title;
-
-    /**
-     * 抄送人
-     */
-    @JsonProperty("cc_userids")
-    private String ccUserids;
-
-    /**
-     * 操作
-     */
-    @JsonProperty("biz_action")
-    private String bizAction;
-
-    /**
-     * 创建时间
-     */
-    @JsonProperty("create_time")
-    private Date createTime;
-
-    /**
-     * 结束时间
-     */
-    @JsonProperty("finish_time")
-    private Date finishTime;
-
-
-    @JsonProperty("main_process_instance_id")
-    private String mainProcessInstanceId;
-
-    /**
-     * 发起人
-     */
-    @JsonProperty("originator_userid")
-    private String originatorUserid;
-
-    /**
-     * 发起部门
-     */
-    @JsonProperty("originator_dept_id")
-    private String originatorDeptId;
-
-    /**
-     * 抄送人
-     */
-    @JsonProperty("cc_userids")
-    private String ccUserId;
-
-    /**
-     * 审批结果: 同意 和 不同意
-     */
-    @JsonProperty("result")
-    private String approvalResult;
-
-    /**
-     * 审批实例业务编号
-     */
-    @JsonProperty("business_id")
-    private String businessId;
-
-    /**
-     * 发起部门
-     */
-    @JsonProperty("originator_dept_name")
-    private String originatorDeptName;
-
-    /**
-     * 请假类型
-     */
-    @JsonProperty("leave_type")
-    private String leaveType;
-
-    /**
-     * 请假事由
-     */
-    @JsonProperty("leave_reason")
-    private String leaveReason;
-
-    @JsonProperty("result")
-    private String result;
-
-    /**
-     * 根据ProcessInstanceTopVo获得chuanyunAskForLeaveDo
-     * @param processInstanceTopVo   传输数据
-     * @return  保存数据
-     */
-    public static ChuanyunAskForLeaveDo fromAskForLeaveDTO(OapiProcessinstanceGetResponse.ProcessInstanceTopVo processInstanceTopVo){
-        ChuanyunAskForLeaveDo chuanyunAskForLeaveDo =new ChuanyunAskForLeaveDo();
-        BeanUtils.copyProperties(processInstanceTopVo, chuanyunAskForLeaveDo);
-        chuanyunAskForLeaveDo.setObjectId(UUID.randomUUID().toString());
-        return chuanyunAskForLeaveDo;
-    }
-
-}

+ 53 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBudgetAmountDO.java

@@ -0,0 +1,53 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunBudgetAmountDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017898109525336e64d83bd9552c98b4385aa";
+
+    /**
+     * 所属项目
+     */
+    @JsonProperty("F0000001")
+    private String project;
+
+    /**
+     * 费用类型
+     */
+    @JsonProperty("F0000002")
+    private String feeType;
+
+    /**
+     * 预算金额
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal budgetAmount;
+
+    /**
+     * 决算金额
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal finalAmount;
+
+    /**
+     * 预算绝算差异
+     */
+    @JsonProperty("F0000005")
+    private BigDecimal differenceAmount;
+}

+ 51 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunBudgetStatisticsDO.java

@@ -0,0 +1,51 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_BUDGET_STATIST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunBudgetStatisticsDO {
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue(generator = "idGeneratorChuanyunSelfCost")
+    @GenericGenerator(name ="idGeneratorChuanyunSelfCost" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    /**
+     * 所属项目
+     */
+    private String project;
+
+    /**
+     * 费用类型
+     */
+    private String feeType;
+
+    /**
+     * 预算金额
+     */
+    private BigDecimal budgetAmount;
+
+    /**
+     * 决算金额
+     */
+    private BigDecimal finalAmount;
+
+    /**
+     * 预算绝算差异
+     */
+    private BigDecimal differenceAmount;
+}

+ 21 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunCommonDO.java

@@ -0,0 +1,21 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunCommonDO extends BasicDO{
+
+    @JsonProperty("OwnerId")
+    private String ownerId;
+}

+ 6 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunCompanyDO.java

@@ -41,6 +41,12 @@ public class ChuanyunCompanyDO extends BasicDO{
     private String erpCode;
 
     /**
+     * U9生效
+     */
+    @JsonProperty("F0000009")
+    private String effective;
+
+    /**
      * 银行代码
      */
     @JsonProperty("F0000007")

+ 77 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunCostCollectionDO.java

@@ -0,0 +1,77 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_COST_COLLECTION")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunCostCollectionDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789ac8de4abffcc48cba8f7ce172e551ace";
+
+    /**
+     * 工号
+     */
+    @JsonProperty("F0000001")
+    public String employCode;
+
+    /**
+     * 姓名
+     */
+    @JsonProperty("F0000003")
+    public String employName;
+
+    /**
+     *是否报工
+     */
+    @JsonProperty("F0000004")
+    public String isTrue;
+
+    /**
+     * 项目所属ID
+     */
+    @JsonProperty("F0000005")
+    private String projectId;
+
+    /**
+     * 项目号
+     */
+    @JsonProperty("F0000006")
+    public String projectCode;
+
+    /**
+     * 项目名称
+     */
+    @JsonProperty("F0000007")
+    public String projectName;
+
+    /**
+     * 项目类别
+     */
+    @JsonProperty("F0000010")
+    public String projectType;
+
+    /**
+     * 外部项目名称
+     */
+    @JsonProperty("F0000008")
+    public String outProjectName;
+
+    /**
+     * 分摊比例
+     */
+    @JsonProperty("F0000009")
+    public BigDecimal rate;
+}

+ 73 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunDayWorkAbcDO.java

@@ -0,0 +1,73 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+/**
+ * Created by IntelliJ IDEA.
+ * author: xuj
+ * Date: 2020/8/7
+ * Description: 项目工时分析
+ */
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_DAY_WORK_ABC")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunDayWorkAbcDO {
+
+    @Id
+    @JsonProperty(value = "ObjectId")
+    private String objectId;
+
+    /**
+     * 项目id
+     */
+    @JsonProperty("project_id")
+    private String projectId;
+
+    /**
+     * 项目编号
+     */
+    @JsonProperty("project_code")
+    private String projectCode;
+
+    /**
+     * 项目名称
+     */
+    @JsonProperty("project_name")
+    private String projectName;
+
+    /**
+     * 总工时
+     */
+    @JsonProperty("total_time")
+    private BigDecimal totalTime;
+
+    /**
+     * 规划人员本项目工时
+     */
+    @JsonProperty("plan_time")
+    private BigDecimal planTime;
+
+    /**
+     * 销售人员本项目工时
+     */
+    @JsonProperty("sell_time")
+    private BigDecimal sellTime;
+
+    /**
+     * 其他支持人员本项目工时
+     */
+    @JsonProperty("other_time")
+    private BigDecimal otherTime;
+
+}

+ 28 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunEquipmentType.java

@@ -0,0 +1,28 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_EQUIPMENT_TYPE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunEquipmentType extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789a093e3db5f804db99744c956f1eb7797";
+
+    /**
+     * 设备分类名称
+     */
+    @JsonProperty("F0000001")
+    private String equipmentTypeName;
+}

+ 62 - 12
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunGroupProjectDO.java

@@ -5,7 +5,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.galaxis.capsule.bo.ChuanyunObject;
 import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
-import com.galaxis.manatee.util.StringArrayToStringDeserializer;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.extern.slf4j.Slf4j;
@@ -48,6 +47,13 @@ public class ChuanyunGroupProjectDO extends BasicDO {
      */
     @JsonProperty(value = "F0000003")
     private String projectName;
+
+    /**
+     * 外部项目名称
+     */
+    @JsonProperty(value="F0000038")
+    private String outProjectName;
+
     /**
      * 项目类型
      */
@@ -59,6 +65,14 @@ public class ChuanyunGroupProjectDO extends BasicDO {
      */
     @JsonProperty(value = "F0000033")
     private String businessGroup;
+    /**
+     * EBG
+     */
+    public static final String EBG="EBG";
+    /**
+     * IBG
+     */
+    public static final String IBG="IBG";
 
     /**
      * 氚云中项目立项时间
@@ -94,6 +108,51 @@ public class ChuanyunGroupProjectDO extends BasicDO {
     private String ebgProjectManager;
 
     /**
+     * 项目组成员(前端传数据用)
+     */
+    @Transient
+    @JsonProperty("F0000034")
+    private String[] projectMemberList;
+
+    /**
+     * 项目组成员
+     */
+    @Column(columnDefinition = "TEXT")
+    private String projectMember;
+
+    /**
+     * 项目状态
+     */
+    @JsonProperty("F0000031")
+    private String projectStatus;
+
+    /**
+     * 签约组织成本中心编码
+     */
+    @JsonProperty(value = "F0000032")
+    private String signCompany;
+
+    /**
+     * 关联项目号
+     */
+    @JsonProperty("F0000040")
+    private String relationProjectCode;
+
+    /**
+     * 客户编码
+     * U9编码
+     */
+    @JsonProperty(value = "F0000041")
+    private String customerCode;
+
+    /**
+     * 项目组成员对象
+     */
+    @Transient
+    @JsonProperty("F0000034Object")
+    private List<ChuanyunObject> projectMemberObject;
+
+    /**
      * 项目总监数据对象
      */
     @Transient
@@ -138,18 +197,9 @@ public class ChuanyunGroupProjectDO extends BasicDO {
 //    @JsonProperty(value = "F0000029")
 //    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
 //    private LocalDateTime projectEndDateTime;
-//    /**
-//     * 客户编码
-//     * U9编码
-//     */
-//    @JsonProperty(value = "F0000054")
-//    private String customerCode;
+
 //
-//    /**
-//     * 签约组织成本中心编码
-//     */
-//    @JsonProperty(value = "F0000051")
-//    private String department;
+
 //
 //    /**
 //     * 项目经理

+ 7 - 1
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunGroupProjectDetailDO.java

@@ -22,6 +22,12 @@ import java.time.LocalDateTime;
 @Entity(name = "CHUANYUN_GROUP_PROJECT_DETAIL")
 @JsonIgnoreProperties(ignoreUnknown = true)
 public class ChuanyunGroupProjectDetailDO extends BasicSubDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789Fd992bf8fbe114c9babe0f98cf676f8a2";
+
     /**
      * 项目组织名称
      */
@@ -36,7 +42,7 @@ public class ChuanyunGroupProjectDetailDO extends BasicSubDO{
     /**
      * 项目分类
      */
-    @JsonProperty("F0000026")
+    @JsonProperty("F0000037")
     private String type;
 
     /**

+ 65 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunHolidaySalaryRuleDO.java

@@ -0,0 +1,65 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_HOLIDAY_SALARY_RULE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunHolidaySalaryRuleDO extends BasicDO{
+
+    /**
+     * 表编码
+     */
+    public static final String SCHEMA_CODE ="D001789c4b18d595e624fd2bd63e8fbbbdca1d4";
+
+    /**
+     * 年份
+     */
+    @JsonProperty("F0000005")
+    private Integer year;
+
+    /**
+     * 日期
+     */
+    @JsonProperty("F0000001")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
+    private LocalDateTime holidayDate;
+
+    /**
+     * 日期说明
+     */
+    @JsonProperty("F0000002")
+    private String content;
+
+    /**
+     * 日期类型
+     */
+    @JsonProperty("F0000003")
+    private String dateType;
+
+    /**
+     * 加成系数
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal coefficient;
+
+}

+ 24 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunLaborCostDO.java

@@ -0,0 +1,24 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+@Slf4j
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunLaborCostDO {
+
+    @Id
+    private String objectId;
+
+    private BigDecimal ownerPayroll;
+
+}

+ 6 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunLogDO.java

@@ -125,4 +125,10 @@ public class ChuanyunLogDO extends BasicDO{
     @JsonProperty("CreatedByObject")
     @Transient
     private ChuanyunObject createdByObject;
+    /**
+     * 用户对象
+     */
+    @JsonProperty("userObject")
+    @Transient
+    private ChuanyunObject userObject;
 }

+ 47 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberCostDO.java

@@ -0,0 +1,47 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_MEMBER_COST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunMemberCostDO {
+
+    @Id
+    @GeneratedValue(generator = "idGeneratorChuanyunMemberCost")
+    @GenericGenerator(name ="idGeneratorChuanyunMemberCost" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    private String userId;
+
+    /**
+     * 项目类型
+     */
+    private String projectType;
+
+    private String projectId;
+
+    /**
+     * 项目流程状态
+     */
+    private String status;
+
+    private BigDecimal totalHour;
+
+    private BigDecimal cost;
+
+    private BigDecimal personDays;
+}

+ 45 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberHourDO.java

@@ -0,0 +1,45 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunMemberHourDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017899cae010a8a5741b5be13a1fa7f67330d";
+
+    @JsonProperty("F0000002")
+    private String userId;
+
+    private String projectType;
+
+    @JsonProperty("F0000001")
+    private String projectId;
+
+    @JsonProperty("F0000003")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime dayLogDate;
+
+    @JsonProperty("F0000004")
+    private BigDecimal standardWorkHour;
+}

+ 75 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMemberMonthCostDO.java

@@ -0,0 +1,75 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunMemberMonthCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789f4833b5cbd0147a4957a7a466e65297a";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000003")
+    private String projectId;
+
+    /**
+     * 项目类型
+     */
+    @JsonProperty("F0000008")
+    private String projectType;
+
+    /**
+     * 用户ID
+     */
+    @JsonProperty("F0000002")
+    private String userId;
+
+    /**
+     * 日期
+     */
+    @JsonProperty("F0000004")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime dayLogDate;
+
+    /**
+     * 工时
+     */
+    @JsonProperty("F0000005")
+    private BigDecimal workHour;
+
+    /**
+     * 成本
+     */
+    @JsonProperty("F0000006")
+    private BigDecimal cost;
+
+    /**
+     * 月度工时汇总
+     */
+    @JsonProperty("F0000007")
+    private BigDecimal monthWorkHour;
+}

+ 49 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunMonthLaborCostDO.java

@@ -0,0 +1,49 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_MONTH_LABORCOST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunMonthLaborCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789c42dc40d56a84e84b09609bf44a77205";
+
+    @JsonProperty("F0000005")
+    private String projectCode;
+
+    @JsonProperty("F0000003")
+    private BigDecimal amount;
+
+    @Transient
+    private BigDecimal totalamount;
+
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @JsonProperty("F0000002")
+    private LocalDateTime logDate;
+
+    @JsonProperty("F0000004")
+    private String dataType;
+}

+ 40 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunOutDepartmentDO.java

@@ -0,0 +1,40 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.galaxis.capsule.bo.ChuanyunObject;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_OUT_DEPARTMENT")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunOutDepartmentDO extends BasicDO{
+
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D00178915f541c1aeb948e5a7f6b91cffc01d6f";
+
+    @JsonProperty("F0000001")
+    private String department;
+
+    /**
+     * 人员所属部门对象
+     */
+    @Transient
+    @JsonProperty("F0000001Object")
+    private ChuanyunObject departmentObject;
+
+
+    @JsonProperty("F0000002")
+    private String outDepartment;
+}

+ 280 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPayrollDO.java

@@ -0,0 +1,280 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author xuankechen
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PAYROLL")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPayrollDO extends BasicDO{
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789Scxgmkkz2hbv7pwy8essawhre4";
+
+    /**
+     * 姓名
+     */
+    @JsonProperty("EmployeeName")
+    private String employeeName;
+
+    /**
+     * 薪酬期间
+     */
+    @JsonProperty("Period")
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    @DateTimeFormat(pattern = "yyyy-MM")
+    private LocalDateTime period;
+
+    /**
+     * 工号
+     */
+    @JsonProperty("ID")
+    private String employeeId;
+
+    /**
+     * 所属部门
+     */
+    @JsonProperty("Dept")
+    private String dept;
+
+    /**
+     * 薪资专员
+     */
+    @JsonProperty("OwnerId")
+    private String ownerId;
+
+    /**
+     * 发放状态
+     */
+    @JsonProperty("SalaryStatus")
+    private String salaryStatus;
+
+    /**
+     * 基本工资
+     */
+    @JsonProperty("BasicWage")
+    private BigDecimal basicWage;
+
+    /**
+     * 应发工资
+     */
+    @JsonProperty("F0000007")
+    private BigDecimal wagesPayable;
+
+    /**
+     * 各类津贴
+     */
+    @JsonProperty("WelfareTotal")
+    private BigDecimal welfareTotal;
+
+    /**
+     * 处罚扣款
+     */
+    @JsonProperty("OtherPlus")
+    private BigDecimal otherPlus;
+
+    /**
+     * 其他扣款
+     */
+    @JsonProperty("OtherDebit")
+    private BigDecimal otherDebit;
+
+    /**
+     * 税后其它扣款
+     */
+    @JsonProperty("F0000015")
+    private BigDecimal taxOtherDebit;
+
+    /**
+     * 社保代扣
+     */
+    @JsonProperty("SIDebit")
+    private BigDecimal siDebit;
+
+    /**
+     * 公积金代扣
+     */
+    @JsonProperty("HouseDebit")
+    private BigDecimal houseDebit;
+
+    /**
+     * 公司缴纳社保
+     */
+    @JsonProperty("CompanySIDebit")
+    private BigDecimal companySiDebit;
+
+    /**
+     * 公司缴纳公积金
+     */
+    @JsonProperty("CompanyHouseDebit")
+    private BigDecimal companyHouseDebit;
+
+    /**
+     * 公司缴纳合计
+     */
+    @JsonProperty("F0000014")
+    private BigDecimal companyTotal;
+
+    /**
+     * 所得税
+     */
+    @JsonProperty("Taxable")
+    private BigDecimal taxable;
+
+    /**
+     * 实发金额
+     */
+    @JsonProperty("ActualPay")
+    private BigDecimal actualPay;
+
+    /**
+     * 绩效奖金包
+     */
+    @JsonProperty("PerformanceWage")
+    private BigDecimal performanceWage;
+
+    /**
+     * 个人代扣合计
+     */
+    @JsonProperty("F0000002")
+    private BigDecimal personalTotal;
+
+    /**
+     * 公司编码
+     */
+    @JsonProperty("F0000004")
+    private String companyCode;
+
+    /**
+     * 加班工资
+     */
+    @JsonProperty("F0000010")
+    private BigDecimal overtimePay;
+
+    /**
+     * 考核系数
+     */
+    @JsonProperty("F0000011")
+    private BigDecimal assessment;
+
+    /**
+     * 绩效奖金
+     */
+    @JsonProperty("F0000012")
+    private BigDecimal achievementBonus;
+
+    /**
+     * 其它应发
+     */
+    @JsonProperty("F0000013")
+    private BigDecimal otherPayables;
+
+    /**
+     * 月薪包
+     */
+    @JsonProperty("F0000016")
+    private BigDecimal monthlySalaryPackage;
+
+    /**
+     * 岗位津贴
+     */
+    @JsonProperty("F0000017")
+    private BigDecimal postAllowance;
+
+    /**
+     * 出勤工资
+     */
+    @JsonProperty("F0000018")
+    private BigDecimal attendanceSalary;
+
+    /**
+     * 激励奖金
+     */
+    @JsonProperty("F0000019")
+    private BigDecimal incentiveBonus;
+
+    /**
+     * 年终奖计提
+     */
+    @JsonProperty("F0000021")
+    private BigDecimal yearBonusAccrual;
+
+    /**
+     * 年终奖发放
+     */
+    @JsonProperty("F0000020")
+    private BigDecimal yearBonusDistribution;
+
+    /**
+     * 养老个人
+     */
+    @JsonProperty("F0000024")
+    private BigDecimal personalPension;
+
+    /**
+     * 医疗个人
+     */
+    @JsonProperty("F0000025")
+    private BigDecimal personalMedical;
+
+    /**
+     * 失业保险
+     */
+    @JsonProperty("F0000026")
+    private BigDecimal unemploymentInsurance;
+
+    /**
+     * 养老公司
+     */
+    @JsonProperty("F0000027")
+    private BigDecimal companyPension;
+
+    /**
+     * 医疗公司
+     */
+    @JsonProperty("F0000028")
+    private BigDecimal companyMedical;
+
+    /**
+     * 失业公司
+     */
+    @JsonProperty("F0000029")
+    private BigDecimal companyUnemployment;
+
+    /**
+     * 工伤保险
+     */
+    @JsonProperty("F0000030")
+    private BigDecimal industrialInsurance;
+
+    /**
+     * 生育保险
+     */
+    @JsonProperty("F0000031")
+    private BigDecimal maternityInsurance;
+
+    /**
+     * 是否外服
+     */
+    @JsonProperty("F0000032")
+    private String isOut;
+}

+ 27 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPersonDaysDO.java

@@ -0,0 +1,27 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPersonDaysDO {
+
+    @Id
+    private String objectId;
+
+    private String userId;
+
+    private BigDecimal hoursWorked;
+}

+ 41 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectCashFlowDO.java

@@ -0,0 +1,41 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PROJECT_CASHFLOW")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectCashFlowDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789270cab743bc748eab875f5651f3a7107";
+
+    @JsonProperty("F0000001")
+    private String projectcode;
+
+    /**
+     * 收款金额
+     */
+    @JsonProperty("F0000002")
+    private BigDecimal income;
+
+    /**
+     * 付款金额
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal outcome;
+}

+ 47 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectCostDO.java

@@ -0,0 +1,47 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_PROJECT_COST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectCostDO {
+
+    @Id
+    @GeneratedValue(generator = "idGeneratorUser")
+    @GenericGenerator(name ="idGeneratorUser" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    /**
+     * 项目类型
+     */
+    private String projectType;
+
+    private String projectId;
+
+    /**
+     * 工时状态
+     */
+    private String status;
+
+    private BigDecimal totalHour;
+
+    private BigDecimal cost;
+
+    private BigDecimal personDays;
+
+    private BigDecimal amount;
+}

+ 37 - 1
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectDO.java

@@ -60,6 +60,30 @@ public class ChuanyunProjectDO extends BasicDO {
     private String projectTypeCode;
 
     /**
+     * 设备分类(前端传数据)
+     */
+    @Transient
+    @JsonProperty("F0000056")
+    private String[] equipmentTypeList;
+
+    /**
+     * 设备分类
+     */
+    private String equipmentType;
+
+    /**
+     * 业务来源
+     */
+    @JsonProperty("F0000066")
+    private String businessSource;
+
+    /**
+     * 业务类型
+     */
+    @JsonProperty("F0000067")
+    private String businessType;
+
+    /**
      * 下发组织机构编码
      */
     @JsonProperty(value = "F0000052")
@@ -127,7 +151,19 @@ public class ChuanyunProjectDO extends BasicDO {
     @Transient
     @JsonProperty(value = "F0000045Object")
     private ChuanyunObject[] projectManagerObject;
-//    private List<ChuanyunObject> projectManagerObject;
+
+    /**
+     * 拥有者
+     */
+    @JsonProperty("OwnerId")
+    private String ownerId;
+
+    /**
+     * 拥有者对象
+     */
+    @Transient
+    @JsonProperty("OwnerIdObject")
+    private ChuanyunObject ownerIdObject;
 
     public static ChuanyunProjectDTO toChuanyunProjectDTO(ChuanyunProjectDO chuanyunProjectDO){
         ChuanyunProjectDTO chuanyunProjectDTO=new ChuanyunProjectDTO();

+ 57 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectMemberCostDO.java

@@ -0,0 +1,57 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectMemberCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789dac5cdee041d471faab9d0f303cc9b49";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000001")
+    private String projectId;
+
+    /**
+     * 项目类型
+     */
+    @JsonProperty("F0000005")
+    private String projectType;
+
+    /**
+     * 用户ID
+     */
+    @JsonProperty("F0000002")
+    private String userId;
+
+    /**
+     * 工时
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal workHour;
+
+    /**
+     * 成本
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal cost;
+}

+ 70 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectMemberWeekHourDO.java

@@ -0,0 +1,70 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectMemberWeekHourDO extends BasicDO{
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789Sffuni6ej7u55hkaw0xwj9nh22";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000001")
+    private String projectId;
+
+    /**
+     * 用户ID
+     */
+    @JsonProperty("F0000002")
+    private String userId;
+
+    /**
+     * 项目类型
+     */
+    @JsonProperty("F0000003")
+    private String projectType;
+
+    /**
+     * 总工时
+     */
+    @JsonProperty("F0000004")
+    private BigDecimal totalHour;
+
+    /**
+     * 总人天
+     */
+    @JsonProperty("F0000005")
+    private BigDecimal personDays;
+
+    /**
+     * 年份
+     */
+    @JsonProperty("F0000008")
+    private String year;
+
+    /**
+     * 周数
+     */
+    @JsonProperty("F0000006")
+    private String week;
+
+    /**
+     * 流程状态
+     */
+    @JsonProperty("F0000007")
+    private String hourStatus;
+}

+ 49 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectTotalCostDO.java

@@ -0,0 +1,49 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectTotalCostDO extends BasicDO{
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017895783d9521d604a32bba65a287409ba9a";
+
+    /**
+     * 项目ID
+     */
+    @JsonProperty("F0000001")
+    private String projectId;
+
+    /**
+     * 项目类型
+     */
+    @JsonProperty("F0000004")
+    private String projectType;
+
+    /**
+     * 工时
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal workHour;
+
+    /**
+     * 成本
+     */
+    @JsonProperty("F0000002")
+    private BigDecimal cost;
+
+}

+ 35 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectTypeDO.java

@@ -0,0 +1,35 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PROJECT_TYPE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunProjectTypeDO extends BasicDO{
+
+
+    /**
+     * 表编码
+     */
+    public static final String SCHEMA_CODE ="D001789c5fd57c1c1a24dba847760a52ea81571";
+
+    /**
+     * 项目类型
+     */
+    @JsonProperty("projectType")
+    private String projectType;
+
+    /**
+     * 编码
+     */
+    @JsonProperty("SeqNo")
+    private String projectTypeCode;
+}

+ 44 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunPurCostDO.java

@@ -0,0 +1,44 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.galaxis.manatee.entity.chuanyun.data.object.BasicDO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_PURCOST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunPurCostDO extends BasicDO {
+
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D001789bdc0b713e29b4fb0afd543bc4da68154";
+
+
+    @JsonProperty("F0000001")
+    private String projectcode;
+
+    /**
+     * 采购成本
+     */
+    @JsonProperty("F0000002")
+    private BigDecimal purcost;
+
+    /**
+     * 领料成本
+     */
+    @JsonProperty("F0000003")
+    private BigDecimal issuedcost;
+
+}

+ 29 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementAmountDO.java

@@ -0,0 +1,29 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+@Slf4j
+@Data
+@Entity
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunReimbursementAmountDO {
+    @Id
+//    @GeneratedValue(generator = "idGeneratorChuanyunReimbursementAmount")
+//    @GenericGenerator(name ="idGeneratorChuanyunReimbursementAmount" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private String objectId;
+
+    private BigDecimal totalAmount;
+}

+ 28 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDO.java

@@ -115,6 +115,24 @@ public class ChuanyunReimbursementDO extends BasicDO{
     private String reimburseUserCostCode;
 
     /**
+     * 打印项目号
+     */
+    @JsonProperty("F0000109")
+    private String printingProjectCode;
+
+    /**
+     * 打印项目类型
+     */
+    @JsonProperty("F0000110")
+    private String printingProjectType;
+
+    /**
+     * 打印项目名称
+     */
+    @JsonProperty("F0000108")
+    private String printingProjectName;
+
+    /**
      * 核销方式
      */
     @JsonProperty("F0000054")
@@ -166,6 +184,12 @@ public class ChuanyunReimbursementDO extends BasicDO{
     @JsonProperty("F0000081")
     private String beneficiaryCostId;
 
+    @JsonProperty("F0000077")
+    private String department;
+
+    @JsonProperty("F0000112")
+    private String outDepartment;
+
     /**
      * 受益成本中心编码
      * todo 由beneficiaryCostId获得
@@ -190,4 +214,8 @@ public class ChuanyunReimbursementDO extends BasicDO{
     @Transient
     @JsonProperty("F0000001Object")
     private ChuanyunObject reimburseUserObject;
+
+    @Transient
+    @JsonProperty("F0000077Object")
+    private ChuanyunObject departmentObject;
 }

+ 2 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementDetailDO.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.extern.slf4j.Slf4j;
 
+import javax.persistence.Column;
 import javax.persistence.Entity;
 import java.math.BigDecimal;
 
@@ -89,5 +90,6 @@ public class ChuanyunReimbursementDetailDO extends BasicSubDO{
      * 备注
      */
     @JsonProperty("F0000042")
+    @Column(columnDefinition = "TEXT")
     private String content;
 }

+ 63 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunReimbursementItemsDO.java

@@ -0,0 +1,63 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_REIMBURSEMENT_ITEMS")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunReimbursementItemsDO extends BasicDO{
+    /**
+     * 表名
+     */
+    public static final String SCHEMA_CODE ="D0017897914a5b9d64c4db087e4f5748bfcd02c";
+
+    /**
+     * 姓名
+     */
+    @JsonProperty("F0000002")
+    private String employName;
+
+    /**
+     * 工号
+     */
+    @JsonProperty("F0000003")
+    private String employCode;
+
+    /**
+     * 是否替换报销
+     */
+    @JsonProperty("F0000005")
+    private String isReplace;
+
+    /**
+     * 调整项目号
+     */
+    @JsonProperty("F0000006")
+    private String adjustProjectCode;
+
+    /**
+     * 调整项目名称
+     */
+    @JsonProperty("F0000007")
+    private String adjustProjectName;
+
+    /**
+     * 调整项目类型
+     */
+    @JsonProperty("F0000008")
+    private String adjustProjectType;
+
+    /**
+     * 调整项目ID
+     */
+    @JsonProperty("F0000004")
+    private String adjustProjectId;
+}

+ 80 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSelfCostDO.java

@@ -0,0 +1,80 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_SELF_COST")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunSelfCostDO {
+    /**
+     * 主键
+     */
+    @Id
+    @GeneratedValue(generator = "idGeneratorChuanyunSelfCost")
+    @GenericGenerator(name ="idGeneratorChuanyunSelfCost" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    /**
+     * 用户Id
+     */
+    private String userId;
+
+    /**
+     * 项目类型
+     */
+    private String projectType;
+
+    /**
+     * 项目Id
+     */
+    private String projectId;
+
+    /**
+     * 流程状态
+     */
+    private String status;
+
+    /**
+     * 月份
+     */
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime dayLogDate;
+
+    /**
+     * 人员单项目每月工时汇总
+     */
+    private BigDecimal totalHour;
+
+    /**
+     * 人员单项目薪资成本
+     */
+    private BigDecimal cost;
+
+    /**
+     * 人员每月工时汇总
+     */
+    private BigDecimal monthlyTotalHour;
+
+    /**
+     * 部门Id
+     */
+    private String departmentId;
+}

+ 49 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSelfWorkHourDO.java

@@ -0,0 +1,49 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_SELF_WORK_HOUR")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunSelfWorkHourDO {
+
+    @Id
+    @GeneratedValue(generator = "idGeneratorUser")
+    @GenericGenerator(name ="idGeneratorUser" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    private String userId;
+
+    private String projectType;
+
+    private String projectId;
+
+    /**
+     * 流程状态
+     */
+    private String status;
+
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime dayLogDate;
+
+    private BigDecimal standardWorkHour;
+}

+ 71 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunSpecialProcedureDO.java

@@ -0,0 +1,71 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+/**
+ * @author zcj
+ * @version 0.1
+ * @date 2020/6/6 10:03 上午
+ */
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity(name = "CHUANYUN_SPECIAL_PROCEDURE")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunSpecialProcedureDO extends BasicSubDO{
+
+    public static final String SCHEMA_CODE="D001789Fb1f097907edc4fab84b5b18368a6d7dd";
+    /**
+     * 集团项目Id
+     */
+    @JsonProperty("F0000010")
+    private String projectId;
+    /**
+     * 分配比例
+     */
+    @JsonProperty("F0000013")
+    private BigDecimal rate;
+    /**
+     * 成本中心
+     */
+    @JsonProperty("F0000023")
+    private String costCenterId;
+
+    /**
+     * 成本中心编码
+     */
+    @JsonProperty("F0000024")
+    private String centerCode;
+
+    /**
+     * 成本中心名称
+     */
+    @JsonProperty("F0000025")
+    private String centerName;
+
+
+    /**
+     * 项目号
+     */
+    @JsonProperty("F0000011")
+    private String projectCode;
+
+    /**
+     * 项目类别
+     */
+    @JsonProperty("F0000026")
+    private String projectType;
+
+    /**
+     * 项目名称
+     */
+    @JsonProperty("F0000012")
+    private String projectName;
+}

+ 32 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUpdateDeptDO.java

@@ -0,0 +1,32 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.galaxis.capsule.bo.ChuanyunObject;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Transient;
+
+@Slf4j
+@EqualsAndHashCode(callSuper = true)
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunUpdateDeptDO extends BasicDO{
+
+    /**
+     * 拥有者
+     */
+    @JsonProperty("OwnerId")
+    private String ownerId;
+
+    /**
+     * 拥有者对象
+     */
+    @Transient
+    @JsonProperty("OwnerIdObject")
+    private ChuanyunObject ownerIdObject;
+}

+ 34 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUserCompanyDO.java

@@ -59,4 +59,38 @@ public class ChuanyunUserCompanyDO extends BasicDO{
      */
     @JsonProperty("F0000017")
     private String costCode;
+
+    /**
+     * 人员所属部门
+     */
+    @JsonProperty("F0000007")
+    private String department;
+
+    /**
+     * 人员类型:规划,销售
+     */
+    @JsonProperty("F0000035")
+    private String userType;
+
+    /**
+     * 人员所属部门ID
+     */
+    private String departmentId;
+    /**
+     * 人工专项处理
+     */
+    @JsonProperty("F0000020")
+    private String specialProcedure;
+    /**
+     * 是否报工
+     */
+    @JsonProperty("F0000009")
+    private String reportLog;
+
+    /**
+     * 人员所属部门对象
+     */
+    @Transient
+    @JsonProperty("F0000007Object")
+    private ChuanyunObject departmentObject;
 }

+ 6 - 1
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunUserDO.java

@@ -39,10 +39,15 @@ public class ChuanyunUserDO extends BasicDO{
     @JsonProperty(value = "Title")
     private String title;
 
-
     /**
      * 工号
      */
     @JsonProperty(value = "EmployeeNumber")
     private String employeeNumber;
+
+    /**
+     * 钉钉工号
+     */
+    @JsonProperty(value = "DingTalkAccount")
+    private String dingTalkAccount;
 }

+ 48 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunWeekMemberHourDO.java

@@ -0,0 +1,48 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.hibernate.annotations.GenericGenerator;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+
+@Slf4j
+@Data
+@Entity(name = "CHUANYUN_WEEK_MEMBER_HOUR")
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunWeekMemberHourDO {
+
+    @Id
+    @GeneratedValue(generator = "idGeneratorUser")
+    @GenericGenerator(name ="idGeneratorUser" ,strategy="com.galaxis.capsule.util.GalaxisIdGenerator")
+    private Long objectId;
+
+    private String userId;
+
+    private String projectType;
+
+    private String projectId;
+
+    /**
+     * 流程状态
+     */
+    private String status;
+
+    /**
+     * 年
+     */
+    private String year;
+
+    /**
+     * 周
+     */
+    private String week;
+
+    private BigDecimal standardWorkHour;
+
+}

+ 48 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunWorkHourDO.java

@@ -0,0 +1,48 @@
+package com.galaxis.manatee.entity.chuanyun.data.object;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * @author kxuan
+ */
+@Slf4j
+@Data
+@Entity
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ChuanyunWorkHourDO {
+
+    @Id
+    private String objectId;
+
+    private String userId;
+
+    /**
+     * 项目类型
+     */
+    private String projectType;
+
+    private String projectId;
+
+    /**
+     * 流程状态
+     */
+    private String status;
+
+    @JsonSerialize(using = ChuanyunLocalDateTimeSerializer.class)
+    @JsonDeserialize(using = ChuanyunLocalDateTimeDeserializer.class)
+    private LocalDateTime dayLogDate;
+
+    private BigDecimal hoursWorked;
+}

+ 43 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunAskForLeaveDTO.java

@@ -0,0 +1,43 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: xuj
+ * Date: 2020/7/26
+ */
+@Data
+public class ChuanyunAskForLeaveDTO {
+
+    /**
+     * title("xx的请假")
+     */
+    private String title;
+
+    /**
+     * 发起部门
+     */
+    @JsonProperty("originator_dept_name")
+    private String originatorDeptName;
+
+    /**
+     * 请假事由
+     */
+    @JsonProperty("leave_type")
+    private String leaveType;
+
+    /**
+     * 劳动合同所属公司
+     */
+    @JsonProperty("contract_owner_ltd")
+    private String contractOwnerLtd;
+
+    /**
+     * 同意、不同意
+     */
+    @JsonProperty("result")
+    private String result;
+
+}

+ 36 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunDayWorkAbcDTO.java

@@ -0,0 +1,36 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ * author: xuj
+ * Date: 2020/8/7
+ */
+@Data
+public class ChuanyunDayWorkAbcDTO {
+
+    @JsonProperty("project_id")
+    private String projectId;
+
+//    @JsonProperty("project_code")
+//    private String projectCode;
+//
+//    @JsonProperty("project_name")
+//    private String projectName;
+
+    @JsonProperty("total_time")
+    private String totalTime;
+
+    @JsonProperty("paln_time")
+    private String planTime;
+
+    @JsonProperty("sell_time")
+    private String sellTime;
+
+    @JsonProperty("other_time")
+    private String otherTime;
+
+
+}

+ 17 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunLaborCostDTO.java

@@ -0,0 +1,17 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+
+import lombok.Data;
+
+import javax.persistence.Id;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class ChuanyunLaborCostDTO {
+
+
+    private ChuanyunLaborCostPrimaryKey chuanyunLaborCostPrimaryKey;
+
+    private BigDecimal costamount;
+}

+ 24 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunLaborCostPrimaryKey.java

@@ -0,0 +1,24 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeDeserializer;
+import com.galaxis.manatee.util.ChuanyunLocalDateTimeSerializer;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.persistence.Embeddable;
+import java.time.LocalDateTime;
+
+@Embeddable
+@Data
+public class ChuanyunLaborCostPrimaryKey {
+
+    protected String projectcode;
+
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    protected LocalDateTime period;
+}

+ 27 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunProjectCashFlowDTO.java

@@ -0,0 +1,27 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.galaxis.manatee.entity.chuanyun.data.object.BasicDO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+@Data
+public class ChuanyunProjectCashFlowDTO {
+
+    private String projectcode;
+
+    /**
+     * 收款金额
+     */
+    private BigDecimal income;
+
+    /**
+     * 付款金额
+     */
+    private BigDecimal outcome;
+}

+ 31 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunPurCostDTO.java

@@ -0,0 +1,31 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.galaxis.manatee.entity.chuanyun.data.object.BasicDO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.persistence.Entity;
+import java.math.BigDecimal;
+
+
+@Data
+public class ChuanyunPurCostDTO {
+
+
+
+    private String projectcode;
+
+    /**
+     * 采购成本
+     */
+    private BigDecimal purcost;
+
+    /**
+     * 领料成本
+     */
+    private BigDecimal issuedcost;
+
+}

+ 11 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunSupplierDTO.java

@@ -0,0 +1,11 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import lombok.Data;
+
+@Data
+public class ChuanyunSupplierDTO {
+
+    private String code;
+
+    private String name;
+}

+ 11 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/ChuanyunWebServiceDTO.java

@@ -0,0 +1,11 @@
+package com.galaxis.manatee.entity.chuanyun.dto;
+
+import lombok.Data;
+
+@Data
+public class ChuanyunWebServiceDTO {
+
+    private String Message;
+
+    private String ResultCode;
+}

+ 1 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/dto/Filter.java

@@ -103,6 +103,7 @@ public class Filter {
                 matchersList.add(matchers);
             }catch (Exception e){
                 log.warn("查询条件解析异常");
+                log.warn(string);
                 e.printStackTrace();
             }
         });

+ 29 - 0
src/main/java/com/galaxis/manatee/exception/BigSizeException.java

@@ -0,0 +1,29 @@
+package com.galaxis.manatee.exception;
+
+/**
+ * 用于检测氚云接受数据过大的异常
+ * @author zcj
+ * @version 0.1
+ * @date 2020/6/5 7:42 上午
+ */
+public class BigSizeException extends Exception{
+
+    public BigSizeException() {
+    }
+
+    public BigSizeException(String message) {
+        super(message);
+    }
+
+    public BigSizeException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public BigSizeException(Throwable cause) {
+        super(cause);
+    }
+
+    public BigSizeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
+        super(message, cause, enableSuppression, writableStackTrace);
+    }
+}

+ 16 - 3
src/main/java/com/galaxis/manatee/manager/ChuanYunManager.java

@@ -2,6 +2,7 @@ package com.galaxis.manatee.manager;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.galaxis.manatee.entity.chuanyun.dto.*;
+import com.galaxis.manatee.exception.BigSizeException;
 
 import java.util.List;
 
@@ -61,18 +62,21 @@ public interface ChuanYunManager {
      * @param isSubmit   是否为提交状态
      * @param schemaCode 表单编码
      * @param bizObject  数据字符串
+     * @throws BigSizeException 保存数据超长的异常
      * @return 保存结果
      */
-    ChuanyunSaveDTO save(String schemaCode, String bizObject, Boolean isSubmit);
+    ChuanyunSaveDTO save(String schemaCode, String bizObject, Boolean isSubmit) throws BigSizeException;
 
     /**
      * 批量保存
      * @param isSubmit       是否直接提交
      * @param schemaCode     表单编码
      * @param bizObjectArray 数据字符串
+     * @throws BigSizeException 保存数据超长的异常
+     * @throws JsonProcessingException  json转化异常
      * @return 保存结果
      */
-    ChuanyunSaveAllDTO saveAll(String schemaCode, List<String> bizObjectArray, Boolean isSubmit);
+    ChuanyunSaveAllDTO saveAll(String schemaCode, List<String> bizObjectArray, Boolean isSubmit) throws JsonProcessingException, BigSizeException;
 
     /**
      * 保存
@@ -80,7 +84,16 @@ public interface ChuanYunManager {
      * @param schemaCode 表单编码
      * @param bizObjectId   主键
      * @param bizObject  数据字符串
+     * @throws BigSizeException 保存数据超长的异常
      * @return 保存结果
      */
-    ChuanyunSaveDTO update(String schemaCode,String bizObjectId, String bizObject);
+    ChuanyunSaveDTO update(String schemaCode,String bizObjectId, String bizObject) throws BigSizeException;
+
+    /**
+     * 删除
+     * @param schemaCode
+     * @param bizObjectId
+     * @return
+     */
+    ChuanyunSaveDTO delete(String schemaCode, String bizObjectId);
 }

+ 39 - 0
src/main/java/com/galaxis/manatee/manager/ClawFeign.java

@@ -1,7 +1,13 @@
 package com.galaxis.manatee.manager;
 
 import com.galaxis.capsule.dto.*;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectCashFlowDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunPurCostDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunReimbursementDO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunLaborCostDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunProjectCashFlowDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunPurCostDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSupplierDTO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -35,6 +41,39 @@ public interface ClawFeign {
     PageDTO<ChuanyunProjectDTO> findChuanyunProjectPageable(@RequestParam Map<String,String> map);
 
     /**
+     * 查询项目材料成本
+     * @param map
+     * @return
+     */
+    @GetMapping("/cashflow/findAllByParameters")
+    PageDTO<ChuanyunProjectCashFlowDTO> findChuanyunProjectCashFlow(@RequestParam Map<String,String> map);
+
+    /**
+     * 查询项目收付款
+     * @param map
+     * @return
+     */
+    @GetMapping("/purcost/findAllByParameters")
+    PageDTO<ChuanyunPurCostDTO> findChuanyunPurCost(@RequestParam Map<String,String> map);
+
+    /**
+     * 获取供应商
+     * @param map
+     * @return
+     */
+    @GetMapping("/supplier/findAllByParameters")
+    PageDTO<ChuanyunSupplierDTO> findChuanyunSupplier(@RequestParam Map<String,String> map);
+
+    /**
+     * 查询人力成本
+     * @param map
+     * @return
+     */
+    @GetMapping("/laborcost/findAllByParameters")
+    PageDTO<ChuanyunLaborCostDTO> findChuanyunLaborCost(@RequestParam Map<String,String> map);
+
+
+    /**
      * 测试
      * @param chuanyunProjectDTO    保存DTO数据
      * @return  请求结果

+ 69 - 6
src/main/java/com/galaxis/manatee/manager/impl/DefaultChuanyunManagerImpl.java

@@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.galaxis.manatee.constant.ChuanYunConstant;
 import com.galaxis.manatee.entity.chuanyun.dto.*;
+import com.galaxis.manatee.exception.BigSizeException;
 import com.galaxis.manatee.manager.ChuanYunManager;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -24,6 +25,10 @@ import java.util.List;
 @Slf4j
 @Service
 public class DefaultChuanyunManagerImpl implements ChuanYunManager {
+    /**
+     * 字符串最大长度
+     */
+    private final Integer maxLength=1048576;
 
     @Override
     public ChuanyunFindDTO find(String appCode, String actionName, String controller) {
@@ -128,7 +133,7 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
     }
 
     @Override
-    public ChuanyunSaveDTO save(String schemaCode, String bizObject, Boolean isSubmit) {
+    public ChuanyunSaveDTO save(String schemaCode, String bizObject, Boolean isSubmit) throws BigSizeException {
         @Data
         class Save{
             @JsonProperty(value = "ActionName")
@@ -146,6 +151,10 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
                 this.isSubmit = isSubmit;
             }
         }
+        //如果数据量太大就抛出异常
+        if(bizObject.length()>maxLength){
+            throw new BigSizeException(bizObject);
+        }
         Save save=new Save(schemaCode,bizObject,isSubmit);
         //请求客户端
         RestTemplate restTemplate=new RestTemplate();
@@ -154,11 +163,17 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
         httpHeaders.add("EngineSecret",ChuanYunConstant.ENGINE_SECRET);
         HttpEntity<Save> httpEntity=new HttpEntity<>(save,httpHeaders);
         ChuanyunSaveDTO chuanyunSaveResponse =new ChuanyunSaveDTO();
-        return restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveResponse.getClass());
+        chuanyunSaveResponse = restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveResponse.getClass());
+        if (chuanyunSaveResponse!=null&&chuanyunSaveResponse.getSuccessful()) {
+//            log.info("新增成功!");
+        }else {
+            log.info("新增失败!");
+        }
+        return chuanyunSaveResponse;
     }
 
     @Override
-    public ChuanyunSaveAllDTO saveAll(String schemaCode, List<String> bizObjectArray, Boolean isSubmit) {
+    public ChuanyunSaveAllDTO saveAll(String schemaCode, List<String> bizObjectArray, Boolean isSubmit) throws JsonProcessingException, BigSizeException {
         @Data
         class SaveAll{
             @JsonProperty(value = "ActionName")
@@ -176,6 +191,11 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
                 this.isSubmit = isSubmit;
             }
         }
+        var objectMapper=new ObjectMapper();
+        //如果数据量太大就抛出异常
+        if(objectMapper.writeValueAsString(bizObjectArray).length()>maxLength){
+            throw new BigSizeException(bizObjectArray+"");
+        }
         SaveAll saveAll=new SaveAll(schemaCode,bizObjectArray,isSubmit);
         //请求客户端
         RestTemplate restTemplate=new RestTemplate();
@@ -184,11 +204,17 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
         httpHeaders.add("EngineSecret",ChuanYunConstant.ENGINE_SECRET);
         HttpEntity<SaveAll> httpEntity=new HttpEntity<>(saveAll,httpHeaders);
         ChuanyunSaveAllDTO chuanyunSaveAllResponse =new ChuanyunSaveAllDTO();
-        return restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveAllResponse.getClass());
+        chuanyunSaveAllResponse = restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveAllResponse.getClass());
+        if (chuanyunSaveAllResponse!=null&&chuanyunSaveAllResponse.getSuccessful()) {
+//            log.info("批量新增成功!");
+        }else {
+            log.info("批量新增失败!");
+        }
+        return chuanyunSaveAllResponse;
     }
 
     @Override
-    public ChuanyunSaveDTO update(String schemaCode, String bizObjectId, String bizObject) {
+    public ChuanyunSaveDTO update(String schemaCode, String bizObjectId, String bizObject) throws BigSizeException {
         @Data
         class Update{
             @JsonProperty(value = "ActionName")
@@ -206,6 +232,10 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
                 this.bizObjectId=bizObjectId;
             }
         }
+        //如果数据量太大就抛出异常
+        if(bizObject.length()>maxLength){
+            throw new BigSizeException(bizObject);
+        }
         Update update=new Update(schemaCode,bizObject,bizObjectId);
         //请求客户端
         RestTemplate restTemplate=new RestTemplate();
@@ -214,6 +244,39 @@ public class DefaultChuanyunManagerImpl implements ChuanYunManager {
         httpHeaders.add("EngineSecret",ChuanYunConstant.ENGINE_SECRET);
         HttpEntity<Update> httpEntity=new HttpEntity<>(update,httpHeaders);
         ChuanyunSaveDTO chuanyunSaveResponse =new ChuanyunSaveDTO();
-        return restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveResponse.getClass());
+        chuanyunSaveResponse = restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveResponse.getClass());
+        if (chuanyunSaveResponse!=null&&chuanyunSaveResponse.getSuccessful()) {
+//            log.info(bizObjectId+"更新成功!");
+        }else {
+            log.info(bizObjectId+"更新失败!"+bizObject);
+        }
+        return chuanyunSaveResponse;
+    }
+
+    @Override
+    public ChuanyunSaveDTO delete(String schemaCode, String bizObjectId) {
+        @Data
+        class Find{
+            @JsonProperty(value = "ActionName")
+            private String actionName="RemoveBizObject";
+            @JsonProperty(value = "SchemaCode")
+            private String schemaCode;
+            @JsonProperty(value = "BizObjectId")
+            private String bizObjectId;
+
+            public Find(String schemaCode, String bizObjectId) {
+                this.schemaCode = schemaCode;
+                this.bizObjectId = bizObjectId;
+            }
+        }
+        Find find=new Find(schemaCode,bizObjectId);
+        //请求客户端
+        RestTemplate restTemplate=new RestTemplate();
+        HttpHeaders httpHeaders=new HttpHeaders();
+        httpHeaders.add("EngineCode",ChuanYunConstant.ENGINE_CODE);
+        httpHeaders.add("EngineSecret",ChuanYunConstant.ENGINE_SECRET);
+        HttpEntity<Find> httpEntity=new HttpEntity<>(find,httpHeaders);
+        ChuanyunSaveDTO chuanyunSaveResponse =new ChuanyunSaveDTO();
+        return chuanyunSaveResponse = restTemplate.postForObject(ChuanYunConstant.CHUAN_YUN_INVOKE_URL,httpEntity, chuanyunSaveResponse.getClass());
     }
 }

+ 34 - 0
src/main/java/com/galaxis/manatee/service/ChuanyunService.java

@@ -0,0 +1,34 @@
+package com.galaxis.manatee.service;
+
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCostCollectionDO;
+import org.springframework.scheduling.annotation.Async;
+
+import java.util.List;
+
+/**
+ * 氚云服务调用
+ */
+public interface ChuanyunService {
+
+    /**
+     * 更新项目组成员
+     */
+    void updateProjectMember();
+
+    /**
+     * 获取成本集合
+     * @return  成本集合
+     */
+    List<ChuanyunCostCollectionDO> getAllCostCollection();
+
+    /**
+     * 根据表单编号更新所属部门信息
+     * @param code  表单编号
+     */
+    void updateChuanyunDept(String code);
+
+    /**
+     * 将领导从特定项目中剔除
+     */
+    void deleteProjectMember();
+}

+ 15 - 9
src/main/java/com/galaxis/manatee/service/DingTalkScheduledTask.java

@@ -1,16 +1,14 @@
 package com.galaxis.manatee.service;
 
-import com.dingtalk.api.DefaultDingTalkClient;
 import com.dingtalk.api.DingTalkClient;
 import com.dingtalk.api.request.*;
-import com.dingtalk.api.response.OapiAttendanceGetleavestatusResponse;
-import com.dingtalk.api.response.OapiGettokenResponse;
 import com.dingtalk.api.response.OapiProcessinstanceGetResponse;
 import com.dingtalk.api.response.OapiProcessinstanceListidsResponse;
 import com.galaxis.manatee.constant.DingTalkConstant;
 import com.galaxis.manatee.dao.ChuanyunAskForLeaveDao;
+import com.galaxis.manatee.dao.ChuanyunUserCompanyDao;
 import com.galaxis.manatee.dao.DingTalkProcessInstanceDao;
-import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunAskForLeaveDo;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunAskForLeaveDO;
 import com.galaxis.manatee.entity.ding.DingTalkProcessInstance;
 import com.taobao.api.ApiException;
 import lombok.extern.slf4j.Slf4j;
@@ -52,12 +50,15 @@ public class DingTalkScheduledTask {
      */
     private final ChuanyunAskForLeaveDao chuanyunAskForLeaveDao;
 
-    public DingTalkScheduledTask(DingTalkClient processInstanceListIdsClient, DingTalkClient processInstanceClient,
+    private final ChuanyunUserCompanyDao userCompanyDao;
+
+    public DingTalkScheduledTask(DingTalkClient processInstanceListIdsClient, DingTalkClient processInstanceClient,ChuanyunUserCompanyDao chuanyunUserDao,
                                  ChuanyunAskForLeaveDao chuanyunAskForLeaveDao,DingTalkProcessInstanceDao dingTalkProcessInstanceDao) {
         this.processInstanceListIdsClient = processInstanceListIdsClient;
         this.processInstanceClient = processInstanceClient;
         this.dingTalkProcessInstanceDao = dingTalkProcessInstanceDao;
         this.chuanyunAskForLeaveDao = chuanyunAskForLeaveDao;
+        this.userCompanyDao = chuanyunUserDao;
     }
 
     /**
@@ -99,7 +100,7 @@ public class DingTalkScheduledTask {
             while(flag){
                 LocalDateTime start=LocalDateTime.now();
                 OapiProcessinstanceListidsResponse oapiProcessinstanceListidsResponse=processInstanceListIdsClient.execute(oApiProcessInstanceListIdsRequest,DingTalkConstant.DING_TALK_TOKEN);
-                List<ChuanyunAskForLeaveDo> chuanyunAskForLeaveDoList=new ArrayList<>();
+                List<ChuanyunAskForLeaveDO> chuanyunAskForLeaveDoList=new ArrayList<>();
                 if(oapiProcessinstanceListidsResponse.getErrcode()!=0){
                     log.info(oapiProcessinstanceListidsResponse.getErrmsg());
                     try {
@@ -117,14 +118,19 @@ public class DingTalkScheduledTask {
                         request.setProcessInstanceId(resultId);
                         try {
                             OapiProcessinstanceGetResponse oapiProcessinstanceGetResponse = processInstanceClient.execute(request, DingTalkConstant.DING_TALK_TOKEN);
-                            chuanyunAskForLeaveDoList.add(ChuanyunAskForLeaveDo.fromAskForLeaveDTO(oapiProcessinstanceGetResponse.getProcessInstance()));
+                            ChuanyunAskForLeaveDO chuanyunAskForLeaveDo = ChuanyunAskForLeaveDO.fromAskForLeaveDTO(oapiProcessinstanceGetResponse.getProcessInstance());
+                            List<ChuanyunAskForLeaveDO>   existsAskForLeave = chuanyunAskForLeaveDao.findByTitleSQL(chuanyunAskForLeaveDo.getTitle());
+                            if(existsAskForLeave != null && !existsAskForLeave.isEmpty()) {
+                                chuanyunAskForLeaveDao.deleteById(existsAskForLeave.get(0).getObjectId());
+                            }
+                            chuanyunAskForLeaveDoList.add(chuanyunAskForLeaveDo);
                         } catch (ApiException e) {
                             e.printStackTrace();
                         }
                     }
                 });
 
-                //保存id列表和实例列表
+                //保存id列表和实例列表,如果有更新的内容
                 chuanyunAskForLeaveDao.saveAll(chuanyunAskForLeaveDoList);
                 log.info(businessTripProcessCode+"下一个cursor为"+oapiProcessinstanceListidsResponse.getResult().getNextCursor()+"保存成功"+"耗时"+ ChronoUnit.SECONDS.between(start,LocalDateTime.now())+"秒");
                 flag=null!=oapiProcessinstanceListidsResponse.getResult().getNextCursor();
@@ -185,4 +191,4 @@ public class DingTalkScheduledTask {
             }
         }
     }
-}
+}

+ 311 - 0
src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

@@ -0,0 +1,311 @@
+package com.galaxis.manatee.service.impl;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.galaxis.capsule.bo.ChuanyunObject;
+import com.galaxis.manatee.constant.ChuanYunConstant;
+import com.galaxis.manatee.constant.StringConstant;
+import com.galaxis.manatee.dao.ChuanyunCostCollectionDao;
+import com.galaxis.manatee.dao.ChuanyunUserCompanyDao;
+import com.galaxis.manatee.entity.chuanyun.data.object.*;
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
+import com.galaxis.manatee.exception.BigSizeException;
+import com.galaxis.manatee.manager.ChuanYunManager;
+import com.galaxis.manatee.service.ChuanyunService;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author chongjiezhong
+ */
+@Slf4j
+@Service
+public class ChuanyunServiceImpl implements ChuanyunService {
+
+    private final Integer pageSize=20;
+    private final ChuanYunManager chuanYunManager;
+    private final ChuanyunCostCollectionDao chuanyunCostCollectionDao;
+    private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
+    private String[] leader = {"e1feb431-91fd-4a01-8d81-a2e618b571ff","1c8c4dfa-7e22-4f4e-a672-3e080e01a283","18bf4c09-f7d7-4c01-8509-ec554c6592f0","9df86c86-87f4-4d91-ba1e-29657c6cdb65","3fcbf0e0-bf06-411b-9ce4-b77dc897ee93","0fb67380-3408-4786-bac4-44dfef738110"};
+
+    public ChuanyunServiceImpl(ChuanYunManager chuanYunManager, ChuanyunCostCollectionDao chuanyunCostCollectionDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao) {
+        this.chuanYunManager = chuanYunManager;
+        this.chuanyunCostCollectionDao = chuanyunCostCollectionDao;
+        this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
+    }
+
+    @Override
+    public void updateProjectMember() {
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunGroupProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                //保存
+                result.forEach(chuanyunGroupProjectDO ->  {
+
+                    //处理项目对象中的项目成员数据(改为手动调用处理)
+                    projectMemberCheck(chuanyunGroupProjectDO);
+                    //只处理项目成员为空的情况
+                    boolean emptyFlag= chuanyunGroupProjectDO.getProjectMemberList()==null||chuanyunGroupProjectDO.getProjectMemberList().length==0;
+                    if(emptyFlag){
+                        //增加项目成员
+                        addMemberList(chuanyunGroupProjectDO);
+                        GroupProjectUpdateDTO groupProjectUpdateDTO= new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
+                        //生成更新数据后校验数据是否增加成功
+                        if(groupProjectUpdateDTO.getProjectMemberList()!=null&&groupProjectUpdateDTO.getProjectMemberList().length!=0){
+                            try {
+                                var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
+                                ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
+                                if(chuanyunSaveDTO.getSuccessful()){
+                                    log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员成功");
+
+                                }else{
+                                    log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员失败");
+                                    log.warn(chuanyunGroupProjectDO+"");
+                                }
+                            } catch (BigSizeException | JsonProcessingException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                });
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public List<ChuanyunCostCollectionDO> getAllCostCollection() {
+        return chuanyunCostCollectionDao.findAll();
+    }
+
+    @Override
+    public void updateChuanyunDept(String code) {
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var flag=true;
+        List<String> matchersString=new ArrayList<>();
+        matchersString.add("Status_2,1");
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true,Filter.AND,matchersString);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(code,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunUpdateDeptDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                result.forEach(chuanyunUpdateDeptDO ->  {
+                    //更新拥有者id,更新所属部门
+                    chuanyunUpdateDeptDO.setOwnerId(chuanyunUpdateDeptDO.getOwnerIdObject().getObjectId());
+                    ChuanyunUserCompanyDO chuanyunUserCompanyDO = chuanyunUserCompanyDao.findByUserId(chuanyunUpdateDeptDO.getOwnerIdObject().getObjectId());
+                    chuanyunUpdateDeptDO.setOwnerDepartmentId(chuanyunUserCompanyDO.getDepartmentId());
+                    ProjectUpdateDTO projectUpdateDTO = new ProjectUpdateDTO(chuanyunUpdateDeptDO);
+                    try {
+                        var groupProjectUpdateString=objectMapper.writeValueAsString(projectUpdateDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(code,chuanyunUpdateDeptDO.getObjectId(),groupProjectUpdateString);
+                        if(chuanyunSaveDTO.getSuccessful()){
+                            log.info(chuanyunUpdateDeptDO.getObjectId()+"更新项目拥有者成功");
+                        }else{
+                            log.warn(chuanyunUpdateDeptDO.getObjectId()+"更新项目拥有者失败");
+                            log.warn(chuanyunUpdateDeptDO+"");
+                        }
+                    } catch (JsonProcessingException | BigSizeException e) {
+                        e.printStackTrace();
+                    }
+
+                });
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public void deleteProjectMember() {
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunGroupProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                //保存
+                result.forEach(chuanyunGroupProjectDO ->  {
+                    if (chuanyunGroupProjectDO.getProjectMemberObject()!=null&&chuanyunGroupProjectDO.getProjectMemberObject().size()>0){
+                        //判断是否是实施、研发二开、售后维保项目
+                        var specifiedProjectTypeFlag=("实施".equals(chuanyunGroupProjectDO.getProjectType())||
+                                "维保".equals(chuanyunGroupProjectDO.getProjectType())||
+                                "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||
+                                "售后".equals(chuanyunGroupProjectDO.getProjectType()));
+                        var specifiedBusinessGroupFlag=ChuanyunGroupProjectDO.EBG.equals(chuanyunGroupProjectDO.getBusinessGroup());
+                        //项目组成员去除领导
+                        List<String> projectMember = new ArrayList<String>();
+                        if (specifiedBusinessGroupFlag&&specifiedProjectTypeFlag){
+                            List<ChuanyunObject> list = chuanyunGroupProjectDO.getProjectMemberObject();
+                            for (ChuanyunObject chuanyunObject:list){
+                                if (!Arrays.asList(leader).contains(chuanyunObject.getObjectId())){
+                                    projectMember.add(chuanyunObject.getObjectId());
+                                }
+                            }
+                            chuanyunGroupProjectDO.setProjectMemberList(projectMember.toArray(new String[0]));
+                            GroupProjectUpdateDTO groupProjectUpdateDTO = new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
+                            try {
+                                var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
+                                ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
+                                if(chuanyunSaveDTO.getSuccessful()){
+                                    log.info("删除项目组成员成功");
+                                }else{
+                                    log.warn("删除项目组成员失败");
+                                }
+                            } catch (JsonProcessingException | BigSizeException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                });
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * 如果没有项目组成员,判断是否是EBG的实施、研发二开、售后维保项目,如果是,则添加EBG全体成员
+     * @param chuanyunGroupProjectDO    项目对象
+     */
+    private void addMemberList(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
+        //项目成员为空的情况判断
+        //判断项目BG是否为EBG
+        var specifiedBusinessGroupFlag=ChuanyunGroupProjectDO.EBG.equals(chuanyunGroupProjectDO.getBusinessGroup());
+        //判断项目类型是否为 下列项目类型中的一种
+        var specifiedProjectTypeFlag=("实施".equals(chuanyunGroupProjectDO.getProjectType())||
+                "维保".equals(chuanyunGroupProjectDO.getProjectType())||
+                "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||
+                "售后".equals(chuanyunGroupProjectDO.getProjectType()));
+        //如果项目组成员为空,则自动为项目添加所有EBG成员作为项目组成员
+        if (specifiedBusinessGroupFlag&&specifiedProjectTypeFlag) {
+            var projectMember = new ArrayList<String>();
+            var builder = new StringBuilder();
+            ChuanYunConstant.USER_BUSINESS_GROUP.forEach((k, v)->{
+                if (ChuanyunGroupProjectDO.EBG.equals(v)&&null!=k){
+                    builder.append(k).append(StringConstant.SEMICOLON);
+                    projectMember.add(k);
+                }
+            });
+
+            chuanyunGroupProjectDO.setProjectMember(builder.toString());
+            chuanyunGroupProjectDO.setProjectMemberList(projectMember.toArray(new String[0]));
+            log.info("成员已更新"+chuanyunGroupProjectDO.getProjectCode()+chuanyunGroupProjectDO.getProjectType());
+        }
+    }
+
+    /**
+     * 如果有项目组成员,将项目组成员projectMember替换为主键
+     * @param chuanyunGroupProjectDO    项目对象
+     */
+    private void projectMemberCheck(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
+        if (chuanyunGroupProjectDO.getProjectMemberList() != null && chuanyunGroupProjectDO.getProjectMemberList().length>0) {
+            List<String> memberList = new ArrayList<>();
+            var builder = new StringBuilder();
+            for (ChuanyunObject chuanyunObject: chuanyunGroupProjectDO.getProjectMemberObject()) {
+                builder.append(chuanyunObject.getObjectId()).append(StringConstant.SEMICOLON);
+                memberList.add(chuanyunObject.getObjectId());
+            }
+            chuanyunGroupProjectDO.setProjectMember(builder.toString());
+            //替换为主键后更新氚云数据表来增加权限
+            chuanyunGroupProjectDO.setProjectMemberList(memberList.toArray(new String[0]));
+        }
+    }
+
+    /**
+     * 用于刷新项目经理权限的对象
+     */
+    @Data
+    static class GroupProjectUpdateDTO{
+
+        /**
+         * 项目组成员(前端传数据用)
+         */
+        @JsonProperty("F0000034")
+        private String[] projectMemberList;
+
+        public GroupProjectUpdateDTO(ChuanyunGroupProjectDO chuanyunGroupProjectDO) {
+            if(null!=chuanyunGroupProjectDO){
+                if(null!=chuanyunGroupProjectDO.getProjectMemberList()){
+                    this.projectMemberList =chuanyunGroupProjectDO.getProjectMemberList();
+                }
+
+            }
+        }
+    }
+
+    @Data
+    static class ProjectUpdateDTO{
+
+        @JsonProperty("OwnerId")
+        private String ownerId;
+
+        /**
+         * 拥有者所在部门Id
+         */
+        @JsonProperty("OwnerDeptId")
+        private String ownerDepartmentId;
+
+        public ProjectUpdateDTO(ChuanyunUpdateDeptDO chuanyunUpdateDeptDO) {
+            if(null!=chuanyunUpdateDeptDO) {
+                if(null!=chuanyunUpdateDeptDO.getOwnerDepartmentId()) {
+                    this.ownerDepartmentId = chuanyunUpdateDeptDO.getOwnerDepartmentId();
+                }
+            }
+        }
+    }
+
+
+}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1059 - 37
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java


+ 0 - 0
src/main/java/com/galaxis/manatee/task/ChuanyunFinancialScheduledTask.java


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