|
|
@@ -21,6 +21,7 @@ import com.zhongzheng.common.core.page.TableDataInfo;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.type.EncryptHandler;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
+import com.zhongzheng.common.utils.TelPhoneUtils;
|
|
|
import com.zhongzheng.common.utils.ToolsUtils;
|
|
|
import com.zhongzheng.common.utils.http.HttpUtils;
|
|
|
import com.zhongzheng.modules.course.domain.*;
|
|
|
@@ -4499,6 +4500,8 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
String name = topCourseBusinessService.getBusinessFullName(bo.getBusinessId());
|
|
|
bo.setBusinessFullName(name);
|
|
|
}
|
|
|
+ //过滤C端订单
|
|
|
+ bo.setOrderFrom(1);
|
|
|
|
|
|
List<TopOldOrderRepVo> orderRepList = baseMapper.queryOrderRepList(bo);
|
|
|
if (CollectionUtils.isEmpty(orderRepList)){
|
|
|
@@ -4579,6 +4582,50 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
vo.setProceedsCheckDate(replenish.getProceedsCheckDate());
|
|
|
vo.setProceedsChange(replenish.getProceedsChange());
|
|
|
vo.setCost(replenish.getCost());
|
|
|
+ }else {
|
|
|
+ BigDecimal uncollected = vo.getPriceTotal();
|
|
|
+ vo.setUncollected(uncollected);
|
|
|
+ vo.setReceived(vo.getPriceTotal().subtract(uncollected));
|
|
|
+ //已退
|
|
|
+ BigDecimal refunded = new BigDecimal("0.00");
|
|
|
+ TopOldOrder orderBySn = baseMapper.getOrderBySn(vo.getOrderSn());
|
|
|
+ if (orderBySn.getOrderFrom() == 1 || orderBySn.getOrderFrom() == 4){
|
|
|
+ //新系统订单
|
|
|
+ List<OrderGoodsRefund> list = orderGoodsRefundService.list(new LambdaQueryWrapper<OrderGoodsRefund>()
|
|
|
+ .eq(OrderGoodsRefund::getOrderSn, orderBySn.getOrderSn())
|
|
|
+ .eq(OrderGoodsRefund::getStatus, 1)
|
|
|
+ .eq(OrderGoodsRefund::getPeriodStatus, 3));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ refunded = list.stream().map(OrderGoodsRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ List<TopOldOrderRefund> list = topOldOrderRefundService.list(new LambdaQueryWrapper<TopOldOrderRefund>()
|
|
|
+ .eq(TopOldOrderRefund::getOrderSn, orderBySn.getOrderSn())
|
|
|
+ .eq(TopOldOrderRefund::getStatus, 1)
|
|
|
+ .eq(TopOldOrderRefund::getPeriodStatus, 3));
|
|
|
+ if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ refunded = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setRefunded(refunded);
|
|
|
+ vo.setPractical(vo.getPriceTotal().subtract(refunded));
|
|
|
+ //发票
|
|
|
+ List<TopNuoMplatformLog> fromLogs = topNuoMplatformLogService
|
|
|
+ .list(new LambdaQueryWrapper<TopNuoMplatformLog>()
|
|
|
+ .like(TopNuoMplatformLog::getOrderNoList, vo.getOrderSn())
|
|
|
+ .eq(TopNuoMplatformLog::getStatus, 2));
|
|
|
+ if (CollectionUtils.isNotEmpty(fromLogs)){
|
|
|
+ for (TopNuoMplatformLog fromLog : fromLogs) {
|
|
|
+ OrderInvoiceHostBo invoiceBo = JSONObject.parseObject(fromLog.getContent(), OrderInvoiceHostBo.class);
|
|
|
+ if (ObjectUtils.isNotNull(invoiceBo) && ObjectUtils.isNotNull(invoiceBo.getOrder())){
|
|
|
+ OrderInvoiceBo order = invoiceBo.getOrder();
|
|
|
+ vo.setInvoiceApplyTime(order.getInvoiceDate());
|
|
|
+ vo.setInvoiceType(
|
|
|
+ StringUtils.isNotBlank(order.getInvoiceLine()) && order.getInvoiceLine().equals("bs")?"专票":"普票"
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return orderRepList;
|
|
|
@@ -4587,7 +4634,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
@Override
|
|
|
public List<TopOldOrderRepDetailVo> getOrderDetailList(TopOrderRepGoodsQueryBo queryBo) {
|
|
|
List<TopOldOrderRepDetailVo> list;
|
|
|
- if (queryBo.getOrderForm() == 1) {
|
|
|
+ if (queryBo.getOrderFrom() == 1) {
|
|
|
//新系统订单
|
|
|
list = orderGoodsService.listRepByOrderSn(queryBo);
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
@@ -4735,6 +4782,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
//未收
|
|
|
orderReplenish.setOrderResidue(orderBySn.getOrderPrice().subtract(reduce));
|
|
|
orderReplenish.setProceedsJson(JSON.toJSONString(editBo.getProceedsJson()));
|
|
|
+ }else {
|
|
|
+ //未收
|
|
|
+ orderReplenish.setOrderResidue(orderBySn.getOrderPrice());
|
|
|
}
|
|
|
orderReplenish.setStatus(1);
|
|
|
orderReplenish.setCreateTime(DateUtils.getNowTime());
|
|
|
@@ -4772,7 +4822,10 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
replenish.setOrderResidue(orderBySn.getOrderPrice().subtract(reduce));
|
|
|
replenish.setProceedsJson(JSON.toJSONString(editBo.getProceedsJson()));
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
+ if (ObjectUtils.isNull(replenish.getOrderResidue())){
|
|
|
+ replenish.setOrderResidue(orderBySn.getOrderPrice());
|
|
|
}
|
|
|
replenish.setUpdateTime(DateUtils.getNowTime());
|
|
|
topOldOrderReplenishService.updateById(replenish);
|
|
|
@@ -4860,6 +4913,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
questionVo.setMajorName(majorName);
|
|
|
questionVo.setOpenDate(s.getOpenDate());
|
|
|
questionVo.setRemark(s.getRemark());
|
|
|
+ questionVo.setSign(s.getSign());
|
|
|
resultList.add(questionVo);
|
|
|
}
|
|
|
return resultList;
|
|
|
@@ -4926,6 +4980,142 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
return topOldOrderQuestionService.updateById(orderQuestion);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<TopOrderBillExportVo> billExportList(TopOrderRepQueryBo bo) {
|
|
|
+ //查询视图 v_top_order
|
|
|
+ if (ObjectUtils.isNotNull(bo.getEducationTypeId())) {
|
|
|
+ TopCourseEducationType educationType = topCourseEducationTypeService.getById(bo.getEducationTypeId());
|
|
|
+ if (StringUtils.isNotBlank(educationType.getSchemeName())) {
|
|
|
+ bo.setBusinessFullName(educationType.getSchemeName() + educationType.getEducationName());
|
|
|
+ } else {
|
|
|
+ bo.setBusinessFullName(educationType.getEducationName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isNotNull(bo.getBusinessId())) {
|
|
|
+ String name = topCourseBusinessService.getBusinessFullName(bo.getBusinessId());
|
|
|
+ bo.setBusinessFullName(name);
|
|
|
+ }
|
|
|
+ //过滤C端订单
|
|
|
+ bo.setOrderFrom(1);
|
|
|
+ List<TopOldOrderRepVo> orderRepList = baseMapper.queryOrderRepList(bo);
|
|
|
+ if (CollectionUtils.isEmpty(orderRepList)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<TopOrderBillExportVo> result = new ArrayList<>();
|
|
|
+ for (TopOldOrderRepVo repVo : orderRepList) {
|
|
|
+ TopOldOrderReplenish replenish = topOldOrderReplenishService
|
|
|
+ .getOne(new LambdaQueryWrapper<TopOldOrderReplenish>()
|
|
|
+ .eq(TopOldOrderReplenish::getOrderSn, repVo.getOrderSn())
|
|
|
+ .eq(TopOldOrderReplenish::getStatus, 1)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(replenish) && replenish.getOrderResidue().compareTo(BigDecimal.ZERO) <= 0){
|
|
|
+ //已完成收款
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //订单学员信息
|
|
|
+ List<TopOldOrderGoods> orderGoods = topOrderGoodsService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, repVo.getOrderSn())
|
|
|
+ .eq(TopOldOrderGoods::getCheckStatus, 1)
|
|
|
+ .eq(TopOldOrderGoods::getStatus, 1));
|
|
|
+ if (CollectionUtils.isEmpty(orderGoods)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<TopOrderBillExportVo> collect = orderGoods.stream().map(item -> {
|
|
|
+ TopOrderBillExportVo vo = new TopOrderBillExportVo();
|
|
|
+ vo.setCreateNo(repVo.getCreateNo());
|
|
|
+ vo.setPurchaseOrg(repVo.getPurchaseOrg());
|
|
|
+ String businessFullName = item.getBusinessFullName();
|
|
|
+ vo.setEduName(businessFullName.substring(4, 8));
|
|
|
+ vo.setBusinessName(businessFullName.substring(8));
|
|
|
+ vo.setUserName(item.getUserName());
|
|
|
+ vo.setUserCard(hideIDCard(EncryptHandler.decryptTwo(item.getUserCard())));
|
|
|
+ vo.setMajorName(item.getMajorName());
|
|
|
+ vo.setOrderTime(DateUtils.timestampToDateFormat(repVo.getOrderTime(), "yyyy/MM/dd"));
|
|
|
+ vo.setUnitPrice(item.getGoodsRealPrice().toString());
|
|
|
+ return vo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ result.addAll(collect);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(result)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<TopOrderBillExportVo> list = new ArrayList<>();
|
|
|
+ Map<String, List<TopOrderBillExportVo>> collect = result.stream().filter(x -> StringUtils.isNotBlank(x.getCreateNo())).collect(Collectors.groupingBy(TopOrderBillExportVo::getCreateNo));
|
|
|
+ collect.forEach((k,v) -> {
|
|
|
+ for (int i = 0; i < v.size(); i++) {
|
|
|
+ if (i == v.size() - 1){
|
|
|
+ //最后一个
|
|
|
+ TopOrderBillExportVo vo = v.get(i);
|
|
|
+ vo.setOrderNum(v.size()+"");
|
|
|
+ BigDecimal reduce = v.stream().map(x -> new BigDecimal(x.getUnitPrice())).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ vo.setPriceTotal(reduce.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ list.addAll(v);
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TopQuestionImportVo importOrderQuestion(List<TopOrderQuestionImportBo> questionImportBos) {
|
|
|
+ TopQuestionImportVo vo = new TopQuestionImportVo();
|
|
|
+ vo.setTotal(questionImportBos.size());
|
|
|
+ Integer correct = 0;
|
|
|
+ Integer errorNum = 0;
|
|
|
+ List<TopOldOrderQuestionVo> questionVos = new ArrayList<>();
|
|
|
+ Map<String, List<TopOrderQuestionImportBo>> collect =
|
|
|
+ questionImportBos.stream().collect(Collectors.groupingBy(TopOrderQuestionImportBo::getCreateNo));
|
|
|
+ collect.forEach((k,v) -> {
|
|
|
+ TopOldOrder oldOrder = topOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
|
|
|
+ .eq(TopOldOrder::getCreateNo, k)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNull(oldOrder)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<TopOldOrderGoods> list = topOrderGoodsService
|
|
|
+ .list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
|
+ .eq(TopOldOrderGoods::getOrderSn, oldOrder.getOrderSn())
|
|
|
+ .eq(TopOldOrderGoods::getStatus, 1));
|
|
|
+ if (CollectionUtils.isEmpty(list)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (TopOldOrderGoods orderGoods : list) {
|
|
|
+ String businessFullName = orderGoods.getBusinessFullName();
|
|
|
+ if (!businessFullName.contains("考前培训") && !businessFullName.contains("施工现场专业人员")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //过滤
|
|
|
+ List<TopOrderQuestionImportBo> collect1 = v.stream().filter(x -> x.getUserName().equals(orderGoods.getUserName())
|
|
|
+ && x.getUserCard().equals(EncryptHandler.decryptTwo(orderGoods.getUserCard())) && x.getMajorName().equals(orderGoods.getMajorName())).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isEmpty(collect1)){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //新增题库开通记录
|
|
|
+ List<TopOldOrderQuestion> collect2 = collect1.stream().map(i -> {
|
|
|
+ TopOldOrderQuestion question = new TopOldOrderQuestion();
|
|
|
+ question.setOrderSn(orderGoods.getOrderSn());
|
|
|
+ question.setOrderGoodsId(orderGoods.getOrderGoodsId());
|
|
|
+ question.setOpenDate(DateUtils.dateTimeSec("yyyy/MM/dd", i.getOpenDate()));
|
|
|
+ question.setSign(i.getSign());
|
|
|
+ question.setRemark(i.getRemark());
|
|
|
+ question.setStatus(1);
|
|
|
+ question.setCreateTime(DateUtils.getNowTime());
|
|
|
+ question.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ return question;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String hideIDCard(String idCard) {
|
|
|
+ if (idCard == null || idCard.length() != 18) {
|
|
|
+ return idCard;
|
|
|
+ }
|
|
|
+ return idCard.substring(0, 6) + "******" + idCard.substring(14);
|
|
|
+ }
|
|
|
+
|
|
|
private List<Long> getDayTime(Long startTime,Long endTime){
|
|
|
List<Long> tiemList = new ArrayList<>();
|
|
|
Long zeroTime = DateUtils.getScheduleTimeZeroTime(startTime);
|