yumeng 1 gadu atpakaļ
vecāks
revīzija
c5d5f1fc72

+ 31 - 19
jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/controller/FirstDeliveryValidController.java

@@ -86,9 +86,9 @@ public class FirstDeliveryValidController {
 
     @GetMapping(value = "/getDesignData")
     @ResponseBody
-    public Result<Object> getDesignData(String date,Integer pageSize,Integer pageNo,Integer designRole) {
+    public Result<Object> getDesignData(String date, Integer pageSize, Integer pageNo, Integer designRole) {
         try {
-            return firstDeliveryValidService.getDesignData(date,pageSize,pageNo,designRole);
+            return firstDeliveryValidService.getDesignData(date, pageSize, pageNo, designRole);
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error("导入EXCEL失败," + e.getMessage());
@@ -122,11 +122,12 @@ public class FirstDeliveryValidController {
         Integer month = Integer.valueOf(split[1]);
         List<JSONObject> projectInfo = firstDeliveryValidService.getDataForProject(year, month.toString());
         //剪辑
-        List<JSONObject> clipInfo = firstDeliveryValidService.getDataForUserType(year, month.toString(), "clip_id");
-        //拍摄
-        List<JSONObject> shotInfo = firstDeliveryValidService.getDataForUserType(year, month.toString(), "shot_id");
-        //编导
-        List<JSONObject> planInfo = firstDeliveryValidService.getDataForUserType(year, month.toString(), "plan_id");
+        List<JSONObject> clipInfo = firstDeliveryValidService.getDesignDataExport(date, 1);
+        // 拍摄
+        List<JSONObject> shotInfo = firstDeliveryValidService.getDesignDataExport(date, 2);
+        // 编导
+        List<JSONObject> planInfo = firstDeliveryValidService.getDesignDataExport(date, 3);
+
         try {
             List<List<Object>> projectExcelList = new ArrayList<>();
             List<List<Object>> clipExcelList = new ArrayList<>();
@@ -160,8 +161,8 @@ public class FirstDeliveryValidController {
             XSSFWorkbook workbook = new XSSFWorkbook();
             String[] titles = {"项目名称", "项目设计负责人", "项目运营负责人", "政策类型", "一级行业", "二级行业", "素材首投量",
                     "有效素材首投量", "有效率", "媒体考核有效率"};
-            String[] overtimeTitles = {"项目名称", "项目设计负责人", "项目运营负责人", "剪辑", "拍摄", "编导", "设计leader", "政策类型", "一级行业",
-                    "二级行业", "素材首投量", "有效素材首投量", "有效率", "媒体考核有效率"};
+            String[] overtimeTitles = {"项目名称", "项目设计负责人", "项目运营负责人", "设计leader", "设计", "政策类型", "一级行业", "二级行业", "首投素材量",
+                    "有效首投素材量", "有效率", "媒体考核有效率"};
             eeu.exportExcelForFirstDelivery(workbook, 0, "分项目", titles, projectExcelList);
             eeu.exportExcelForFirstDelivery(workbook, 1, "分剪辑", overtimeTitles, clipExcelList);
             eeu.exportExcelForFirstDelivery(workbook, 2, "分拍摄", overtimeTitles, shotExcelList);
@@ -180,21 +181,32 @@ public class FirstDeliveryValidController {
             info.forEach(data -> {
                 List<Object> temp = new ArrayList<>();
                 temp.add(data.getString("projectName"));
+                temp.add(data.getString("projectDesignLeaderName"));
+                temp.add(data.getString("projectLeaderName"));
                 temp.add(data.getString("leaderName"));
-                temp.add(data.getString("projectLeader"));
-                temp.add(data.getString("clipName"));
-                temp.add(data.getString("shotName"));
-                temp.add(data.getString("planName"));
-                temp.add(data.getString("designLeader"));
+                temp.add(data.getString("designName"));
                 temp.add(data.getString("rebateType"));
                 temp.add(data.getString("settlement1l"));
                 temp.add(data.getString("settlement2l"));
-                temp.add(data.getBigDecimal("materialCount"));
-                temp.add(data.getBigDecimal("validMaterials"));
-                if (data.getBigDecimal("validRatioValue").compareTo(data.getBigDecimal("materialValidRatioValue")) < 0) {
-                    temp.add(data.getString("validRatio") + "-GREEN");
+                temp.add(data.getString("materialNum"));
+                temp.add(data.getString("effMaterialNum"));
+                temp.add(data.getString("effRate"));
+                if (!Check.isNull(data.getBigDecimal("effRate"))) {
+                    String str = "";
+                    str = data.getString("effRate") + "%";
+                    if (data.getBigDecimal("effRate").compareTo(data.getBigDecimal("mediaEffRate")) < 0) {
+                        temp.add(str + "-GREEN");
+                    } else {
+                        temp.add(str + "-G");
+                    }
+                } else {
+                    temp.add("-" + "-G");
+                }
+
+                if (!Check.isNull(data.getString("mediaEffRate"))) {
+                    temp.add(data.getString("mediaEffRate") + "%");
                 } else {
-                    temp.add(data.getString("validRatio") + "-G");
+                    temp.add("-");
                 }
                 temp.add(data.getString("materialValidRatio"));
                 excelList.add(temp);

+ 15 - 26
jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/mapper/xml/FirstDeliveryValidMapper.xml

@@ -11,8 +11,7 @@
     <select id="projectData" resultType="com.alibaba.fastjson.JSONObject">
         select t1.*,
 
-               round(t1.effCount / t1.materialNum * 100, 2) as 'effRate', round(t2.target_value * 100, 2) as 'mediaEffRate',
-                (
+               round(t1.effCount / t1.materialNum * 100, 2) as 'effRate', round(t2.target_value * 100, 2) as 'mediaEffRate', (
             case
                 when
                     round(t1.effCount / t1.materialNum * 100, 2) >= round(t2.target_value * 100, 2)
@@ -21,7 +20,14 @@
                 end
 
             ) as  'color'
-        from (select project_name as 'projectName', replace(project_design_leader_name, '(石家庄)', '') as 'dessLeaderName', replace(replace(project_leader_name, '(头条总监)', ''), '(汇创)', '') as 'projectLeaderName', rebate_type as 'rebateType', settlement_1l as 'settlement1l', settlement_2l as 'settlement2l', count(material_id) as 'materialNum', sum(
+        from (select project_name as 'projectName',
+                      replace(project_design_leader_name, '(石家庄)', '') as 'dessLeaderName',
+                      replace(replace(project_leader_name, '(头条总监)', ''), '(汇创)', '') as 'projectLeaderName',
+                      rebate_type as 'rebateType',
+                      settlement_1l as 'settlement1l',
+                      settlement_2l as 'settlement2l',
+                      count(material_id) as 'materialNum',
+                      sum(
             (
                 case
                     when first_valid = '是'
@@ -29,31 +35,14 @@
                     else
                         0 end
                 )
-               round(t1.effCount / t1.materialNum * 100, 2) as 'effRate',
-               round(t2.target_value * 100, 2) as 'mediaEffRate',
-               (
-                   case
-                       when
-                               round(t1.effCount / t1.materialNum * 100, 2) >= round(t2.target_value * 100, 2)
-                           then 1
-                       else 2
-                       end
-                   ) as  'color'
-        from (select project_name as 'projectName', replace(leader_name, '(石家庄)', '') as 'dessLeaderName', replace(replace(project_leader_name, '(头条总监)', ''), '(汇创)', '') as 'projectLeaderName', rebate_type as 'rebateType', settlement_1l as 'settlement1l', settlement_2l as 'settlement2l', count(material_id) as 'materialNum', sum(
-                (
-                    case
-                        when first_valid = '是'
-                            then 1
-                        else
-                            0 end
-                    )
             ) as 'effCount'
-
               from etl_first_delivery_valid_materials
               where delivery_year = #{year}
                 and delivery_month = #{month}
               group by project_id) t1
-                 left join first_delivery_valid_ratio t2 on t1.settlement2l = t2.settlement_2l
+                 left join (
+                     select *  from  first_delivery_valid_ratio where  delivery_year = #{year} and delivery_month = #{month}
+        ) t2 on t1.settlement2l = t2.settlement_2l
         order by t1.materialNum desc
     </select>
     <select id="projectDataTotal" resultType="java.lang.Integer">
@@ -240,7 +229,7 @@
                    AND delivery_month = #{month}
                  GROUP BY project_id
              ) t1
-                 LEFT JOIN first_delivery_valid_ratio t2 ON t1.settlement2l = t2.settlement_2l
+                 LEFT JOIN  select *  from  first_delivery_valid_ratio where  delivery_year = #{year} and delivery_month = #{month} t2 ON t1.settlement2l = t2.settlement_2l
         ORDER BY t1.materialCount DESC
     </select>
 
@@ -260,7 +249,7 @@
                  GROUP BY project_id,
                           ${userType}
              ) t1
-                 LEFT JOIN first_delivery_valid_ratio t2 ON t1.settlement2l = t2.settlement_2l
+                 LEFT JOIN  select *  from  first_delivery_valid_ratio where  delivery_year = #{year} and delivery_month = #{month} t2 ON t1.settlement2l = t2.settlement_2l
         ORDER BY t1.materialCount DESC
     </select>
     <select id="getDesignDataTotal" resultType="java.lang.Integer">
@@ -299,7 +288,7 @@
         else 2
         end
         ) as 'color',
-        (select realname from sys_user where id = t3.leader_id) as 'leaderName'
+        (select replace(realname,'(石家庄)','') from sys_user where id = t3.leader_id) as 'leaderName'
         from (select project_name as 'projectName',
         replace(project_design_leader_name, '(石家庄)', '') as 'projectDesignLeaderName',
         replace(replace(project_leader_name, '(头条总监)', ''), '(汇创)', '') as 'projectLeaderName',

+ 3 - 3
jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/service/FirstDeliveryValidService.java

@@ -18,8 +18,8 @@ public interface FirstDeliveryValidService {
 
     List<JSONObject> getDataForProject(String year, String month);
 
-    List<JSONObject> getDataForClip(String year, String month);
+    Result<Object> getDesignData(String date, Integer pageSize, Integer pageNo, Integer designRole);
+    List<JSONObject> getDesignDataExport(String date,  Integer designRole);
 
-    Result<Object> getDesignData(String date, Integer pageSize, Integer pageNo,Integer designRole);
-    List<JSONObject> getDataForUserType(String year, String month,String userType);
+    List<JSONObject> getDataForUserType(String year, String month, String userType);
 }

+ 24 - 5
jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/service/impl/FirstDeliveryValidServiceImpl.java

@@ -108,13 +108,14 @@ public class FirstDeliveryValidServiceImpl implements FirstDeliveryValidService
         return deliveryValidMapper.getDataForProject(year, month);
     }
 
+
     @Override
-    public List<JSONObject> getDataForUserType(String year, String month,String userType) {
-        return deliveryValidMapper.getDataForUserType(year, month,userType);
+    public List<JSONObject> getDataForUserType(String year, String month, String userType) {
+        return deliveryValidMapper.getDataForUserType(year, month, userType);
     }
 
     @Override
-    public Result<Object> getDesignData(String date, Integer pageSize, Integer pageNo,Integer designRole) {
+    public Result<Object> getDesignData(String date, Integer pageSize, Integer pageNo, Integer designRole) {
         String[] split = date.split("-");
         String year = split[0];
         String monthStr = split[1];
@@ -124,15 +125,33 @@ public class FirstDeliveryValidServiceImpl implements FirstDeliveryValidService
         } else {
             month = monthStr.replace("0", "");
         }
-        Integer total = deliveryValidMapper.getDesignDataTotal(year, month,designRole);
+        Integer total = deliveryValidMapper.getDesignDataTotal(year, month, designRole);
         PageHelper.startPage(pageNo, pageSize, true);
-        List<JSONObject> data = deliveryValidMapper.getDesignData(year, month,designRole);
+        List<JSONObject> data = deliveryValidMapper.getDesignData(year, month, designRole);
         PageInfo<JSONObject> page = new PageInfo<>();
         page.setList(data);
         page.setTotal(total);
         return Result.OK(page);
     }
 
+
+    @Override
+    public List<JSONObject> getDesignDataExport(String date, Integer designRole) {
+        String[] split = date.split("-");
+        String year = split[0];
+        String monthStr = split[1];
+        String month = "";
+        if ("10".equals(month)) {
+            month = "10";
+        } else {
+            month = monthStr.replace("0", "");
+        }
+        List<JSONObject> data = deliveryValidMapper.getDesignData(year, month, designRole);
+        return data;
+
+    }
+
+
     @Override
     public Result<Object> projectData(String date, Integer pageSize, Integer pageNo) {
         String[] split = date.split("-");