qingyang_zhang 4 months ago
parent
commit
1150f74fb0

BIN
app/workSheetSystem/lib/shr_sso_client.jar


BIN
app/workSheetSystem/lib/shr_sso_client_dev.jar


BIN
app/workSheetSystem/lib/shr_sso_client_pro.jar


+ 53 - 7
app/workSheetSystem/pom.xml

@@ -198,14 +198,14 @@
             <!--jar包路径 注意:这里用的是  {pom.basedir}-->
             <systemPath>${pom.basedir}/lib/ksql.jar</systemPath>
         </dependency>
-        <dependency>
-            <groupId>com.kingdee.sso</groupId>   <!--自定义-->
-            <artifactId>sso-sdk</artifactId>  <!--自定义-->
-            <version>0.0.1-SNAPSHOT</version>  <!--自定义-->
+      <!--  <dependency>
+            <groupId>com.kingdee.sso</groupId>
+            <artifactId>sso-sdk</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
             <scope>system</scope>
-            <!--jar包路径 注意:这里用的是  {pom.basedir}-->
-            <systemPath>${pom.basedir}/lib/shr_sso_client.jar</systemPath>
-        </dependency>
+
+            <systemPath>lib/shr_sso_client_pro.jar</systemPath>
+        </dependency>-->
         <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
@@ -223,7 +223,45 @@
             <scope>provided</scope>
         </dependency>
     </dependencies>
+    <profiles>
+        <profile>
+            <id>dev</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <dependencies>
+                <!-- 开发环境特有的依赖 -->
+                <dependency>
+                    <groupId>com.kingdee.sso</groupId>   <!--自定义-->
+                    <artifactId>sso-sdk</artifactId>  <!--自定义-->
+                    <version>0.0.1-SNAPSHOT</version>  <!--自定义-->
+                    <scope>system</scope>
+                    <!--jar包路径 注意:这里用的是  {pom.basedir}-->
+                    <systemPath>${pom.basedir}/lib/shr_sso_client_dev.jar</systemPath>
+                </dependency>
+                <!-- 其他开发环境依赖 -->
+            </dependencies>
+        </profile>
+        <profile>
+            <id>pro</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <dependencies>
+                <!-- 生产环境特有的依赖 -->
 
+                <dependency>
+                    <groupId>com.kingdee.sso</groupId>   <!--自定义-->
+                    <artifactId>sso-sdk</artifactId>  <!--自定义-->
+                    <version>0.0.1-SNAPSHOT</version>  <!--自定义-->
+                    <scope>system</scope>
+                    <!--jar包路径 注意:这里用的是  {pom.basedir}-->
+                    <systemPath>${pom.basedir}/lib/shr_sso_client_pro.jar</systemPath>
+                </dependency>
+                <!-- 其他生产环境依赖 -->
+            </dependencies>
+        </profile>
+    </profiles>
     <build>
         <plugins>
             <plugin>
@@ -242,7 +280,15 @@
                         </exclude>
                     </excludes>
                     <includeSystemScope>true</includeSystemScope>
+                    <profiles>${spring.profiles.active}</profiles>
                 </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
             </plugin>
 
         </plugins>

+ 97 - 50
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/controller/PersonWorkController.java

@@ -2,6 +2,7 @@ package com.qy.worksheetsystem.controller;
 
 import cn.hutool.core.util.StrUtil;
 import com.google.common.collect.Maps;
+import com.kingdee.shr.api.SHRClient;
 import com.qy.worksheetsystem.model.MessageResult;
 
 import com.qy.worksheetsystem.model.MessageResultV2;
