Commit c46f9e3a by Water Wang

optimzie

parent 361cdebc
package com.yd.api.agms;
import com.yd.api.agms.service.AgmsStatementService;
import com.yd.api.agms.vo.statement.FinancialPredictStatementRequestVO;
import com.yd.api.agms.vo.statement.FinancialPredictStatementResponseVO;
import com.yd.api.agms.vo.statement.FinancialStatementRequestVO;
import com.yd.api.agms.vo.statement.FinancialStatementResponseVO;
import com.yd.api.result.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
......@@ -25,9 +25,9 @@ public class AgmsController {
* @return 响应数据
*/
@RequestMapping("/financialPredictStatement")
public Object financialPredictStatement(@RequestBody FinancialPredictStatementRequestVO requestVO, HttpServletResponse response){
public Object financialPredictStatement(@RequestBody FinancialStatementRequestVO requestVO, HttpServletResponse response){
JsonResult result = new JsonResult();
FinancialPredictStatementResponseVO responseVO = agmsStatementService.financialPredictStatement(requestVO,response);
FinancialStatementResponseVO responseVO = agmsStatementService.financialPredictStatement(requestVO,response);
result.addResult(responseVO);
result.setData(responseVO);
return result;
......
package com.yd.api.agms.service;
import com.yd.api.agms.vo.statement.FinancialPredictStatementRequestVO;
import com.yd.api.agms.vo.statement.FinancialPredictStatementResponseVO;
import com.yd.api.agms.vo.statement.FinancialStatementRequestVO;
import com.yd.api.agms.vo.statement.FinancialStatementResponseVO;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
......@@ -13,5 +13,5 @@ public interface AgmsStatementService {
* @param requestVO 请求报文
* @return 响应报文
*/
FinancialPredictStatementResponseVO financialPredictStatement(FinancialPredictStatementRequestVO requestVO, HttpServletResponse response);
FinancialStatementResponseVO financialPredictStatement(FinancialStatementRequestVO requestVO, HttpServletResponse response);
}
......@@ -2,11 +2,12 @@ package com.yd.api.agms.service.impl;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.service.AgmsStatementService;
import com.yd.api.agms.vo.statement.FinancialPredictStatementRequestVO;
import com.yd.api.agms.vo.statement.FinancialPredictStatementResponseVO;
import com.yd.api.agms.vo.statement.PredictStatementData;
import com.yd.api.agms.vo.statement.FinancialStatementRequestVO;
import com.yd.api.agms.vo.statement.FinancialStatementResponseVO;
import com.yd.api.agms.vo.statement.statementData;
import com.yd.api.commission.service.CommissionService;
import com.yd.api.result.CommonResult;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -18,15 +19,19 @@ public class AgmsStatementServiceImpl implements AgmsStatementService {
@Autowired
private CommissionService commissionService;
@Override
public FinancialPredictStatementResponseVO financialPredictStatement(FinancialPredictStatementRequestVO requestVO, HttpServletResponse response) {
FinancialPredictStatementResponseVO responseVO = new FinancialPredictStatementResponseVO();
PageInfo<PredictStatementData> pageInfo = requestVO.getPageInfo();
String predictInCommissionTime = requestVO.getPredictInCommissionTime();//预估来佣时间
String predictOutCommissionTime = requestVO.getPredictOutCommissionTime();//预估发佣时间
public FinancialStatementResponseVO financialPredictStatement(FinancialStatementRequestVO requestVO, HttpServletResponse response) {
FinancialStatementResponseVO responseVO = new FinancialStatementResponseVO();
PageInfo<statementData> pageInfo = requestVO.getPageInfo();
String inCommissionTime = requestVO.getInCommissionTime();//来佣时间
String outCommissionTime = requestVO.getOutCommissionTime();//发佣时间
inCommissionTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(inCommissionTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
outCommissionTime = CommonUtil.dateParseString(CommonUtil.stringParseDate(outCommissionTime,"yyyy-MM-dd HH:mm:ss"),"yyyyMM");
String insurerBranchId = requestVO.getInsurerBranchId();//分公司
String deptId = requestVO.getDeptId();//营业部
String subordinateId = requestVO.getSubordinateId();//体系
PageInfo<PredictStatementData> dataList = commissionService.getPredictStatementDataByPage(pageInfo.getPageNum(),pageInfo.getSize(),predictInCommissionTime,predictOutCommissionTime,insurerBranchId,deptId,subordinateId);
Integer type = requestVO.getType();
Integer isStatement = requestVO.getIsStatement();
PageInfo<statementData> dataList = commissionService.getStatementDataByPage(pageInfo.getPageNum(),pageInfo.getSize(),isStatement,type, inCommissionTime, outCommissionTime,insurerBranchId,deptId,subordinateId);
responseVO.setPredictStatementDataList(dataList);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
......
......@@ -2,37 +2,46 @@ package com.yd.api.agms.vo.statement;
import com.github.pagehelper.PageInfo;
public class FinancialPredictStatementRequestVO {
private boolean isStatement;
private String predictInCommissionTime;
private String predictOutCommissionTime;
public class FinancialStatementRequestVO {
private Integer type ; //2、预测,1、实际
private Integer isStatement;//0=非报表,1=报表
private String inCommissionTime;
private String outCommissionTime;
private String insurerBranchId;//分公司ID
private String deptId;//营业部ID
private String subordinateId;//体系ID
private PageInfo<PredictStatementData> pageInfo;
private PageInfo<statementData> pageInfo;
public boolean isStatement() {
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public Integer getIsStatement() {
return isStatement;
}
public void setStatement(boolean statement) {
isStatement = statement;
public void setIsStatement(Integer isStatement) {
this.isStatement = isStatement;
}
public String getPredictInCommissionTime() {
return predictInCommissionTime;
public String getInCommissionTime() {
return inCommissionTime;
}
public void setPredictInCommissionTime(String predictInCommissionTime) {
this.predictInCommissionTime = predictInCommissionTime;
public void setInCommissionTime(String inCommissionTime) {
this.inCommissionTime = inCommissionTime;
}
public String getPredictOutCommissionTime() {
return predictOutCommissionTime;
public String getOutCommissionTime() {
return outCommissionTime;
}
public void setPredictOutCommissionTime(String predictOutCommissionTime) {
this.predictOutCommissionTime = predictOutCommissionTime;
public void setOutCommissionTime(String outCommissionTime) {
this.outCommissionTime = outCommissionTime;
}
public String getInsurerBranchId() {
......@@ -59,11 +68,11 @@ public class FinancialPredictStatementRequestVO {
this.subordinateId = subordinateId;
}
public PageInfo<PredictStatementData> getPageInfo() {
public PageInfo<statementData> getPageInfo() {
return pageInfo;
}
public void setPageInfo(PageInfo<PredictStatementData> pageInfo) {
public void setPageInfo(PageInfo<statementData> pageInfo) {
this.pageInfo = pageInfo;
}
}
......@@ -3,18 +3,16 @@ package com.yd.api.agms.vo.statement;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import java.util.List;
public class FinancialStatementResponseVO {
public class FinancialPredictStatementResponseVO {
private PageInfo<PredictStatementData> predictStatementDataList;
private PageInfo<statementData> predictStatementDataList;
private CommonResult commonResult;
public PageInfo<PredictStatementData> getPredictStatementDataList() {
public PageInfo<statementData> getPredictStatementDataList() {
return predictStatementDataList;
}
public void setPredictStatementDataList(PageInfo<PredictStatementData> predictStatementDataList) {
public void setPredictStatementDataList(PageInfo<statementData> predictStatementDataList) {
this.predictStatementDataList = predictStatementDataList;
}
......
package com.yd.api.agms.vo.statement;
public class PredictStatementData {
private String predictInCommissionTime;
private String predictOutCommissionTime;
public class statementData {
private String inCommissionTime;
private String outCommissionTime;
private String policyNo;
private String insurerBranchName;
private String deptName;
private String subordinateName;
private String practitionerName;
private String insurerBranch;
private String dept;
private String subordinate;
private String practitioner;
private String practitionerIdEG;
private String title;
private Double titleRate;
......@@ -18,20 +18,20 @@ public class PredictStatementData {
private Double rightPayCommission;
private String commissionType;
public String getPredictInCommissionTime() {
return predictInCommissionTime;
public String getInCommissionTime() {
return inCommissionTime;
}
public void setPredictInCommissionTime(String predictInCommissionTime) {
this.predictInCommissionTime = predictInCommissionTime;
public void setInCommissionTime(String inCommissionTime) {
this.inCommissionTime = inCommissionTime;
}
public String getPredictOutCommissionTime() {
return predictOutCommissionTime;
public String getOutCommissionTime() {
return outCommissionTime;
}
public void setPredictOutCommissionTime(String predictOutCommissionTime) {
this.predictOutCommissionTime = predictOutCommissionTime;
public void setOutCommissionTime(String outCommissionTime) {
this.outCommissionTime = outCommissionTime;
}
public String getPolicyNo() {
......@@ -42,36 +42,36 @@ public class PredictStatementData {
this.policyNo = policyNo;
}
public String getInsurerBranchName() {
return insurerBranchName;
public String getInsurerBranch() {
return insurerBranch;
}
public void setInsurerBranchName(String insurerBranchName) {
this.insurerBranchName = insurerBranchName;
public void setInsurerBranch(String insurerBranch) {
this.insurerBranch = insurerBranch;
}
public String getDeptName() {
return deptName;
public String getDept() {
return dept;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
public void setDept(String dept) {
this.dept = dept;
}
public String getSubordinateName() {
return subordinateName;
public String getSubordinate() {
return subordinate;
}
public void setSubordinateName(String subordinateName) {
this.subordinateName = subordinateName;
public void setSubordinate(String subordinate) {
this.subordinate = subordinate;
}
public String getPractitionerName() {
return practitionerName;
public String getPractitioner() {
return practitioner;
}
public void setPractitionerName(String practitionerName) {
this.practitionerName = practitionerName;
public void setPractitioner(String practitioner) {
this.practitioner = practitioner;
}
public String getPractitionerIdEG() {
......
......@@ -3,7 +3,7 @@ package com.yd.api.commission.service;
import java.util.List;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.statement.PredictStatementData;
import com.yd.api.agms.vo.statement.statementData;
import com.yd.api.commission.vo.CommissionEGoldenVO;
import com.yd.api.commission.vo.CommissionVO;
......@@ -13,5 +13,5 @@ public interface CommissionService {
List<CommissionEGoldenVO> listSalesCommissionfromEGolden(String login);
PageInfo<PredictStatementData> getPredictStatementDataByPage(int pageNum, int size, String predictInCommissionTime, String predictOutCommissionTime, String insurerBranchId, String deptId, String subordinateId);
PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement, Integer type, String predictInCommissionTime, String predictOutCommissionTime, String insurerBranchId, String deptId, String subordinateId);
}
......@@ -3,9 +3,8 @@ package com.yd.api.commission.service;
import java.util.ArrayList;
import java.util.List;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.statement.PredictStatementData;
import com.yd.api.agms.vo.statement.statementData;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -64,8 +63,8 @@ public class CommissionServiceImpl implements CommissionService{
}
@Override
public PageInfo<PredictStatementData> getPredictStatementDataByPage(int pageNum, int size, String predictInCommissionTime, String predictOutCommissionTime, String insurerBranchId, String deptId, String subordinateId) {
return CommissionEGoldenDA.getPredictStatementDataByPage(pageNum,size,predictInCommissionTime,predictOutCommissionTime,insurerBranchId,deptId,subordinateId);
public PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement, Integer type, String inCommissionTime, String outCommissionTime, String insurerBranchId, String deptId, String subordinateId) {
return commissionEGoldenDA.getStatementDataByPage(pageNum,size,isStatement,type,inCommissionTime,outCommissionTime,insurerBranchId,deptId,subordinateId);
}
}
......@@ -3,7 +3,7 @@ package com.yd.dal.mapper.commission;
import java.util.List;
import com.github.pagehelper.Page;
import com.yd.api.agms.vo.statement.PredictStatementData;
import com.yd.api.agms.vo.statement.statementData;
import org.apache.ibatis.annotations.Param;
import com.yd.dal.entity.commission.CommissionEGolden;
......@@ -17,5 +17,5 @@ public interface CommissionEGoldenMapper {
List<CommissionEGolden> listSalesCommissionfromEGolden(@Param("login")String login);
Page<PredictStatementData> getPredictStatementDataByPage(@Param("predictInCommissionTime")String predictInCommissionTime, @Param("predictOutCommissionTime")String predictOutCommissionTime, @Param("insurerBranchId")String insurerBranchId, @Param("deptId")String deptId, @Param("subordinateId")String subordinateId);
Page<statementData> getStatementDataByPage(@Param("isStatement")Integer isStatement,@Param("type")Integer type, @Param("inCommissionTime")String inCommissionTime, @Param("outCommissionTime")String outCommissionTime, @Param("insurerBranchId")String insurerBranchId, @Param("deptId")String deptId, @Param("subordinateId")String subordinateId);
}
......@@ -3,7 +3,7 @@ package com.yd.dal.service.commission;
import java.util.List;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.statement.PredictStatementData;
import com.yd.api.agms.vo.statement.statementData;
import com.yd.dal.entity.commission.CommissionEGolden;
/**
......@@ -12,7 +12,7 @@ import com.yd.dal.entity.commission.CommissionEGolden;
*/
public interface CommissionEGoldenDA {
PageInfo<PredictStatementData> getPredictStatementDataByPage(int pageNum, int size, String predictInCommissionTime, String predictOutCommissionTime, String insurerBranchId, String deptId, String subordinateId);
PageInfo<statementData> getStatementDataByPage(int pageNum, int size,Integer isStatement, Integer type, String inCommissionTime, String outCommissionTime, String insurerBranchId, String deptId, String subordinateId);
List<CommissionEGolden> listSalesCommissionfromEGolden(String login);
......
......@@ -3,7 +3,7 @@ package com.yd.dal.service.commission;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.statement.PredictStatementData;
import com.yd.api.agms.vo.statement.statementData;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
......@@ -30,10 +30,11 @@ public class CommissionEGoldenDAImpl implements CommissionEGoldenDA {
private CommissionEGoldenMapper commissionEGoldenMapper;
@Override
public PageInfo<PredictStatementData> getPredictStatementDataByPage(int pageNum, int size, String predictInCommissionTime, String predictOutCommissionTime, String insurerBranchId, String deptId, String subordinateId) {
@TargetDataSource(dataSourceKey = DataSourceKey.DB_EGOLDEN)
public PageInfo<statementData> getStatementDataByPage(int pageNum, int size, Integer isStatement,Integer type, String inCommissionTime, String outCommissionTime, String insurerBranchId, String deptId, String subordinateId) {
PageHelper.startPage(pageNum, size);
Page<PredictStatementData> statementData = commissionEGoldenMapper.getPredictStatementDataByPage(predictInCommissionTime,predictOutCommissionTime,insurerBranchId,deptId,subordinateId);
PageInfo<PredictStatementData> pageInfo = new PageInfo<>(statementData);
Page<statementData> statementData = commissionEGoldenMapper.getStatementDataByPage(isStatement,type,inCommissionTime,outCommissionTime,insurerBranchId,deptId,subordinateId);
PageInfo<com.yd.api.agms.vo.statement.statementData> pageInfo = new PageInfo<>(statementData);
return pageInfo;
}
......
......@@ -27,8 +27,61 @@
WHERE policy.INS_MST_REPEAL != 1 AND sales.SAL_MST_MOBILE = #{login}
</select>
<select id="getPredictStatementDataByPage" resultType="com.yd.api.agms.vo.statement.PredictStatementData">
<select id="getStatementDataByPage" resultType="com.yd.api.agms.vo.statement.statementData">
select if(#{type,jdbcType=INTEGER} = 1,receive.mon024_302,receive.MON024_301) as inCommissionTime, -- 预计来佣年月
if(#{type,jdbcType=INTEGER} = 1,pay.MON025_302,pay.mon025_301) as outCommissionTime,
policy.INS_MST_POLICY_NUM as policyNo, -- 保单号
branch.SPC_AREA_NAME as insurerBranch, -- 分公司
dept.SPC_BUS_NAME as dept, -- 营业部
divl.SPC_DIV_NAME as subordinate, -- 体系id
practitioner.SAL_MST_NAME as practitioner, --
pay.MON025_007 as practitionerIdEG, -- 业务员
title.SRA_RE_NAME as title, -- 职阶
pay.MON025_403 as titleRate, -- 职阶率
pay.premium as premium, -- 保费
policy.INS001_FYCTOTAL as FYC, -- fyc
receive.incommission as rightReceiveCommission, -- 来佣金额
pay.paycommission as rightPayCommission, -- 应发佣金
pay.MON025_108 as commissionType-- 佣奖类型
from ins001 policy INNER JOIN (select MON025_002,MON025_301,MON025_302,MON025_005,MON025_006,mon025_007,MON025_008,MON025_403,sum(MON025_401) as premium,sum(MON025_405) as paycommission,MON025_108 from MON025 group by mon025_002,mon025_301,MON025_007) pay on policy.INS_MST_ID = pay.MON025_002 AND pay.mon025_108 in ('S01','S02')
INNER JOIN (select MON024_002,MON024_301,MON024_302,sum(MON024_404) as incommission from MON024 group by MON024_002 ,MON024_301) receive on policy.INS_MST_ID = receive.MON024_002
inner join spc002 dept on dept.SPC_BUS_ID = pay.MON025_005
inner join spc001 branch on branch.SPC_AREA_ID = dept.FK_AREA_ID
inner join spc004 divl on divl.SPC_DIV_ID = pay.MON025_006
inner join sal001 practitioner on practitioner.SAL_MST_ID = pay.MON025_007
inner join sra008 title on title.SRA_RRR_ID = pay.MON025_008
where policy.INS_MST_ID = receive.MON024_002
<if test="isStatement == 0">
<choose>
<when test="type == 1">
<if test="inCommissionTime != null">
and receive.mon024_302 = #{inCommissionTime,jdbcType=VARCHAR}
</if>
<if test="outCommissionTime != null">
and pay.MON025_302 = #{outCommissionTime,jdbcType=VARCHAR}
</if>
</when>
<otherwise>
<if test="inCommissionTime != null">
and receive.mon024_301 = #{inCommissionTime,jdbcType=VARCHAR}
</if>
<if test="outCommissionTime != null">
and pay.MON025_301 = #{outCommissionTime,jdbcType=VARCHAR}
</if>
</otherwise>
</choose>
<choose>
<when test="subordinateId != null">
and pay.MON025_006 = #{subordinateId,jdbcType=VARCHAR}
</when>
<when test="deptId != null ">
and pay.MON025_005 = #{deptId,jdbcType=VARCHAR}
</when>
<otherwise>
and branch.SPC_AREA_ID = #{insurerBranchId,jdbcType=VARCHAR}
</otherwise>
</choose>
</if>
order by policy.INS_MST_ACCEPT_DATE asc
</select>
</mapper>
\ No newline at end of file
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