Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

yumeng 3 tahun lalu
induk
melakukan
1ab9e081c0
20 mengubah file dengan 721 tambahan dan 251 penghapusan
  1. 11 0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
  2. 4 1
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
  3. 90 9
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java
  4. 7 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsPolicyInfo.java
  5. 204 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/ExportCwjsPolicyPojo.java
  6. 3 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsPolicyInfoMapper.java
  7. 1 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsPolicyApprovalLogMapper.xml
  8. 21 1
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsPolicyInfoMapper.xml
  9. 3 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsPolicyInfoService.java
  10. 50 3
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsPolicyInfoServiceImpl.java
  11. 3 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/CwjsProfitMapper.java
  12. 7 0
      jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/CwjsProfitMapper.xml
  13. 1 1
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/controller/ManagerSaleValueController.java
  14. 2 2
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/ManagerSaleValueMapper.java
  15. 266 215
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/ManagerSaleValueMapper.xml
  16. 33 18
      jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/ManagerSaleValueServiceImpl.java
  17. 2 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java
  18. 6 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml
  19. 2 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/IMaterialInfoService.java
  20. 5 0
      jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

+ 11 - 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -1146,6 +1146,17 @@ public class DateUtils extends PropertyEditorSupport {
         }
     }
 
+    public static String dateToStringTime(Date date) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+        try {
+            return sdf.format(date);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
 
     public static Map<String, Object> getBeforeDate() {
         Date dNow = new Date();

+ 4 - 1
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -246,7 +246,10 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/boss/**", "anon");
         filterChainDefinitionMap.put("/external/materialCollection/*", "anon");
         filterChainDefinitionMap.put("/kuaiShouOpreate/**", "anon");
-        filterChainDefinitionMap.put("/manager/company/*", "anon");
+        filterChainDefinitionMap.put("/manager/**", "anon");
+        filterChainDefinitionMap.put("/liveData/**", "anon");
+        filterChainDefinitionMap.put("/product/material/**", "anon");
+
         // 添加自己的过滤器并且取名为jwt
         Map<String, Filter> filterMap = new HashMap<>(1);
         filterMap.put("jwt", new JwtFilter());

+ 90 - 9
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/controller/CwjsPolicyInfoController.java

@@ -1,5 +1,6 @@
 package org.jeecg.ctop.finance.policy.controller;
 
+import java.net.URLEncoder;
 import java.text.ParseException;
 import java.util.*;
 import java.io.IOException;
@@ -21,6 +22,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.entity.SysUser;
@@ -37,15 +39,19 @@ import lombok.extern.slf4j.Slf4j;
 import org.jeecg.ctop.finance.policy.service.impl.CwjsCompanySubjectServiceImpl;
 import org.jeecg.ctop.finance.policy.utils.Check;
 import org.jeecg.ctop.finance.policy.utils.ListPageUtil;
+import org.jeecg.ctop.finance.settlement.entity.vo.ProfitReportBytedanceVo;
+import org.jeecg.ctop.finance.settlement.entity.vo.ProfitReportKuaiShouVo;
 import org.jeecg.ctop.finance.settlement.service.serviceImpl.ReportSettlementServiceImpl;
 import org.jeecg.modules.ctop.service.IMaterialReportOverViewService;
 import org.jeecg.modules.system.service.ISysRoleService;
+import org.jeecgframework.poi.excel.ExcelExportUtil;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -145,7 +151,7 @@ public class CwjsPolicyInfoController {
 		 String approvalUser = cwjsPolicyInfo.getApprovedProgress();
 
 		 //政策所属销售的部门 和 上级
-		 JSONObject examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getSaleId(),"分公司总经理");
+		 JSONObject examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getCreateUserId(),"分公司总经理");
 		 String firstAudit = "";//第一次审核人
 
 		 // 提交 - 待审核
@@ -267,7 +273,7 @@ public class CwjsPolicyInfoController {
 			 }
 
 			 //老板
-			 if (approvalUser.equals(userId) && userId.equals("4aba62011120ac565c7f2b9f8f4aa96b")){
+			 if (approvalUser.equals(userId) && userId.equals("80e747cdea6f41dbbc8cde23046fd4e0")){
 				 cwjsPolicyInfo.setApprovedStatus(3);
 				 cwjsPolicyInfoService.updateById(cwjsPolicyInfo);
 
@@ -384,7 +390,12 @@ public class CwjsPolicyInfoController {
 			cwjsPolicyInfo.setSaleIds(userIds);
 		}
 
-
+		// 1:待审核 2:审核中 3:审核通过4:审核拒绝 5-作废 默认不显示作废
+		if (Check.isNull(cwjsPolicyInfo.getApprovedStatus())){
+			cwjsPolicyInfo.setStatusList(Arrays.asList(1, 2, 3, 4));
+		}else {
+			cwjsPolicyInfo.setStatusList(Arrays.asList(cwjsPolicyInfo.getApprovedStatus()));
+		}
 
 
         //查询政策
@@ -436,7 +447,7 @@ public class CwjsPolicyInfoController {
 				cwjsPolicy.setTheBossRight("no");
 				if(cwjsPolicy.getApprovedStatus() != 3 && cwjsPolicy.getApprovedStatus() != 4){
 					if (StringUtils.equals(cwjsPolicy.getApprovedProgress(),directorUserId) && directorUserId.equals(userId)
-							&& !"4aba62011120ac565c7f2b9f8f4aa96b".equals(userId)){
+							&& !"80e747cdea6f41dbbc8cde23046fd4e0".equals(userId)){
 
 						if(examineUser.getString("departName").contains("渠道")){
 							cwjsPolicy.setTheBossRight("yes");
@@ -485,6 +496,17 @@ public class CwjsPolicyInfoController {
 				}
 			}
 
+			//审核通过
+			if (cwjsPolicy.getApprovedStatus() == 3){
+				//有 销售-助理 关联的人员 都可以 作废
+				if(!"admin".equalsIgnoreCase(roleCode) && !"finance".equalsIgnoreCase(roleCode)){
+					List <String> saleOrAssis = cwjsSaleAssistantInfoService.getCwSaleAndAssistantListStr(userId);
+					if(saleOrAssis.contains(cwjsPolicy.getSaleId()) || saleOrAssis.contains(cwjsPolicy.getCreateUserId())){
+						stringBuilder.append("作废").append("|");
+					}
+				}
+			}
+
 
 
 
@@ -578,7 +600,7 @@ public class CwjsPolicyInfoController {
 
 
 			//政策所属销售的部门 和 上级
-			JSONObject examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getSaleId(),"分公司总经理");
+			JSONObject examineUser = cwjsPolicyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getCreateUserId(),"分公司总经理");
 			String firstAudit = "";//第一次审核人
 
 			//普通销售,新增都是1,审核进度的人都是等级为0的审核人i
@@ -590,11 +612,11 @@ public class CwjsPolicyInfoController {
 				firstAudit = "legalAffairs";
 
 				//助理给销售总监创建
-			}else if (StringUtils.equals(roleCode,"saleDirector")){
-				//审核人是销售总监自己
-				firstAudit = cwjsPolicyInfo.getSaleId();
+			}else if (StringUtils.equals(cwjsPolicyInfo.getSaleId(),cwjsPolicyInfo.getCreateUserId()) && StringUtils.equals(roleCode,"saleDirector")){
+				//审核人是 销售的 上级
+				firstAudit = examineUser.getString("leaderId");
 			}else {
-				//销售的 上级
+				//创建人的 上级
 				firstAudit = examineUser.getString("leaderId");
 			}
 
@@ -909,6 +931,65 @@ public class CwjsPolicyInfoController {
 	 }
 
 
+	 @ApiOperation(value="政策作废", notes="政策作废")
+	 @GetMapping(value = "/toVoidpolicy")
+	 public Result toVoidpolicy(@RequestParam(name="policyId") String policyId,
+								@RequestParam(name="delReason") String delReason) {
+  		if (Check.isNull(delReason)){
+  			return Result.errorMsg("请输入政策作废的理由。");
+		}
+		 return cwjsPolicyInfoService.toVoidpolicy(policyId,delReason);
+	 }
+
+
+
+
+
+	 @ApiOperation(value="政策信息导出", notes="政策信息导出")
+	 @GetMapping(value = "/exportPolicy")
+	 public Result exportPolicy(CwjsPolicyInfo cwjsPolicyInfo,
+								HttpServletResponse response) {
+
+		 try {
+			 // 1:待审核 2:审核中 3:审核通过4:审核拒绝 5-作废 默认不显示作废
+			 if (Check.isNull(cwjsPolicyInfo.getApprovedStatus())) {
+				 cwjsPolicyInfo.setStatusList(Arrays.asList(1, 2, 3, 4));
+			 } else {
+				 cwjsPolicyInfo.setStatusList(Arrays.asList(cwjsPolicyInfo.getApprovedStatus()));
+			 }
+
+			 //查询政策
+			 List<CwjsPolicyInfo> cwjsPolicyInfoList = cwjsPolicyInfoService.queryPageList(cwjsPolicyInfo);
+			 if (Check.isNull(cwjsPolicyInfoList)) {
+				 return Result.errorMsg("暂无政策。");
+			 }
+			 List<ExportCwjsPolicyPojo> resultList = new ArrayList<>();
+			 for (CwjsPolicyInfo vo : cwjsPolicyInfoList) {
+				 ExportCwjsPolicyPojo exportCwjsPolicyPojo = new ExportCwjsPolicyPojo();
+				 BeanUtils.copyProperties(vo, exportCwjsPolicyPojo);
+				 exportCwjsPolicyPojo.setMediaType(ExportCwjsPolicyPojo.getMediaTypeStr(vo.getMediaType()));
+				 exportCwjsPolicyPojo.setApprovedStatus(ExportCwjsPolicyPojo.getApprovedStatusStr(vo.getApprovedStatus()));
+				 exportCwjsPolicyPojo.setRebateType(ExportCwjsPolicyPojo.getRebateTypeStr(vo.getRebateType()));
+				 exportCwjsPolicyPojo.setRebateRate(vo.getRebateRate()+"%");
+				 exportCwjsPolicyPojo.setDianPayCompanyRebateRate(Check.isNull(vo.getDianPayCompanyRebateRate()) ? "" : vo.getDianPayCompanyRebateRate()+"%");
+				 exportCwjsPolicyPojo.setPromotionType(vo.getPromotionType() == 0 ? "自运营" : "代运营");
+				 exportCwjsPolicyPojo.setAdvancePay(vo.getAdvancePay() == 0 ?  "否" : "是");
+				 exportCwjsPolicyPojo.setIsDianPay(vo.getIsDianPay() == 0 ?  "否" : "是");
+				 exportCwjsPolicyPojo.setCustomerFlag(vo.getCustomerFlag() == 0 ?  "否" : "是");
+				 exportCwjsPolicyPojo.setCreateTime(DateUtils.dateToStringTime(vo.getCreateTime()));
+				 exportCwjsPolicyPojo.setProductName(StringUtils.strip(vo.getPolicyProductName().toString(),"[]"));
+				 resultList.add(exportCwjsPolicyPojo);
+			 }
+			 Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("政策内容", "销售政策"), ExportCwjsPolicyPojo.class, resultList);
+			 response.setCharacterEncoding("UTF-8");
+			 response.setHeader("content-Type", "application/vnd.ms-excel");
+			 response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("销售政策.xls", "UTF-8"));
+			 workbook.write(response.getOutputStream());
+		 } catch (IOException e) {
+			 throw new RuntimeException(e);
+		 }
+		 return null;
+	 }
 
 
 

+ 7 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/CwjsPolicyInfo.java

@@ -62,6 +62,10 @@ public class CwjsPolicyInfo implements Serializable{
 	@Excel(name = "状态 0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝", width = 15)
     @ApiModelProperty(value = "0:草稿 1:待审核 2:审核中 3:审核通过4:审核拒绝")
 	private Integer approvedStatus;
+
+	@TableField(exist = false)
+	private List<Integer> statusList;
+
 	@ApiModelProperty(value = "审核进度,当前该谁审核,审核人")
 	private String approvedProgress;
 	/**是否预付:0:否  1:是 */
@@ -135,6 +139,9 @@ public class CwjsPolicyInfo implements Serializable{
 	@ApiModelProperty(value = "销售姓名")
 	private String saleName;
 
+	@ApiModelProperty(value = "作废原因")
+	private String delReason;
+
 	/**创建时间*/
     @ApiModelProperty(value = "创建时间")
 	private Date createTime;

+ 204 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/entity/ExportCwjsPolicyPojo.java

@@ -0,0 +1,204 @@
+package org.jeecg.ctop.finance.policy.entity;
+
+import com.alibaba.fastjson.JSONArray;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 政策信息表
+ * @author jeecg-boot
+ * @date   2021-07-27
+ * @version V1.0
+ */
+@Data
+public class ExportCwjsPolicyPojo implements Serializable{
+    
+
+	/**公司名称*/
+	@Excel(name = "公司名称", width = 20)
+	private String companyName;
+	/**广告主id*/
+	@Excel(name = "广告主名称", width = 20)
+	private String advertiserName;
+
+	@Excel(name = "产品名称", width = 20)
+	private String productName;
+	/**媒体类型*/
+	@Excel(name = "媒体类型", width = 10)
+	//private Integer mediaType;
+	private String mediaType;
+	/**我司主体*/
+	@Excel(name = "我司主体", width = 20)
+	//private Integer companySubjectId;
+	private String companySubjectName;
+
+	/**集团简称*/
+	@Excel(name = "集团简称", width = 15)
+	private String groupAbbreviation;
+	/**状态 0:待审核 1:审核中 2:审核通过3:审核拒绝*/
+	@Excel(name = "审核状态", width = 10)
+	private String approvedStatus;
+
+
+	/**是否预付:0:否  1:是 */
+	@Excel(name = "是否预付", width = 15)
+	private String advancePay;
+
+	/**是否老客户:0:否  1:是 */
+	@Excel(name = "是否老客户", width = 15)
+	private String customerFlag;
+	/**账期*/
+	@Excel(name = "账期", width = 15)
+	private String accountingPeriod;
+	/**返点类型:0:返现  1:返货   2:返现+返货*/
+	@Excel(name = "返点类型", width = 10)
+	private String rebateType;
+	/**返点比例*/
+	@Excel(name = "返点比例", width = 10)
+	private String rebateRate;
+	/**是否垫付:0:否  1:是 */
+	@Excel(name = "是否垫付", width = 10)
+	private String isDianPay;
+	/**垫付公司名称*/
+	@Excel(name = "垫付公司名称", width = 20)
+	private String dianPayCompanyName;
+	/**垫付公司返点比例*/
+	@Excel(name = "垫付公司返点比例", width = 8)
+	private String dianPayCompanyRebateRate;
+	/**运营方式: 0:自运营  1:代运营*/
+	@Excel(name = "运营方式", width = 8)
+	private String promotionType;
+	/**政策开始时间*/
+	@Excel(name = "政策开始时间", width = 15)
+	private String policyStartDate;
+	/**政策结束时间*/
+	@Excel(name = "政策结束时间", width = 15)
+	private String policyEndDate;
+
+	@Excel(name = "备注", width = 15)
+	private Object remarks;
+	/**删除状态(0,正常,1已删除)*/
+
+
+	@Excel(name = "创建人名字", width = 15)
+	private String createUserName;
+
+
+
+	@Excel(name = "销售姓名", width = 15)
+	private String saleName;
+
+	@Excel(name = "作废原因", width = 15)
+	private String delReason;
+
+	/**创建时间*/
+	@Excel(name = "创建时间", width = 15)
+	private String createTime;
+
+
+	/**区域 华北,华南,华东*/
+	@Excel(name = "区域", width = 15)
+	private String areaInfo;
+
+
+	/* 法务审核意见*/
+	@Excel(name = "法务审核意见", width = 15)
+	private String legalAffairsContent;
+
+
+
+
+
+
+
+
+
+
+	//1-头条 2-快手 3-千川 4-UD 5-阿里内广 6-快手服务商 7-磁力金牛 8-头条内广
+	public static String getMediaTypeStr(Integer mediaType){
+		String  mediaTypeStr = "";
+		switch (mediaType){
+			case 1:
+				mediaTypeStr = "头条";
+				break;
+			case 2:
+				mediaTypeStr = "快手";
+				break;
+			case 3:
+				mediaTypeStr = "千川";
+				break;
+			case 4:
+				mediaTypeStr = "UD";
+				break;
+			case 5:
+				mediaTypeStr = "阿里内广";
+				break;
+			case 6:
+				mediaTypeStr = "快手服务商";
+				break;
+			case 7:
+				mediaTypeStr = "磁力金牛";
+				break;
+			case 8:
+				mediaTypeStr = "头条内广";
+				break;
+		}
+		return mediaTypeStr;
+	}
+
+
+
+	//1:待审核 2:审核中 3:审核通过4:审核拒绝
+	public static String getApprovedStatusStr(Integer approvedStatus){
+		String  statusStr = "";
+		switch (approvedStatus){
+			case 1:
+				statusStr = "待审核";
+				break;
+			case 2:
+				statusStr = "审核中";
+				break;
+			case 3:
+				statusStr = "审核通过";
+				break;
+			case 4:
+				statusStr = "审核拒绝";
+				break;
+		}
+		return statusStr;
+	}
+
+
+
+
+	//0:返现  1:返货   2:返现+返货 3-服务费
+	public static String getRebateTypeStr(Integer rebateType){
+		String  rebateStr = "";
+		switch (rebateType){
+			case 0:
+				rebateStr = "返现";
+				break;
+			case 1:
+				rebateStr = "返货";
+				break;
+			case 2:
+				rebateStr = "返现+返货";
+				break;
+			case 3:
+				rebateStr = "服务费";
+				break;
+
+		}
+		return rebateStr;
+	}
+
+
+
+
+
+
+}

+ 3 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/CwjsPolicyInfoMapper.java

@@ -71,6 +71,9 @@ public interface CwjsPolicyInfoMapper extends BaseMapper<CwjsPolicyInfo> {
      //查询 法务人员
      List<JSONObject> getLegalAffairsUsers();
 
+     //政策作废 修改状态
+     void updatePolicyToVOidById(@Param("policyId") String policyId,@Param("delReason") String delReason);
+
 
 
 

+ 1 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsPolicyApprovalLogMapper.xml

@@ -36,7 +36,7 @@
     <select id="getBossOneByPolicyId" resultType="org.jeecg.ctop.finance.policy.entity.CwjsPolicyApprovalLog">
         select * from ctop_cwjs_policy_approval_log
         where policy_id = #{policyId}
-          and create_user_id = '4aba62011120ac565c7f2b9f8f4aa96b'
+          and create_user_id = '80e747cdea6f41dbbc8cde23046fd4e0'
         order by create_time desc
             LIMIT 1
     </select>

+ 21 - 1
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/mapper/xml/CwjsPolicyInfoMapper.xml

@@ -54,7 +54,16 @@
 
 
         <if test="promotionType != null">and t2.promotion_type = #{promotionType}</if>
-        <if test="approvedStatus != null and approvedStatus != ''">and t2.approved_status = #{approvedStatus}</if>
+
+        <if test="statusList != null and statusList.size() > 0">
+            and t2.approved_status in
+            <foreach item="item" index="index" collection="statusList" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+
+        </if>
+
+
         <if test="startTime != null and startTime != ''">and t2.create_time &gt;= #{startTime}</if>
         <if test="endTime != null and endTime != ''">and t2.create_time &lt;= concat(#{endTime},' 23:59:59')</if>
 
@@ -437,6 +446,17 @@
 
 
 
+    <!-- 政策作废 修改状态-->
+    <update id="updatePolicyToVOidById">
+        update ctop_cwjs_policy_info set
+            approved_status = 5,
+            del_reason = #{delReason}
+        where id = #{policyId}
+    </update>
+
+
+
+
 
 
 

+ 3 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/ICwjsPolicyInfoService.java

@@ -47,4 +47,7 @@ public interface ICwjsPolicyInfoService extends IService<CwjsPolicyInfo> {
 
 
 
+    Result toVoidpolicy(String policyId,String delReason);
+
+
 }

+ 50 - 3
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/policy/service/impl/CwjsPolicyInfoServiceImpl.java

@@ -1,6 +1,8 @@
 package org.jeecg.ctop.finance.policy.service.impl;
 
+import android.widget.RelativeLayout;
 import cn.com.ctop.common.module.mapper.MailLogMapper;
+import cn.com.ctop.common.module.mapper.ProductMapper;
 import cn.com.ctop.common.module.mapper.SysUserMapper;
 import cn.com.ctop.common.module.utils.CorpWexinUtils;
 import com.alibaba.fastjson.JSONArray;
@@ -12,8 +14,10 @@ import org.jeecg.common.util.DateUtils;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyApprovalLog;
 import org.jeecg.ctop.finance.policy.entity.CwjsPolicyInfo;
 import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyInfoMapper;
+import org.jeecg.ctop.finance.policy.mapper.CwjsPolicyProductMapper;
 import org.jeecg.ctop.finance.policy.service.ICwjsPolicyInfoService;
 import org.jeecg.ctop.finance.policy.utils.Check;
+import org.jeecg.ctop.finance.settlement.mapper.CwjsProfitMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -42,6 +46,13 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
     @Resource
     private CwjsPolicyApprovalLogServiceImpl policyApprovalLogService;
 
+    @Resource
+    private CwjsPolicyProductMapper cwjsPolicyProductMapper;
+
+
+    @Resource
+    private CwjsProfitMapper cwjsProfitMapper;
+
     /**
      *
      * @description: 查看政策列表
@@ -112,7 +123,7 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
     }
 
 
-    @Autowired
+    @Resource
     private SysUserMapper userMapper;
 
     @Override
@@ -178,8 +189,8 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
     @Override
     public void automaticConveyBossExamine(CwjsPolicyInfo cwjsPolicyInfo) {
         cwjsPolicyInfo.setApprovedStatus(2);
-        cwjsPolicyInfo.setApprovedProgress("4aba62011120ac565c7f2b9f8f4aa96b");	//设置 boss 为审核人员
-        JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId("4aba62011120ac565c7f2b9f8f4aa96b");
+        cwjsPolicyInfo.setApprovedProgress("80e747cdea6f41dbbc8cde23046fd4e0");	//设置 boss 为审核人员
+        JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId("80e747cdea6f41dbbc8cde23046fd4e0");
         StringBuilder text = new StringBuilder();
         text.append("您有一条销售政策需要审核,该客户为:");
         text.append(cwjsPolicyInfo.getCompanyName());
@@ -225,6 +236,42 @@ public class CwjsPolicyInfoServiceImpl extends ServiceImpl<CwjsPolicyInfoMapper,
 
 
 
+    /**
+     * 政策作废
+     * @param policyId 政策id
+     * @param delReason 作废原因
+     * @return
+     */
+    @Override
+    public Result toVoidpolicy(String policyId,String delReason) {
+        CwjsPolicyInfo cwjsPolicyInfo = policyInfoMapper.selectById(policyId);
+        // 1:待审核 2:审核中 3:审核通过4:审核拒绝
+        if (Check.isNull(cwjsPolicyInfo) || cwjsPolicyInfo.getApprovedStatus() !=3){
+            return Result.errorMsg("政策不存在或政策还在审核,审核中的政策无法作废。");
+        }
+        //修改政策状态及作废原因
+        policyInfoMapper.updatePolicyToVOidById(policyId,delReason);
+        //删除政策关联的产品信息
+        cwjsPolicyProductMapper.deleteProductsByPolicyId(Integer.valueOf(policyId));
+        //删除该政策利润表记录
+        cwjsProfitMapper.delSlettmentReportByPolicyId(policyId);
+
+        JSONObject examineUser = policyInfoMapper.getUserLeaderAndDirectorByRoleName(cwjsPolicyInfo.getCreateUserId(),"分公司总经理");
+        List<String> userList = new ArrayList<>();
+        userList.add(examineUser.getString("leaderId"));
+        userList.add(examineUser.getString("directorId"));
+
+        for (String userId : userList) {
+            //给销售总监发送
+            JSONObject wChatIdByUserId = mailLogMapper.getWChatIdByUserId("80e747cdea6f41dbbc8cde23046fd4e0");
+            StringBuilder text = new StringBuilder();
+            text.append(cwjsPolicyInfo.getCreateUserName()+"创建的政策,客户为:"+cwjsPolicyInfo.getCompanyName());
+            text.append(",该销售政策已作废。");
+            corpWexinUtils.sendMessageByWeChatId(wChatIdByUserId,text.toString());
+        }
+
+        return Result.successMsg("政策作废成功",null);
+    }
 
 
 }

+ 3 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/CwjsProfitMapper.java

@@ -22,6 +22,9 @@ public interface CwjsProfitMapper {
 
     void replaceCwjsSlettementProfit(List<CtopCwjsSlettementReport> list);
 
+    //删除 政策利润表统计信息 根据政策id
+    void delSlettmentReportByPolicyId(@Param("policyId") String policyId);
+
 
 
 

+ 7 - 0
jeecg-boot-finance/src/main/java/org/jeecg/ctop/finance/settlement/mapper/xml/CwjsProfitMapper.xml

@@ -29,4 +29,11 @@
     </insert>
 
 
+    <!-- 删除 政策利润表统计信息 根据政策id -->
+    <delete id="delSlettmentReportByPolicyId">
+        delete from ctop_cwjs_slettement_report where policy_id = #{policyIid}
+    </delete>
+
+
+
 </mapper>

+ 1 - 1
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/controller/ManagerSaleValueController.java

@@ -136,9 +136,9 @@ public class ManagerSaleValueController {
             if (!list.isEmpty()) {
                 list.forEach(data -> {
                     List<Object> temp = new ArrayList<>();
-                    temp.add(data.getLong("projectId"));
                     temp.add(data.getString("projectName"));
                     temp.add(data.getString("saleName"));
+                    temp.add(data.getString("charge"));
                     temp.add(data.getString("chargeRoi"));
                     temp.add(data.getString("realCharge"));
                     temp.add(data.getString("jlCharge"));

+ 2 - 2
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/ManagerSaleValueMapper.java

@@ -71,10 +71,10 @@ public interface ManagerSaleValueMapper extends BaseMapper<ManagerSaleValue> {
 
     Long queryKsHourProjectTopTotal(@Param("projectIds") List<Long> projectIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
-    List<JSONObject> queryKsHourProjectTop(@Param("projectIds") List<Long> projectIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days);
+    List<JSONObject> queryKsHourProjectTop(@Param("projectIds") List<Long> projectIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days, @Param("hour") Integer hour );
 
     Long queryTtHourProjectTopTotal(@Param("projectIds") List<Long> projectIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
-    List<JSONObject> queryTtHourProjectTop(@Param("projectIds") List<Long> projectIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days);
+    List<JSONObject> queryTtHourProjectTop(@Param("projectIds") List<Long> projectIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days, @Param("hour") Integer hour );
 
 }

+ 266 - 215
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/ManagerSaleValueMapper.xml

@@ -34,20 +34,26 @@
         where manage_id = #{userId}
     </select>
 
-
     <select id="getCompanyAccountIds" resultType="Long">
-        SELECT t1.account_id
-        FROM `jeecg-boot`.ctop_user_allocation t1
-        LEFT JOIN `jeecg-boot`.user_company t2 ON t1.user_id = t2.user_id
-        WHERE t2.company_id = #{companyId}
+        SELECT account_id
+        FROM `jeecg-boot`.ctop_user_allocation
+        WHERE project_id in (
+        SELECT DISTINCT
+        t1.project_id
+        FROM
+        `jeecg-boot`.ctop_project_member t1
+        LEFT JOIN `jeecg-boot`.ctop_project t2 ON t1.project_id = t2.id
+        WHERE t2.company_id =#{companyId}
         <if test='mediaId ==2'>
             AND (media_id = 2 or media_id = 4)
         </if>
         <if test='mediaId ==1'>
             AND (media_id = 1 or media_id = 3)
         </if>
-        and t1.account_status = 0
-        GROUP BY t1.account_id
+        AND t1.project_name IS NOT NULL
+        AND t1.project_name != ''
+        ) and account_status = 0
+        GROUP BY account_id
     </select>
 
 
@@ -57,26 +63,32 @@
         FROM (
         SELECT sum(charge) as 'charge'
         FROM application.kuaishou_account_report_hourly_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_date = DATE_FORMAT(#{statDay}, '%Y%m%d')
-        <if test="hour !=null">
-            AND hour &lt;= #{hour}
-        </if>
+        <where>
+            <if test="accountIds !=null and accountIds.size()>0">
+                AND account_id in
+                <foreach collection="accountIds" item="id" separator=","
+                         open="(" close=")">
+                    #{id}
+                </foreach>
+            </if>
+            and stat_date = DATE_FORMAT(#{statDay}, '%Y%m%d')
+            <if test="hour !=null">
+                AND hour &lt;= #{hour}
+            </if>
+        </where>
         ) t
         LEFT JOIN
         (
         SELECT sum(charge) as 'charge'
         FROM application.kuaishou_account_report_hourly_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_date = DATE_FORMAT(DATE_ADD(#{statDay},INTERVAL -1 day), '%Y%m%d')
+        where stat_date = DATE_FORMAT(DATE_ADD(#{statDay},INTERVAL -1 day), '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         <if test="hour !=null">
             AND hour &lt;= #{hour}
         </if>
@@ -89,12 +101,15 @@
         FROM (
         SELECT sum(cost) as 'charge'
         FROM application.bytedance_advertiser_report_hourly_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_datetime = DATE_FORMAT(#{statDay}, '%Y%m%d')
+        where stat_datetime = DATE_FORMAT(#{statDay}, '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            and account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
+
         <if test="hour !=null">
             AND hour &lt;= #{hour}
         </if>
@@ -103,12 +118,14 @@
         (
         SELECT sum(cost) as 'charge'
         FROM application.bytedance_advertiser_report_hourly_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_datetime = DATE_FORMAT(DATE_ADD(#{statDay},INTERVAL -1 day), '%Y%m%d')
+        WHERE stat_datetime = DATE_FORMAT(DATE_ADD(#{statDay},INTERVAL -1 day), '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            and account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         <if test="hour !=null">
             AND hour &lt;= #{hour}
         </if>
@@ -117,54 +134,64 @@
 
     <select id="queryTtManydaysTotalCharge" resultType="String">
         SELECT IFNULL(sum(cost), 0.00)
-        FROM application.bytedance_advertiser_report_daily_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_datetime >= DATE_FORMAT(#{startDay}, '%Y%m%d')
-        and stat_datetime &lt; DATE_FORMAT(#{endDay}, '%Y%m%d')
+        FROM application.bytedance_advertiser_report_hourly_dw
+        WHERE stat_datetime >= DATE_FORMAT(#{startDay}, '%Y%m%d')
+        and stat_datetime &lt;= DATE_FORMAT(#{endDay}, '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            and account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
     </select>
 
     <select id="queryTtManydaysCharge" resultType="com.alibaba.fastjson.JSONObject">
         SELECT DATE_FORMAT(stat_datetime,'%Y-%m-%d') as 'statDate', IFNULL(sum(cost), 0.00) as 'charge'
-        FROM application.bytedance_advertiser_report_daily_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d')
+        FROM application.bytedance_advertiser_report_hourly_dw
+        WHERE stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d')
         and stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            and account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY stat_datetime
         order by stat_datetime
     </select>
 
     <select id="queryKsManydaysCharge" resultType="com.alibaba.fastjson.JSONObject">
         SELECT DATE_FORMAT(stat_date,'%Y-%m-%d') as 'statDate', IFNULL(sum(charge), 0.00) as 'charge'
-        FROM application.kuaishou_account_report_daily_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d')
+        FROM application.kuaishou_account_report_hourly_dw
+        WHERE
+        stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d')
         and stat_date &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            and account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY stat_date
         order by stat_date
     </select>
 
     <select id="queryKsManydaysTotalCharge" resultType="String">
         SELECT IFNULL(sum(charge), 0.00)
-        FROM application.kuaishou_account_report_daily_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_date >= DATE_FORMAT(#{startDay}, '%Y%m%d')
-        and stat_date &lt; DATE_FORMAT(#{endDay}, '%Y%m%d')
+        FROM application.kuaishou_account_report_hourly_dw
+        WHERE
+        stat_date >= DATE_FORMAT(#{startDay}, '%Y%m%d')
+        and stat_date &lt;= DATE_FORMAT(#{endDay}, '%Y%m%d')
+        <if test="accountIds !=null and accountIds.size()>0">
+            and account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
     </select>
 
     <select id="queryKsRealCharged" resultType="com.alibaba.fastjson.JSONObject">
@@ -178,28 +205,31 @@
         IFNULL( sum( real_charged_in_yuan ), 0.00 ) AS 'realCharged'
         FROM
         application.app_kuaishou_agent_report_d
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_date >= DATE_FORMAT( #{monthFirstday}, '%Y%m%d' )
+        WHERE stat_date >= DATE_FORMAT( #{monthFirstday}, '%Y%m%d' )
         AND stat_date &lt;= DATE_FORMAT( #{statDay}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) thisMonth
         LEFT JOIN (
         SELECT
         IFNULL( sum( real_charged_in_yuan ), 0.00 ) AS 'realCharged'
         FROM
         application.app_kuaishou_agent_report_d
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_date >= DATE_FORMAT(#{lastMonthFirstday}, '%Y%m%d' )
+        WHERE stat_date >= DATE_FORMAT(#{lastMonthFirstday}, '%Y%m%d' )
         AND stat_date &lt; DATE_FORMAT(#{monthFirstday}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND
+            account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) lastMonth ON 1=1
     </select>
 
@@ -214,28 +244,31 @@
         IFNULL( sum( cash_cost ), 0.00 ) AS 'realCharged'
         FROM
         application.app_bytedance_agent_report_d
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_datetime >= DATE_FORMAT( #{monthFirstday}, '%Y%m%d' )
+        WHERE stat_datetime >= DATE_FORMAT( #{monthFirstday}, '%Y%m%d' )
         AND stat_datetime &lt;= DATE_FORMAT( #{statDay}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND
+            account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) thisMonth
         LEFT JOIN (
         SELECT
         IFNULL( sum( cash_cost ), 0.00 ) AS 'realCharged'
         FROM
         application.app_bytedance_agent_report_d
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_datetime >= DATE_FORMAT(#{lastMonthFirstday}, '%Y%m%d' )
+        WHERE stat_datetime >= DATE_FORMAT(#{lastMonthFirstday}, '%Y%m%d' )
         AND stat_datetime &lt; DATE_FORMAT(#{monthFirstday}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) lastMonth ON 1=1
     </select>
 
@@ -243,14 +276,14 @@
     <select id="getWeekly" resultType="Long">
         SELECT IFNULL(weekly_goal_value, 0)
         FROM `jeecg-boot`.sys_manager_sale_value
-        WHERE manage_id = #{userId}
+        WHERE user_id = #{userId}
           AND media_id = #{mediaId}
           AND company_id = #{companyId}
     </select>
     <select id="getMonthly" resultType="Long">
         SELECT IFNULL(monthly_goal_value, 0)
         FROM `jeecg-boot`.sys_manager_sale_value
-        WHERE manage_id = #{userId}
+        WHERE user_id = #{userId}
           AND media_id = #{mediaId}
           AND company_id = #{companyId}
     </select>
@@ -270,19 +303,21 @@
         FROM
         `jeecg-boot`.ctop_project_member t1
         LEFT JOIN `jeecg-boot`.ctop_project t2 ON t1.project_id = t2.id
-        WHERE t1.user_id IN
-        <foreach collection="userIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
+        WHERE t1.project_name IS NOT NULL
+        AND t1.project_name != ''
+        <if test="userIds !=null and userIds.size()>0">
+            AND t1.user_id IN
+            <foreach collection="userIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         <if test='mediaId ==2'>
             AND (t2.media_id = 2 or t2.media_id = 4)
         </if>
         <if test='mediaId ==1'>
             AND (t2.media_id = 1 or t2.media_id = 3)
         </if>
-        AND t1.project_name IS NOT NULL
-        AND t1.project_name != ''
         )
         GROUP BY
         t1.account_id
@@ -316,12 +351,14 @@
     <select id="queryKsHourList" resultType="com.alibaba.fastjson.JSONObject">
         SELECT hour,sum(charge) as 'charge'
         FROM application.kuaishou_account_report_hourly_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_date = DATE_FORMAT(#{statDay}, '%Y%m%d' )
+        WHERE stat_date = DATE_FORMAT(#{statDay}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY hour
         ORDER BY hour
     </select>
@@ -329,12 +366,14 @@
     <select id="queryTtHourList" resultType="com.alibaba.fastjson.JSONObject">
         SELECT hour,sum(cost) as 'charge'
         FROM application.bytedance_advertiser_report_hourly_dw
-        WHERE account_id in
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and stat_datetime = DATE_FORMAT(#{statDay}, '%Y%m%d' )
+        WHERE stat_datetime = DATE_FORMAT(#{statDay}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id in
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY hour
         ORDER BY hour
     </select>
@@ -342,7 +381,7 @@
 
     <select id="queryTtManydaysChargeAndRoi" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
-        IFNULL( this.charge, 0.00) AS 'charge',
+        IFNULL( this.charge, 0.00) AS 'totalCharge',
         CONCAT( CAST( IFNULL( ROUND(( this.charge - last.charge ) / last.charge* 100,2),0) AS CHAR),'%') AS
         'chargeRoi'
         FROM
@@ -350,36 +389,38 @@
         SELECT
         IFNULL( sum(cost), 0.00 ) AS 'charge'
         FROM
-        application.bytedance_advertiser_report_daily_dw
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
+        application.bytedance_advertiser_report_hourly_dw
+        WHERE stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) this
         LEFT JOIN (
         SELECT
         IFNULL( sum(cost), 0.00 ) AS 'charge'
         FROM
-        application.bytedance_advertiser_report_daily_dw
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_datetime >= DATE_FORMAT( #{lastTimeStart}, '%Y%m%d' )
+        application.bytedance_advertiser_report_hourly_dw
+        WHERE stat_datetime >= DATE_FORMAT( #{lastTimeStart}, '%Y%m%d' )
         AND stat_datetime &lt;= DATE_FORMAT( #{lastTimeEnd}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) last ON 1=1
     </select>
 
 
     <select id="queryKsManydaysChargeAndRoi" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
-        IFNULL( this.charge, 0.00) AS 'charge',
+        IFNULL( this.charge, 0.00) AS 'totalCharge',
         CONCAT( CAST( IFNULL( ROUND(( this.charge - last.charge ) / last.charge* 100,2),0) AS CHAR),'%') AS
         'chargeRoi'
         FROM
@@ -387,29 +428,31 @@
         SELECT
         IFNULL( sum(charge), 0.00 ) AS 'charge'
         FROM
-        application.kuaishou_account_report_daily_dw
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
+        application.kuaishou_account_report_hourly_dw
+        WHERE stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND stat_date &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) this
         LEFT JOIN (
         SELECT
         IFNULL( sum(charge), 0.00 ) AS 'charge'
         FROM
-        application.kuaishou_account_report_daily_dw
-        WHERE
-        account_id IN
-        <foreach collection="accountIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_date >= DATE_FORMAT( #{lastTimeStart}, '%Y%m%d' )
+        application.kuaishou_account_report_hourly_dw
+        WHERE stat_date >= DATE_FORMAT( #{lastTimeStart}, '%Y%m%d' )
         AND stat_date &lt;= DATE_FORMAT( #{lastTimeEnd}, '%Y%m%d' )
+        <if test="accountIds !=null and accountIds.size()>0">
+            AND account_id IN
+            <foreach collection="accountIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         ) last ON 1=1
     </select>
 
@@ -418,13 +461,15 @@
         SELECT count(1)
         FROM
         (select 1 from application.kuaishou_account_report_hourly_dw t1
-        where t1.project_id in
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and t1.stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d')
+        where t1.stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d')
         and t1.stat_date &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d')
+        <if test="projectIds !=null and projectIds.size()>0">
+            and t1.project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY project_id
         ) t
     </select>
@@ -433,13 +478,15 @@
         SELECT count(1)
         FROM
         (select 1 from application.bytedance_advertiser_report_hourly_dw t1
-        where t1.project_id in
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        and t1.stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d')
+        where t1.stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d')
         and t1.stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d')
+        <if test="projectIds !=null and projectIds.size()>0">
+            and t1.project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY project_id
         ) t
     </select>
@@ -450,10 +497,11 @@
         t1.project_name as 'projectName',
         ( SELECT realname FROM `jeecg-boot`.sys_user us WHERE us.id = t1.sale_id ) AS 'saleName',
         SUM( t1.charge ) AS 'charge',
-        CONCAT( CAST( IFNULL( ROUND(( t1.charge - t3.charge ) / t3.charge * 100, 2 ), 0.00 ) AS CHAR ), '%' ) AS
+        CONCAT( CAST( IFNULL( ROUND(( SUM( t1.charge ) - t3.charge ) / t3.charge * 100, 2 ), 0.00 ) AS CHAR ), '%' ) AS
         'chargeRoi',
         IFNULL(t2.realCharge,0.00) AS 'realCharge',
-        IFNULL(t2.jlCharge,0.00) AS 'jlCharge'
+        IFNULL(t2.jlCharge,0.00) AS 'jlCharge',
+        row_number() over(order by SUM( t1.charge ) desc) AS 'number'
         FROM
         application.kuaishou_account_report_hourly_dw t1
         LEFT JOIN(
@@ -461,40 +509,42 @@
         SUM(real_charged_in_yuan) as 'realCharge',
         SUM(direct_rebate_real_charged_in_yuan) as 'jlCharge'
         FROM application.app_kuaishou_agent_report_d
-        WHERE
-        project_id IN
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
+        WHERE stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND stat_date &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
+        <if test="projectIds !=null and projectIds.size()>0">
+            and project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY project_id
         )t2 ON t1.project_id = t2.project_id
         LEFT JOIN (
-        SELECT project_id, SUM( charge ) AS 'charge' FROM application.kuaishou_account_report_hourly_dw WHERE project_id
-        IN
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
+        SELECT project_id, SUM( charge ) AS 'charge' FROM application.kuaishou_account_report_hourly_dw
+        WHERE hour &lt;= #{hour}
+        <if test="projectIds !=null and projectIds.size()>0">
+            and project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         AND stat_date >= DATE_FORMAT(DATE_ADD(#{startTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
         AND stat_date &lt;= DATE_FORMAT(DATE_ADD(#{endTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
         GROUP BY project_id ) t3 ON
         t1.project_id = t3.project_id
-        WHERE
-        t1.project_id IN
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
+        WHERE hour &lt;= #{hour}
+        <if test="projectIds !=null and projectIds.size()>0">
+            and t1.project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         AND stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND stat_date &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
-        GROUP BY
-        t1.project_id
-        ORDER BY
-        SUM( t1.charge ) DESC
-
+        GROUP BY t1.project_id
     </select>
 
 
@@ -504,10 +554,11 @@
         t1.project_name as 'projectName',
         ( SELECT realname FROM `jeecg-boot`.sys_user us WHERE us.id = t1.sale_id ) AS 'saleName',
         SUM( t1.cost ) AS 'charge',
-        CONCAT( CAST( IFNULL( ROUND(( t1.cost - t3.charge ) / t3.charge * 100, 2 ), 0 ) AS CHAR ), '%' ) AS
+        CONCAT( CAST( IFNULL( ROUND(( SUM( t1.cost ) - t3.charge ) / t3.charge * 100, 2 ), 0 ) AS CHAR ), '%' ) AS
         'chargeRoi',
         IFNULL(t2.realCharge,0.00) AS 'realCharge',
-        IFNULL(t2.jlCharge,0.00) AS 'jlCharge'
+        IFNULL(t2.jlCharge,0.00) AS 'jlCharge',
+        row_number() over(order by SUM( t1.cost ) desc) AS 'number'
         FROM
         application.bytedance_advertiser_report_hourly_dw t1
         LEFT JOIN(
@@ -515,42 +566,42 @@
         SUM(cash_cost) as 'realCharge',
         SUM(grants_cost) AS 'jlCharge'
         FROM application.app_bytedance_agent_report_d
-        WHERE
-        project_id IN
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
+        WHERE stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
+        <if test="projectIds !=null and projectIds.size()>0">
+            and project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
         GROUP BY project_id
         )t2 ON t1.project_id = t2.project_id
         LEFT JOIN (
-        SELECT project_id, SUM( cost ) AS 'charge' FROM application.bytedance_advertiser_report_hourly_dw WHERE
-        project_id
-        IN
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND stat_datetime >= DATE_FORMAT(DATE_ADD(#{startTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
+        SELECT project_id, SUM( cost ) AS 'charge' FROM application.bytedance_advertiser_report_hourly_dw
+        WHERE stat_datetime >= DATE_FORMAT(DATE_ADD(#{startTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
         AND stat_datetime &lt;= DATE_FORMAT(DATE_ADD(#{endTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
+        <if test="projectIds !=null and projectIds.size()>0">
+            and project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
+        AND hour &lt;= #{hour}
         GROUP BY project_id ) t3 ON
         t1.project_id = t3.project_id
-        WHERE
-        t1.project_id IN
-        <foreach collection="projectIds" item="id" separator=","
-                 open="(" close=")">
-            #{id}
-        </foreach>
-        AND t1.stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
+        WHERE t1.stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND t1.stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
-        GROUP BY
-        t1.project_id
-        ORDER BY
-        SUM( t1.cost ) DESC
-
+        <if test="projectIds !=null and projectIds.size()>0">
+            and t1.project_id in
+            <foreach collection="projectIds" item="id" separator=","
+                     open="(" close=")">
+                #{id}
+            </foreach>
+        </if>
+        AND hour &lt;= #{hour}
+        GROUP BY t1.project_id
     </select>
 
-
 </mapper>

+ 33 - 18
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/ManagerSaleValueServiceImpl.java

@@ -70,6 +70,9 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             if ("b161b7d9793942f980dbfe8c931cd1b0".equals(userId) || "228c45f913924639bf20c79ce5dadb16".equals(userId)) {
                 //账户集合
                 List<Long> accountIds = baseMapper.getCompanyAccountIds(companyId, mediaId);
+                if (Check.isNull(accountIds)) {
+                    return Result.error("未查询到账户!");
+                }
                 JSONObject data = getManagerData(accountIds, userId, mediaId, companyId);
                 data.put("weeklyGoalValue", weekly);
                 data.put("monthlyGoalValue", monthly);
@@ -79,7 +82,6 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             List<String> saleTeaMber = baseMapper.querySaleDirctorItsTeamMember(userId);
             if (Check.isNull(saleTeaMber)) {
                 saleTeaMber = Arrays.asList(userId);
-                return Result.error("未查询到人员!");
             }
             //账户集合
             List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(companyId, mediaId, saleTeaMber);
@@ -91,9 +93,12 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             data.put("monthlyGoalValue", monthly);
             result = Result.ok(data);
             //分公司总经理
-        } else if ("CompanyManager".equals(roleCode)) {
+        } else if ("CompanyManager".equals(roleCode) || "admin".equals(roleCode)) {
             //账户集合
             List<Long> accountIds = baseMapper.getCompanyAccountIds(companyId, mediaId);
+            if (Check.isNull(accountIds)) {
+                return Result.error("未查询到账户!");
+            }
             JSONObject data = getManagerData(accountIds, userId, mediaId, companyId);
             data.put("weeklyGoalValue", weekly);
             data.put("monthlyGoalValue", monthly);
@@ -127,8 +132,8 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             weekCharge = baseMapper.queryTtManydaysTotalCharge(weekFirstDay, statDay, accountIds);
             //月消耗
             String monthCharge = baseMapper.queryTtManydaysTotalCharge(monthFirstday, statDay, accountIds);
-            result.put("weekCharge", getBigDecimalVal(weekCharge, result.getBigDecimal("totalCharge")));
-            result.put("monthCharge", getBigDecimalVal(weekCharge, result.getBigDecimal("totalCharge")));
+            result.put("weekCharge", new BigDecimal(weekCharge));
+            result.put("monthCharge", new BigDecimal(monthCharge));
             //现金消耗 + 环比ROI
             JSONObject realCharged = baseMapper.queryTtRealCharged(lastMonthFirstday, monthFirstday, statDay, accountIds);
             result.put("realCharged", realCharged.getBigDecimal("realCharged"));
@@ -139,8 +144,8 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             weekCharge = baseMapper.queryKsManydaysTotalCharge(weekFirstDay, statDay, accountIds);
             //月消耗
             String monthCharge = baseMapper.queryKsManydaysTotalCharge(monthFirstday, statDay, accountIds);
-            result.put("weekCharge", getBigDecimalVal(weekCharge, result.getBigDecimal("totalCharge")));
-            result.put("monthCharge", getBigDecimalVal(weekCharge, result.getBigDecimal("totalCharge")));
+            result.put("weekCharge", new BigDecimal(weekCharge));
+            result.put("monthCharge", new BigDecimal(monthCharge));
             //现金消耗 + 环比ROI
             JSONObject realCharged = baseMapper.queryKsRealCharged(lastMonthFirstday, monthFirstday, statDay, accountIds);
             result.put("realCharged", realCharged.getBigDecimal("realCharged"));
@@ -163,7 +168,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
         QueryWrapper<ManagerSaleValue> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("company_id", sale.getCompanyId());
         queryWrapper.eq("media_id", sale.getMediaId());
-        queryWrapper.eq("manage_id", sale.getUserId());
+        queryWrapper.eq("user_id", sale.getUserId());
         ManagerSaleValue one = this.getOne(queryWrapper);
         if (Check.isNull(one)) {
             sale.setId(UUID.randomUUID().toString().replace("-", ""));
@@ -184,6 +189,10 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
         String roleCode = baseMapper.getRoleCodeByUserId(userId);
 
         List<Long> compayAllAccountIds = baseMapper.getCompanyAccountIds(companyId, mediaId);
+        if (Check.isNull(compayAllAccountIds)) {
+            return Result.error("未查询到账户!");
+        }
+
         JSONObject data = null;
         //销售总监
         if ("saleDirector".equals(roleCode)) {
@@ -215,7 +224,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
 
             }
             //分公司总经理
-        } else if ("CompanyManager".equals(roleCode)) {
+        } else if ("CompanyManager".equals(roleCode) || "admin".equals(roleCode)) {
             if (startTime.equals(endTime)) {
                 data = getDailyCharges(null, compayAllAccountIds, userId, mediaId, companyId, startTime);
             } else {
@@ -244,11 +253,11 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             result.put("list", list);
             //平台消耗
             if (compayAllAccountIds == null) {
-                result.put("platformCharge", result.getString("charge"));
+                result.put("platformCharge", result.getString("totalCharge"));
                 result.put("platformChargeRoi", result.getString("chargeRoi"));
             } else {
                 JSONObject ptdata = baseMapper.queryTtManydaysChargeAndRoi(startTime, endTime, lastTimeStart, lastTimeEnd, compayAllAccountIds);
-                result.put("platformCharge", ptdata.getString("charge"));
+                result.put("platformCharge", ptdata.getString("totalCharge"));
                 result.put("platformChargeRoi", ptdata.getString("chargeRoi"));
             }
         } else if ("2".equals(mediaId)) {
@@ -257,11 +266,11 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             result.put("list", list);
             //平台消耗
             if (compayAllAccountIds == null) {
-                result.put("platformCharge", result.getString("charge"));
+                result.put("platformCharge", result.getString("totalCharge"));
                 result.put("platformChargeRoi", result.getString("chargeRoi"));
             } else {
                 JSONObject ptdata = baseMapper.queryKsManydaysChargeAndRoi(startTime, endTime, lastTimeStart, lastTimeEnd, compayAllAccountIds);
-                result.put("platformCharge", ptdata.getString("charge"));
+                result.put("platformCharge", ptdata.getString("totalCharge"));
                 result.put("platformChargeRoi", ptdata.getString("chargeRoi"));
             }
         }
@@ -311,13 +320,15 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
     @Override
     public PageInfo getProjectChargeTop(String userId, String mediaId, String companyId, String startTime, String endTime, Integer pageNo, Integer pageSize) throws Exception {
         String roleCode = baseMapper.getRoleCodeByUserId(userId);
-        List<Long> compayAllAccountIds = baseMapper.getCompanyAccountIds(companyId, mediaId);
         JSONObject data = null;
         //销售总监
         if ("saleDirector".equals(roleCode)) {
             //丁兆明特殊处理
             if ("b161b7d9793942f980dbfe8c931cd1b0".equals(userId) || "228c45f913924639bf20c79ce5dadb16".equals(userId)) {
                 List<Long> projectIds = baseMapper.querySalesDirectorProjectIds(companyId, mediaId, null);
+                if(Check.isNull(projectIds)){
+                    throw new Exception("未查询到项目!");
+                }
                 if (startTime.equals(endTime)) {
                     return getProjectDailyCharges(projectIds, mediaId, startTime, null, pageNo, pageSize);
                 } else {
@@ -332,7 +343,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             //账户集合
             List<Long> projectIds = baseMapper.querySalesDirectorProjectIds(companyId, mediaId, saleTeaMber);
             if (Check.isNull(projectIds)) {
-                throw new Exception("未查询到账户!");
+                throw new Exception("未查询到项目!");
             }
             if (startTime.equals(endTime)) {
                 return getProjectDailyCharges(projectIds, mediaId, startTime, null, pageNo, pageSize);
@@ -340,8 +351,11 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
                 return getProjectDailyCharges(projectIds, mediaId, startTime, endTime, pageNo, pageSize);
             }
             //分公司总经理
-        } else if ("CompanyManager".equals(roleCode)) {
+        } else if ("CompanyManager".equals(roleCode) || "admin".equals(roleCode)) {
             List<Long> projectIds = baseMapper.querySalesDirectorProjectIds(companyId, mediaId, null);
+            if(Check.isNull(projectIds)){
+                throw new Exception("未查询到项目!");
+            }
             if (startTime.equals(endTime)) {
                 return getProjectDailyCharges(projectIds, mediaId, startTime, null, pageNo, pageSize);
             } else {
@@ -354,24 +368,25 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
 
     private PageInfo getProjectDailyCharges(List<Long> projectIds, String mediaId, String startTime, String endTime, Integer pageNo, Integer pageSize) throws ParseException {
         Long days = 1L;
+        Integer hour = DateUtils.getHour(DateUtils.formatDateTime());
         if (endTime == null) {
             endTime = startTime;
         } else {
             days = DateUtils.getDiscrepantDays(startTime, endTime) + 1;
+            hour = 23;
         }
-
         //1 头条
         if ("1".equals(mediaId)) {
             Long total = baseMapper.queryTtHourProjectTopTotal(projectIds, startTime, endTime);
             PageHelper.startPage(pageNo, pageSize, false);
-            List<JSONObject> list = baseMapper.queryTtHourProjectTop(projectIds, startTime, endTime, days);
+            List<JSONObject> list = baseMapper.queryTtHourProjectTop(projectIds, startTime, endTime, days, hour);
             PageInfo pageInfo = new PageInfo(list);
             pageInfo.setTotal(total);
             return pageInfo;
         } else if ("2".equals(mediaId)) {
             Long total = baseMapper.queryKsHourProjectTopTotal(projectIds, startTime, endTime);
             PageHelper.startPage(pageNo, pageSize, false);
-            List<JSONObject> list = baseMapper.queryKsHourProjectTop(projectIds, startTime, endTime, days);
+            List<JSONObject> list = baseMapper.queryKsHourProjectTop(projectIds, startTime, endTime, days, hour);
             PageInfo pageInfo = new PageInfo(list);
             pageInfo.setTotal(total);
             return pageInfo;

+ 2 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/MaterialInfoMapper.java

@@ -37,5 +37,7 @@ public interface MaterialInfoMapper extends BaseMapper<MaterialInfo> {
 
     JSONArray getIdListByProject(Long projectId);
 
+    List<MaterialInfo> getListByProduct(@Param("productId") Long productId);
+
     // List<MaterialInfo> getListByParams(String tagCode, String type, Integer status, String materialName, String code, String startDate, String endDate, List<Long> projectIds, String ascription, String clipId, String shotId, String planId, Integer offlineFlag);
 }

+ 6 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/mapper/xml/MaterialInfoMapper.xml

@@ -190,4 +190,10 @@
 
     </select>
 
+    <select id="getListByProduct" resultType="cn.com.ctop.common.module.entity.MaterialInfo">
+        select *  from ctop_material_info
+        where product_id = #{productId}
+        and status = 1
+    </select>
+
 </mapper>

+ 2 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/IMaterialInfoService.java

@@ -86,4 +86,6 @@ public interface IMaterialInfoService extends IService<MaterialInfo> {
     void correlationUploadV2(JSONObject json);
 
     JSONArray checkArrayCode(JSONArray array);
+
+    List<MaterialInfo> getListByProduct(Long productId);
 }

+ 5 - 0
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/service/impl/MaterialInfoServiceImpl.java

@@ -645,6 +645,11 @@ public class MaterialInfoServiceImpl extends ServiceImpl<MaterialInfoMapper, Mat
         return resultArray;
     }
 
+    @Override
+    public List<MaterialInfo> getListByProduct(Long productId) {
+        return baseMapper.getListByProduct(productId);
+    }
+
     /**
      * 素材库关联上传素材 1
      *