Commit a63aad31 by jianan

发佣检核16-发佣检核导出

parent c8ed327c
package com.yd.api.agms; package com.yd.api.agms;
import com.yd.api.agms.service.*;
import com.yd.api.agms.vo.dashboard.*;
import com.yd.api.agms.vo.fortune.*;
import com.yd.api.agms.vo.hiring.*;
import com.yd.api.agms.vo.insurer.SealUploadResponseVO;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.yd.api.agms.service.*; import com.yd.api.agms.service.*;
import com.yd.api.agms.service.AgmsDashboardService;
import com.yd.api.agms.service.AgmsFortuneService;
import com.yd.api.agms.service.AgmsHiringService;
import com.yd.api.agms.service.AgmsPractitionerService;
import com.yd.api.agms.vo.dashboard.*; import com.yd.api.agms.vo.dashboard.*;
import com.yd.api.agms.vo.fortune.*; import com.yd.api.agms.vo.fortune.*;
import com.yd.api.agms.vo.hiring.*; import com.yd.api.agms.vo.hiring.*;
import com.yd.api.agms.vo.sharing.ControllerResponseVO; import com.yd.api.agms.vo.insurer.SealUploadResponseVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListRequestVO; import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListRequestVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListResponseVO; import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListResponseVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveRequestVO; import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveRequestVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveResponseVO; import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveResponseVO;
import com.yd.api.agms.service.*; import com.yd.api.agms.vo.sharing.ControllerResponseVO;
import com.yd.api.agms.vo.dashboard.*;
import com.yd.api.agms.vo.fortune.*;
import com.yd.api.agms.vo.hiring.*;
import com.yd.api.agms.vo.insurer.SealUploadResponseVO;
import com.yd.api.agms.vo.statistics.FinancialStatisticsRequestVO; import com.yd.api.agms.vo.statistics.FinancialStatisticsRequestVO;
import com.yd.api.agms.vo.statistics.FinancialStatisticsResponseVO; import com.yd.api.agms.vo.statistics.FinancialStatisticsResponseVO;
import com.yd.api.agms.vo.statistics.LeadsStatisticsRequestVO; import com.yd.api.agms.vo.statistics.LeadsStatisticsRequestVO;
...@@ -35,14 +22,11 @@ import com.yd.api.agms.vo.tag.TagViewUpdateResponseVO; ...@@ -35,14 +22,11 @@ import com.yd.api.agms.vo.tag.TagViewUpdateResponseVO;
import com.yd.api.result.JsonResult; import com.yd.api.result.JsonResult;
import com.yd.util.CommonUtil; import com.yd.util.CommonUtil;
import com.yd.util.JsonUtil; import com.yd.util.JsonUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@Controller @Controller
...@@ -235,6 +219,20 @@ public class AgmsController { ...@@ -235,6 +219,20 @@ public class AgmsController {
} }
/** /**
* AGMS -- 发佣检核导出
* @param requestVO 请求数据
* @return 响应数据
*/
@RequestMapping(value="/exportCommissionPayoutStatusQuery")
public Object exportCommissionPayoutStatusQuery(@RequestBody CommissionPayoutStatusQueryRequestVO requestVO, HttpServletResponse response) {
JsonResult result = new JsonResult();
ExportCommissionPayoutStatusQueryResponseVO responseVO = agmsFortuneService.exportCommissionPayoutStatusQuery(requestVO,response);
result.setData(responseVO);
result.addResult(responseVO);
return result;
}
/**
* AGMS -- 导出财富文档 * AGMS -- 导出财富文档
* @param requestVO 请求数据 * @param requestVO 请求数据
* @return 响应数据 * @return 响应数据
......
...@@ -64,4 +64,6 @@ public interface AgmsFortuneService { ...@@ -64,4 +64,6 @@ public interface AgmsFortuneService {
* @return 响应数据 * @return 响应数据
*/ */
FortunePayoutBatchQueryResponseVO fortunePayoutBatchQuery(); FortunePayoutBatchQueryResponseVO fortunePayoutBatchQuery();
ExportCommissionPayoutStatusQueryResponseVO exportCommissionPayoutStatusQuery(CommissionPayoutStatusQueryRequestVO requestVO, HttpServletResponse response);
} }
...@@ -910,6 +910,100 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService { ...@@ -910,6 +910,100 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
return responseVO; return responseVO;
} }
@Override
public ExportCommissionPayoutStatusQueryResponseVO exportCommissionPayoutStatusQuery(CommissionPayoutStatusQueryRequestVO requestVO, HttpServletResponse response) {
ExportCommissionPayoutStatusQueryResponseVO responseVO = new ExportCommissionPayoutStatusQueryResponseVO();
CommissionPayoutStatusQueryInfo info = new CommissionPayoutStatusQueryInfo();
BeanUtils.copyProperties(requestVO, info);
//体系查询调整,如果体系为S3,则需要查询它下面的所有子集
PractitionerSubordinateInfo practitionerSubordinateInfo = new PractitionerSubordinateInfo();
BeanUtils.copyProperties(requestVO, practitionerSubordinateInfo);
practitionerSubordinateInfo.setDeptId(requestVO.getInsurerBranchDeptId());
List<Long> subsystemIdList = aclPractitionerSubordinateSystemDalService.getLongs(practitionerSubordinateInfo);
info.setSubsystemIdList(subsystemIdList);
List<CommissionPayoutStatus> commissionPayoutStatusList = agmsFortuneDalService.commissionPayoutStatusQuery(info);
// 导出csv
exportCommissionPayoutStatusQueryCSV(commissionPayoutStatusList, response);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
private void exportCommissionPayoutStatusQueryCSV(List<CommissionPayoutStatus> commissionPayoutStatusList, HttpServletResponse response) {
String[] columnName = new String[]{"序号", "来佣检核年月", "发佣状态", "预计发佣年月", "实际发佣年月", "保险公司", "保单号", "保费", "来佣金额", "佣金类型", "应发佣率", "应发金额",
"经纪人", "经纪人职级", "体系", "营业部", "购买方案", "缴费年限", "保障期间"};
String tableName = "YD_CommissionPayout" + System.currentTimeMillis() + ".csv";
String CSV_COLUMN_SEPARATOR = ",";//CSV文件列分隔符
String CSV_ROW_SEPARATOR = "\r\n";//CSV文件行分隔符
// 保证线程安全
StringBuilder buf = new StringBuilder();
// 组装表头
for (String title : columnName) {
buf.append(title).append(CSV_COLUMN_SEPARATOR);
}
buf.append(CSV_ROW_SEPARATOR);
// 组装数据
if (CollectionUtils.isNotEmpty(commissionPayoutStatusList)) {
for (int i = 0; i < commissionPayoutStatusList.size(); i++) {
CommissionPayoutStatus info = commissionPayoutStatusList.get(i);//遍历每个对象
buf.append(i + 1).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getCommissionPayoutYearmonth()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getCommissionPayoutStatus()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getPredictMonthPeriod()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getMonthPeriod()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getInsurerName() == null ? "" : info.getInsurerName()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getPolicyNo() == null ? "" : info.getPolicyNo()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getOrderPrice() == null ? 0 : info.getOrderPrice()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getCommissionAmount() == null ? 0 : info.getCommissionAmount()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getCommissionType() == null ? "" : info.getCommissionType()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getReferralRate() == null ? 0 : info.getReferralRate()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getReferralAmount() == null ? 0 : info.getReferralAmount()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getPractitionerName() == null ? "" : info.getPractitionerName()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getPractitionerLevel() == null ? "" : info.getPractitionerLevel()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getSubordinateSystemName() == null ? "" : info.getSubordinateSystemName()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getInsurerBranchDeptName() == null ? "" : info.getInsurerBranchDeptName()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getProductName() == null ? "" : info.getProductName()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getPaymentTermUnit() == null ? "" : info.getPaymentTermUnit()).append(CSV_COLUMN_SEPARATOR);
buf.append(info.getCoverTermType() == null ? "" : info.getCoverTermType()).append(CSV_COLUMN_SEPARATOR);
buf.append(CSV_ROW_SEPARATOR);
}
}
// 设置文件后缀
setCSVResponse(response, tableName, buf);
}
private void setCSVResponse(HttpServletResponse response, String fn, StringBuilder data) {
String charset = "UTF-8"; // 读取字符编码
// String fn = tableName + System.currentTimeMillis() + ".csv";
String headStr = "attachment; filename=\"" + fn + "\"";
// 设置响应
response.setContentType("APPLICATION/ms-csv.numberformat");
response.setCharacterEncoding(charset);
response.setHeader("Content-Disposition", headStr);
response.setHeader("Cache-Control", "max-age=30");
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
response.setHeader("Pragma", "public");
OutputStream os = null;
try {
os = response.getOutputStream();
os.write(data.toString().getBytes("GBK"));
os.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
if(os != null){
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private void createCSV(List<FortunePayToOrderInfo> fortunePayToOrderInfos, HttpServletResponse response) { private void createCSV(List<FortunePayToOrderInfo> fortunePayToOrderInfos, HttpServletResponse response) {
String charset = "UTF-8"; // 读取字符编码 String charset = "UTF-8"; // 读取字符编码
......
package com.yd.api.agms.vo.fortune;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class ExportCommissionPayoutStatusQueryResponseVO {
private CommonResult commonResult;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment