Contract-Manage/ruoyi-system/src/main/java/com/ruoyi/contract/controller/ConSaleController.java

808 lines
36 KiB
Java
Raw Normal View History

2025-10-16 14:56:09 +08:00
package com.ruoyi.contract.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.EasyExcel;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditExpendGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.MathCompute;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.contract.domain.bo.*;
import com.ruoyi.contract.domain.bo.consale.*;
import com.ruoyi.contract.domain.vo.*;
import com.ruoyi.contract.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
/**
* 销售合同信息
*
* @author jiangjuneli
* @date 2024-06-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/contract/sale" )
public class ConSaleController extends BaseController {
private final IConSaleService iConSaleService;
private final IConMediaDeptService iConMediaDeptService;
private final IConClientService iConClientService;
private final IConCityService iConCityService;
private final IConFirstService iConFirstService;
private final IConMediaTypeService iConMediaTypeService;
/**
* 查询销售合同信息列表
*/
// @SaCheckPermission("contract:sale:list")
@GetMapping("/list" )
public TableDataInfo<ConSaleVo> list(ConSaleBoExtend bo, PageQuery pageQuery) {
return iConSaleService.queryPageList(bo, pageQuery);
}
/**
* 获取销售合同信息详细信息
*
* @param id 主键
*/
// @SaCheckPermission("contract:sale:query")
@GetMapping("/{id}" )
public R<ConSaleVo> getInfo(@NotNull(message = "主键不能为空" )
@PathVariable Long id) {
return R.ok(iConSaleService.queryById(id));
}
/**
* 新增销售合同信息
*/
// @SaCheckPermission("contract:sale:add")
@Log(title = "销售合同信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ConSaleBoCopy boCopy) {
ConSaleBo bo = BeanUtil.toBean(boCopy, ConSaleBo.class);
if (CollUtil.isNotEmpty(boCopy.getConSaleCollectBoList())) {
//回款
List<ConSaleCollectBo> conSaleCollectBoList = boCopy.getConSaleCollectBoList().stream().map(item -> {
ConSaleCollectBo conSaleCollectBo = BeanUtil.toBean(item, ConSaleCollectBo.class);
return conSaleCollectBo;
}).collect(Collectors.toList());
bo.setConSaleCollectBoList(conSaleCollectBoList);
}
if (CollUtil.isNotEmpty(boCopy.getConSaleMediaBoList())) {
List<ConSaleMediaBo> collect = boCopy.getConSaleMediaBoList().stream().map(item -> {
ConSaleMediaBo conSaleMediaBo = BeanUtil.toBean(item, ConSaleMediaBo.class);
return conSaleMediaBo;
}).collect(Collectors.toList());
bo.setConSaleMediaBoList(collect);
}
return toAjax(iConSaleService.insertByBo(bo));
}
/**
* 修改销售合同信息
*/
// @SaCheckPermission("contract:sale:edit")
@Log(title = "销售合同信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditExpendGroup.class) @RequestBody ConSaleBo bo) throws IllegalAccessException {
return toAjax(iConSaleService.updateByBo(bo));
}
/**
* 废除销售合同信息
*/
// @SaCheckPermission("contract:sale:edit")
@Log(title = "销售合同废除", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/editAblish/{id}" )
public R<Void> editAbolish(@NotNull(message = "主键不能为空" )
@PathVariable Long id) {
return toAjax(iConSaleService.updateAblish(id));
}
/**
* 恢复销售合同信息
*/
// @SaCheckPermission("contract:sale:edit")
@Log(title = "销售合同废除", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@GetMapping("/editRenew/{id}" )
public R<Void> editRenew(@NotNull(message = "主键不能为空" )
@PathVariable Long id) {
return toAjax(iConSaleService.updateRenew(id));
}
/**
* 删除销售合同信息
*
* @param ids 主键串
*/
// @SaCheckPermission("contract:sale:remove")
@Log(title = "销售合同信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}" )
public R<Void> remove(@NotEmpty(message = "主键不能为空" )
@PathVariable Long[] ids) {
return toAjax(iConSaleService.deleteWithValidByIds(Arrays.asList(ids), true));
}
/**
* 动态列表导出其他合同信息列表
*/
// @SaCheckPermission("contract:other:export")
@Log(title = "其他合同信息", businessType = BusinessType.EXPORT)
@PostMapping("/dynamicexport" )
public void dynamicexport(@RequestBody ConSaleExcelSearch map, HttpServletResponse response) {
String fieldName = map.getFieldName();
String mediaFieldName = "";
String collectFieldName = "";
if (StringUtils.isNotBlank(fieldName)) {
mediaFieldName = map.getMediaFieldName();
collectFieldName = map.getCollectFieldName();
} else {
throw new ServiceException("主表字段属性不可不填写" );
}
String ids = map.getIds();
if (StringUtils.isNotBlank(ids)) {
String[] split = ids.split("," );
List<String> collect = new ArrayList<>(Arrays.asList(split))
.stream()
.filter(ObjectUtil::isNotNull)
.collect(Collectors.toList());
ids = String.join(",", collect);
}
iConSaleService.dynamicexportUpgrade(fieldName, mediaFieldName, collectFieldName, ids, response);
}
/**
* 获取列表汇总数据
*/
// @SaCheckPermission("contract:sale:list")
@Log(title = "销售汇总", businessType = BusinessType.EXPORT)
@PostMapping("/getSaleTatol" )
public R<ConSaleTotalVo> getSaleTatol(@RequestBody ConSaleBoExtend conSaleBoExtend) {
return R.ok(iConSaleService.getSaleTatol(conSaleBoExtend));
}
@Log(title = "销售汇总导入", businessType = BusinessType.IMPORT)
@PostMapping("/import" )
public R<List<ConSaleImportVo>> importExcel(MultipartFile file) {
// 获取上传的文件输入流
try (InputStream inputStream = file.getInputStream()) {
// 使用 EasyExcel 解析 Excel 文件,并将数据转换为 ExcelRowData 实体类对象
List<ConSaleImportVo> data = EasyExcel.read(inputStream)
.head(ConSaleImportVo.class) // 指定 Excel 对应的实体类
.sheet(0) // 指定解析第一个 sheet
.doReadSync(); // 同步读取文件
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/M/d" );
List<ConSaleImportVo> filteredData = data.stream()
.filter(conSaleImportVo -> conSaleImportVo.getOrderCode() != null)
.collect(Collectors.toList());
if (CollUtil.isEmpty(filteredData)){
return R.fail("导入没有数据");
}
//处理排序问题
List<String> orderCodeList = new ArrayList<>();
filteredData.stream().forEach(item -> {
if (!orderCodeList.contains(item.getOrderCode())){
orderCodeList.add(item.getOrderCode());
}
});
//之后将顺序翻转过来
Map<String, List<ConSaleImportVo>> conSaleImportMap = filteredData.stream().collect(Collectors.groupingBy(ConSaleImportVo::getOrderCode));
List<ConSaleImportVo> failList= new ArrayList<>();
//数据合并
List<ConSaleBo> conSaleBoList = new ArrayList<>();
orderCodeList.forEach(item -> {
String projectCodeKey = item;
List<ConSaleImportVo> salesList = conSaleImportMap.get(projectCodeKey);
if (CollectionUtils.isEmpty(salesList)) {
return;
}
ConSaleImportVo datum = salesList.get(0);
datum.setStatus("1" );
ConSaleBo conSaleBo = new ConSaleBo();
String projectExecutor = datum.getProjectExecutor();
if (org.apache.commons.lang3.StringUtils.isBlank(projectExecutor)) {
datum.setStatus("0" );
datum.setNotes("项目执行人未填写" );
return;
}
//项目执行人
conSaleBo.setProjExecutor(projectExecutor);
String department = datum.getDepartment();
if (org.apache.commons.lang3.StringUtils.isBlank(department)) {
}else {
ConMediaDeptBo conMediaDeptBo = new ConMediaDeptBo();
conMediaDeptBo.setMediaDeptName(department);
List<ConMediaDeptVo> conMediaDeptVos = iConMediaDeptService.queryList(conMediaDeptBo);
if (CollectionUtils.isEmpty(conMediaDeptVos)) {
datum.setStatus("0" );
datum.setNotes("未查到部门信息" );
return;
}
ConMediaDeptVo conMediaDeptVo = conMediaDeptVos.get(0);
//部门
conSaleBo.setMediaDeptName(conMediaDeptVo.getMediaDeptName());
conSaleBo.setMediaDeptId(conMediaDeptVo.getId());
}
//项目编号
String projectCode = datum.getProjectCode();
if (org.apache.commons.lang3.StringUtils.isBlank(projectCode)) {
datum.setStatus("0" );
datum.setNotes("项目编号未填写" );
return;
}
conSaleBo.setContractNumber(projectCode);
//订单编号
String orderCode = datum.getOrderCode();
if (org.apache.commons.lang3.StringUtils.isBlank(orderCode)) {
datum.setStatus("0" );
datum.setNotes("订单编号未填写" );
return;
}
conSaleBo.setProjNumber(orderCode);
//项目名称
String projectName = datum.getProjectName();
if (org.apache.commons.lang3.StringUtils.isBlank(projectName)) {
datum.setStatus("0" );
datum.setNotes("项目名称未填写" );
return;
}
conSaleBo.setProjName(projectName);
//客户名称
String clientName = datum.getClientName();
if (org.apache.commons.lang3.StringUtils.isBlank(clientName)) {
datum.setStatus("0" );
datum.setNotes("客户名称未填写" );
return;
}
ConClientBo conClientBo = new ConClientBo();
conClientBo.setClientName(clientName);
List<ConClientVo> conClientVoList = iConClientService.queryList(conClientBo);
if (CollectionUtils.isEmpty(conClientVoList)) {
datum.setStatus("0" );
datum.setNotes("未查到客户名称" );
return;
}
ConClientVo conClientVo = conClientVoList.get(0);
conSaleBo.setClientId(conClientVo.getId());
conSaleBo.setClientName(conClientVo.getClientName());
//合同签订日期
String contractSignDate = datum.getContractSignDate();
if (org.apache.commons.lang3.StringUtils.isBlank(contractSignDate)) {
datum.setStatus("0" );
datum.setNotes("合同签订日期未填写" );
return;
}
try {
Date date = sdf.parse(contractSignDate);
conSaleBo.setSignTime(date);
} catch (ParseException e) {
datum.setStatus("0" );
datum.setNotes("合同签订日期格式错误,正确格式yyyy/M/d" );
return;
}
//实际开票日期
String actualInvoiceDate = datum.getActualInvoiceDate();
if (org.apache.commons.lang3.StringUtils.isBlank(actualInvoiceDate)) {
}else {
try {
Date date = sdf.parse(actualInvoiceDate);
conSaleBo.setBillingTime(date);
} catch (ParseException e) {
datum.setStatus("0" );
datum.setNotes("实际开票日期格式错误,正确格式yyyy/M/d" );
return;
}
}
//补充说明
// String additionalNotes = datum.getAdditionalNotes();
// if (org.apache.commons.lang3.StringUtils.isBlank(additionalNotes)) {
// datum.setStatus("0" );
// datum.setNotes("补充说明未填写" );
// return;
// }
// conSaleBo.setSupple(additionalNotes);
//甲方
String partyA = datum.getPartyA();
if (org.apache.commons.lang3.StringUtils.isBlank(partyA)) {
datum.setStatus("0" );
datum.setNotes("甲方未填写" );
return;
}
ConFirstBo conFirstBo = new ConFirstBo();
conFirstBo.setFirstName(partyA);
List<ConFirstVo> conFirstVoList = iConFirstService.queryList(conFirstBo);
if (CollectionUtils.isEmpty(conFirstVoList)) {
datum.setStatus("0" );
datum.setNotes("未查到甲方信息" );
return;
}
ConFirstVo conFirstVo = conFirstVoList.get(0);
conSaleBo.setFirstId(conFirstVo.getId());
conSaleBo.setFirstName(conFirstVo.getFirstName());
//乙方
String partyB = datum.getPartyB();
if (org.apache.commons.lang3.StringUtils.isBlank(partyB)) {
datum.setStatus("0" );
datum.setNotes("乙方未填写" );
return;
}
conSaleBo.setSecondName(partyB);
List<ConSaleMediaBo> conSaleMediaBoList = new ArrayList<>();
for (ConSaleImportVo conSaleImportVo : salesList) {
conSaleImportVo.setStatus("1" );
ConSaleMediaBo conSaleMediaBo = new ConSaleMediaBo();
//城市
String city = conSaleImportVo.getCity();
if (org.apache.commons.lang3.StringUtils.isBlank(city)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("城市未填写" );
return;
}
ConCityBo conCityBo = new ConCityBo();
conCityBo.setCityName(city+",全城");
ConCityVo conCityVos = iConCityService.queryOneByWholeName(conCityBo);
if (ObjectUtil.isNull(conCityVos)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("未查到城市" );
return;
}
ConCityVo conCityVo = conCityVos;
conSaleMediaBo.setCityId(conCityVo.getId());
conSaleMediaBo.setCityName(conCityVo.getCityName());
//赋予数组值
String s = iConCityService.selectTreeIds(conCityVo.getId());
conSaleMediaBo.setCityIds(s);
//上刊时间
String publishStartDate = conSaleImportVo.getPublishStartDate();
if (org.apache.commons.lang3.StringUtils.isBlank(publishStartDate)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("上刊时间未填写" );
return;
}
try {
Date date = sdf.parse(publishStartDate);
conSaleMediaBo.setUpTime(date);
} catch (ParseException e) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("上刊时间格式错误,正确格式yyyy/M/d" );
return;
}
//下刊时间
String publishEndDate = conSaleImportVo.getPublishEndDate();
if (org.apache.commons.lang3.StringUtils.isBlank(publishEndDate)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("下刊时间未填写" );
return;
}
try {
Date date = sdf.parse(publishEndDate);
conSaleMediaBo.setDownTime(date);
} catch (ParseException e) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("下刊时间格式错误,正确格式yyyy/M/d" );
return;
}
//媒体类型
String mediaType = conSaleImportVo.getMediaType();
if (org.apache.commons.lang3.StringUtils.isBlank(mediaType)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("媒体类型未填写" );
return;
}
ConMediaTypeBo conMediaTypeBo = new ConMediaTypeBo();
conMediaTypeBo.setMediaType(mediaType);
List<ConMediaTypeVo> conMediaTypeVos = iConMediaTypeService.queryList(conMediaTypeBo);
if (CollectionUtils.isEmpty(conMediaTypeVos)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("未查到媒体类型" );
return;
}
ConMediaTypeVo conMediaTypeVo = conMediaTypeVos.get(0);
conSaleMediaBo.setMediaId(conMediaTypeVo.getId());
conSaleMediaBo.setMediaName(conMediaTypeVo.getMediaType());
//媒体位置
String mediaPosition = conSaleImportVo.getMediaPosition();
if (org.apache.commons.lang3.StringUtils.isBlank(mediaPosition)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("媒体位置未填写" );
return;
}
conSaleMediaBo.setMediaPosition(mediaPosition);
//数量
String quantity = conSaleImportVo.getQuantity();
if (org.apache.commons.lang3.StringUtils.isBlank(quantity)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("数量未填写" );
return;
}
if(quantity.equals("#VALUE!")){
quantity = "0";
}
quantity = quantity.replaceAll(",","");
try {
// double value = Double.parseDouble(quantity);
// conSaleMediaBo.setAccountNumber(value);
conSaleMediaBo.setAccountNumber(MathCompute.formatFourStringToDouble(quantity));
} catch (Exception ex) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("数量填写错误" );
return;
}
//频次
String frequency = conSaleImportVo.getFrequency();
if (org.apache.commons.lang3.StringUtils.isBlank(frequency)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("频次未填写" );
return;
}
conSaleMediaBo.setReleaseFrequency(frequency);
//刊例价
String listPrice = conSaleImportVo.getListPrice();
if (org.apache.commons.lang3.StringUtils.isBlank(listPrice)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("刊例价未填写" );
return;
}
if(listPrice.equals("#VALUE!")){
listPrice = "0";
}
listPrice = listPrice.replaceAll(",","");
try {
// double value = Double.parseDouble(listPrice);
// conSaleMediaBo.setPrintPrice(value);
conSaleMediaBo.setPrintPrice(MathCompute.formatFourStringToDouble(listPrice));
} catch (Exception ex) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("刊例价填写错误" );
return;
}
//刊例单位
String listPriceUnit = conSaleImportVo.getListPriceUnit();
if (org.apache.commons.lang3.StringUtils.isBlank(listPriceUnit)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("刊例单位未填写" );
return;
}
conSaleMediaBo.setPrintPriceUnit(listPriceUnit);
//折扣
String discount = conSaleImportVo.getDiscount();
if (org.apache.commons.lang3.StringUtils.isBlank(discount)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("折扣未填写" );
return;
}
conSaleMediaBo.setDiscount(discount);
//媒体费
String mediaCost = conSaleImportVo.getMediaCost();
if (org.apache.commons.lang3.StringUtils.isBlank(mediaCost)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("媒体费未填写" );
return;
}
if(mediaCost.equals("#VALUE!")){
mediaCost = "0";
}
mediaCost = mediaCost.replaceAll(",","");
try {
// double value = Double.parseDouble(mediaCost);
// conSaleMediaBo.setMediaFee(value);
conSaleMediaBo.setMediaFee(MathCompute.formatFourStringToDouble(mediaCost));
} catch (Exception ex) {
conSaleMediaBo.setMediaFee(0.0);
}
//制作费
String productionCost = conSaleImportVo.getProductionCost();
if (org.apache.commons.lang3.StringUtils.isBlank(productionCost)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("制作费未填写" );
return;
}
if(productionCost.equals("#VALUE!")){
productionCost = "0";
}
productionCost = productionCost.replaceAll(",","");
try {
// double value = Double.parseDouble(productionCost);
// conSaleMediaBo.setProductFee(value);
conSaleMediaBo.setProductFee(MathCompute.formatFourStringToDouble(productionCost));
} catch (Exception ex) {
conSaleMediaBo.setProductFee(0.0);
}
//是否比稿
String isBid = conSaleImportVo.getIsBid();
if (org.apache.commons.lang3.StringUtils.isBlank(isBid)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("是否比稿未填写" );
return;
}
if ("".equals(isBid)) {
conSaleMediaBo.setCompet("1" );
} else {
conSaleMediaBo.setCompet("2" );
}
//比稿返点
String bidRebate = conSaleImportVo.getBidRebate();
if (org.apache.commons.lang3.StringUtils.isBlank(bidRebate)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("比稿返点未填写" );
return;
}
conSaleMediaBo.setCompetReverPoit(bidRebate);
//比稿金额
String bidAmount = conSaleImportVo.getBidAmount();
if (org.apache.commons.lang3.StringUtils.isBlank(bidAmount)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("比稿金额未填写" );
return;
}
if(bidAmount.equals("#VALUE!")){
bidAmount = "0";
}
bidAmount = bidAmount.replace("","").replaceAll(",","");;
try {
// double value = Double.parseDouble(bidAmount);
// conSaleMediaBo.setCompetReverMoney(value);
conSaleMediaBo.setCompetReverMoney(MathCompute.formatFourStringToDouble(bidAmount));
} catch (Exception ex) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("比稿金额填写错误" );
return;
}
//YK给群邑返点比例
String ykToQunYiRebateRate = conSaleImportVo.getYkToQunYiRebateRate();
if (org.apache.commons.lang3.StringUtils.isBlank(ykToQunYiRebateRate)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("YK给群邑返点比例未填写" );
return;
}
//优客返点给群邑
String yuKeRebateToQunYi = conSaleImportVo.getYuKeRebateToQunYi();
if (org.apache.commons.lang3.StringUtils.isBlank(yuKeRebateToQunYi)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("优客返点给群邑未填写" );
return;
}
//YK给YYX返点比例
String ykToYYXRebateRate = conSaleImportVo.getYkToYYXRebateRate();
if (org.apache.commons.lang3.StringUtils.isBlank(ykToYYXRebateRate)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("YK给YYX返点比例未填写" );
return;
}
//优客返点给YYX
String yuKeRebateToYYX = conSaleImportVo.getYuKeRebateToYYX();
if (org.apache.commons.lang3.StringUtils.isBlank(yuKeRebateToYYX)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("优客返点给YYX未填写" );
return;
}
String ykToQunYiRebateRateReplace = ykToQunYiRebateRate.replace("%", "" );
String ykToYYXRebateRateReplace = ykToYYXRebateRate.replace("%", "" );
//其他返点
double otherRebates = 0;
//其他返点金额
double otherRebateAmounts = 0;
try {
double ykToQunYiRebateRateDouble = Double.parseDouble(ykToQunYiRebateRateReplace);
double ykToYYXRebateRateDouble = Double.parseDouble(ykToYYXRebateRateReplace);
otherRebates = ykToQunYiRebateRateDouble + ykToYYXRebateRateDouble;
} catch (Exception ex) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("YK给群邑返点比例 or YK给YYX返点比例错误" );
return;
}
String yuKeRebateToQunYiReplace = yuKeRebateToQunYi.replace("", "" ).replaceAll(",","");
String yuKeRebateToYYXReplace = yuKeRebateToYYX.replace("", "" ).replaceAll(",","");
if(yuKeRebateToQunYiReplace.equals("#VALUE!")){
yuKeRebateToQunYiReplace = "0";
}
if(yuKeRebateToYYXReplace.equals("#VALUE!")){
yuKeRebateToYYXReplace = "0";
}
try {
double yuKeRebateToQunYiDouble = Double.parseDouble(yuKeRebateToQunYiReplace);
double yuKeRebateToYYXDouble = Double.parseDouble(yuKeRebateToYYXReplace);
otherRebateAmounts = yuKeRebateToQunYiDouble + yuKeRebateToYYXDouble;
} catch (Exception ex) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("优客返点给群邑 or 优客返点给YYX" );
return;
}
//补充说明 其实是媒体信息中的备注
String additionalNotes = conSaleImportVo.getAdditionalNotes();
conSaleMediaBo.setRemark(additionalNotes);
// conSaleMediaBo.setOtherReverPoit(String.valueOf(otherRebates).concat("%" ));
// conSaleMediaBo.setOtherReverMoney(otherRebateAmounts);
conSaleMediaBo.setOtherReverPoit(String.valueOf(MathCompute.formatFourDoubleToDouble(otherRebates)).concat("%" ));
conSaleMediaBo.setOtherReverMoney(MathCompute.formatFourDoubleToDouble(otherRebateAmounts));
conSaleMediaBoList.add(conSaleMediaBo);
}
conSaleBo.setConSaleMediaBoList(conSaleMediaBoList);
List<ConSaleCollectBo> conSaleCollectBoList = new ArrayList<>();
int size = 1;
for (ConSaleImportVo conSaleImportVo : salesList) {
ConSaleCollectBo conSaleCollectBo = new ConSaleCollectBo();
conSaleCollectBo.setTransactionsNumber("" + size + "" );
//每笔订单金额
String orderAmountPerTransaction = conSaleImportVo.getOrderAmountPerTransaction();
if (org.apache.commons.lang3.StringUtils.isBlank(orderAmountPerTransaction)) {
}else {
if(orderAmountPerTransaction.equals("#VALUE!")){
orderAmountPerTransaction = "0";
}
orderAmountPerTransaction = orderAmountPerTransaction.replace("","").replaceAll(",","");
try {
double value = Double.parseDouble(orderAmountPerTransaction);
// conSaleCollectBo.setActualArrivalMoney(value);
conSaleCollectBo.setConventionArrivalMoney(value);
} catch (Exception ex) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("每笔订单金额填写错误" );
return;
}
}
//约定回款日期
String agreedPaymentDate = conSaleImportVo.getAgreedPaymentDate();
if (org.apache.commons.lang3.StringUtils.isBlank(agreedPaymentDate)) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("约定回款日期未填写" );
return;
}
try {
Date date = sdf.parse(agreedPaymentDate);
conSaleCollectBo.setPayTime(date);
} catch (ParseException e) {
conSaleImportVo.setStatus("0" );
conSaleImportVo.setNotes("约定回款日期格式错误,正确格式yyyy/M/d" );
return;
}
//实际回款日期
String actualPaymentDate = conSaleImportVo.getActualPaymentDate();
if (org.apache.commons.lang3.StringUtils.isBlank(actualPaymentDate)) {
}else {
try {
Date date = sdf.parse(actualPaymentDate);
conSaleCollectBo.setArrivalTime(date);
} catch (ParseException e) {
conSaleImportVo.setStatus("0");
conSaleImportVo.setNotes("约定回款日期格式错误,正确格式yyyy/M/d");
return;
}
}
conSaleCollectBoList.add(conSaleCollectBo);
size++;
}
conSaleBo.setConSaleCollectBoList(conSaleCollectBoList);
conSaleBoList.add(conSaleBo);
});
AtomicBoolean flag = new AtomicBoolean(true);
conSaleImportMap.forEach((projectCodeKey, salesList) -> {
for (ConSaleImportVo conSaleImportVo : salesList) {
if (BigDecimal.ZERO.toString().equals(conSaleImportVo.getStatus())){
flag.set(false);
failList.add(conSaleImportVo);
}
}
});
if(flag.get()){
for (ConSaleBo conSaleBo : conSaleBoList) {
conSaleBo.setState("1");
iConSaleService.insertByBo(conSaleBo);
}
return R.ok();
}else{
return R.fail(failList);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}