Browse Source

销售车辆交付情况

master
dimengzhe 1 year ago
parent
commit
f0f8078da9
  1. 51
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportQuery.java
  2. 37
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportVo.java
  3. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleFeign.java
  4. 15
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleVo.java
  5. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.java
  6. 35
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.xml
  7. 30
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleRest.java
  8. 89
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleService.java
  9. 2
      anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppVo.java
  10. 3
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java

51
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportQuery.java

@ -0,0 +1,51 @@
package com.yxt.anrui.buscenter.api.bussalesvehicle;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/12/12
**/
@Data
public class BusSalesVehicleExportQuery implements Query {
private static final long serialVersionUID = -9105608970592213423L;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("业务员")
private String staffName;
@ApiModelProperty("客户")
private String customerName;
@ApiModelProperty("合同号")
private String contractNo;
@ApiModelProperty("销售类型")
private String saleType;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("车型")
private String modelName;
@ApiModelProperty("销售日期开始")
private String saleDateStart;
@ApiModelProperty("销售日期结束")
private String saleDateEnd;
@ApiModelProperty("交付状态")
private String handoverState;
@ApiModelProperty("交付日期开始")
private String handoverDateStart;
@ApiModelProperty("交付日期结束")
private String handoverDateEnd;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("机构全路径sid")
private String orgPath;
private String menuUrl;
}

37
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleExportVo.java

@ -0,0 +1,37 @@
package com.yxt.anrui.buscenter.api.bussalesvehicle;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2023/12/12
**/
@Data
public class BusSalesVehicleExportVo {
@ApiModelProperty("分公司")
private String useOrgName;
@ApiModelProperty("部门")
private String deptName;
@ApiModelProperty("销售专员")
private String staffName;
@ApiModelProperty("客户")
private String customerName;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("车型")
private String modelName;
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("销售类型")
private String saleType;
@ApiModelProperty("销售日期")
private String saleDate;
@ApiModelProperty("交付状态")
private String handoverState;
@ApiModelProperty("交付日期")
private String handoverDate;
}

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleFeign.java

@ -25,4 +25,7 @@ public interface BusSalesVehicleFeign {
@PostMapping("/listPage")
public ResultBean<PagerVo<BusSalesVehicleVo>> listPage(@RequestBody PagerQuery<BusSalesVehicleQuery> pq);
@PostMapping("/exportExcel")
@ApiOperation(value = "经销商列表导出(已测试)")
public void exportExcel(@RequestBody BusSalesVehicleExportQuery query);
}

15
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicle/BusSalesVehicleVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.buscenter.api.bussalesvehicle;
import com.yxt.common.core.utils.ExportEntityMap;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -11,27 +12,41 @@ import lombok.Data;
@Data
public class BusSalesVehicleVo {
@ExportEntityMap(CnName = "序号", EnName = "rankNo")
private Integer rankNo;
@ApiModelProperty("分公司")
@ExportEntityMap(CnName = "分公司", EnName = "useOrgName")
private String useOrgName;
@ApiModelProperty("部门")
@ExportEntityMap(CnName = "部门", EnName = "deptName")
private String deptName;
@ApiModelProperty("销售专员")
@ExportEntityMap(CnName = "销售专员", EnName = "staffName")
private String staffName;
@ApiModelProperty("客户")
@ExportEntityMap(CnName = "客户", EnName = "customerName")
private String customerName;
@ApiModelProperty("合同编号")
@ExportEntityMap(CnName = "合同编号", EnName = "contractNo")
private String contractNo;
@ApiModelProperty("车型")
@ExportEntityMap(CnName = "车型", EnName = "modelName")
private String modelName;
@ApiModelProperty("车架号")
@ExportEntityMap(CnName = "车架号", EnName = "vinNo")
private String vinNo;
@ApiModelProperty("销售类型")
@ExportEntityMap(CnName = "销售类型", EnName = "saleType")
private String saleType;
@ApiModelProperty("销售日期")
@ExportEntityMap(CnName = "销售日期", EnName = "saleDate")
private String saleDate;
@ApiModelProperty("交付状态")
@ExportEntityMap(CnName = "交付状态", EnName = "handoverState")
private String handoverState;
@ApiModelProperty("交付日期")
@ExportEntityMap(CnName = "交付日期", EnName = "handoverDate")
private String handoverDate;
}

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.java

