|
|
@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.sun.org.apache.regexp.internal.RE; |
|
|
|
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; |
|
|
|
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|
|
|
import com.yxt.anrui.scm.api.scmspecialrebate.*; |
|
|
@ -74,6 +75,8 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
HttpServletResponse response; |
|
|
|
@Autowired |
|
|
|
private DictCommonFeign dictCommonFeign; |
|
|
|
@Autowired |
|
|
|
private SysStaffOrgFeign sysStaffOrgFeign; |
|
|
|
|
|
|
|
public PagerVo<ScmSpecialRebateVo> listPageVo(PagerQuery<ScmSpecialRebateQuery> pq) { |
|
|
|
ScmSpecialRebateQuery query = pq.getParams(); |
|
|
@ -152,25 +155,24 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String dtoSid = dto.getSid(); |
|
|
|
QueryWrapper<ScmSpecialRebate> qw = new QueryWrapper<>(); |
|
|
|
qw.eq("createOrgSid",dto.getCreateOrgSid()); |
|
|
|
qw.like("createTime",DateUtil.formatDate(new Date())); |
|
|
|
qw.eq("rebateTypeKey",dto.getRebateTypeKey()); |
|
|
|
qw.eq("rebateName",dto.getRebateName()); |
|
|
|
qw.eq("estimateRebate",dto.getEstimateRebate()); |
|
|
|
qw.eq("palceGenDate",dto.getPalceGenDate()); |
|
|
|
qw.eq("purchaseSystemSid",dto.getPurchaseSystemSid()); |
|
|
|
qw.eq("brandSid",dto.getBrandSid()); |
|
|
|
qw.eq("createOrgSid", dto.getCreateOrgSid()); |
|
|
|
qw.eq("rebateTypeKey", dto.getRebateTypeKey()); |
|
|
|
qw.eq("rebateName", dto.getRebateName()); |
|
|
|
qw.eq("estimateRebate", dto.getEstimateRebate()); |
|
|
|
qw.eq("palceGenDate", dto.getPalceGenDate()); |
|
|
|
qw.eq("purchaseSystemSid", dto.getPurchaseSystemSid()); |
|
|
|
qw.eq("brandSid", dto.getBrandSid()); |
|
|
|
if (StringUtils.isBlank(dtoSid)) { |
|
|
|
int i = baseMapper.checkSave(qw); |
|
|
|
if (i > 0){ |
|
|
|
if (i > 0) { |
|
|
|
return rb.setMsg("返利信息已存在"); |
|
|
|
} |
|
|
|
this.insertByDto(dto); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
qw.ne("sid",dtoSid); |
|
|
|
qw.ne("sid", dtoSid); |
|
|
|
int i = baseMapper.checkSave(qw); |
|
|
|
if (i > 0){ |
|
|
|
if (i > 0) { |
|
|
|
return rb.setMsg("返利信息已存在"); |
|
|
|
} |
|
|
|
this.updateByDto(dto); |
|
|
@ -388,22 +390,26 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
ScmSpecialRebate scmSpecialRebate = fetchBySid(sid); |
|
|
|
ScmSpecialRebateDto scmSpecialRebateDto = new ScmSpecialRebateDto(); |
|
|
|
BeanUtil.copyProperties(scmSpecialRebate, scmSpecialRebateDto); |
|
|
|
scmSpecialRebateDto.setOnceItureCost(dto.getOnceItureCost()); |
|
|
|
scmSpecialRebateDto.setOnceTreatCost(dto.getOnceTreatCost()); |
|
|
|
scmSpecialRebateDto.setOnceSuppCost(dto.getOnceSuppCost()); |
|
|
|
scmSpecialRebateDto.setOnceSuppRemark(dto.getOnceSuppRemark()); |
|
|
|
scmSpecialRebateDto.setSecondItureCost(dto.getSecondItureCost()); |
|
|
|
scmSpecialRebateDto.setSecondTreatCost(dto.getSecondTreatCost()); |
|
|
|
scmSpecialRebateDto.setSecondSuppCost(dto.getSecondSuppCost()); |
|
|
|
scmSpecialRebateDto.setSecondSuppRemark(dto.getSecondSuppRemark()); |
|
|
|
scmSpecialRebateDto.setSecondaryUploadDate(dto.getSecondaryUploadDate()); |
|
|
|
scmSpecialRebateDto.setSecondaryUploadMoney(dto.getSecondaryUploadMoney()); |
|
|
|
scmSpecialRebateDto.setStayDetermineMoney(dto.getStayDetermineMoney()); |
|
|
|
int mon = Integer.parseInt(scmSpecialRebateDto.getMoney()); |
|
|
|
int cost = Integer.parseInt(dto.getCost()); |
|
|
|
String money = String.valueOf(mon + cost); |
|
|
|
scmSpecialRebateDto.setMoney(money); |
|
|
|
scmSpecialRebateDto.setStayDetermineMoney("0"); |
|
|
|
scmSpecialRebateDto.setAdjustmentRemarks(dto.getAdjustmentRemarks()); |
|
|
|
scmSpecialRebateDto.setAdjustmentMoney(dto.getAdjustmentMoney()); |
|
|
|
scmSpecialRebateDto.setIsAdjustment("是"); |
|
|
|
scmSpecialRebateDto.setAdjustmentState(1); |
|
|
|
updateBySid(scmSpecialRebateDto, sid); |
|
|
|
return rb.success().setMsg("调整成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public void updateWithholdingDateBySid(String sid) { |
|
|
|
baseMapper.updateWithholdingDateBySid(sid); |
|
|
|
public void updateWithholdingDateBySid(String sid, String withApply) { |
|
|
|
baseMapper.updateWithholdingDateBySid(sid, withApply); |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<ScmStayDisRebateVo> stayDisRebate(PagerQuery<ScmSpecialRebateQuery> pq) { |
|
|
@ -488,7 +494,7 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException { |
|
|
|
public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录
|
|
|
|
File tempFile = new File(temp); |
|
|
@ -513,22 +519,28 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
wb = new XSSFWorkbook(is); |
|
|
|
} |
|
|
|
Sheet sheet = wb.getSheetAt(0); |
|
|
|
SpecialRebateOneExcelInfo importReturn = getSheetValOne(sheet, resultCell, userSid); |
|
|
|
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); |
|
|
|
SpecialRebateOneExcelInfo importReturn = getSheetValOne(sheet, resultCell, createOrgSid); |
|
|
|
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { |
|
|
|
return rb.setMsg(importReturn.getCheckInfo()); |
|
|
|
} else { |
|
|
|
List<OneExcelInfo> infos = importReturn.getInfos(); |
|
|
|
for (OneExcelInfo info : infos) { |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(info.getCreateTime(), info.getRebateName(), info.getRebateTypeValue(), info.getEstimateRebate()); |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(info.getUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
String uploadDate = DateUtil.formatDate(javaDate); |
|
|
|
baseMapper.updateOneExcelInfo(uploadDate, info.getUploadMoney(), info.getStayDetermineMoney(), info.getOnceItureCost(), info.getAdjustmentRemarks(), scmSpecialRebateVo.getSid()); |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(createOrgSid, info.getRebateTypeValue(), info.getRebateName(), info.getEstimateRebate(), info.getPalceGenDate(), info.getPurchaseSystemName(), info.getBrandName()); |
|
|
|
String uploadDate = ""; |
|
|
|
if (isNumber(info.getUploadDate())) { |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(info.getUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
uploadDate = DateUtil.formatDate(javaDate); |
|
|
|
} else { |
|
|
|
uploadDate = info.getUploadDate(); |
|
|
|
} |
|
|
|
baseMapper.updateOneExcelInfo(uploadDate, info.getUploadMoney(), info.getStayDetermineMoney(), info.getOnceItureCost(), info.getOnceTreatCost(), info.getOnceSuppCost(), info.getOnceSuppRemark(), info.getAdjustmentRemarks(), info.getIsAdjustment(), info.getAdjustmentMoney(), info.getDiffAmount(), scmSpecialRebateVo.getSid()); |
|
|
|
} |
|
|
|
return rb.success().setMsg("成功导入数据,请点击确定按钮"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private SpecialRebateOneExcelInfo getSheetValOne(Sheet sheet, int[] resultCell, String userSid) { |
|
|
|
private SpecialRebateOneExcelInfo getSheetValOne(Sheet sheet, int[] resultCell, String createOrgSid) { |
|
|
|
SpecialRebateOneExcelInfo importReturn = new SpecialRebateOneExcelInfo(); |
|
|
|
List<OneExcelInfo> importVoList = new ArrayList<>(); |
|
|
|
Set<String> checkWord = new HashSet<>(); |
|
|
@ -553,37 +565,52 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
for (int j = 0; j < resultCell.length; j++) { |
|
|
|
if (i == resultCell[j]) { |
|
|
|
switch (i) { |
|
|
|
/*case 0: |
|
|
|
//importVo.set(temp);
|
|
|
|
break; |
|
|
|
case 0: |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
importVo.setPurchaseSystemName(temp); |
|
|
|
break; |
|
|
|
case 0: |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
break;*/ |
|
|
|
case 1: |
|
|
|
importVo.setRebateName(temp); |
|
|
|
importVo.setBrandName(temp); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
importVo.setRebateTypeValue(temp); |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
importVo.setEstimateRebate(temp); |
|
|
|
importVo.setRebateName(temp); |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
importVo.setUploadDate(temp); |
|
|
|
importVo.setRebateTypeValue(temp); |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
importVo.setUploadMoney(temp); |
|
|
|
importVo.setEstimateRebate(temp); |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
importVo.setStayDetermineMoney(temp); |
|
|
|
importVo.setExpectCost(temp); |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
//importVo.setMoney(temp);
|
|
|
|
importVo.setPalceGenDate(temp); |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
importVo.setUploadDate(temp); |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
importVo.setUploadMoney(temp); |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
importVo.setStayDetermineMoney(temp); |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
importVo.setOnceItureCost(temp); |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
importVo.setOnceTreatCost(temp); |
|
|
|
break; |
|
|
|
case 13: |
|
|
|
importVo.setOnceSuppCost(temp); |
|
|
|
break; |
|
|
|
case 14: |
|
|
|
importVo.setOnceSuppRemark(temp); |
|
|
|
break; |
|
|
|
case 15: |
|
|
|
importVo.setAdjustmentRemarks(temp); |
|
|
|
break; |
|
|
|
default: |
|
|
@ -598,30 +625,51 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
String word = new String(); |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
word = "创建日期"; |
|
|
|
word = "采购系统"; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
word = "返利名称"; |
|
|
|
word = "品牌"; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
word = "返利类型"; |
|
|
|
word = "创建日期"; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
word = "预提返利"; |
|
|
|
word = "返利名称"; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
word = "上传日期"; |
|
|
|
word = "返利类型"; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
word = "上传金额"; |
|
|
|
word = "预提返利"; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
word = "待确定金额"; |
|
|
|
word = "其中预提费用"; |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
word = "费用"; |
|
|
|
word = "所属年月"; |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
word = "上传日期"; |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
word = "上传金额"; |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
word = "待确定金额"; |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
word = "其中支出费用"; |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
word = "其中待支付费用"; |
|
|
|
break; |
|
|
|
case 13: |
|
|
|
word = "其中抵顶费用"; |
|
|
|
break; |
|
|
|
case 14: |
|
|
|
word = "抵顶费用说明"; |
|
|
|
break; |
|
|
|
case 15: |
|
|
|
word = "调整说明"; |
|
|
|
break; |
|
|
|
default: |
|
|
@ -635,15 +683,23 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
} |
|
|
|
if (!importVoList.isEmpty()) { |
|
|
|
for (OneExcelInfo excelInfo : importVoList) { |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(excelInfo.getCreateTime(), excelInfo.getRebateName(), excelInfo.getRebateTypeValue(), excelInfo.getEstimateRebate()); |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(createOrgSid, excelInfo.getRebateTypeValue(), excelInfo.getRebateName(), excelInfo.getEstimateRebate(), excelInfo.getPalceGenDate(), excelInfo.getPurchaseSystemName(), excelInfo.getBrandName()); |
|
|
|
if (scmSpecialRebateVo == null || StringUtils.isBlank(scmSpecialRebateVo.getSid())) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
|
/*if (scmSpecialRebateVo.get() == 1) { |
|
|
|
if (scmSpecialRebateVo.getOnceCheckState() == 1) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息已调整"); |
|
|
|
break; |
|
|
|
}*/ |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getPurchaseSystemName())) { |
|
|
|
checkWord.add("采购系统不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getBrandName())) { |
|
|
|
checkWord.add("品牌名称不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getCreateTime())) { |
|
|
|
checkWord.add("创建日期不能为空"); |
|
|
|
break; |
|
|
@ -693,6 +749,34 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getExpectCost())) { |
|
|
|
checkWord.add("其中预提费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getExpectCost())) { |
|
|
|
String expectCost = excelInfo.getExpectCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(expectCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中预提费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getPalceGenDate())) { |
|
|
|
checkWord.add("所属年月不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) { |
|
|
|
String palceGenDate = excelInfo.getPalceGenDate(); |
|
|
|
String[] split = palceGenDate.split("-"); |
|
|
|
if (split.length != 2) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadDate())) { |
|
|
|
checkWord.add("上传日期不能为空"); |
|
|
|
break; |
|
|
@ -740,10 +824,72 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getAdjustmentRemarks())) { |
|
|
|
checkWord.add("调整说明不能为空"); |
|
|
|
if (StringUtils.isBlank(excelInfo.getOnceItureCost())) { |
|
|
|
checkWord.add("其中支出费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getOnceItureCost())) { |
|
|
|
String onceItureCost = excelInfo.getOnceItureCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(onceItureCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中支出费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getOnceTreatCost())) { |
|
|
|
checkWord.add("其中待支付费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getOnceTreatCost())) { |
|
|
|
String onceTreatCost = excelInfo.getOnceTreatCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(onceTreatCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中待支付费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getOnceSuppCost())) { |
|
|
|
checkWord.add("其中抵顶费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getOnceSuppCost())) { |
|
|
|
String onceSuppCost = excelInfo.getOnceSuppCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(onceSuppCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中抵顶费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getOnceSuppRemark())) { |
|
|
|
checkWord.add("抵顶费用说明不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
int i = new BigDecimal(excelInfo.getStayDetermineMoney()).compareTo(BigDecimal.ZERO); |
|
|
|
//上传返利金额
|
|
|
|
BigDecimal scflje = new BigDecimal(excelInfo.getUploadMoney()).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getOnceItureCost())).subtract(new BigDecimal(excelInfo.getOnceTreatCost())).subtract(new BigDecimal(excelInfo.getOnceSuppCost())); |
|
|
|
//预提返利-其中预提费用
|
|
|
|
BigDecimal ytfy = new BigDecimal(excelInfo.getEstimateRebate()).subtract(new BigDecimal(excelInfo.getExpectCost())); |
|
|
|
//调整金额
|
|
|
|
BigDecimal tzje = new BigDecimal(excelInfo.getUploadMoney()).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getOnceItureCost())).subtract(new BigDecimal(excelInfo.getOnceTreatCost())).subtract(new BigDecimal(excelInfo.getOnceSuppCost())).subtract(new BigDecimal(excelInfo.getEstimateRebate())); |
|
|
|
if (i > 0) { |
|
|
|
excelInfo.setIsAdjustment("否"); |
|
|
|
excelInfo.setAdjustmentMoney("0"); |
|
|
|
} else if (i == 0) { |
|
|
|
if (scflje.compareTo(ytfy) > 0) { |
|
|
|
excelInfo.setIsAdjustment("是"); |
|
|
|
excelInfo.setAdjustmentMoney(tzje.toString()); |
|
|
|
} else if (scflje.compareTo(ytfy) == 0) { |
|
|
|
excelInfo.setIsAdjustment("是"); |
|
|
|
excelInfo.setAdjustmentMoney(tzje.toString()); |
|
|
|
} else if (scflje.compareTo(ytfy) < 0) { |
|
|
|
excelInfo.setIsAdjustment("否"); |
|
|
|
excelInfo.setAdjustmentMoney("0"); |
|
|
|
} |
|
|
|
} |
|
|
|
excelInfo.setDiffAmount(scflje.subtract(ytfy).toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
StringBuffer sbcheck1 = new StringBuffer(); |
|
|
@ -826,7 +972,7 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException { |
|
|
|
public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录
|
|
|
|
File tempFile = new File(temp); |
|
|
@ -838,7 +984,7 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
return rb.fail().setMsg("上传文件不正确"); |
|
|
|
} |
|
|
|
|
|
|
|
int[] resultCell = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; |
|
|
|
int[] resultCell = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}; |
|
|
|
boolean isExcel2003 = true; |
|
|
|
if (fileName.matches("^.+\\.(?i)(xlsx)$")) { |
|
|
|
isExcel2003 = false; |
|
|
@ -851,22 +997,28 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
wb = new XSSFWorkbook(is); |
|
|
|
} |
|
|
|
Sheet sheet = wb.getSheetAt(0); |
|
|
|
SpecialRebateTwoExcelInfo importReturn = getSheetValTwo(sheet, resultCell, userSid); |
|
|
|
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData(); |
|
|
|
SpecialRebateTwoExcelInfo importReturn = getSheetValTwo(sheet, resultCell, createOrgSid); |
|
|
|
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { |
|
|
|
return rb.setMsg(importReturn.getCheckInfo()); |
|
|
|
} else { |
|
|
|
List<TwoExcelInfo> infos = importReturn.getInfos(); |
|
|
|
for (TwoExcelInfo info : infos) { |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(info.getCreateTime(), info.getRebateName(), info.getRebateTypeValue(), info.getEstimateRebate()); |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(info.getSecondaryUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
String secondaryUploadDate = DateUtil.formatDate(javaDate); |
|
|
|
baseMapper.updateTwoExcelInfo(secondaryUploadDate, info.getSecondaryUploadMoney(), info.getMoney(), info.getAdjustmentRemarks(), scmSpecialRebateVo.getSid()); |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(createOrgSid, info.getRebateTypeValue(), info.getRebateName(), info.getEstimateRebate(), info.getPalceGenDate(), info.getPurchaseSystemName(), info.getBrandName()); |
|
|
|
String secondaryUploadDate = ""; |
|
|
|
if (isNumber(info.getSecondaryUploadDate())) { |
|
|
|
Date javaDate = new Date((long) ((Double.valueOf(info.getSecondaryUploadDate()) - 25569) * 86400 * 1000)); |
|
|
|
secondaryUploadDate = DateUtil.formatDate(javaDate); |
|
|
|
} else { |
|
|
|
secondaryUploadDate = info.getSecondaryUploadDate(); |
|
|
|
} |
|
|
|
baseMapper.updateTwoExcelInfo(secondaryUploadDate, info.getSecondaryUploadMoney(),info.getSecondItureCost(), info.getSecondTreatCost(), info.getSecondSuppCost(), info.getSecondSuppRemark(), info.getAdjustmentRemarks(),info.getIsAdjustment(), info.getAdjustmentMoney(), info.getDiffAmount(), scmSpecialRebateVo.getSid()); |
|
|
|
} |
|
|
|
return rb.success().setMsg("成功导入数据,请点击确定按钮"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private SpecialRebateTwoExcelInfo getSheetValTwo(Sheet sheet, int[] resultCell, String userSid) { |
|
|
|
private SpecialRebateTwoExcelInfo getSheetValTwo(Sheet sheet, int[] resultCell, String createOrgSid) { |
|
|
|
SpecialRebateTwoExcelInfo importReturn = new SpecialRebateTwoExcelInfo(); |
|
|
|
List<TwoExcelInfo> importVoList = new ArrayList<>(); |
|
|
|
Set<String> checkWord = new HashSet<>(); |
|
|
@ -892,36 +1044,60 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
if (i == resultCell[j]) { |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
importVo.setPurchaseSystemName(temp); |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
importVo.setRebateName(temp); |
|
|
|
importVo.setBrandName(temp); |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
importVo.setRebateTypeValue(temp); |
|
|
|
importVo.setCreateTime(temp); |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
importVo.setEstimateRebate(temp); |
|
|
|
importVo.setRebateName(temp); |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
importVo.setUploadDate(temp); |
|
|
|
importVo.setRebateTypeValue(temp); |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
importVo.setUploadMoney(temp); |
|
|
|
importVo.setEstimateRebate(temp); |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
importVo.setStayDetermineMoney(temp); |
|
|
|
importVo.setExpectCost(temp); |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
importVo.setSecondaryUploadDate(temp); |
|
|
|
importVo.setPalceGenDate(temp); |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
importVo.setSecondaryUploadMoney(temp); |
|
|
|
importVo.setUploadDate(temp); |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
importVo.setMoney(temp); |
|
|
|
importVo.setUploadMoney(temp); |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
importVo.setMoney(temp); |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
importVo.setStayDetermineMoney(temp); |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
importVo.setSecondaryUploadDate(temp); |
|
|
|
break; |
|
|
|
case 13: |
|
|
|
importVo.setSecondaryUploadMoney(temp); |
|
|
|
break; |
|
|
|
case 14: |
|
|
|
importVo.setSecondItureCost(temp); |
|
|
|
break; |
|
|
|
case 15: |
|
|
|
importVo.setSecondTreatCost(temp); |
|
|
|
break; |
|
|
|
case 16: |
|
|
|
importVo.setSecondSuppCost(temp); |
|
|
|
break; |
|
|
|
case 17: |
|
|
|
importVo.setSecondSuppRemark(temp); |
|
|
|
break; |
|
|
|
case 18: |
|
|
|
importVo.setAdjustmentRemarks(temp); |
|
|
|
break; |
|
|
|
default: |
|
|
@ -936,36 +1112,60 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
String word = new String(); |
|
|
|
switch (i) { |
|
|
|
case 0: |
|
|
|
word = "创建日期"; |
|
|
|
word = "采购系统"; |
|
|
|
break; |
|
|
|
case 1: |
|
|
|
word = "返利名称"; |
|
|
|
word = "品牌"; |
|
|
|
break; |
|
|
|
case 2: |
|
|
|
word = "返利类型"; |
|
|
|
word = "创建日期"; |
|
|
|
break; |
|
|
|
case 3: |
|
|
|
word = "预提返利"; |
|
|
|
word = "返利名称"; |
|
|
|
break; |
|
|
|
case 4: |
|
|
|
word = "上传日期"; |
|
|
|
word = "返利类型"; |
|
|
|
break; |
|
|
|
case 5: |
|
|
|
word = "上传金额"; |
|
|
|
word = "预提返利"; |
|
|
|
break; |
|
|
|
case 6: |
|
|
|
word = "待确定金额"; |
|
|
|
word = "其中预提费用"; |
|
|
|
break; |
|
|
|
case 7: |
|
|
|
word = "二次上传日期"; |
|
|
|
word = "所属年月"; |
|
|
|
break; |
|
|
|
case 8: |
|
|
|
word = "二次上传金额"; |
|
|
|
word = "上传日期"; |
|
|
|
break; |
|
|
|
case 9: |
|
|
|
word = "费用"; |
|
|
|
word = "上传金额"; |
|
|
|
break; |
|
|
|
case 10: |
|
|
|
word = "其中费用"; |
|
|
|
break; |
|
|
|
case 11: |
|
|
|
word = "待确定金额"; |
|
|
|
break; |
|
|
|
case 12: |
|
|
|
word = "二次上传日期"; |
|
|
|
break; |
|
|
|
case 13: |
|
|
|
word = "二次上传金额"; |
|
|
|
break; |
|
|
|
case 14: |
|
|
|
word = "其中支出费用"; |
|
|
|
break; |
|
|
|
case 15: |
|
|
|
word = "其中待支付费用"; |
|
|
|
break; |
|
|
|
case 16: |
|
|
|
word = "其中抵顶费用"; |
|
|
|
break; |
|
|
|
case 17: |
|
|
|
word = "抵顶费用说明"; |
|
|
|
break; |
|
|
|
case 18: |
|
|
|
word = "调整说明"; |
|
|
|
break; |
|
|
|
default: |
|
|
@ -979,15 +1179,23 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
} |
|
|
|
if (!importVoList.isEmpty()) { |
|
|
|
for (TwoExcelInfo excelInfo : importVoList) { |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(excelInfo.getCreateTime(), excelInfo.getRebateName(), excelInfo.getRebateTypeValue(), excelInfo.getEstimateRebate()); |
|
|
|
ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(createOrgSid, excelInfo.getRebateTypeValue(), excelInfo.getRebateName(), excelInfo.getEstimateRebate(), excelInfo.getPalceGenDate(), excelInfo.getPurchaseSystemName(), excelInfo.getBrandName()); |
|
|
|
if (scmSpecialRebateVo == null || StringUtils.isBlank(scmSpecialRebateVo.getSid())) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息不存在"); |
|
|
|
break; |
|
|
|
} |
|
|
|
/* if (excelInfo.getOnceCheckState() == 1) { |
|
|
|
checkWord.add("车架号" + excelInfo.getRebateName() + "导入的返利信息已核对"); |
|
|
|
if (scmSpecialRebateVo.getOnceCheckState() == 1) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息已核对"); |
|
|
|
break; |
|
|
|
}*/ |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getPurchaseSystemName())) { |
|
|
|
checkWord.add("采购系统不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getBrandName())) { |
|
|
|
checkWord.add("品牌名称不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getCreateTime())) { |
|
|
|
checkWord.add("创建日期不能为空"); |
|
|
|
break; |
|
|
@ -1037,6 +1245,34 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getExpectCost())) { |
|
|
|
checkWord.add("其中预提费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getExpectCost())) { |
|
|
|
String expectCost = excelInfo.getExpectCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(expectCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中预提费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getPalceGenDate())) { |
|
|
|
checkWord.add("所属年月不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) { |
|
|
|
String palceGenDate = excelInfo.getPalceGenDate(); |
|
|
|
String[] split = palceGenDate.split("-"); |
|
|
|
if (split.length != 2) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) { |
|
|
|
checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的所属年月填写不正确,格式yyyy-MM"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getUploadDate())) { |
|
|
|
checkWord.add("上传日期不能为空"); |
|
|
|
break; |
|
|
@ -1071,6 +1307,19 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getMoney())) { |
|
|
|
checkWord.add("其中费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getMoney())) { |
|
|
|
String money = excelInfo.getMoney(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(money).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getStayDetermineMoney())) { |
|
|
|
checkWord.add("待确定金额不能为空"); |
|
|
|
break; |
|
|
@ -1118,23 +1367,68 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getMoney())) { |
|
|
|
checkWord.add("费用不能为空"); |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getSecondItureCost())) { |
|
|
|
String secondItureCost = excelInfo.getSecondItureCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(secondItureCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中支出费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getSecondTreatCost())) { |
|
|
|
checkWord.add("其中待支付费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getMoney())) { |
|
|
|
String money = excelInfo.getMoney(); |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getSecondTreatCost())) { |
|
|
|
String secondTreatCost = excelInfo.getSecondTreatCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(money).matches(); |
|
|
|
boolean matches = pattern.matcher(secondTreatCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("费用必须为数字"); |
|
|
|
checkWord.add("其中待支付费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getAdjustmentRemarks())) { |
|
|
|
checkWord.add("调整说明不能为空"); |
|
|
|
if (StringUtils.isBlank(excelInfo.getSecondSuppCost())) { |
|
|
|
checkWord.add("其中抵顶费用不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(excelInfo.getSecondSuppCost())) { |
|
|
|
String secondSuppCost = excelInfo.getSecondSuppCost(); |
|
|
|
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); |
|
|
|
boolean matches = pattern.matcher(secondSuppCost).matches(); |
|
|
|
if (!matches) { |
|
|
|
checkWord.add("其中抵顶费用必须为数字"); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isBlank(excelInfo.getSecondSuppRemark())) { |
|
|
|
checkWord.add("抵顶费用说明不能为空"); |
|
|
|
break; |
|
|
|
} |
|
|
|
int i = new BigDecimal(excelInfo.getStayDetermineMoney()).compareTo(BigDecimal.ZERO); |
|
|
|
//上传返利金额
|
|
|
|
BigDecimal scflje = new BigDecimal(excelInfo.getUploadMoney()).add(new BigDecimal(excelInfo.getSecondaryUploadMoney())).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getMoney())).subtract(new BigDecimal(excelInfo.getSecondItureCost())).subtract(new BigDecimal(excelInfo.getSecondTreatCost())).subtract(new BigDecimal(excelInfo.getSecondSuppCost())); |
|
|
|
//预提返利-其中预提费用
|
|
|
|
BigDecimal ytfy = new BigDecimal(excelInfo.getEstimateRebate()).subtract(new BigDecimal(excelInfo.getExpectCost())); |
|
|
|
//调整金额
|
|
|
|
BigDecimal tzje = new BigDecimal(excelInfo.getUploadMoney()).add(new BigDecimal(excelInfo.getSecondaryUploadMoney())).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getMoney())).subtract(new BigDecimal(excelInfo.getSecondItureCost())).subtract(new BigDecimal(excelInfo.getSecondTreatCost())).subtract(new BigDecimal(excelInfo.getSecondSuppCost())).subtract(new BigDecimal(excelInfo.getEstimateRebate())); |
|
|
|
if (i > 0) { |
|
|
|
excelInfo.setIsAdjustment("否"); |
|
|
|
excelInfo.setAdjustmentMoney("0"); |
|
|
|
} else if (i == 0) { |
|
|
|
if (scflje.compareTo(ytfy) > 0) { |
|
|
|
excelInfo.setIsAdjustment("是"); |
|
|
|
excelInfo.setAdjustmentMoney(tzje.toString()); |
|
|
|
} else if (scflje.compareTo(ytfy) == 0) { |
|
|
|
excelInfo.setIsAdjustment("是"); |
|
|
|
excelInfo.setAdjustmentMoney(tzje.toString()); |
|
|
|
} else if (scflje.compareTo(ytfy) < 0) { |
|
|
|
excelInfo.setIsAdjustment("否"); |
|
|
|
excelInfo.setAdjustmentMoney("0"); |
|
|
|
} |
|
|
|
} |
|
|
|
excelInfo.setDiffAmount(scflje.subtract(ytfy).toString()); |
|
|
|
} |
|
|
|
} |
|
|
|
StringBuffer sbcheck1 = new StringBuffer(); |
|
|
@ -1210,16 +1504,14 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
if (StringUtils.isNotBlank(query.getRebateName())) { |
|
|
|
qw.like("rebateName", query.getRebateName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getState())) { |
|
|
|
qw.eq("state", query.getState()); |
|
|
|
} |
|
|
|
String createStartTime = query.getCreateStartTime(); |
|
|
|
String createEndTime = query.getCreateEndTime(); |
|
|
|
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.ne("adjustmentState", 1); |
|
|
|
qw.eq("adjustmentState", 0); |
|
|
|
qw.eq("state", 2); |
|
|
|
qw.eq("onceCheckState", 0); |
|
|
|
qw.orderByDesc("createTime"); |
|
|
|
List<OneExcelVo> oneExcelVos = baseMapper.excelListOne(qw); |
|
|
|
for (OneExcelVo oneExcelVo : oneExcelVos) { |
|
|
@ -1282,15 +1574,12 @@ public class ScmSpecialRebateService extends MybatisBaseService<ScmSpecialRebate |
|
|
|
if (StringUtils.isNotBlank(query.getRebateName())) { |
|
|
|
qw.like("rebateName", query.getRebateName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getState())) { |
|
|
|
qw.eq("state", query.getState()); |
|
|
|
} |
|
|
|
String createStartTime = query.getCreateStartTime(); |
|
|
|
String createEndTime = query.getCreateEndTime(); |
|
|
|
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
qw.ne("adjustmentState", 1); |
|
|
|
qw.ne("adjustmentState", 0); |
|
|
|
qw.eq("state", 2); |
|
|
|
qw.isNotNull("uploadDate"); |
|
|
|
qw.orderByDesc("createTime"); |
|
|
|