Przeglądaj źródła

市场部经理

ljy121 11 miesięcy temu
rodzic
commit
5f3729557b

+ 17 - 17
zjugis-business/src/main/java/com/zjugis/business/flow/contract/event/ContractEvent.java

@@ -334,13 +334,13 @@ public class ContractEvent extends BaseController {
                 Project project = projectService.selectById(entity.getProjectId());
                 List<Map<String, String>> userMaps = new ArrayList<>();
                 if(StringUtils.isNotBlank(project.getXsryId())){
-                    CommonResult<List<DeptRespDTO>> deptsRes  = deptApi.getDeptByUserId(project.getXsryId());
-                    List<DeptRespDTO> depts = deptsRes.getCheckedData();
-                    if(!depts.isEmpty()){
-                        HashMap<String,String> leaderMap = new HashMap<>();
-                        leaderMap.put("id",depts.get(0).getLeaderUserId());
-                        userMaps.add(leaderMap);
-                    }
+                    CommonResult<AdminUserRespDTO> userRes = adminUserApi.getUser(project.getXsryId());
+                    AdminUserRespDTO user = userRes.getCheckedData();
+                    CommonResult<DeptRespDTO> deptRes  = deptApi.getDept(user.getDeptId());
+                    DeptRespDTO dept = deptRes.getCheckedData();
+                    HashMap<String,String> leaderMap = new HashMap<>();
+                    leaderMap.put("id",dept.getLeaderUserId());
+                    userMaps.add(leaderMap);
                 }
                 return ok(userMaps);
             } else {
@@ -361,16 +361,16 @@ public class ContractEvent extends BaseController {
                 Project project = projectService.selectById(entity.getProjectId());
                 List<Map<String, String>> userMaps = new ArrayList<>();
                 if(StringUtils.isNotBlank(project.getXsryId())){
-                    CommonResult<List<DeptRespDTO>> deptsRes  = deptApi.getDeptByUserId(project.getXsryId());
-                    List<DeptRespDTO> depts = deptsRes.getCheckedData();
-                    if(!depts.isEmpty()){
-                        CommonResult<AdminUserRespDTO> userRes = adminUserApi.getUserLeader(depts.get(0).getLeaderUserId());
-                        AdminUserRespDTO userLeader = userRes.getCheckedData();
-                        if (userLeader != null) {
-                            HashMap<String, String> leaderMap = new HashMap<>();
-                            leaderMap.put("id", userLeader.getId());
-                            userMaps.add(leaderMap);
-                        }
+                    CommonResult<AdminUserRespDTO> userRes = adminUserApi.getUser(project.getXsryId());
+                    AdminUserRespDTO user = userRes.getCheckedData();
+                    CommonResult<DeptRespDTO> deptRes  = deptApi.getDept(user.getDeptId());
+                    DeptRespDTO dept = deptRes.getCheckedData();
+                    CommonResult<AdminUserRespDTO> leaderRes = adminUserApi.getUserLeader(dept.getLeaderUserId());
+                    AdminUserRespDTO userLeader = leaderRes.getCheckedData();
+                    if (userLeader != null) {
+                        HashMap<String, String> leaderMap = new HashMap<>();
+                        leaderMap.put("id", userLeader.getId());
+                        userMaps.add(leaderMap);
                     }
                 }
                 return ok(userMaps);

+ 7 - 1
zjugis-business/src/main/resources/mapper/oracle/ContractMapper.xml

@@ -643,7 +643,8 @@
     <select id="amountByDept" resultType="com.zjugis.business.bean.dto.ManageDeptDto">
         SELECT D.ID as deptId, MAX(D.NAME) as deptName,
                COALESCE(SUM(COALESCE(PA.invoiceAmount - PA.returnAmount,0)),0) as receivableAmount,
-               COALESCE(SUM(COALESCE(c.CONTRACT_AMOUNT,0)),0) - COALESCE(SUM(COALESCE(PA.invoiceAmount,0)),0) as contractBalance
+               COALESCE(SUM(COALESCE(c.CONTRACT_AMOUNT,0)),0) - COALESCE(SUM(COALESCE(PA.invoiceAmount,0)),0) as contractBalance,
+               COALESCE(MAX(SU.mc),0) as memberCount
         FROM CONTRACT c
                  LEFT JOIN (
             SELECT CONTRACT_ID,
@@ -654,6 +655,11 @@
         ) PA on PA.CONTRACT_ID = c.ID
         RIGHT JOIN PROJECT pr ON pr.ID = c.PROJECT_ID
         LEFT JOIN ZJUGIS_OA.SYSTEM_DEPT D ON D.ID = pr.ZRBM_ID
+        LEFT JOIN
+            ( SELECT COUNT(1) as mc,DEPT_ID FROM  ZJUGIS_OA.SYSTEM_USERS
+              WHERE DELETED = 0 AND STATUS = 0 AND DEPT_ID IS NOT NULL
+              GROUP BY DEPT_ID
+            ) SU ON SU.DEPT_ID = D.ID
         where c.ISVALID = 1 AND c.FLOW_STATUS = 90 and D.ID is not null
         GROUP BY D.ID
     </select>