@ -3,10 +3,13 @@ package com.yxt.anrui.buscenter.biz.bussalesvehicle;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportVo;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -14,5 +17,7 @@ import org.apache.ibatis.annotations.Param;
**/
@Mapper
public interface BusSalesVehicleMapper {
IPage<BusSalesVehicleVo> selectPageVo(IPage<BusSalesVehicleVo> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesVehicleVo> qw,@Param("state")String state);
IPage<BusSalesVehicleVo> selectPageVo(IPage<BusSalesVehicleVo> page, @Param(Constants.WRAPPER) QueryWrapper<BusSalesVehicleVo> qw, @Param("state") String state);
List<BusSalesVehicleExportVo> exportList(@Param(Constants.WRAPPER) QueryWrapper<BusSalesVehicleExportVo> qw, @Param("state") String handoverState);
}

35
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleMapper.xml

@ -35,4 +35,39 @@
</where>
order by bv.useOrgName desc,bvoa.orgName desc,bvoa.staffName desc,bvoa.customerName desc,bvoa.contractNo desc
</select>
<select id="exportList" resultType="com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportVo">
select bv.useOrgName,
bvoa.orgName deptName,
bvoa.staffName,
bvoa.customerName,
bvoa.contractNo,
bv.modelName,
bv.vinNo,
bvoa.saleTypeValue saleType,
bvoa.saleDate,
if(length(bh.closingDate) > 0, '已交付', '未交付') as handoverState,
bh.closingDate as handoverDate
from anrui_base.base_vehicle_out bvo
left join anrui_base.base_vehicle_out_apply bvoa on bvoa.sid = bvo.mainSid
left join anrui_base.base_vehicle bv on bvo.vinSid = bv.sid
left join anrui_buscenter.bus_handover_items bi on bi.vinSid = bv.sid
left join anrui_buscenter.bus_handover bh on bh.sid = bi.handoverSid
<where>
${ew.sqlSegment}
and length(bv.salesDate) > 0
<if test="state != null and state != ''">
<if test="state == '已交付'">
and length(bh.closingDate)
>0
</if>
<if test="state == '未交付'">
and (bh.closingDate is null
or bh.closingDate = '')
</if>
</if>
</where>
order by bv.useOrgName desc,bvoa.orgName desc,bvoa.staffName desc,bvoa.customerName desc,bvoa.contractNo desc
</select>
</mapper>

30
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleRest.java

@ -1,8 +1,8 @@
package com.yxt.anrui.buscenter.biz.bussalesvehicle;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleFeign;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleQuery;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleVo;
import com.yxt.anrui.base.api.basedistributor.BaseDistributorExportVo;
import com.yxt.anrui.buscenter.api.bussalesvehicle.*;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -10,6 +10,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -22,10 +27,29 @@ public class BusSalesVehicleRest implements BusSalesVehicleFeign {
@Autowired
private BusSalesVehicleService busSalesVehicleService;
@Autowired
private HttpServletResponse response;
@Override
public ResultBean<PagerVo<BusSalesVehicleVo>> listPage(PagerQuery<BusSalesVehicleQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<BusSalesVehicleVo> pv = busSalesVehicleService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
public void exportExcel(BusSalesVehicleExportQuery query) {
//得到所有要导出的数据
List<BusSalesVehicleExportVo> exportVoList = busSalesVehicleService.listExcel(query);
//定义导出的excel名字
String excelName = "销售车辆交付情况";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, BusSalesVehicleExportVo.class, response);
}
}

89
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesvehicle/BusSalesVehicleService.java

