소스 검색

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/mapper/FirstDeliveryValidMapper.java
#	jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/mapper/xml/FirstDeliveryValidMapper.xml
#	jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/service/FirstDeliveryValidService.java
yumeng 1 년 전
부모
커밋
fbb3442f59

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

@@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jeecg.common.api.vo.Result;
-import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -75,9 +74,9 @@ public class FirstDeliveryValidController {
 
     @GetMapping(value = "/projectData")
     @ResponseBody
-    public Result<Object> projectData(String date,Integer pageSize,Integer pageNo) {
+    public Result<Object> projectData(String date, Integer pageSize, Integer pageNo) {
         try {
-            return firstDeliveryValidService.projectData(date,pageSize,pageNo);
+            return firstDeliveryValidService.projectData(date, pageSize, pageNo);
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error("导入EXCEL失败," + e.getMessage());
@@ -99,9 +98,9 @@ public class FirstDeliveryValidController {
 
     @GetMapping(value = "/getTotalData")
     @ResponseBody
-    public Result<Object> getTotalData(String date,Integer pageSize,Integer pageNo) {
+    public Result<Object> getTotalData(String date, Integer pageSize, Integer pageNo) {
         try {
-            return firstDeliveryValidService.getTotalData(date,pageSize,pageNo);
+            return firstDeliveryValidService.getTotalData(date, pageSize, pageNo);
         } catch (Exception e) {
             e.printStackTrace();
             return Result.error("导入EXCEL失败," + e.getMessage());
@@ -122,10 +121,17 @@ public class FirstDeliveryValidController {
         String year = split[0];
         Integer month = Integer.valueOf(split[1]);
         List<JSONObject> projectInfo = firstDeliveryValidService.getDataForProject(year, month.toString());
-        List<JSONObject> clipInfo = firstDeliveryValidService.getDataForClip(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");
         try {
             List<List<Object>> projectExcelList = new ArrayList<>();
             List<List<Object>> clipExcelList = new ArrayList<>();
+            List<List<Object>> shotExcelList = new ArrayList<>();
+            List<List<Object>> planExcelList = new ArrayList<>();
             if (!projectInfo.isEmpty()) {
                 projectInfo.forEach(data -> {
                     List<Object> temp = new ArrayList<>();
@@ -146,30 +152,9 @@ public class FirstDeliveryValidController {
                     projectExcelList.add(temp);
                 });
             }
-            if (!clipInfo.isEmpty()) {
-                clipInfo.forEach(data -> {
-                    List<Object> temp = new ArrayList<>();
-                    temp.add(data.getString("projectName"));
-                    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("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");
-                    } else {
-                        temp.add(data.getString("validRatio") + "-G");
-                    }
-                    temp.add(data.getString("materialValidRatio"));
-                    clipExcelList.add(temp);
-                });
-            }
+            getExcelInfo(clipInfo, clipExcelList);
+            getExcelInfo(shotInfo, shotExcelList);
+            getExcelInfo(planInfo, planExcelList);
             OutputStream os = response.getOutputStream();
             ExportExcelUtils eeu = new ExportExcelUtils();
             XSSFWorkbook workbook = new XSSFWorkbook();
@@ -178,8 +163,10 @@ public class FirstDeliveryValidController {
             String[] overtimeTitles = {"项目名称", "项目设计负责人", "项目运营负责人", "剪辑", "拍摄", "编导", "设计leader", "政策类型", "一级行业",
                     "二级行业", "素材首投量", "有效素材首投量", "有效率", "媒体考核有效率"};
             eeu.exportExcelForFirstDelivery(workbook, 0, "分项目", titles, projectExcelList);
-            eeu.exportExcelForFirstDelivery(workbook, 1, "分设计", overtimeTitles, clipExcelList);
-            HttpUtils.setResponseHeader(response, "clockIn.xlsx");
+            eeu.exportExcelForFirstDelivery(workbook, 1, "分剪辑", overtimeTitles, clipExcelList);
+            eeu.exportExcelForFirstDelivery(workbook, 2, "分拍摄", overtimeTitles, shotExcelList);
+            eeu.exportExcelForFirstDelivery(workbook, 3, "分编导", overtimeTitles, planExcelList);
+            HttpUtils.setResponseHeader(response, "data.xlsx");
             workbook.write(os);
             os.flush();
             os.close();
@@ -188,4 +175,31 @@ public class FirstDeliveryValidController {
         }
     }
 
+    private void getExcelInfo(List<JSONObject> info, List<List<Object>> excelList) {
+        if (!info.isEmpty()) {
+            info.forEach(data -> {
+                List<Object> temp = new ArrayList<>();
+                temp.add(data.getString("projectName"));
+                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("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");
+                } else {
+                    temp.add(data.getString("validRatio") + "-G");
+                }
+                temp.add(data.getString("materialValidRatio"));
+                excelList.add(temp);
+            });
+        }
+    }
+
 }

+ 1 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/toutiao/modules/material/mapper/FirstDeliveryValidMapper.java

@@ -34,4 +34,5 @@ public interface FirstDeliveryValidMapper {
     Integer getDesignDataTotal(@Param("year") String year, @Param("month") String month, @Param("designRole") Integer designRole);
 
     List<JSONObject> getDesignData(@Param("year") String year, @Param("month") String month, @Param("designRole") Integer designRole);
+    List<JSONObject> getDataForUserType(@Param("year") String year,@Param("month") String month,@Param("userType") String userType);
 }

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

@@ -29,6 +29,24 @@
                     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
@@ -226,7 +244,7 @@
         ORDER BY t1.materialCount DESC
     </select>
 
-    <select id="getDataForClip" resultType="com.alibaba.fastjson.JSONObject">
+    <select id="getDataForUserType" resultType="com.alibaba.fastjson.JSONObject">
         SELECT t1.*,
                concat(IFNULL(round(t1.validMaterials / t1.materialCount * 100, 2), 0), '%') AS 'validRatio',
                IFNULL(round(t1.validMaterials / t1.materialCount * 100, 2), 0) as 'validRatioValue',
@@ -240,7 +258,7 @@
                  WHERE delivery_year = #{year}
                    AND delivery_month = #{month}
                  GROUP BY project_id,
-                          clip_name
+                          ${userType}
              ) t1
                  LEFT JOIN first_delivery_valid_ratio t2 ON t1.settlement2l = t2.settlement_2l
         ORDER BY t1.materialCount DESC

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

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

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

@@ -109,8 +109,8 @@ public class FirstDeliveryValidServiceImpl implements FirstDeliveryValidService
     }
 
     @Override
-    public List<JSONObject> getDataForClip(String year, String month) {
-        return deliveryValidMapper.getDataForClip(year, month);
+    public List<JSONObject> getDataForUserType(String year, String month,String userType) {
+        return deliveryValidMapper.getDataForUserType(year, month,userType);
     }
 
     @Override