@@ -21,6 +22,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
@@ -38,16 +40,17 @@ public class PersonWorkController {
     private PersonWorkService personWorkService;
     @Autowired
     private PersonService personService;
-
+    @Value("${HR.ais.url}")
+    private String url;
     @ApiOperation(value = "获取可填报日期的已填报小时数", notes = "获取可填报日期的已填报小时数,判断每天填报是否超8小时")
     @RequestMapping(value = "/getAvailableDateInfo", method = RequestMethod.GET)
     @ApiImplicitParams({
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
             @ApiImplicitParam(name = "beginTime", value = "开始时间yyyy-MM-dd", required = true, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "endTime", value = "开始时间yyyy-MM-dd", required = true, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "id", value = "报工id", paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "excludeTimesheetId", value = "报工id", paramType = "query", dataType = "String"),
     })
-    public MessageResult getAvailableDateInfo(@RequestHeader("token") String token, String beginTime,String endTime,String id) {
+    public MessageResult getAvailableDateInfo(@RequestHeader("token") String token, String beginTime,String endTime,String excludeTimesheetId) {
         String number = JWTUtil.getNumber(token);
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
@@ -60,8 +63,8 @@ public class PersonWorkController {
             return MessageResultV2.error("开始时间不能大于结束时间");
         }
         List<Map<String,Object>> list = null;
-        if(StrUtil.isNotBlank(id)){
-            list =personWorkService.getAvailableDateInfoById(number,id,beginTime,endTime);
+        if(StrUtil.isNotBlank(excludeTimesheetId)){
+            list =personWorkService.getAvailableDateInfoById(number,excludeTimesheetId,beginTime,endTime);
         }else{
             list =  personWorkService.getAvailableDateInfo(number,beginTime,endTime);
         }
@@ -77,6 +80,7 @@ public class PersonWorkController {
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
     })
     public MessageResult insertWork(@RequestHeader("token") String token, @RequestBody WorkHoursReport jobWork) {
+        SHRClient shrClient = null;
         try {
             String number = JWTUtil.getNumber(token);
             if (StringUtils.isEmpty(number)) {
@@ -97,6 +101,8 @@ public class PersonWorkController {
             Integer Hours = 0;
             //获取员工信息
             Map<String, String> person = personService.getPersonByJobNo(number);
+            shrClient = new SHRClient(url,person.get("userNumber"));
+
             Date beginDate = format.parse(beginTime);
             Date endDate = format.parse(endTime);
             Date enterDate = format.parse(person.get("enterDate"));
@@ -133,13 +139,26 @@ public class PersonWorkController {
             map.put("end",end);
             map.put("yearMonth",yearMonth);
             StringBuilder errMsg = new StringBuilder();
+            String eid = jobWork.getId();
+            JobBooking jobBooking = null;
+            if(StrUtil.isNotBlank(eid)){
+               jobBooking = personWorkService.getPersonWorkInfoById(number,eid);
+            }
             for (WorkHoursReportEntry jobWorkEntry : jobWork.getEntries()){
+                if(StrUtil.isNotBlank(jobWorkEntry.getJobContent())&&StrUtil.length(jobWorkEntry.getJobContent())>500){
+                    return MessageResult.error("工作内容字数超过500字!");
+                }
                 String workingHours = jobWorkEntry.getWorkingHours();
                 BigDecimal Hour = new BigDecimal(workingHours);
                 Hours += Hour.intValue();
                 String projectId = jobWorkEntry.getProjectId();
-                if (StringUtils.isBlank(projectId)) {
-                    return MessageResultV2.error("项目id为空");
+                if (StrUtil.isBlank(projectId)) {
+                    if (null!=jobBooking && StrUtil.isNotBlank((String) jobBooking.get("projectId"))){
+                        projectId = (String) jobBooking.get("projectId");
+                        jobWorkEntry.setProjectId(projectId);
+                    }else {
+                        return MessageResultV2.error("项目id为空");
+                    }
                 }
                 for (int i = begin; i <= end; i++) {
                     String iday = "01";
@@ -153,7 +172,7 @@ public class PersonWorkController {
                     BigDecimal availableWorkHous = (BigDecimal) avMap.get("availableWorkHours");
                     BigDecimal workHours = (BigDecimal) avMap.get("workHours");
                     if(availableWorkHous.compareTo(Hour)<0){
-                        errMsg.append("项目:"+jobWorkEntry.getProjectName()+",日期:"+reportDate+",已填报:"+workHours.toPlainString()+"小时,不能再填报" + Hour.toPlainString() + "小时,一天的总填报小时数需小于等于8小时!");
+                        errMsg.append("日期:"+reportDate+",已填报:"+workHours.toPlainString()+"小时,不能再填报" + Hour.toPlainString() + "小时,一天的总填报小时数需小于等于8小时!");
                         errMsg.append("\r\n");
                     }
                 }
@@ -167,6 +186,7 @@ public class PersonWorkController {
                 result.setMsg(errMsg.toString());
                 return result;
             }
+            String userNumber=person.get("userNumber");
             MessageResult resultV2 = MessageResult.success();
             Map<String,Object> objectMap=null;
             if(StrUtil.isBlank(jobWork.getId())){
@@ -183,7 +203,7 @@ public class PersonWorkController {
                     List<Map<String, Object>> billList = (List<Map<String, Object>>) objectMap.get("billList");
                     for (Map<String, Object> stringObjectMap : billList) {
                         String id = (String) stringObjectMap.get("id");
-                        int i = personWorkService.submitWork(number, id);
+                        int i = personWorkService.submitWork(userNumber, id,shrClient);
                     }
                 }
             }else {
@@ -193,6 +213,13 @@ public class PersonWorkController {
         }catch (Exception e){
             log.error(e.getMessage(),e);
             return MessageResultV2.error(e.getMessage());
+        }finally {
+            try {
+                if(null!=shrClient)
+                shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            }catch (Exception e){
+                log.error(e.getMessage(),e);
+            }
         }
     }
     @ApiOperation(value = "获取员工报工列表", notes = "获取员工报工列表")
@@ -208,9 +235,9 @@ public class PersonWorkController {
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
         }
-        List<JobBooking> list = personWorkService.getPersonWorkListV2(number,beginTime,endTime,state);
+        Map map = personWorkService.getPersonWorkListV3(number,beginTime,endTime,state);
         MessageResult result=MessageResult.success();
-        result.add("datalist",list);
+        result.setData(map);
         return result;
     }
     @ApiOperation(value = "获取员工报工列表", notes = "获取员工报工列表")
@@ -254,48 +281,64 @@ public class PersonWorkController {
             @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"),
     })
     public MessageResult updateWork(@RequestHeader("token") String token, @RequestBody WorkHoursReport jobWork) {
-        String number = JWTUtil.getNumber(token);
-        MessageResult result =MessageResult.success();
-        if (StringUtils.isEmpty(number)) {
-            return MessageResult.error("token异常");
-        }
-        String action = jobWork.getAction();
+        SHRClient shrClient=null;
+        MessageResult result = MessageResult.success();
+        try {
+            String number = JWTUtil.getNumber(token);
 
-        if("delete".equals(action)){
-            Map<String,Object> map = personWorkService.deleteWorkToMap(number,jobWork.getId());
-            int i = (int) map.get("code");
-            String msg = (String) map.get("msg");
-            if(i<1){
-                if(StrUtil.isBlank(msg)){
-                    result = MessageResult.fail("删除失败");
-                }else {
-                    result = MessageResult.fail(msg);
-                }
+            if (StringUtils.isEmpty(number)) {
+                return MessageResult.error("token异常");
             }
-        }else if("revoke".equals(action)){
-            Map<String,Object> map =personWorkService.revocaWorkToMap(number,jobWork.getId());
-            int i = (int) map.get("code");
-            String msg = (String) map.get("msg");
-            if(i<1) {
-                if(StrUtil.isBlank(msg)){
-                    result = MessageResult.fail("撤回失败");
-                }else {
-                    result = MessageResult.fail(msg);
+            String action = jobWork.getAction();
+            Map<String, String> person = personService.getPersonByJobNo(number);
+            String userNumber = person.get("userNumber");
+            shrClient = new SHRClient(url, userNumber);
+            if ("delete".equals(action)) {
+                Map<String, Object> map = personWorkService.deleteWorkToMap(userNumber, jobWork.getId());
+                int i = (int) map.get("code");
+                String msg = (String) map.get("msg");
+                if (i < 1) {
+                    if (StrUtil.isBlank(msg)) {
+                        result = MessageResult.fail("删除失败");
+                    } else {
+                        result = MessageResult.fail(msg);
+                    }
                 }
-            }
-        }else if("commit".equals(action)){
-            Map<String,Object> map =personWorkService.submitWorkToMap(number,jobWork.getId());
-            int i = (int) map.get("code");
-            String msg = (String) map.get("msg");
-            if(i<1) {
-                if(StrUtil.isBlank(msg)){
-                    result = MessageResult.fail("提交失败");
-                }else {
-                    result = MessageResult.fail(msg);
+            } else if ("revoke".equals(action)) {
+                Map<String, Object> map = personWorkService.revocaWorkToMap(userNumber, jobWork.getId(),shrClient);
+                int i = (int) map.get("code");
+                String msg = (String) map.get("msg");
+                if (i < 1) {
+                    if (StrUtil.isBlank(msg)) {
+                        result = MessageResult.fail("撤回失败");
+                    } else {
+                        result = MessageResult.fail(msg);
+                    }
                 }
+            } else if ("commit".equals(action)) {
+                Map<String, Object> map = personWorkService.submitWorkToMap(userNumber, jobWork.getId(),shrClient);
+                int i = (int) map.get("code");
+                String msg = (String) map.get("msg");
+                if (i < 1) {
+                    if (StrUtil.isBlank(msg)) {
+                        result = MessageResult.fail("提交失败");
+                    } else {
+                        result = MessageResult.fail(msg);
+                    }
+                }
+            } else {
+                result = MessageResult.fail("没有找到方法");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            result = MessageResult.fail(e.getMessage());
+        }finally {
+            try {
+                if(null!=shrClient)
+                    shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            }catch (Exception e){
+                log.error(e.getMessage(),e);
             }
-        }else {
-            result=MessageResult.fail("没有找到方法");
         }
         return result;
     }
@@ -345,7 +388,9 @@ public class PersonWorkController {
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
         }
-        int i = personWorkService.submitWork(number,id);
+        Map<String, String> person = personService.getPersonByJobNo(number);
+        String userNumber=person.get("userNumber");
+        int i = personWorkService.submitWork(userNumber,id);
         if(i<1) {
             result = MessageResult.fail("提交失败");
         }
@@ -363,7 +408,9 @@ public class PersonWorkController {
         if (StringUtils.isEmpty(number)) {
             return MessageResult.error("token异常");
         }
-        int i = personWorkService.revocaWork(number,id);
+        Map<String, String> person = personService.getPersonByJobNo(number);
+        String userNumber=person.get("userNumber");
+        int i = personWorkService.revocaWork(userNumber,id);
         if(i<1) {
             result = MessageResult.fail("撤回失败");
         }

+ 1 - 0
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/model/entity/JobBooking.java

@@ -13,6 +13,7 @@ public class JobBooking extends HashMap {
     private String endTime;
     private String date;
     private Integer state;
+    private String jobContent;
     private String projectName;
     private String projectId;
     private String WorkingHours;

+ 4 - 4
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/model/mapper/PersonMapper.xml

@@ -9,7 +9,7 @@
         pp.fid "userID",pp2.FControlUnitID "controlUnitID",pp2.FHrOrgUnitID "hrOrgUnitID",
         pop.FPersonDep "adminOrgId",pop.FPRIMARYPOSITIONID "positionId",
         adminOrg.fname_l2 "adminOrgName",pos.fName_l2 "positionName",
-        pos.fnumber "positionNumber"
+        pos.fnumber "positionNumber",pp.fNumber "userNumber"
         from t_bd_person p
         left join t_pm_user pp on pp.fpersonid=p.fid
         left join T_HR_EMPLABORRELATION pp2 on pp2.FPersonID=p.fid
@@ -27,7 +27,7 @@
         pp.fid "userID",pp2.FControlUnitID "controlUnitID",pp2.FHrOrgUnitID "hrOrgUnitID",
         pop.FPersonDep "adminOrgId",pop.FPRIMARYPOSITIONID "positionId",
         adminOrg.fname_l2 "adminOrgName",pos.fName_l2 "positionName",
-        pos.fnumber "positionNumber"
+        pos.fnumber "positionNumber",pp.fNumber "userNumber"
         from t_bd_person p
         left join t_pm_user pp on pp.fpersonid=p.fid
         left join T_HR_EMPLABORRELATION pp2 on pp2.FPersonID=p.fid
@@ -45,7 +45,7 @@
         pp.fid "userID",pp2.FControlUnitID "controlUnitID",pp2.FHrOrgUnitID "hrOrgUnitID",
         pop.FPersonDep "adminOrgId",pop.FPRIMARYPOSITIONID "positionId",
         adminOrg.fname_l2 "adminOrgName",pos.fName_l2 "positionName",
-        pos.fnumber "positionNumber"
+        pos.fnumber "positionNumber",pp.fNumber "userNumber"
         from t_bd_person p
         left join t_pm_user pp on pp.fpersonid=p.fid
         left join T_HR_EMPLABORRELATION pp2 on pp2.FPersonID=p.fid
@@ -62,7 +62,7 @@
         pp.fid "userID",pp2.FControlUnitID "controlUnitID",pp2.FHrOrgUnitID "hrOrgUnitID",
         pop.FPersonDep "adminOrgId",pop.FPRIMARYPOSITIONID "positionId",
         adminOrg.fname_l2 "adminOrgName",pos.fName_l2 "positionName",
-        pos.fnumber "positionNumber"
+        pos.fnumber "positionNumber",pp.fNumber "userNumber"
         from t_bd_person p
         left join t_pm_user pp on pp.fpersonid=p.fid
         left join T_HR_EMPLABORRELATION pp2 on pp2.FPersonID=p.fid

+ 1 - 1
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/model/mapper/PersonWorkMapper.java

@@ -11,7 +11,7 @@ import java.util.Map;
 @Repository
 public interface PersonWorkMapper {
 
-        String selectBillKey(@Param("time") long time);
+        String selectBillKey(@Param("time") String time);
         String selectKeyByBosTyoe(@Param("employeeID") String employeeID,@Param("time") long time);
 
         List<Map<String,Object>> getAvailableDateInfo(@Param("employeeID") String employeeID, @Param("startDate")String startDate,  @Param("endDate")String endDate);

+ 7 - 6
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/model/mapper/PersonWorkMapper.xml

@@ -60,7 +60,7 @@
         select p.fnumber "personNumber",p.fname_l2 "personName",
         whr.CFAffiliatedProjec "projectID", pm.CFProjectName "projectName",
         hre.CFClockTime "clockTime",to_char(hre.CfData,'YYYY-MM-DD') "data",hre.CFWorkingHours "WorkingHours",
-        whr.fbillState "state",whr.fid "id"
+        whr.fbillState "state",whr.fid "id",whr.FDESCRIPTION "jobContent"
         from CT_PRO_WorkHoursReportEntry hre
         left join CT_PRO_WorkHoursReport whr on whr.fid=hre.FParentID
         left join CT_PRO_ProjectManagement pm on pm.FID=whr.CFAffiliatedProjec
@@ -84,7 +84,7 @@
         pm.CFPROJECTNAME "projectName",pm.fid "projectId",
         to_char(hre.CFDATA,'YYYY-MM-DD') "workingDate",hre.CFWORKINGHOURS "workingHours",
         hre.CFNOTES "notes",hre.FSEQ "seq",
-        hre.fid "entryId"
+        hre.fid "entryId",whr.FDESCRIPTION "jobContent"
         from
         CT_PRO_WorkHoursReportEntry hre
         left join CT_PRO_WorkHoursReport whr on whr.fid=hre.FParentID
@@ -100,7 +100,7 @@
         <if test="state==false">
             and whr.fbillState=0
         </if>
-        order by "workingDate", "projectId"
+        order by "workingDate" desc, "projectId"
     </select>
     <select id="getPersonWorkSumInfo" resultType="java.util.Map">
         select whr.fbillState "state",sum(hre.CFWorkingHours) "WorkingHours"
@@ -127,7 +127,7 @@
         FBillState,FNumber,FBizDate,
         FCreatorID,FCreateTime,FLastUpdateUserID,
         FLastUpdateTime, FControlUnitID,FID,
-        CFDataSource,CFFillingStartDate,CFFillingEndDate
+        CFDataSource,CFFillingStartDate,CFFillingEndDate,FDESCRIPTION
         )
         <foreach collection="billList" item="item" index="index" separator="UNION ALL">
             SELECT
@@ -135,7 +135,7 @@
             #{item.billState}, #{item.number},  SYSDATE,
             #{item.creator}, SYSDATE, #{item.lastUpdateUser},
             SYSDATE, #{item.CU}, #{item.id},
-            'employeeReport', to_date(#{item.fillingStartDate},'YYYY-MM-DD'), to_date(#{item.fillingEndDate},'YYYY-MM-DD')
+            'employeeReport', to_date(#{item.fillingStartDate},'YYYY-MM-DD'), to_date(#{item.fillingEndDate},'YYYY-MM-DD'),#{item.jobContent}
             FROM dual
         </foreach>
 
@@ -162,6 +162,7 @@
         <result column="state" property="state"/>
         <result column="projectName" property="projectName"/>
         <result column="projectId" property="projectId"/>
+        <result column="jobContent" property="jobContent"/>
         <association property="person" javaType="com.qy.worksheetsystem.model.entity.JobBookPerson">
             <id property="personId" column="personId" />
             <result column="personName" property="personName" />
@@ -183,7 +184,7 @@
         pm.CFPROJECTNAME "projectName",pm.fid "projectId",
         to_char(hre.CFDATA,'YYYY-MM-DD') "workingDate",hre.CFWORKINGHOURS "workingHours",
         hre.CFNOTES "notes",hre.FSEQ "seq",
-        hre.fid "entryId"
+        hre.fid "entryId",whr.FDESCRIPTION "jobContent"
         from
         CT_PRO_WorkHoursReportEntry hre
         left join CT_PRO_WorkHoursReport whr on whr.fid=hre.FParentID

+ 2 - 3
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/model/mapper/ProjectMapper.xml

@@ -127,11 +127,10 @@
         <!--   fid as "memberManagementId"-->
         <!--   FROM CT_PRO_MemberManagement-->
         <!--   where CFEMPLOYEEId =(select fid from T_bd_person where fnumber =#{personNumber})-->
-
         SELECT
         projectManagement.fid as "id",
-        memberManagement.CFPROJECTCODE as "number",
-        memberManagement.CFPROJECTNAME as "name"
+        projectManagement.FNUMBER as "number",
+        projectManagement.CFPROJECTNAME as "name"
         FROM CT_PRO_MemberManagement memberManagement
         left join CT_PRO_ProjectManagement projectManagement on memberManagement.CFPROJECTMANAGEMENID =projectManagement.fid
         where CFEMPLOYEEId =(select fid from T_bd_person where fnumber =#{personNumber}) and CFSTATE = 1 and CFPROJECTSTATE in(1)

+ 17 - 4
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/service/PersonWorkService.java

@@ -1,5 +1,6 @@
 package com.qy.worksheetsystem.service;
 
+import com.kingdee.shr.api.SHRClient;
 import com.qy.worksheetsystem.model.MessageResult;
 import com.qy.worksheetsystem.model.entity.JobBooking;
 import com.qy.worksheetsystem.util.JWTUtil;
@@ -15,6 +16,8 @@ public interface PersonWorkService {
 
     @Transactional
     public Map<String,Object> insertWork(Map<String,Object> param);
+    @Transactional
+    public Map<String,Object> insertWork(Map<String,Object> param,  SHRClient shrClient);
 
     List<Map<String, Object>> getAvailableDateInfoById(String number, String id, String startDate, String endDate);
 
@@ -22,6 +25,7 @@ public interface PersonWorkService {
     List<Map<String,Object>> getPersonWorkList(String number,String beginTime, String endTime, Boolean state);
 
     List<JobBooking>  getPersonWorkListV2(String number, String beginTime, String endTime, Boolean state);
+    Map<String,Object>  getPersonWorkListV3(String number, String beginTime, String endTime, Boolean state);
 
     List<Map<String,Object>> getPersonWorkSumInfo(String number, String beginTime, String endTime, Boolean state);
 
@@ -32,16 +36,25 @@ public interface PersonWorkService {
 
     @Transactional
     int submitWork(String number, String id);
-
+    @Transactional
+    int submitWork(String number, String id, SHRClient shrClient);
     @Transactional
     int revocaWork(String number, String id);
 
     @Transactional
-    public Map<String,Object> deleteWorkToMap(String number, String id);
+    int revocaWork(String number, String id, SHRClient shrClient);
+
+    @Transactional
+    public Map<String,Object> deleteWorkToMap(String userNumber, String id);
+
+    @Transactional
+    public Map<String,Object> submitWorkToMap(String userNumber, String id);
 
     @Transactional
-    public Map<String,Object> submitWorkToMap(String number, String id);
+    public Map<String,Object> revocaWorkToMap(String userNumber, String id);
+    @Transactional
+    public Map<String,Object> submitWorkToMap(String userNumber, String id, SHRClient shrClient);
 
     @Transactional
-    public Map<String,Object> revocaWorkToMap(String number, String id);
+    public Map<String,Object> revocaWorkToMap(String userNumber, String id, SHRClient shrClient);
 }

+ 272 - 103
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/service/impl/PersonWorkServiceImpl.java

@@ -7,6 +7,8 @@ import cn.hutool.json.JSONUtil;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.kingdee.shr.api.OSFWSClient;
+import com.kingdee.shr.api.Response;
+import com.kingdee.shr.api.SHRClient;
 import com.qy.worksheetsystem.model.entity.JobBooking;
 import com.qy.worksheetsystem.model.entity.JobBookingEntry;
 import com.qy.worksheetsystem.model.mapper.PersonWorkMapper;
@@ -18,11 +20,13 @@ import com.qy.worksheetsystem.util.SnowflakeUtils;
 import com.qy.worksheetsystem.vo.WorkHoursReport;
 import com.qy.worksheetsystem.vo.WorkHoursReportEntry;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.HttpException;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -56,9 +60,32 @@ public class PersonWorkServiceImpl implements PersonWorkService {
     private String serviceName;
     @Value("${HR.ais.codingRuleService}")
     private String codingRuleService;
+
+    @Override
+    @Transactional
+    public Map<String, Object> insertWork(Map<String, Object> param) {
+        Map<String, Object> result = null;
+        SHRClient shrClient = null;
+        try {
+            Map<String, String> person = (Map<String, String>) param.get("person");
+            shrClient = new SHRClient(url, person.get("userNumber"));
+            result = this.insertWork(param, shrClient);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        } finally {
+            try {
+                if (null != shrClient)
+                    shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return result;
+    }
+
     @Override
     @Transactional
-    public Map<String,Object> insertWork(Map<String,Object> param){
+    public Map<String, Object> insertWork(Map<String, Object> param, SHRClient shrClient) {
         List<Map<String, Object>> billList = Lists.newArrayList();
         List<Map<String, Object>> workList = Lists.newArrayList();
         int begin = (int) param.get("begin");
@@ -72,8 +99,6 @@ public class PersonWorkServiceImpl implements PersonWorkService {
         Map<String, Object> reMap = Maps.newHashMap();
         try {
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-
-            OSFWSClient client = new OSFWSClient();
             Integer Hours = 0;
             for (WorkHoursReportEntry jobWorkEntry : jobWork.getEntries()) {
                 String workingHours = jobWorkEntry.getWorkingHours();
@@ -81,13 +106,16 @@ public class PersonWorkServiceImpl implements PersonWorkService {
                 Hours += Hour.intValue();
                 String projectId = jobWorkEntry.getProjectId();
                 List<Map<String, String>> pros = projectMapper.getProjectManagementInfoBYId(projectId);
-                if (pros.size()<=0){
+                if (pros.size() <= 0) {
                     throw new Exception("没有找到项目,请检查");
                 }
                 String number = SnowflakeUtils.getInstance().getSnowflake().nextIdStr();
-                Map<String,Object> map = Maps.newHashMap();
-                String str = client.proceedOSF(url,codingRuleService,map);
-                if(StrUtil.isNotBlank(str)) {
+                Map<String, Object> map = Maps.newHashMap();
+                String str = "";
+
+                Response response = shrClient.executeServiceByLongConnection(url, codingRuleService, map);
+                str = (String) response.getData();
+                if (StrUtil.isNotBlank(str)) {
                     if (JSONUtil.isTypeJSON(str)) {
                         JSONObject j = JSONUtil.parseObj(str);
                         String code = j.getStr("code");
@@ -98,7 +126,7 @@ public class PersonWorkServiceImpl implements PersonWorkService {
                 }
 
                 Map<String, Object> billMap = new HashMap<>();
-                String billID = personWorkMapper.selectBillKey(new Long(number));
+                String billID = personWorkMapper.selectBillKey(String.valueOf(number));
                 billMap.put("id", billID);
                 billMap.put("affiliatedProject", projectId);
                 billMap.put("fillingStartDate", jobWork.getBeginTime());
@@ -111,6 +139,7 @@ public class PersonWorkServiceImpl implements PersonWorkService {
                 Date createTime = new Date();
                 billMap.put("creator", person.get("userID"));
                 billMap.put("lastUpdateUser", person.get("userID"));
+                billMap.put("jobContent", jobWorkEntry.getJobContent());
                 for (int i = begin; i <= end; i++) {
                     Map<String, Object> objectMap = Maps.newHashMap();
                     String iday = "01";
@@ -139,13 +168,13 @@ public class PersonWorkServiceImpl implements PersonWorkService {
 
             int bInt = personWorkMapper.insertBill(billList);
             int wInt = personWorkMapper.insertWork(workList);
-            reMap.put("billList",billList);
-            reMap.put("workList",workList);
-            reMap.put("code", (billList.size()+workList.size())==(bInt+wInt));
+            reMap.put("billList", billList);
+            reMap.put("workList", workList);
+            reMap.put("code", (billList.size() + workList.size()) == (bInt + wInt));
             return reMap;
-        }catch (Exception e){
-            log.error(e.getMessage(),e);
-            for(Map<String,Object> bill:billList) {
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            for (Map<String, Object> bill : billList) {
                 this.deleteWork(person.get("personNumber"), (String) bill.get("id"));
             }
             reMap.put("errMsg", e.getMessage());
@@ -156,14 +185,14 @@ public class PersonWorkServiceImpl implements PersonWorkService {
 
     @Override
     public List<Map<String, Object>> getAvailableDateInfoById(String number, String id, String startDate, String endDate) {
-        Map<String,String> person = personService.getPersonByJobNo(number);
-        List<Map<String,Object>> list = personWorkMapper.getAvailableDateInfoById(person.get("id"),id,startDate,endDate);
-        for(Map<String,Object> map : list){
+        Map<String, String> person = personService.getPersonByJobNo(number);
+        List<Map<String, Object>> list = personWorkMapper.getAvailableDateInfoById(person.get("id"), id, startDate, endDate);
+        for (Map<String, Object> map : list) {
 
             BigDecimal workHours = (BigDecimal) map.get("workHours");
-            if(null!=workHours) {
+            if (null != workHours) {
                 map.put("availableWorkHours", h8.subtract(workHours));
-            }else{
+            } else {
                 map.put("workHours", BigDecimal.ZERO);
                 map.put("availableWorkHours", h8);
             }
@@ -173,14 +202,14 @@ public class PersonWorkServiceImpl implements PersonWorkService {
 
     @Override
     public List<Map<String, Object>> getAvailableDateInfo(String number, String startDate, String endDate) {
-        Map<String,String> person = personService.getPersonByJobNo(number);
-        List<Map<String,Object>> list = personWorkMapper.getAvailableDateInfo(person.get("id"),startDate,endDate);
-        for(Map<String,Object> map : list){
+        Map<String, String> person = personService.getPersonByJobNo(number);
+        List<Map<String, Object>> list = personWorkMapper.getAvailableDateInfo(person.get("id"), startDate, endDate);
+        for (Map<String, Object> map : list) {
 
             BigDecimal workHours = (BigDecimal) map.get("workHours");
-            if(null!=workHours) {
+            if (null != workHours) {
                 map.put("availableWorkHours", h8.subtract(workHours));
-            }else{
+            } else {
                 map.put("workHours", BigDecimal.ZERO);
                 map.put("availableWorkHours", h8);
             }
@@ -189,143 +218,283 @@ public class PersonWorkServiceImpl implements PersonWorkService {
     }
 
     @Override
-    public List<Map<String,Object>> getPersonWorkList(String number,String beginTime, String endTime, Boolean state) {
-        List<Map<String,Object>> list = personWorkMapper.getPersonWorkList(number,beginTime,endTime,state);
+    public List<Map<String, Object>> getPersonWorkList(String number, String beginTime, String endTime, Boolean state) {
+        List<Map<String, Object>> list = personWorkMapper.getPersonWorkList(number, beginTime, endTime, state);
         return list;
     }
+
+    @Override
+    public Map<String, Object> getPersonWorkListV3(String number, String beginTime, String endTime, Boolean state) {
+        List<JobBooking> list = personWorkMapper.getPersonWorkListV2(number, beginTime, endTime, state);
+        BigDecimal unapprovedHours = BigDecimal.ZERO;
+        BigDecimal approveHours = BigDecimal.ZERO;
+        BigDecimal workingHours = BigDecimal.ZERO;
+        BigDecimal work8 = new BigDecimal(8);
+        Map<String, Object> map = new HashMap<>();
+        for (JobBooking job : list) {
+            BigDecimal hours = BigDecimal.ZERO;
+            BigDecimal days = BigDecimal.ZERO;
+            String billState = String.valueOf(job.get("state"));
+            for (JobBookingEntry jobEntry : (List<JobBookingEntry>) job.get("entries")) {
+                BigDecimal work = new BigDecimal(jobEntry.getWorkingHours());
+                workingHours = workingHours.add(work);
+                hours = work;
+                days = days.add(work);
+                if ("3".equals(billState)) {
+                    approveHours = approveHours.add(work);
+                } else {
+                    unapprovedHours = unapprovedHours.add(work);
+                }
+            }
+            job.put("WorkingHours", hours.toPlainString());
+            job.put("days", days.divide(work8, 4));
+        }
+        map.put("datalist", list);
+        map.put("approveDays", approveHours.divide(work8, 4));
+        map.put("unapprovedDays", unapprovedHours.divide(work8, 4));
+        map.put("workingDays", workingHours.divide(work8, 4));
+        return map;
+    }
+
     @Override
-    public   List<JobBooking> getPersonWorkListV2(String number, String beginTime, String endTime, Boolean state) {
-        List<JobBooking> list = personWorkMapper.getPersonWorkListV2(number,beginTime,endTime,state);
-        for(JobBooking job : list){
-            BigDecimal workingHours = BigDecimal.ZERO;
+    public List<JobBooking> getPersonWorkListV2(String number, String beginTime, String endTime, Boolean state) {
+        List<JobBooking> list = personWorkMapper.getPersonWorkListV2(number, beginTime, endTime, state);
+        BigDecimal workingHours = BigDecimal.ZERO;
+        for (JobBooking job : list) {
+
             BigDecimal hours = BigDecimal.ZERO;
-            for(JobBookingEntry jobEntry : (List<JobBookingEntry>)job.get("entries")){
+            for (JobBookingEntry jobEntry : (List<JobBookingEntry>) job.get("entries")) {
                 BigDecimal work = new BigDecimal(jobEntry.getWorkingHours());
-                workingHours=workingHours.add(work);
-                hours=work;
+                workingHours = workingHours.add(work);
+                hours = work;
             }
-            job.put("WorkingHours",hours.toPlainString());
+            job.put("WorkingHours", hours.toPlainString());
         }
         return list;
     }
+
     @Override
-    public List<Map<String,Object>> getPersonWorkSumInfo(String number,String beginTime,String endTime,Boolean state){
-        List<Map<String,Object>> list =personWorkMapper.getPersonWorkSumInfo(number,beginTime,endTime,state);
+    public List<Map<String, Object>> getPersonWorkSumInfo(String number, String beginTime, String endTime, Boolean state) {
+        List<Map<String, Object>> list = personWorkMapper.getPersonWorkSumInfo(number, beginTime, endTime, state);
         return list;
     }
+
     @Override
-    public JobBooking getPersonWorkInfoById(String number, String id){
-        JobBooking e =personWorkMapper.getPersonWorkInfoById( number, id);
+    public JobBooking getPersonWorkInfoById(String number, String id) {
+        JobBooking e = personWorkMapper.getPersonWorkInfoById(number, id);
         BigDecimal workingHours = BigDecimal.ZERO;
-        for(JobBookingEntry jobEntry : (List<JobBookingEntry>)e.get("entries")){
 
-            workingHours=workingHours.add(new BigDecimal(jobEntry.getWorkingHours()));
+        for (JobBookingEntry jobEntry : (List<JobBookingEntry>) e.get("entries")) {
+
+            workingHours =new BigDecimal(jobEntry.getWorkingHours());
+
         }
-        e.put("WorkingHours",workingHours.toPlainString());
+        e.put("WorkingHours", workingHours.toPlainString());
         return e;
     }
+
     @Override
     @Transactional
-    public int deleteWork(String number, String id){
-        int x =personWorkMapper.deleteWorkEntry(id);
-        int i =personWorkMapper.deleteWork(id);
+    public int deleteWork(String number, String id) {
+        int x = personWorkMapper.deleteWorkEntry(id);
+        int i = personWorkMapper.deleteWork(id);
         return i;
     }
+
     @Override
     @Transactional
-    public int submitWork(String number, String id){
-        OSFWSClient client = new OSFWSClient();
-        Map<String,Object> map = Maps.newHashMap();
-        map.put("billId",id);//  单据id
-        map.put("status","1");//  单据id
-        String str = client.proceedOSF(url,serviceName,map);
-        if(StrUtil.isNotBlank(str)){
-            JSONObject j = JSONUtil.parseObj(str);
-            String code = j.getStr("code");
-            if("200".equals(code)){
-                return 1;
+    public int submitWork(String number, String id, SHRClient shrClient) {
+        Map<String, Object> map = Maps.newHashMap();
+        map.put("billId", id);//  单据id
+        map.put("status", "1");//  单据id
+        try {
+            Response response = shrClient.executeServiceByLongConnection(url, serviceName, map);
+            String str = (String) response.getData();
+            if (StrUtil.isNotBlank(str)) {
+                if (JSONUtil.isTypeJSON(str)) {
+                    JSONObject j = JSONUtil.parseObj(str);
+                    String code = j.getStr("code");
+                    if ("200".equals(code)) {
+                        return 1;
+                    }
+                }
             }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
         }
         return 0;
     }
+
     @Override
     @Transactional
-    public int revocaWork(String number, String id){
-        OSFWSClient client = new OSFWSClient();
-        Map<String,Object> map = Maps.newHashMap();
-        map.put("billId",id);//  单据id
-        map.put("status","2");//  单据id
-        String str = client.proceedOSF(url,serviceName,map);
-        if(StrUtil.isNotBlank(str)){
+    public int submitWork(String number, String id) {
+        SHRClient shrClient = null;
+        int result =0;
+        try {
+            shrClient = new SHRClient(url, number);
+            result= this.submitWork(number, id, shrClient);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        } finally {
             try {
-                if(JSONUtil.isTypeJSON(str)) {
+                if (null != shrClient)
+                    shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return result;
+    }
+
+    @Override
+    @Transactional
+    public int revocaWork(String number, String id, SHRClient shrClient) {
+
+        Map<String, Object> map = Maps.newHashMap();
+        map.put("billId", id);//  单据id
+        map.put("status", "2");//  单据id
+        try {
+            Response response = shrClient.executeServiceByLongConnection(url, serviceName, map);
+            String str = (String) response.getData();
+            if (StrUtil.isNotBlank(str)) {
+                if (JSONUtil.isTypeJSON(str)) {
                     JSONObject j = JSONUtil.parseObj(str);
                     String code = j.getStr("code");
                     if ("200".equals(code)) {
                         return 1;
                     }
-                }else {
+                } else {
                     return 0;
                 }
-            }catch (Exception e){
-                log.error(e.getMessage(),e);
             }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
         }
         return 0;
     }
+
+    @Override
+    @Transactional
+    public int revocaWork(String number, String id) {
+        SHRClient shrClient = null;
+        int result=0;
+        try {
+            shrClient = new SHRClient(url, number);
+            result= this.revocaWork(number, id, shrClient);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        } finally {
+            try {
+                if (null != shrClient)
+                    shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return result;
+    }
+
     @Override
     @Transactional
-    public Map<String,Object> deleteWorkToMap(String number, String id){
-        int x =personWorkMapper.deleteWorkEntry(id);
-        int i =personWorkMapper.deleteWork(id);
-        Map<String,Object> map = Maps.newHashMap();
-        map.put("code",(i>0?1:0));
-        map.put("work",i);
-        map.put("workEntry",x);
+    public Map<String, Object> deleteWorkToMap(String number, String id) {
+        int x = personWorkMapper.deleteWorkEntry(id);
+        int i = personWorkMapper.deleteWork(id);
+        Map<String, Object> map = Maps.newHashMap();
+        map.put("code", (i > 0 ? 1 : 0));
+        map.put("work", i);
+        map.put("workEntry", x);
         return map;
     }
     @Override
     @Transactional
-    public Map<String,Object> submitWorkToMap(String number, String id){
-        OSFWSClient client = new OSFWSClient();
-        Map<String,Object> map = Maps.newHashMap();
-        map.put("billId",id);//  单据id
-        map.put("status","1");//  单据id
-        String str = client.proceedOSF(url,serviceName,map);
-        map.put("code",0);
-        if(StrUtil.isNotBlank(str)){
-            if(JSONUtil.isTypeJSON(str)) {
-                JSONObject j = JSONUtil.parseObj(str);
-                String code = j.getStr("code");
-                if ("200".equals(code)) {
-                    map.put("code", 1);
+    public Map<String, Object> submitWorkToMap(String number, String id, SHRClient shrClient) {
+        Map<String, Object> map = Maps.newHashMap();
+        map.put("billId", id);//  单据id
+        map.put("status", "1");//  单据id
+        try {
+            Response response = shrClient.executeServiceByLongConnection(url, serviceName, map);
+            String str = (String) response.getData();
+            map.put("code", 0);
+            if (StrUtil.isNotBlank(str)) {
+                if (JSONUtil.isTypeJSON(str)) {
+                    JSONObject j = JSONUtil.parseObj(str);
+                    String code = j.getStr("code");
+                    if ("200".equals(code)) {
+                        map.put("code", 1);
+                    }
+                } else {
+                    map.put("msg", str);
                 }
-            }else {
-                map.put("msg", str);
             }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
         }
         return map;
     }
     @Override
     @Transactional
-    public Map<String,Object> revocaWorkToMap(String number, String id){
-        OSFWSClient client = new OSFWSClient();
-        Map<String,Object> map = Maps.newHashMap();
-        map.put("billId",id);//  单据id
-        map.put("status","2");//  单据id
-        String str = client.proceedOSF(url,serviceName,map);
-        map.put("code",0);
-        if(StrUtil.isNotBlank(str)) {
-            if (JSONUtil.isTypeJSON(str)) {
-                JSONObject j = JSONUtil.parseObj(str);
-                String code = j.getStr("code");
-                if ("200".equals(code)) {
-                    map.put("code", 1);
+    public Map<String, Object> submitWorkToMap(String number, String id) {
+        Map<String, Object> result=null;
+        SHRClient shrClient = null;
+        try {
+            shrClient = new SHRClient(url, number);
+            result= this.submitWorkToMap(number, id, shrClient);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        } finally {
+            try {
+                if (null != shrClient)
+                    shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return result;
+    }
+    @Override
+    @Transactional
+    public Map<String, Object> revocaWorkToMap(String number, String id, SHRClient shrClient) {
+        Map<String, Object> map = Maps.newHashMap();
+        map.put("billId", id);//  单据id
+        map.put("status", "2");//  单据id
+        try {
+            Response response = shrClient.executeServiceByLongConnection(url, serviceName, map);
+            String str = (String) response.getData();
+            map.put("code", 0);
+            if (StrUtil.isNotBlank(str)) {
+                if (JSONUtil.isTypeJSON(str)) {
+                    JSONObject j = JSONUtil.parseObj(str);
+                    String code = j.getStr("code");
+                    if ("200".equals(code)) {
+                        map.put("code", 1);
+                    }
+                } else {
+                    map.put("msg", str);
                 }
-            }else {
-                map.put("msg", str);
             }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
         }
         return map;
     }
+    @Override
+    @Transactional
+    public Map<String, Object> revocaWorkToMap(String number, String id) {
+        Map<String, Object> result=null;
+        SHRClient shrClient = null;
+        try {
+            shrClient = new SHRClient(url, number);
+            result= this.revocaWorkToMap(number, id, shrClient);
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        } finally {
+            try {
+                if (null != shrClient)
+                    shrClient.logout(url, shrClient.getGlobalToken(), shrClient.getGlobalHttpClient());
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return result;
+    }
 }

+ 2 - 2
app/workSheetSystem/src/main/java/com/qy/worksheetsystem/vo/WorkHoursReportEntry.java

@@ -8,6 +8,6 @@ import java.util.Date;
 public class WorkHoursReportEntry {
     private String workingHours;
     private String projectId;
-    private String projectName;
-
+    //private String projectName;
+    private String jobContent;
 }

+ 30 - 15
app/workSheetSystem/src/main/resources/application-dev.yml → app/workSheetSystem/src/main/resources/application-devn.yml

@@ -1,11 +1,19 @@
 spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
+  profiles:
+    active: dev
+
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
-#引入druid数据源
- #   driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
-#    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test;allowMultiQueries=true
-#    username: sa
-#    password: lhbj
+    #引入druid数据源
+    #   driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    #    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test;allowMultiQueries=true
+    #    username: sa
+    #    password: lhbj
     url: jdbc:oracle:thin:@//10.3.119.205:1521/orcl
     # url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=demo0708;allowMultiQueries=true;encrypt=true;trustServerCertificate=true
     username: HTYSHRTEST
@@ -23,14 +31,14 @@ spring:
     testOnReturn: false
     poolPreparedStatements: true
       #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
-      #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
-      #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
+    #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
+    #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
     filters: stat,wall,log4j
-#    filter:
-#      wall:
-#        config:
-#          multi-statement-allow: true
-#          none-base-statement-allow: true
+    #    filter:
+    #      wall:
+    #        config:
+    #          multi-statement-allow: true
+    #          none-base-statement-allow: true
     maxPoolPreparedStatementPerConnectionSize: 20
     useGlobalDataSourceStat: true
     connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
@@ -79,6 +87,13 @@ HR:
   AttendanceType: eBUAADAXEjxyrXZI
   #出差
   tripType: eBUAADAXEjtyrXZI
+  #密钥
+  ais:
+    password: HTYSHRTEST
+    effective: 300000
+    url: https://10.3.119.205:80/shr
+    serviceName: workHoursReportService
+    codingRuleService: codingRuleService
 #企业微信
 weixin:
   corpsecret:
@@ -104,9 +119,9 @@ yunzhijia:
   #  url: https://oa.ysstech.com:19000/
   #审批消息企微消息推送
   ks:
-    corpsecret: CmzzYQ4evcyBjzyjYwl2ycDOk3tNm8DDiUv0gfysPls
-    corpid: wwad966bd4d6a788ce
-    AgentId: 1000036
+    corpsecret:
+    corpid:
+    AgentId:
     # corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
     #corpid: wwbfa0b02a7ede338c
     #AgentId: 1000006

+ 129 - 0
app/workSheetSystem/src/main/resources/application-pron.yml

@@ -0,0 +1,129 @@
+spring:
+  http:
+    encoding:
+      charset: UTF-8
+      enabled: true
+      force: true
+  profiles:
+      active: pro
+
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
+    #引入druid数据源
+    #   driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    #    url: jdbc:sqlserver://127.0.01:1433;DatabaseName=test;allowMultiQueries=true
+    #    username: sa
+    #    password: lhbj
+    url: jdbc:oracle:thin:@//172.20.1.211:1521/shr
+    # url: jdbc:sqlserver://192.168.1.250:1433;DatabaseName=demo0708;allowMultiQueries=true;encrypt=true;trustServerCertificate=true
+    username: htyshr
+    #password: ENC(ksqle:xq5lQYb8beOCrxhD494xPHahBtX/hQeS)
+    password: ENC(ksqle:jvfwVZzYRnsQuqDKCMr/OTBl+uoJKlWY)
+    initialSize: 5
+    minIdle: 5
+    maxActive: 20
+    maxWait: 60000
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    #validationQuery: SELECT 1 FROM DUAL
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+      #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
+      #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
+    #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
+    filters: stat,wall,log4j
+    #    filter:
+    #      wall:
+    #        config:
+    #          multi-statement-allow: true
+    #          none-base-statement-allow: true
+    maxPoolPreparedStatementPerConnectionSize: 20
+    useGlobalDataSourceStat: true
+    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
+    # schema: 设置模式,例如 postgresql 有模式这个概念
+    #url: jdbc:sqlserver://192.168.73.2:1433;DatabaseName=sHR820
+    #username: sa
+    #password: YsstechHR2020
+
+server:
+  compression:
+    enabled: true
+    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
+    min-response-size: 1024
+  port: 9092  #注意,这里是https访问的的端口号
+  undertow:
+    io-threads: 8 # 设置IO线程数
+    worker-threads: 128 # 阻塞任务线程池大小
+    buffer-size: 1024 # 每个缓冲区的大小
+    direct-buffers: true # 是否分配直接内存
+#  ssl:
+#    key-store: classpath:7494583_oa.ysstech.com.pfx
+#    key-store-password: 95zCuxIB
+#    key-store-type: PKCS12
+#    enabled: true
+###mybatis??
+mybatis:
+  mapper-locations: classpath:model/mapper/**/*.xml
+pagehelper:
+  helper-dialect: oracle
+  reasonable: true
+  support-methods-arguments: false
+  params: count=countSql
+
+
+  ##config: classpath:logback.xml
+HR:
+  #报工顶级组织,空表示所有
+  OrgNumber:
+  #正式员工
+  EmployeeType: 00000000-0000-0000-0000-000000000001A29E85B3
+  #离职员工
+  LeaveType: 00000000-0000-0000-0000-000000000007A29E85B3
+
+  HolidayPolicy: eBUAADBqEZxfwQkQ
+  #年假
+  AttendanceType: eBUAADAXEjxyrXZI
+  #出差
+  tripType: eBUAADAXEjtyrXZI
+  #密钥
+  ais:
+    password: htyshr
+    effective: 300000
+    url: https://172.20.1.210:8080/shr
+    serviceName: workHoursReportService
+    codingRuleService: codingRuleService
+#企业微信
+weixin:
+  corpsecret:
+  corpid:
+  AgentId:
+  url:
+  ks:
+    corpid:
+    corpsecret:
+    AgentId:
+
+feishu:
+  AppID: cli_a7b1b05025bad013
+  AppSecret: 1ZEjIWfJOlTWUJ28lOeF5ekj4435rHEV
+
+yunzhijia:
+  AppID: 500968225
+  AppSecret: Lu8N400ouEfPUBaUShl5
+
+  #  corpsecret: 1PDS3kcxNu4pCkXAyZutnzUq2xoS-POnZzqLcRW5_4I
+  #  corpid: wwad966bd4d6a788ce
+  #  AgentId: 1000040
+  #  url: https://oa.ysstech.com:19000/
+  #审批消息企微消息推送
+  ks:
+    corpsecret:
+    corpid:
+    AgentId:
+    # corpsecret: r_dthG2V-w6g6tpoEgjnNJS_dv5_SCAQl0PfV8z_H4U
+    #corpid: wwbfa0b02a7ede338c
+    #AgentId: 1000006
+
+

+ 3 - 3
app/workSheetSystem/src/main/resources/application.yml

@@ -4,8 +4,8 @@ spring:
       charset: UTF-8
       enabled: true
       force: true
-  #profiles:
-  #    active: text
+  profiles:
+    active: pro
 
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
@@ -31,7 +31,7 @@ spring:
     testOnReturn: false
     poolPreparedStatements: true
       #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入
-      #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
+    #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
     #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j
     filters: stat,wall,log4j
     #    filter:

+ 3 - 3
app/workSheetSystem/src/main/resources/logback-spring.xml

@@ -171,9 +171,9 @@
     <root level="DEBUG">
         <appender-ref ref="CONSOLE"/>
         <appender-ref ref="DEBUG_FILE"/>
-    <!--<appender-ref ref="INFO_FILE"/>
-   <appender-ref ref="WARN_FILE"/>
-   <appender-ref ref="ERROR_FILE"/>-->
+        <appender-ref ref="INFO_FILE"/>
+        <appender-ref ref="WARN_FILE"/>
+        <appender-ref ref="ERROR_FILE"/><!---->
     </root>
 
    <!--生产环境:输出err与warn文件-->

+ 48 - 1
app/workSheetSystem/src/test/java/com/qy/worksheetsystem/Test.java

@@ -1,9 +1,56 @@
 package com.qy.worksheetsystem;
 
 
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.google.common.collect.Maps;
+import com.kingdee.shr.api.OSFWSClient;
+import com.kingdee.shr.api.Response;
+import com.kingdee.shr.api.SHRClient;
+import com.qy.worksheetsystem.util.JWTUtil;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 
 public class Test {
-    public static void main(String[] args) {
 
+    private static String url="https://10.3.119.205:80/shr";
+    public static void main(String[] args) throws Exception {
+        OSFWSClient client= new OSFWSClient();
+       // String url = "https://s-hr.hnredsolar.com:57211/shr";
+        Map<String,Object> map = new HashMap<>();
+        map.put("billId","IeYWoVdFSBWd71w6gO+BDs+dzrE=");//  单据id
+        map.put("status","2");//  单据id
+        SHRClient shrClient = new SHRClient();
+//        Response response = shrClient.executeService(url, "codingRuleService", map);
+//        String str = (String) response.getData();
+//        System.out.println(str);
+        //Object o= client.proceedOSF(url,"getJobs",map);
+        //System.out.println(o);
+//        String jd = JWTUtil.encrypt("zL4k46ncQlKt11VQvxhaKoDvfe0=,"+System.currentTimeMillis(),"HTYSHRTEST");
+//        System.out.println(jd);
+//        System.out.println(JWTUtil.decrypt("cLZ45ZyN0vGdRIx4GUIGWJUYABfK2vffJNvBnhvoMBxREb4Iu084oeowqd+v+Ds1","htyshrtest"));
+//        System.out.println(cn.hutool.jwt.JWTUtil.createToken(map,"hty_202401203".getBytes()));
+//4xsDVJMpSpevWaakRPxvyoDvfe0=
+        //RYKFLyB3QzCMPQnnOeCykYDvfe0=
+        //I42pen9cRNCHYflg/fhmoIDvfe0=
+        Algorithm algorithm = Algorithm.HMAC256("htyshr");
+        Date date = new Date(System.currentTimeMillis() + 1000);
+        String token2 = JWTUtil.encrypt("/NP9IOpwTXS3wwhAfDGBF4Dvfe0=,"+System.currentTimeMillis(),"htyshr");
+        System.out.println(JWTUtil.decrypt(token2,"htyshr"));
+        System.out.println(token2);
+//        String token = JWT.create()
+//                .withClaim("number", "Y0000034")
+//                .withExpiresAt(date)
+//                .sign(algorithm);
+//        System.out.println(token);
+//        for (int i=0;i<10;i++){
+//            String number = JWTUtil.getNumber(token);
+//            System.out.println(number);
+//            System.out.println(JWTUtil.verify(token,number));
+//            Thread.sleep(1001);
+//        }
     }
 }