@ -6,6 +6,8 @@ import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApply;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyQuery;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportQuery;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleExportVo;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleQuery;
import com.yxt.anrui.buscenter.api.bussalesvehicle.BusSalesVehicleVo;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
@ -18,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -116,8 +119,92 @@ public class BusSalesVehicleService {
}
}
IPage<BusSalesVehicleVo> page = PagerUtil.queryToPage(pq);
IPage<BusSalesVehicleVo> pagging = baseMapper.selectPageVo(page, qw,query.getHandoverState());
IPage<BusSalesVehicleVo> pagging = baseMapper.selectPageVo(page, qw, query.getHandoverState());
PagerVo<BusSalesVehicleVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<BusSalesVehicleExportVo> listExcel(BusSalesVehicleExportQuery query) {
QueryWrapper<BusSalesVehicleExportVo> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("bv.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("bvoa.orgName", query.getDeptName());
}
if (StringUtils.isNotBlank(query.getStaffName())) {
qw.like("bvoa.staffName", query.getStaffName());
}
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("bvoa.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getContractNo())) {
qw.like("bvoa.contractNo", query.getContractNo());
}
if (StringUtils.isNotBlank(query.getSaleType())) {
qw.like("bvoa.saleTypeValue", query.getSaleType());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("bv.vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getModelName())) {
qw.like("bv.modelName", query.getModelName());
}
qw.apply(StringUtils.isNotBlank(query.getSaleDateStart()), "date_format (bvoa.saleDate,'%Y-%m-%d') >= date_format('" + query.getSaleDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getSaleDateEnd()), "date_format (bvoa.saleDate,'%Y-%m-%d') <= date_format('" + query.getSaleDateEnd() + "','%Y-%m-%d')"
);
qw.apply(StringUtils.isNotBlank(query.getHandoverDateStart()), "date_format (bh.closingDate,'%Y-%m-%d') >= date_format('" + query.getHandoverDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getHandoverDateEnd()), "date_format (bh.closingDate,'%Y-%m-%d') <= date_format('" + query.getHandoverDateEnd() + "','%Y-%m-%d')"
);
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("bv.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("bvoa.createBySid", query.getUserSid());
} else {
List<BusSalesVehicleExportVo> list = new ArrayList<>();
return list;
}
} else {
List<BusSalesVehicleExportVo> list = new ArrayList<>();
return list;
}
} else {
List<BusSalesVehicleExportVo> list = new ArrayList<>();
return list;
}
}
List<BusSalesVehicleExportVo> exportVoList = baseMapper.exportList(qw, query.getHandoverState());
exportVoList.removeAll(Collections.singleton(null));
return exportVoList;
}
}

2
anrui-reportcenter/anrui-reportcenter-api/src/main/java/com/yxt/anrui/reportcenter/api/dailyreport/DailyReportAppVo.java

@ -13,6 +13,8 @@ import java.util.List;
**/
@Data
public class DailyReportAppVo {
private String title;
@ApiModelProperty("品牌")
private List<BrandVo> row1 = new ArrayList<>();
@ApiModelProperty("燃料")

3
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java

@ -576,6 +576,7 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
public ResultBean<DailyReportAppVo> list2(String date) {
ResultBean<DailyReportAppVo> rb = ResultBean.fireFail();
DailyReportAppVo dailyReportAppVo = new DailyReportAppVo();
dailyReportAppVo.setTitle("集团(事业部)"+date+"日报");
List<BrandVo> rows1 = baseMapper.list2(date);
rows1.removeAll(Collections.singleton(null));
dailyReportAppVo.setRow1(rows1);
@ -818,6 +819,7 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
ResultBean<DailyReportAppVo> rb = ResultBean.fireFail();
DailyReportAppVo dailyReportAppVo = new DailyReportAppVo();
List<BrandVo> rows1 = baseMapper.list3(date, busOrgSid);
dailyReportAppVo.setTitle("事业部(分公司)"+date+"日报");
rows1.removeAll(Collections.singleton(null));
dailyReportAppVo.setRow1(rows1);
List<DailyReportVo> dailyReportVoList = baseMapper.selectReport3(date, busOrgSid);
@ -1058,6 +1060,7 @@ public class DailyReportService extends MybatisBaseService<DailyReportMapper, Da
public ResultBean<DailyReportAppVo> list4(String date, String useOrgSid) {
ResultBean<DailyReportAppVo> rb = ResultBean.fireFail();
DailyReportAppVo dailyReportAppVo = new DailyReportAppVo();
dailyReportAppVo.setTitle("分公司"+date+"日报")
List<BrandVo> rows1 = baseMapper.selectByBrand2(useOrgSid, date);
rows1.removeAll(Collections.singleton(null));
dailyReportAppVo.setRow1(rows1);

Loading…
Cancel
Save