更新
This commit is contained in:
parent
9ddfaceb62
commit
53944642e2
@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
|
|||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import cn.iocoder.yudao.module.core.text.Convert;
|
import cn.iocoder.yudao.module.core.text.Convert;
|
||||||
import cn.iocoder.yudao.module.core.text.ServletUtils;
|
import cn.iocoder.yudao.module.core.text.ServletUtils;
|
||||||
|
import cn.iocoder.yudao.module.inspection.query.OrderTableQuery;
|
||||||
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
|
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
|
||||||
import cn.iocoder.yudao.module.partner.entity.PartnerCustomerInfo;
|
import cn.iocoder.yudao.module.partner.entity.PartnerCustomerInfo;
|
||||||
import cn.iocoder.yudao.module.partner.service.IPartnerCustomerInfoService;
|
import cn.iocoder.yudao.module.partner.service.IPartnerCustomerInfoService;
|
||||||
@ -22,6 +23,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
|||||||
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
import cn.iocoder.yudao.module.system.service.dict.DictDataService;
|
||||||
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
||||||
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
||||||
|
import cn.iocoder.yudao.util.ExcelExtraHelper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -36,9 +38,12 @@ import cn.iocoder.yudao.module.shop.entity.ShopMallPartners;
|
|||||||
import cn.iocoder.yudao.module.shop.service.IShopMallPartnersService;
|
import cn.iocoder.yudao.module.shop.service.IShopMallPartnersService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -66,12 +71,11 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public CommonResult list(ShopMallPartners shopMallPartners,
|
public CommonResult list(ShopMallPartners shopMallPartners,
|
||||||
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
|
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
|
||||||
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize)
|
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
|
||||||
{
|
|
||||||
shopMallPartners.setType("jc");
|
shopMallPartners.setType("jc");
|
||||||
Page<ShopMallPartners> page = new Page<>(pageNum, pageSize);
|
Page<ShopMallPartners> page = new Page<>(pageNum, pageSize);
|
||||||
IPage<ShopMallPartners> list = shopMallPartnersService.selectShopMallPartnersList(page,shopMallPartners);
|
IPage<ShopMallPartners> list = shopMallPartnersService.selectShopMallPartnersList(page, shopMallPartners);
|
||||||
return success(list);
|
return success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,14 +85,13 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/listComment")
|
@GetMapping("/listComment")
|
||||||
public CommonResult listComment(Long partnerId,
|
public CommonResult listComment(Long partnerId,
|
||||||
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
|
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
|
||||||
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize)
|
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
|
||||||
{
|
|
||||||
Page<OrderInfo> page = new Page<>(pageNum, pageSize);
|
Page<OrderInfo> page = new Page<>(pageNum, pageSize);
|
||||||
LambdaQueryWrapper<OrderInfo> queryWrapper =new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<OrderInfo> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.select(OrderInfo::getGoodsTitle,OrderInfo::getCommentDesc,OrderInfo::getCommentTime,OrderInfo::getCommentStar,OrderInfo::getRealName,OrderInfo::getId).eq(OrderInfo::getPartnerId,partnerId).orderByDesc(OrderInfo::getCommentTime).isNotNull(OrderInfo::getCommentTime);
|
queryWrapper.select(OrderInfo::getGoodsTitle, OrderInfo::getCommentDesc, OrderInfo::getCommentTime, OrderInfo::getCommentStar, OrderInfo::getRealName, OrderInfo::getId).eq(OrderInfo::getPartnerId, partnerId).orderByDesc(OrderInfo::getCommentTime).isNotNull(OrderInfo::getCommentTime);
|
||||||
|
|
||||||
IPage<OrderInfo> list = orderInfoService.page(page,queryWrapper);
|
IPage<OrderInfo> list = orderInfoService.page(page, queryWrapper);
|
||||||
return success(list);
|
return success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,10 +99,9 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
* 删除评论
|
* 删除评论
|
||||||
*/
|
*/
|
||||||
@PostMapping("/delCommentByOrderId")
|
@PostMapping("/delCommentByOrderId")
|
||||||
public CommonResult delCommentByOrderId(Long orderId)
|
public CommonResult delCommentByOrderId(Long orderId) {
|
||||||
{
|
LambdaUpdateWrapper<OrderInfo> queryWrapper = new LambdaUpdateWrapper<>();
|
||||||
LambdaUpdateWrapper<OrderInfo> queryWrapper =new LambdaUpdateWrapper<>();
|
queryWrapper.eq(OrderInfo::getId, orderId).set(OrderInfo::getCommentTime, null).set(OrderInfo::getCommentDesc, "").set(OrderInfo::getCommentStar, null);
|
||||||
queryWrapper.eq(OrderInfo::getId,orderId).set(OrderInfo::getCommentTime,null).set(OrderInfo::getCommentDesc,"").set(OrderInfo::getCommentStar,null);
|
|
||||||
orderInfoService.update(queryWrapper);
|
orderInfoService.update(queryWrapper);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
@ -108,58 +110,55 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
* 工单管理
|
* 工单管理
|
||||||
*/
|
*/
|
||||||
@GetMapping("/workOrder")
|
@GetMapping("/workOrder")
|
||||||
public CommonResult<IPage<?>> workOrder(String carNum,String goodsTitle,String customerSource,String payType,String startTime,Long roleId,String endTime,Integer pageSize,Integer pageNum)
|
public CommonResult<IPage<?>> workOrder(OrderTableQuery query, Integer pageSize, Integer pageNum) {
|
||||||
{
|
// LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
||||||
LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
// Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
||||||
Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
// List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
||||||
List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
// List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
||||||
List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
// ShopMallPartners partner = new ShopMallPartners();
|
||||||
ShopMallPartners partner = new ShopMallPartners();
|
// if (roles.contains("jcshop")){
|
||||||
if (roles.contains("jcshop")){
|
// LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
|
||||||
LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
|
// queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType,"jc").eq(ShopMallPartners::getIsBanned,"0").last("limit 1");
|
||||||
queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType,"jc").eq(ShopMallPartners::getIsBanned,"0").last("limit 1");
|
// partner = shopMallPartnersService.getOne(queryWrapper);
|
||||||
partner = shopMallPartnersService.getOne(queryWrapper);
|
// if (ObjectUtil.isEmpty(partner)){
|
||||||
if (ObjectUtil.isEmpty(partner)){
|
// return error();
|
||||||
return error();
|
// }
|
||||||
}
|
// }else if (roles.contains("jcworker")){
|
||||||
}else if (roles.contains("jcworker")){
|
// LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
|
||||||
LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
|
// queryWrapperWork.eq(PartnerWorker::getUserId,user.getId()).last("limit 1");
|
||||||
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId()).last("limit 1");
|
// PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
||||||
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
// if (ObjectUtil.isEmpty(worker)){
|
||||||
if (ObjectUtil.isEmpty(worker)){
|
// return error();
|
||||||
return error();
|
// }
|
||||||
}
|
// partner.setPartnerId(worker.getPartnerId());
|
||||||
partner.setPartnerId(worker.getPartnerId());
|
// }
|
||||||
}
|
|
||||||
Page<InspectionInfo> page = new Page<>(pageNum, pageSize);
|
Page<InspectionInfo> page = new Page<>(pageNum, pageSize);
|
||||||
IPage<InspectionInfo> list = orderInfoService.pageWorkOrder(partner.getPartnerId(),carNum,goodsTitle, customerSource, payType,startTime,roleId,endTime,page);
|
IPage<InspectionInfo> list = orderInfoService.pageWorkOrder(query, page);
|
||||||
return CommonResult.success(list);
|
return CommonResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/delWorkOrder")
|
@GetMapping("/delWorkOrder")
|
||||||
public CommonResult<IPage<?>> delWorkOrder(String carNum,String goodsTitle,String customerSource,String payType,String startTime,Long roleId,String endTime,Integer pageSize,Integer pageNum)
|
public CommonResult<IPage<?>> delWorkOrder(String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime, Integer pageSize, Integer pageNum) {
|
||||||
{
|
|
||||||
LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
||||||
Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
||||||
List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
||||||
|
|
||||||
List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
||||||
|
|
||||||
ShopMallPartners partner = new ShopMallPartners();
|
ShopMallPartners partner = new ShopMallPartners();
|
||||||
if (roles.contains("jcshop")){
|
if (roles.contains("jcshop")) {
|
||||||
LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ShopMallPartners> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType,"jc").eq(ShopMallPartners::getIsBanned,"0").last("limit 1");
|
queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType, "jc").eq(ShopMallPartners::getIsBanned, "0").last("limit 1");
|
||||||
partner = shopMallPartnersService.getOne(queryWrapper);
|
partner = shopMallPartnersService.getOne(queryWrapper);
|
||||||
if (ObjectUtil.isEmpty(partner)){
|
if (ObjectUtil.isEmpty(partner)) {
|
||||||
return error();
|
return error();
|
||||||
}
|
}
|
||||||
}else if (roles.contains("jcworker")){
|
} else if (roles.contains("jcworker")) {
|
||||||
LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PartnerWorker> queryWrapperWork = new LambdaQueryWrapper<>();
|
||||||
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId());
|
queryWrapperWork.eq(PartnerWorker::getUserId, user.getId());
|
||||||
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
||||||
if (ObjectUtil.isEmpty(worker)){
|
if (ObjectUtil.isEmpty(worker)) {
|
||||||
return error();
|
return error();
|
||||||
}
|
}
|
||||||
partner.setPartnerId(worker.getPartnerId());
|
partner.setPartnerId(worker.getPartnerId());
|
||||||
@ -168,74 +167,56 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
Page<InspectionInfo> page = new Page<>(pageNum, pageSize);
|
Page<InspectionInfo> page = new Page<>(pageNum, pageSize);
|
||||||
|
|
||||||
// List<InspectionInfo> list = orderInfoService.delworkOrder(partner.getPartnerId(),carNum,goodsTitle, customerSource, payType,startTime,roleId,endTime);
|
// List<InspectionInfo> list = orderInfoService.delworkOrder(partner.getPartnerId(),carNum,goodsTitle, customerSource, payType,startTime,roleId,endTime);
|
||||||
IPage<InspectionInfo> list = orderInfoService.pageWorkOrder(partner.getPartnerId(),carNum,goodsTitle, customerSource, payType,startTime,roleId,endTime,page);
|
IPage<InspectionInfo> list = orderInfoService.pageWorkOrder(partner.getPartnerId(), carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime, page);
|
||||||
|
|
||||||
return CommonResult.success(list);
|
return CommonResult.success(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/exportWorkOrder")
|
@PostMapping("/exportWorkOrder")
|
||||||
public void exportWorkOrder(String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime, HttpServletResponse response) throws IOException {
|
public void exportWorkOrder(OrderTableQuery query, HttpServletResponse response) throws IOException {
|
||||||
LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
// LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
||||||
Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
Page<InspectionInfo> page = new Page<>(1, 1000000000);
|
||||||
List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
List<InspectionInfo> list = orderInfoService.pageWorkOrder(query, page).getRecords();
|
||||||
|
List<List<String>> rows = new ArrayList<>();
|
||||||
|
Map<String, Object> stringObjectMap = orderInfoService.workOrderData(query);
|
||||||
|
|
||||||
List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
rows.add(CollUtil.newArrayList("公示价格汇总:", "", String.valueOf(Double.parseDouble(stringObjectMap.get("goodsPriceSum").toString()) / 100d) + "元", "实付金额汇总:", "", String.valueOf(Double.parseDouble(stringObjectMap.get("payMoneySum").toString()) / 100d) + "元"));
|
||||||
ShopMallPartners partner = new ShopMallPartners();
|
rows.add(CollUtil.newArrayList("车牌号", "检测车型", "检测类型", "业务渠道", "客户来源", "经办人", "公示价格", "实收金额", "付款时间", "客户手机号", "支付方式", "开始时间", "结束时间", "检测结果"));
|
||||||
if (roles.contains("jcshop")){
|
|
||||||
LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
|
|
||||||
queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType,"jc").eq(ShopMallPartners::getIsBanned,"0").last("limit 1");
|
|
||||||
partner = shopMallPartnersService.getOne(queryWrapper);
|
|
||||||
if (ObjectUtil.isEmpty(partner)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}else if (roles.contains("jcworker")){
|
|
||||||
LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
|
|
||||||
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId());
|
|
||||||
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
|
||||||
if (ObjectUtil.isEmpty(worker)){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
partner.setPartnerId(worker.getPartnerId());
|
|
||||||
}
|
|
||||||
int pageNum = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
|
|
||||||
int pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
|
|
||||||
Page<InspectionInfo> page = new Page<>(pageNum,pageSize);
|
|
||||||
List<InspectionInfo> list = orderInfoService.workOrder(partner.getPartnerId(),carNum,goodsTitle, customerSource, payType,startTime,roleId,endTime);
|
|
||||||
List<List<String>> rows =new ArrayList<>();
|
|
||||||
Map<String, Object> stringObjectMap = orderInfoService.workOrderData(partner.getPartnerId(), carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
|
||||||
|
|
||||||
rows.add(CollUtil.newArrayList("公示价格汇总:","",String.valueOf(Double.parseDouble(stringObjectMap.get("goodsPriceSum").toString())/100d)+"元","实付金额汇总:","",String.valueOf(Double.parseDouble(stringObjectMap.get("payMoneySum").toString())/100d)+"元"));
|
|
||||||
rows.add(CollUtil.newArrayList("车牌号", "检测类型", "检测项目", "公示价格","实收金额","付款时间","客户手机号","接待员手机号","客户来源","支付方式","开始时间","结束时间","检测结果","备注"));
|
|
||||||
|
|
||||||
|
|
||||||
List<DictDataDO> sysDictData = dictDataService.getDictDataListByDictType("pay_type");
|
List<DictDataDO> sysDictData = dictDataService.getDictDataListByDictType("pay_type");
|
||||||
Map<String,String> payMap =new HashMap<>();
|
Map<String, String> payMap = new HashMap<>();
|
||||||
for (DictDataDO it : sysDictData) {
|
for (DictDataDO it : sysDictData) {
|
||||||
payMap.put(it.getValue(),it.getLabel());
|
payMap.put(it.getValue(), it.getLabel());
|
||||||
}
|
}
|
||||||
for (InspectionInfo item : list) {
|
for (InspectionInfo item : list) {
|
||||||
String isPassStr ="";
|
String isPassStr = "";
|
||||||
if (StringUtils.isEmpty(item.getIsPass())){
|
if (item.getIsPass() == null) {
|
||||||
isPassStr = "进行中";
|
isPassStr = "进行中";
|
||||||
}else{
|
} else {
|
||||||
if (item.getIsPass().equals("0")){
|
if (item.getIsPass().equals("0") && item.getStatus().equals("1")) {
|
||||||
isPassStr = "不合格";
|
isPassStr = "不合格";
|
||||||
}else {
|
} else if (item.getIsPass().equals("1") && item.getStatus().equals("1")) {
|
||||||
isPassStr = "合格";
|
isPassStr = "合格";
|
||||||
|
} else if ((item.getStatus().equals("2"))) {
|
||||||
|
isPassStr = "重审中";
|
||||||
|
} else {
|
||||||
|
isPassStr = "进行中";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
String payTypeStr ="";
|
String payTypeStr = "";
|
||||||
if (StringUtils.isEmpty(item.getPayType())){
|
if (StringUtils.isEmpty(item.getPayType())) {
|
||||||
payTypeStr = "";
|
payTypeStr = "暂未支付";
|
||||||
}else{
|
} else {
|
||||||
payTypeStr = payMap.get(item.getPayType());
|
payTypeStr = payMap.get(item.getPayType());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rows.add(CollUtil.newArrayList(Optional.ofNullable(item.getCarNum()).orElse(""), Optional.ofNullable(item.getGoodsTitle()).orElse("") ,Optional.ofNullable(item.getSkuName()).orElse("") ,ObjectUtil.isEmpty(item.getGoodsPrice())?"":String.valueOf(item.getGoodsPrice()/100),ObjectUtil.isEmpty(item.getRealPayMoney())?"":String.valueOf(item.getRealPayMoney()/100), ObjectUtil.isEmpty(item.getPayTime())?"":DateUtil.format(item.getPayTime(),"yyyy-MM-dd hh:mm"),
|
rows.add(CollUtil.newArrayList(Optional.ofNullable(item.getCarNum()).orElse(""), Optional.ofNullable(item.getGoodsTitle()).orElse(""), Optional.ofNullable(item.getSkuName()).orElse(""), Optional.ofNullable(item.getBusinessChannel()).orElse(""), Optional.ofNullable(item.getCustomerSource()).orElse(""), Optional.ofNullable(item.getOtherName()).orElse(""), ObjectUtil.isEmpty(item.getGoodsPrice()) ? "" : BigDecimal.valueOf(item.getGoodsPrice())
|
||||||
Optional.ofNullable(item.getBuyPhone()).orElse(""), Optional.ofNullable(item.getWorkerPhone()).orElse("") , Optional.ofNullable(item.getCustomerSource()).orElse("") , payTypeStr, ObjectUtil.isEmpty(item.getStartTime())?"":DateUtil.format(item.getStartTime(),"yyyy-MM-dd hh:mm"), ObjectUtil.isEmpty(item.getEndTime())?"":DateUtil.format(item.getEndTime(),"yyyy-MM-dd hh:mm"), isPassStr,
|
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)
|
||||||
Optional.ofNullable(item.getRemark()).orElse("")));
|
.toString(), ObjectUtil.isEmpty(item.getRealPayMoney()) ? "暂未支付" : BigDecimal.valueOf(item.getRealPayMoney())
|
||||||
|
.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP)
|
||||||
|
.toString(), ObjectUtil.isEmpty(item.getPayTime()) ? "暂未支付" : DateUtil.format(item.getPayTime(), "yyyy-MM-dd hh:mm"),
|
||||||
|
Optional.ofNullable(item.getBuyPhone()).orElse(""), payTypeStr, ObjectUtil.isEmpty(item.getStartTime()) ? "" : DateUtil.format(item.getStartTime(), "yyyy-MM-dd hh:mm"), ObjectUtil.isEmpty(item.getEndTime()) ? "" : DateUtil.format(item.getEndTime(), "yyyy-MM-dd hh:mm"), isPassStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
ExcelWriter writer = ExcelUtil.getWriter();
|
ExcelWriter writer = ExcelUtil.getWriter();
|
||||||
@ -243,12 +224,16 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
//合并单元格后的标题行,使用默认标题样式
|
//合并单元格后的标题行,使用默认标题样式
|
||||||
//一次性写出内容,强制输出标题
|
//一次性写出内容,强制输出标题
|
||||||
writer.write(rows, true);
|
writer.write(rows, true);
|
||||||
|
|
||||||
|
ExcelExtraHelper.enhanceExcel(writer, rows,
|
||||||
|
CollUtil.newArrayList(8,11,12),
|
||||||
|
null);
|
||||||
//out为OutputStream,需要写出到的目标流
|
//out为OutputStream,需要写出到的目标流
|
||||||
//response为HttpServletResponse对象
|
//response为HttpServletResponse对象
|
||||||
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
response.setContentType("application/vnd.ms-excel;charset=utf-8");
|
||||||
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
|
||||||
response.setHeader("Content-Disposition","attachment;filename=test.xls");
|
response.setHeader("Content-Disposition", "attachment;filename=test.xls");
|
||||||
ServletOutputStream out=response.getOutputStream();
|
ServletOutputStream out = response.getOutputStream();
|
||||||
|
|
||||||
writer.flush(out, true);
|
writer.flush(out, true);
|
||||||
// 关闭writer,释放内存
|
// 关闭writer,释放内存
|
||||||
@ -258,36 +243,36 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/workOrderData")
|
@GetMapping("/workOrderData")
|
||||||
public CommonResult workOrderData(String carNum,String goodsTitle,String customerSource,String payType,String startTime,Long roleId,String endTime,Integer pageSize,Integer pageNum)
|
public CommonResult workOrderData(OrderTableQuery query, Integer pageSize, Integer pageNum) {
|
||||||
{
|
// LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
||||||
LoginUser user = SecurityFrameworkUtils.getLoginUser();
|
// Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
||||||
Set<Long> userRoleIdListByUserId = permissionService.getUserRoleIdListByUserId(user.getId());
|
// List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
||||||
List<RoleDO> roleList = roleService.getRoleList(userRoleIdListByUserId);
|
//
|
||||||
|
// List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
||||||
List<String> roles = roleList.stream().map(RoleDO::getCode).collect(Collectors.toList());
|
// ShopMallPartners partner = new ShopMallPartners();
|
||||||
ShopMallPartners partner = new ShopMallPartners();
|
// if (roles.contains("jcshop")) {
|
||||||
if (roles.contains("jcshop")){
|
// LambdaQueryWrapper<ShopMallPartners> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
|
// queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType, "jc").eq(ShopMallPartners::getIsBanned, "0").last("limit 1");
|
||||||
queryWrapper.orderByAsc(ShopMallPartners::getPartnerId).eq(ShopMallPartners::getType,"jc").eq(ShopMallPartners::getIsBanned,"0").last("limit 1");
|
// partner = shopMallPartnersService.getOne(queryWrapper);
|
||||||
partner = shopMallPartnersService.getOne(queryWrapper);
|
// if (ObjectUtil.isEmpty(partner)) {
|
||||||
if (ObjectUtil.isEmpty(partner)){
|
// return CommonResult.error(-1, "信息有误");
|
||||||
return CommonResult.error(-1,"信息有误");
|
// }
|
||||||
}
|
// } else if (roles.contains("jcworker")) {
|
||||||
}else if (roles.contains("jcworker")){
|
// LambdaQueryWrapper<PartnerWorker> queryWrapperWork = new LambdaQueryWrapper<>();
|
||||||
LambdaQueryWrapper<PartnerWorker> queryWrapperWork =new LambdaQueryWrapper<>();
|
// queryWrapperWork.eq(PartnerWorker::getUserId, user.getId()).last("limit 1");
|
||||||
queryWrapperWork.eq(PartnerWorker::getUserId,user.getId()).last("limit 1");
|
// PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
||||||
PartnerWorker worker = partnerWorkerService.getOne(queryWrapperWork);
|
// if (ObjectUtil.isEmpty(worker)) {
|
||||||
if (ObjectUtil.isEmpty(worker)){
|
// return CommonResult.error(-1, "信息有误");
|
||||||
return CommonResult.error(-1,"信息有误");
|
// }
|
||||||
}
|
// partner.setPartnerId(worker.getPartnerId());
|
||||||
partner.setPartnerId(worker.getPartnerId());
|
// }
|
||||||
}
|
return success(orderInfoService.workOrderData(query));
|
||||||
return success(orderInfoService.workOrderData(partner.getPartnerId(),carNum,goodsTitle, customerSource, payType,startTime,roleId,endTime));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改数据
|
* 修改数据
|
||||||
|
*
|
||||||
* @return 修改结果
|
* @return 修改结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
@ -296,8 +281,10 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
this.shopMallPartnersService.insertShopMallPartners(shopMallPartners);
|
this.shopMallPartnersService.insertShopMallPartners(shopMallPartners);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改数据
|
* 修改数据
|
||||||
|
*
|
||||||
* @return 修改结果
|
* @return 修改结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/edit")
|
@PostMapping("/edit")
|
||||||
@ -308,6 +295,7 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置店主
|
* 设置店主
|
||||||
|
*
|
||||||
* @return 修改结果
|
* @return 修改结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/setShopAdmin")
|
@PostMapping("/setShopAdmin")
|
||||||
@ -315,8 +303,10 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
this.shopMallPartnersService.setShopAdmin(shopMallPartners);
|
this.shopMallPartnersService.setShopAdmin(shopMallPartners);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 封禁 解禁
|
* 封禁 解禁
|
||||||
|
*
|
||||||
* @return 修改结果
|
* @return 修改结果
|
||||||
*/
|
*/
|
||||||
@PostMapping("/banned")
|
@PostMapping("/banned")
|
||||||
@ -326,12 +316,12 @@ public class InspectionMallPartnersController extends BaseController {
|
|||||||
shopMallPartnersService.updateShopMallPartners(shopMallPartners);
|
shopMallPartnersService.updateShopMallPartners(shopMallPartners);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除合作商管理
|
* 删除合作商管理
|
||||||
*/
|
*/
|
||||||
@PostMapping("/del")
|
@PostMapping("/del")
|
||||||
public CommonResult remove(@RequestParam("idList") Long[] idList)
|
public CommonResult remove(@RequestParam("idList") Long[] idList) {
|
||||||
{
|
|
||||||
return toAjax(shopMallPartnersService.deleteShopMallPartnersByPartnerIds(idList));
|
return toAjax(shopMallPartnersService.deleteShopMallPartnersByPartnerIds(idList));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -643,6 +643,9 @@ public class PartnerOwnController extends BaseController {
|
|||||||
//线下收费
|
//线下收费
|
||||||
@PostMapping("/offlineCharging")
|
@PostMapping("/offlineCharging")
|
||||||
public CommonResult offlineCharging(@RequestBody InspectionInfoVo infoVo) {
|
public CommonResult offlineCharging(@RequestBody InspectionInfoVo infoVo) {
|
||||||
|
if (ObjectUtil.isEmpty(infoVo.getPayType())) {
|
||||||
|
throw new SecurityException("请选择支付方式");
|
||||||
|
}
|
||||||
partnerList.offlineCharging(infoVo);
|
partnerList.offlineCharging(infoVo);
|
||||||
return success();
|
return success();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,8 @@ public class InspectionBusinessChannelController {
|
|||||||
public CommonResult<List<InspectionBusinessChannel>> getChannelTree(InspectionBusinessChannel channel) {
|
public CommonResult<List<InspectionBusinessChannel>> getChannelTree(InspectionBusinessChannel channel) {
|
||||||
return CommonResult.success(inspectionBusinessChannelService.list(Wrappers.<InspectionBusinessChannel>lambdaQuery()
|
return CommonResult.success(inspectionBusinessChannelService.list(Wrappers.<InspectionBusinessChannel>lambdaQuery()
|
||||||
.eq(ObjectUtil.isNotEmpty(channel.getType()), InspectionBusinessChannel::getType, channel.getType())
|
.eq(ObjectUtil.isNotEmpty(channel.getType()), InspectionBusinessChannel::getType, channel.getType())
|
||||||
.like(ObjectUtil.isNotEmpty(channel.getName()), InspectionBusinessChannel::getName, channel.getName())));
|
.like(ObjectUtil.isNotEmpty(channel.getName()), InspectionBusinessChannel::getName, channel.getName())
|
||||||
|
.orderByAsc(InspectionBusinessChannel::getSort)));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
package cn.iocoder.yudao.module.inspection.controller.admin;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.module.payment.entity.OrderInfo;
|
||||||
|
import cn.iocoder.yudao.module.payment.service.OrderInfoService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/inspection/orderInfo")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class InspectionOrderInfoController {
|
||||||
|
|
||||||
|
private final OrderInfoService orderInfoService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改订单信息
|
||||||
|
*
|
||||||
|
* @param orderInfo 修改的订单信息
|
||||||
|
* @return 修改结果
|
||||||
|
*/
|
||||||
|
@PutMapping
|
||||||
|
public CommonResult<?> update(@RequestBody OrderInfo orderInfo) {
|
||||||
|
return CommonResult.success(orderInfoService.updateById(orderInfo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取订单信息
|
||||||
|
* @param id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public CommonResult<?> get(@PathVariable Long id){
|
||||||
|
return CommonResult.success(orderInfoService.getById(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -94,4 +94,11 @@ public class InspectionAppointment extends TenantBaseDO
|
|||||||
private String isUse;
|
private String isUse;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String owner;
|
private String owner;
|
||||||
|
/**
|
||||||
|
* 用于区分 预约表还是接车
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String sourceType;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String customerSource;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,8 @@ public class InspectionBusinessChannel extends TenantBaseDO {
|
|||||||
|
|
||||||
private String userIds; // 绑定的用户ID
|
private String userIds; // 绑定的用户ID
|
||||||
|
|
||||||
|
private Integer sort; // 排序
|
||||||
|
|
||||||
// 子节点
|
// 子节点
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<InspectionBusinessChannel> children;
|
private List<InspectionBusinessChannel> children;
|
||||||
|
|||||||
@ -218,4 +218,14 @@ public class InspectionInfo extends TenantBaseDO
|
|||||||
private Integer isMeetPickCar;
|
private Integer isMeetPickCar;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String pickCarAddress;
|
private String pickCarAddress;
|
||||||
|
/**
|
||||||
|
* 出纳是否确认 0-未到账 1-已到账 null-待确认
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String cashierConfirm;
|
||||||
|
/**
|
||||||
|
* 出纳确认备注
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String cashierConfirmRemark;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.inspection.mapper;
|
package cn.iocoder.yudao.module.inspection.mapper;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.inspection.query.OrderTableQuery;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import cn.iocoder.yudao.module.inspection.entity.InspectionInfo;
|
import cn.iocoder.yudao.module.inspection.entity.InspectionInfo;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -73,6 +74,7 @@ public interface InspectionInfoMapper extends BaseMapper<InspectionInfo>
|
|||||||
IPage<InspectionInfo> pageWorkOrder(@Param("partnerId") Long partnerId, @Param("carNum")String carNum, @Param("goodsTitle")String goodsTitle
|
IPage<InspectionInfo> pageWorkOrder(@Param("partnerId") Long partnerId, @Param("carNum")String carNum, @Param("goodsTitle")String goodsTitle
|
||||||
, @Param("customerSource")String customerSource, @Param("payType")String payType, @Param("startTime")String startTime
|
, @Param("customerSource")String customerSource, @Param("payType")String payType, @Param("startTime")String startTime
|
||||||
, @Param("roleId") Long roleId, @Param("endTime")String endTime,Page<InspectionInfo> page);
|
, @Param("roleId") Long roleId, @Param("endTime")String endTime,Page<InspectionInfo> page);
|
||||||
|
IPage<InspectionInfo> pageWorkOrderNew(@Param("query") OrderTableQuery query, Page<InspectionInfo> page);
|
||||||
|
|
||||||
List<InspectionInfo> delworkOrder(@Param("partnerId") Long partnerId, @Param("carNum")String carNum, @Param("goodsTitle")String goodsTitle
|
List<InspectionInfo> delworkOrder(@Param("partnerId") Long partnerId, @Param("carNum")String carNum, @Param("goodsTitle")String goodsTitle
|
||||||
,@Param("customerSource")String customerSource,@Param("payType")String payType,@Param("startTime")String startTime
|
,@Param("customerSource")String customerSource,@Param("payType")String payType,@Param("startTime")String startTime
|
||||||
@ -99,4 +101,6 @@ public interface InspectionInfoMapper extends BaseMapper<InspectionInfo>
|
|||||||
IPage<InspectionInfo> geStelectInspectionByBusiness(@Param("page") Page<InspectionInfo> page,@Param("info") InspectionInfo inspectionInfo);
|
IPage<InspectionInfo> geStelectInspectionByBusiness(@Param("page") Page<InspectionInfo> page,@Param("info") InspectionInfo inspectionInfo);
|
||||||
|
|
||||||
List<InspectionInfo> selectMeetCarList(@Param("datetimeRange") List<String> datetimeRange);
|
List<InspectionInfo> selectMeetCarList(@Param("datetimeRange") List<String> datetimeRange);
|
||||||
|
|
||||||
|
Map<String, Object> workOrderDataNew(@Param("query") OrderTableQuery query);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.inspection.service;
|
package cn.iocoder.yudao.module.inspection.service;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.inspection.entity.InspectionWorkNode;
|
import cn.iocoder.yudao.module.inspection.entity.InspectionWorkNode;
|
||||||
|
import cn.iocoder.yudao.module.inspection.query.OrderTableQuery;
|
||||||
import cn.iocoder.yudao.module.inspection.vo.DlInspectionWorkNodeVo;
|
import cn.iocoder.yudao.module.inspection.vo.DlInspectionWorkNodeVo;
|
||||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
@ -79,6 +80,7 @@ public interface IInspectionInfoService extends IService<InspectionInfo>
|
|||||||
List<InspectionInfo> workOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
List<InspectionInfo> workOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
||||||
|
|
||||||
IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);
|
IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);
|
||||||
|
IPage<InspectionInfo> pageWorkOrder(OrderTableQuery query, Page<InspectionInfo> page);
|
||||||
|
|
||||||
|
|
||||||
List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle,String customerSource,String payType,String startTime,Long roleId,String endTime);
|
List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle,String customerSource,String payType,String startTime,Long roleId,String endTime);
|
||||||
@ -86,6 +88,7 @@ public interface IInspectionInfoService extends IService<InspectionInfo>
|
|||||||
IPage<InspectionInfo> pageDelWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);
|
IPage<InspectionInfo> pageDelWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);
|
||||||
|
|
||||||
Map<String,Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
Map<String,Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
||||||
|
Map<String,Object> workOrderData(OrderTableQuery query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据当前登陆人获取可以选择的工单
|
* 根据当前登陆人获取可以选择的工单
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.iocoder.yudao.common.service.InspectionNoticeService;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
import cn.iocoder.yudao.module.constant.InspectionConstants;
|
import cn.iocoder.yudao.module.constant.InspectionConstants;
|
||||||
import cn.iocoder.yudao.module.constant.InspectionFileEnum;
|
import cn.iocoder.yudao.module.constant.InspectionFileEnum;
|
||||||
@ -24,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -44,6 +46,9 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
|||||||
@Autowired
|
@Autowired
|
||||||
private InspectionFileRecordService fileRecordService;
|
private InspectionFileRecordService fileRecordService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private InspectionNoticeService noticeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询inspectionFile
|
* 查询inspectionFile
|
||||||
*
|
*
|
||||||
@ -154,6 +159,35 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
|||||||
}
|
}
|
||||||
InspectionFile file = this.selectInspectionFileById(inspectionFile.getId());
|
InspectionFile file = this.selectInspectionFileById(inspectionFile.getId());
|
||||||
|
|
||||||
|
// 对比文件信息找出修改了什么内容
|
||||||
|
try {
|
||||||
|
Map<String, Map<String, Object>> compare = compare(file, inspectionFile);
|
||||||
|
List<String> keys = new ArrayList<>();
|
||||||
|
for (Map.Entry<String, Map<String, Object>> entry : compare.entrySet()) {
|
||||||
|
if ("fileName".equals(entry.getKey())) {
|
||||||
|
if ("1".equals(file.getType())) {
|
||||||
|
keys.add(entry.getValue().get("oldValue") + "文件夹称修改为" + entry.getValue().get("newValue"));
|
||||||
|
}else if ("2".equals(file.getType())) {
|
||||||
|
keys.add(entry.getValue().get("oldValue") + "文件称修改为" + entry.getValue().get("newValue"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("filePath".equals(entry.getKey())) {
|
||||||
|
keys.add("路径修改为" + entry.getValue().get("newValue"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("字段 '" + entry.getKey() + "' 变化: " +
|
||||||
|
entry.getValue().get("oldValue") + " -> " +
|
||||||
|
entry.getValue().get("newValue"));
|
||||||
|
}
|
||||||
|
// 发送站内信
|
||||||
|
// 将keys以后好隔开
|
||||||
|
String content = String.join(",", keys);
|
||||||
|
noticeService.sentMessage(842L, content);
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
if ((ObjectUtil.isNotEmpty(inspectionFile.getFilePath()) && ObjectUtil.isNotEmpty(file.getFilePath()) && !file.getFilePath().equals(inspectionFile.getFilePath()))
|
if ((ObjectUtil.isNotEmpty(inspectionFile.getFilePath()) && ObjectUtil.isNotEmpty(file.getFilePath()) && !file.getFilePath().equals(inspectionFile.getFilePath()))
|
||||||
|| (ObjectUtil.isNotEmpty(inspectionFile.getFileName()) && !file.getFileName().equals(inspectionFile.getFileName()))
|
|| (ObjectUtil.isNotEmpty(inspectionFile.getFileName()) && !file.getFileName().equals(inspectionFile.getFileName()))
|
||||||
|| (ObjectUtil.isNotEmpty(inspectionFile.getWarnTime()) && !file.getWarnTime().equals(inspectionFile.getWarnTime()))) {
|
|| (ObjectUtil.isNotEmpty(inspectionFile.getWarnTime()) && !file.getWarnTime().equals(inspectionFile.getWarnTime()))) {
|
||||||
@ -177,6 +211,38 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
|||||||
.eq(InspectionFile::getId, inspectionFile.getId()));
|
.eq(InspectionFile::getId, inspectionFile.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Map<String, Map<String, Object>> compare(InspectionFile oldObj, InspectionFile newObj) throws IllegalAccessException {
|
||||||
|
Map<String, Map<String, Object>> differences = new HashMap<>();
|
||||||
|
|
||||||
|
// 获取类的所有字段(包括私有字段)
|
||||||
|
Field[] fields = InspectionFile.class.getDeclaredFields();
|
||||||
|
|
||||||
|
for (Field field : fields) {
|
||||||
|
// 设置可访问私有字段
|
||||||
|
field.setAccessible(true);
|
||||||
|
|
||||||
|
// 跳过serialVersionUID字段
|
||||||
|
if ("serialVersionUID".equals(field.getName())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取字段值
|
||||||
|
Object oldValue = field.get(oldObj);
|
||||||
|
Object newValue = field.get(newObj);
|
||||||
|
|
||||||
|
// 比较字段值
|
||||||
|
if ((oldValue == null && newValue != null) ||
|
||||||
|
(oldValue != null && !oldValue.equals(newValue))) {
|
||||||
|
Map<String, Object> diff = new HashMap<>();
|
||||||
|
diff.put("oldValue", oldValue);
|
||||||
|
diff.put("newValue", newValue);
|
||||||
|
differences.put(field.getName(), diff);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return differences;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除inspectionFile
|
* 批量删除inspectionFile
|
||||||
*
|
*
|
||||||
|
|||||||
@ -30,6 +30,7 @@ import cn.iocoder.yudao.module.constant.InspectionConstants;
|
|||||||
import cn.iocoder.yudao.module.custom.entity.CustomerMain;
|
import cn.iocoder.yudao.module.custom.entity.CustomerMain;
|
||||||
import cn.iocoder.yudao.module.custom.service.CustomerMainService;
|
import cn.iocoder.yudao.module.custom.service.CustomerMainService;
|
||||||
import cn.iocoder.yudao.module.infra.service.file.FileService;
|
import cn.iocoder.yudao.module.infra.service.file.FileService;
|
||||||
|
import cn.iocoder.yudao.module.inspection.query.OrderTableQuery;
|
||||||
import cn.iocoder.yudao.module.inspection.vo.DlInspectionWorkNodeVo;
|
import cn.iocoder.yudao.module.inspection.vo.DlInspectionWorkNodeVo;
|
||||||
import cn.iocoder.yudao.module.partner.entity.PartnerCustomerInfo;
|
import cn.iocoder.yudao.module.partner.entity.PartnerCustomerInfo;
|
||||||
import cn.iocoder.yudao.module.partner.service.IPartnerCustomerInfoService;
|
import cn.iocoder.yudao.module.partner.service.IPartnerCustomerInfoService;
|
||||||
@ -612,6 +613,10 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
|||||||
public IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime, Page<InspectionInfo> page) {
|
public IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime, Page<InspectionInfo> page) {
|
||||||
return baseMapper.pageWorkOrder(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime, page);
|
return baseMapper.pageWorkOrder(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime, page);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public IPage<InspectionInfo> pageWorkOrder(OrderTableQuery query, Page<InspectionInfo> page) {
|
||||||
|
return baseMapper.pageWorkOrderNew(query, page);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
public List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
||||||
@ -628,6 +633,11 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
|||||||
return baseMapper.workOrderData(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
return baseMapper.workOrderData(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> workOrderData(OrderTableQuery query) {
|
||||||
|
return baseMapper.workOrderDataNew(query);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据当前登陆人获取可以选择的工单
|
* 根据当前登陆人获取可以选择的工单
|
||||||
*
|
*
|
||||||
|
|||||||
@ -99,6 +99,14 @@ public class OrderInfo extends TenantBaseDO {
|
|||||||
private Long partnerId;
|
private Long partnerId;
|
||||||
//合作商id
|
//合作商id
|
||||||
private String partnerName;
|
private String partnerName;
|
||||||
|
/**
|
||||||
|
* 出纳是否确认 0-未到账 1-已到账 null-待确认
|
||||||
|
*/
|
||||||
|
private String cashierConfirm;
|
||||||
|
/**
|
||||||
|
* 出纳确认备注
|
||||||
|
*/
|
||||||
|
private String cashierConfirmRemark;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.payment.service;
|
|||||||
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.inspection.entity.InspectionInfo;
|
import cn.iocoder.yudao.module.inspection.entity.InspectionInfo;
|
||||||
|
import cn.iocoder.yudao.module.inspection.query.OrderTableQuery;
|
||||||
import cn.iocoder.yudao.module.label.vo.LabelPageReqVO;
|
import cn.iocoder.yudao.module.label.vo.LabelPageReqVO;
|
||||||
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
|
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
|
||||||
import cn.iocoder.yudao.module.payment.entity.OrderInfo;
|
import cn.iocoder.yudao.module.payment.entity.OrderInfo;
|
||||||
@ -31,8 +32,10 @@ public interface OrderInfoService extends IService<OrderInfo> {
|
|||||||
List<InspectionInfo> workOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
List<InspectionInfo> workOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
||||||
|
|
||||||
IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);
|
IPage<InspectionInfo> pageWorkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime,Page<InspectionInfo> page);
|
||||||
|
IPage<InspectionInfo> pageWorkOrder(OrderTableQuery query, Page<InspectionInfo> page);
|
||||||
|
|
||||||
Map<String, Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
Map<String, Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
||||||
|
Map<String, Object> workOrderData(OrderTableQuery query);
|
||||||
|
|
||||||
List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|||||||
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||||
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import cn.iocoder.yudao.module.inspection.entity.*;
|
import cn.iocoder.yudao.module.inspection.entity.*;
|
||||||
|
import cn.iocoder.yudao.module.inspection.query.OrderTableQuery;
|
||||||
import cn.iocoder.yudao.module.inspection.service.*;
|
import cn.iocoder.yudao.module.inspection.service.*;
|
||||||
import cn.iocoder.yudao.module.inspection.vo.InspectionOrderExportVo;
|
import cn.iocoder.yudao.module.inspection.vo.InspectionOrderExportVo;
|
||||||
import cn.iocoder.yudao.module.partner.entity.PartnerWorker;
|
import cn.iocoder.yudao.module.partner.entity.PartnerWorker;
|
||||||
@ -141,6 +142,18 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
return iInspectionInfoService.pageWorkOrder(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime, page);
|
return iInspectionInfoService.pageWorkOrder(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<InspectionInfo> pageWorkOrder(OrderTableQuery query, Page<InspectionInfo> page) {
|
||||||
|
if (StringUtils.isNotEmpty(query.getStartTime())) {
|
||||||
|
query.setStartTime(query.getStartTime() + " 00:00:00");
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(query.getEndTime())) {
|
||||||
|
query.setEndTime(query.getEndTime() + " 23:59:59");
|
||||||
|
}
|
||||||
|
|
||||||
|
return iInspectionInfoService.pageWorkOrder(query, page);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
public Map<String, Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
||||||
if (StringUtils.isNotEmpty(startTime)) {
|
if (StringUtils.isNotEmpty(startTime)) {
|
||||||
@ -151,6 +164,16 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
|
|||||||
}
|
}
|
||||||
return iInspectionInfoService.workOrderData(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
return iInspectionInfoService.workOrderData(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> workOrderData(OrderTableQuery query) {
|
||||||
|
if (StringUtils.isNotEmpty(query.getStartTime())) {
|
||||||
|
query.setStartTime(query.getStartTime() + " 00:00:00");
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotEmpty(query.getEndTime())) {
|
||||||
|
query.setEndTime(query.getEndTime() + " 23:59:59");
|
||||||
|
}
|
||||||
|
return iInspectionInfoService.workOrderData(query);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
public List<InspectionInfo> delworkOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
||||||
|
|||||||
@ -0,0 +1,105 @@
|
|||||||
|
package cn.iocoder.yudao.util;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
|
import cn.hutool.poi.excel.ExcelWriter;
|
||||||
|
import org.apache.poi.ss.usermodel.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ExcelExtraHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据内容自动设置列宽,并设置样式
|
||||||
|
* @param writer ExcelWriter
|
||||||
|
* @param rows 所有行(含表头)
|
||||||
|
* @param timeColumnIndexList 哪些列是时间列(索引从0开始)
|
||||||
|
* @param numberColumnIndexList 哪些列是数字列(右对齐)
|
||||||
|
*/
|
||||||
|
public static void enhanceExcel(ExcelWriter writer, List<List<String>> rows,
|
||||||
|
List<Integer> timeColumnIndexList, List<Integer> numberColumnIndexList) {
|
||||||
|
if (CollUtil.isEmpty(rows)) return;
|
||||||
|
|
||||||
|
// ============ 1. 表头样式 ============
|
||||||
|
CellStyle headStyle = writer.getHeadCellStyle();
|
||||||
|
Font headFont = writer.getWorkbook().createFont();
|
||||||
|
headFont.setBold(true);
|
||||||
|
headFont.setFontHeightInPoints((short) 12);
|
||||||
|
headStyle.setFont(headFont);
|
||||||
|
// 设置背景色
|
||||||
|
headStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
|
||||||
|
headStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
|
||||||
|
|
||||||
|
// ============ 2. 内容样式 ============
|
||||||
|
CellStyle contentStyle = writer.getCellStyle();
|
||||||
|
contentStyle.setAlignment(HorizontalAlignment.LEFT);
|
||||||
|
contentStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
||||||
|
|
||||||
|
// ============ 3. 时间列样式 ============
|
||||||
|
CellStyle timeStyle = writer.getWorkbook().createCellStyle();
|
||||||
|
timeStyle.cloneStyleFrom(contentStyle);
|
||||||
|
timeStyle.setDataFormat(writer.getWorkbook().createDataFormat().getFormat("yyyy-MM-dd HH:mm"));
|
||||||
|
|
||||||
|
// ============ 4. 数字列样式 ============
|
||||||
|
CellStyle numberStyle = writer.getWorkbook().createCellStyle();
|
||||||
|
numberStyle.cloneStyleFrom(contentStyle);
|
||||||
|
numberStyle.setAlignment(HorizontalAlignment.RIGHT);
|
||||||
|
|
||||||
|
// ============ 5. 根据内容自动调节列宽 ============
|
||||||
|
int colSize = rows.get(0).size();
|
||||||
|
int[] maxLength = new int[colSize];
|
||||||
|
|
||||||
|
for (List<String> row : rows) {
|
||||||
|
for (int colIndex = 0; colIndex < colSize; colIndex++) {
|
||||||
|
if (row.size() > colIndex && row.get(colIndex) != null) {
|
||||||
|
String cell = row.get(colIndex);
|
||||||
|
int length = getStringDisplayLength(cell);
|
||||||
|
if (length > maxLength[colIndex]) {
|
||||||
|
maxLength[colIndex] = length;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int i = 0; i < colSize; i++) {
|
||||||
|
writer.setColumnWidth(i, maxLength[i] + 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ============ 6. 设置时间列 & 数字列格式 ============
|
||||||
|
Sheet sheet = writer.getSheet();
|
||||||
|
int rowCount = rows.size();
|
||||||
|
|
||||||
|
for (int rowIdx = 1; rowIdx < rowCount; rowIdx++) { // 第0行是表头
|
||||||
|
Row row = sheet.getRow(rowIdx);
|
||||||
|
if (row == null) continue;
|
||||||
|
if (timeColumnIndexList != null)
|
||||||
|
for (Integer colIdx : timeColumnIndexList) {
|
||||||
|
Cell cell = row.getCell(colIdx);
|
||||||
|
if (cell != null) {
|
||||||
|
cell.setCellStyle(timeStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (numberColumnIndexList != null)
|
||||||
|
for (Integer colIdx : numberColumnIndexList) {
|
||||||
|
Cell cell = row.getCell(colIdx);
|
||||||
|
if (cell != null) {
|
||||||
|
cell.setCellStyle(numberStyle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 中文算2长度,英文算1
|
||||||
|
*/
|
||||||
|
private static int getStringDisplayLength(String str) {
|
||||||
|
int length = 0;
|
||||||
|
for (char c : str.toCharArray()) {
|
||||||
|
if (c >= 0x4E00 && c <= 0x9FA5) {
|
||||||
|
length += 2;
|
||||||
|
} else {
|
||||||
|
length += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -96,31 +96,80 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
#{id}
|
#{id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
<select id="getAppointmentList" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionAppointment">
|
<select id="getAppointmentList"
|
||||||
SELECT
|
resultType="cn.iocoder.yudao.module.inspection.entity.InspectionAppointment">
|
||||||
ip.*,su.mobile as buyPhoneNum,su.nickname as buyName,ip.goods_title as goodsTitle,
|
SELECT * FROM (
|
||||||
suc.car_nature,suc.car_brand,suc.car_model,suc.car_no,igs.sku_name
|
-- 部分1:预约表
|
||||||
FROM
|
SELECT
|
||||||
inspection_appointment ip
|
ip.id AS id,
|
||||||
INNER JOIN system_users su ON ip.user_id = su.id
|
ip.appointment_day AS appointmentDay,
|
||||||
left JOIN order_info oi ON ip.order_id = oi.id and oi.deleted=0
|
CONVERT(ip.goods_title USING utf8mb4) COLLATE utf8mb4_general_ci AS goodsTitle,
|
||||||
left join shop_user_car suc on suc.car_id = oi.user_car_id and suc.deleted=0
|
CONVERT(su.mobile USING utf8mb4) COLLATE utf8mb4_general_ci AS buyPhoneNum,
|
||||||
LEFT JOIN inspection_goods_sku igs on igs.id = ip.sku_id
|
CONVERT(su.nickname USING utf8mb4) COLLATE utf8mb4_general_ci AS buyName,
|
||||||
where ip.deleted=0 and oi.validation_time IS NULL
|
CONVERT(suc.car_nature USING utf8mb4) COLLATE utf8mb4_general_ci AS car_nature,
|
||||||
<if test="phoneNum!=null and phoneNum!=''">
|
CONVERT(suc.car_brand USING utf8mb4) COLLATE utf8mb4_general_ci AS car_brand,
|
||||||
and (su.mobile like concat('%',#{phoneNum},'%') OR ip.car_no like concat('%',#{phoneNum},'%'))
|
CONVERT(suc.car_model USING utf8mb4) COLLATE utf8mb4_general_ci AS car_model,
|
||||||
</if>
|
CONVERT(suc.car_no USING utf8mb4) COLLATE utf8mb4_general_ci AS car_no,
|
||||||
<if test="partnerId!=null and partnerId!=''">
|
CONVERT(igs.sku_name USING utf8mb4) COLLATE utf8mb4_general_ci AS sku_name,
|
||||||
and ip.partner_id = #{partnerId}
|
CONVERT("" USING utf8mb4) COLLATE utf8mb4_general_ci AS customerSource,
|
||||||
</if>
|
ip.create_time AS createTime,
|
||||||
<if test="carNo != null and carNo != ''">
|
CONVERT('appointment' USING utf8mb4) COLLATE utf8mb4_general_ci AS sourceType
|
||||||
and ip.car_no like concat('%',#{carNo},'%')
|
FROM inspection_appointment ip
|
||||||
</if>
|
INNER JOIN system_users su ON ip.user_id = su.id AND ip.tenant_id = 180 AND su.tenant_id = 180
|
||||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
LEFT JOIN order_info oi ON ip.order_id = oi.id AND oi.deleted=0 AND oi.tenant_id=180
|
||||||
and ip.appointment_day between #{startTime} and #{endTime}
|
LEFT JOIN shop_user_car suc ON suc.car_id = oi.user_car_id AND suc.deleted=0 AND suc.tenant_id=180
|
||||||
</if>
|
LEFT JOIN inspection_goods_sku igs ON igs.id = ip.sku_id AND igs.tenant_id=180
|
||||||
order by ip.create_time desc
|
WHERE ip.deleted=0 AND oi.validation_time IS NULL
|
||||||
|
<if test="phoneNum!=null and phoneNum!=''">
|
||||||
|
AND (su.mobile LIKE concat('%',#{phoneNum},'%') OR ip.car_no LIKE concat('%',#{phoneNum},'%'))
|
||||||
|
</if>
|
||||||
|
<if test="partnerId!=null and partnerId!=''">
|
||||||
|
AND ip.partner_id = #{partnerId}
|
||||||
|
</if>
|
||||||
|
<if test="carNo != null and carNo != ''">
|
||||||
|
AND ip.car_no LIKE concat('%',#{carNo},'%')
|
||||||
|
</if>
|
||||||
|
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||||
|
AND ip.appointment_day BETWEEN #{startTime} AND #{endTime}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
UNION ALL
|
||||||
|
|
||||||
|
-- 部分2:接车表
|
||||||
|
SELECT
|
||||||
|
imco.id AS id,
|
||||||
|
imco.appointment_day AS appointmentDay,
|
||||||
|
CONVERT(imco.goods_title USING utf8mb4) COLLATE utf8mb4_general_ci AS goodsTitle,
|
||||||
|
CONVERT(imco.buy_phone USING utf8mb4) COLLATE utf8mb4_general_ci AS buyPhoneNum,
|
||||||
|
CONVERT(imco.buy_name USING utf8mb4) COLLATE utf8mb4_general_ci AS buyName,
|
||||||
|
CONVERT(imco.car_nature USING utf8mb4) COLLATE utf8mb4_general_ci AS car_nature,
|
||||||
|
CONVERT(imco.car_model USING utf8mb4) COLLATE utf8mb4_general_ci AS car_brand,
|
||||||
|
CONVERT(imco.car_model USING utf8mb4) COLLATE utf8mb4_general_ci AS car_model,
|
||||||
|
CONVERT(imco.car_num USING utf8mb4) COLLATE utf8mb4_general_ci AS car_no,
|
||||||
|
CONVERT(imco.sku_name USING utf8mb4) COLLATE utf8mb4_general_ci AS sku_name,
|
||||||
|
CONVERT(imco.customer_source USING utf8mb4) COLLATE utf8mb4_general_ci AS customerSource,
|
||||||
|
imco.create_time AS createTime,
|
||||||
|
CONVERT('meetcar' USING utf8mb4) COLLATE utf8mb4_general_ci AS sourceType
|
||||||
|
FROM inspection_meet_car_order imco
|
||||||
|
WHERE imco.deleted=0 AND (imco.is_meet = 0 OR (imco.is_pick_car = 0 AND imco.is_meet_pick_car = 0))
|
||||||
|
<if test="phoneNum!=null and phoneNum!=''">
|
||||||
|
AND (imco.buy_phone LIKE concat('%',#{phoneNum},'%') OR imco.car_num LIKE concat('%',#{phoneNum},'%'))
|
||||||
|
</if>
|
||||||
|
<if test="partnerId!=null and partnerId!=''">
|
||||||
|
<!-- 如果接车表也有 partner_id,这里可以写条件 -->
|
||||||
|
</if>
|
||||||
|
<if test="carNo != null and carNo != ''">
|
||||||
|
AND imco.car_num LIKE concat('%',#{carNo},'%')
|
||||||
|
</if>
|
||||||
|
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||||
|
AND imco.appointment_day BETWEEN #{startTime} AND #{endTime}
|
||||||
|
</if>
|
||||||
|
) t
|
||||||
|
ORDER BY t.createTime DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<select id="getAppointmentOwn" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionAppointment">
|
<select id="getAppointmentOwn" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionAppointment">
|
||||||
SELECT
|
SELECT
|
||||||
ip.*,su.mobile as buyPhoneNum,su.nickname as buyName,ip.goods_title as goodsTitle,
|
ip.*,su.mobile as buyPhoneNum,su.nickname as buyName,ip.goods_title as goodsTitle,
|
||||||
|
|||||||
@ -212,7 +212,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</select>
|
</select>
|
||||||
<select id="pageWorkOrder" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionInfo">
|
<select id="pageWorkOrder" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionInfo">
|
||||||
select distinct ins.*,oi.goods_title,su.nickname as buyName,su.mobile as buyPhone,oi.sku_name,oi.pay_money as realPayMoney
|
select distinct ins.*,oi.goods_title,su.nickname as buyName,su.mobile as buyPhone,oi.sku_name,oi.pay_money as realPayMoney
|
||||||
,oi.pay_type,oi.order_status as orderStatus,oi.goods_id,oi.sku_id,oi.pay_time,oi.goods_price
|
,oi.pay_type,oi.order_status as orderStatus,oi.goods_id,oi.sku_id,oi.pay_time,oi.goods_price,oi.cashier_confirm,oi.cashier_confirm_remark
|
||||||
from inspection_info ins
|
from inspection_info ins
|
||||||
left join order_info oi on oi.id = ins.inspection_order_id
|
left join order_info oi on oi.id = ins.inspection_order_id
|
||||||
left join system_users su on su.id = ins.user_id
|
left join system_users su on su.id = ins.user_id
|
||||||
@ -700,4 +700,60 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
<select id="pageWorkOrderNew" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionInfo">
|
||||||
|
select distinct ins.*,oi.goods_title,su.nickname as buyName,su.mobile as buyPhone,oi.sku_name,oi.pay_money as realPayMoney
|
||||||
|
,oi.pay_type,oi.order_status as orderStatus,oi.goods_id,oi.sku_id,oi.pay_time,oi.goods_price,oi.cashier_confirm,oi.cashier_confirm_remark
|
||||||
|
from inspection_info ins
|
||||||
|
left join order_info oi on oi.id = ins.inspection_order_id
|
||||||
|
left join system_users su on su.id = ins.user_id
|
||||||
|
left join system_user_role sur on sur.user_id = su.id
|
||||||
|
where 1=1
|
||||||
|
<if test="query.carModelOrCarYear!=null and query.carModelOrCarYear!=''">
|
||||||
|
and ins.car_num like concat('%',#{query.carModelOrCarYear},'%')
|
||||||
|
</if>
|
||||||
|
<if test="query.skuName!=null and query.skuName!=''">
|
||||||
|
and oi.sku_name like concat('%',#{query.skuName},'%')
|
||||||
|
</if>
|
||||||
|
<if test="query.customerSource!=null and query.customerSource!=''">
|
||||||
|
AND ins.customer_source = #{query.customerSource}
|
||||||
|
</if>
|
||||||
|
<if test="query.carYear!=null and query.carYear!=''">
|
||||||
|
AND (TIMESTAMPDIFF(YEAR, ins.car_register_date, CURDATE()) >= #{query.carYear}
|
||||||
|
AND TIMESTAMPDIFF(YEAR, ins.car_register_date, CURDATE()) < #{query.carYear} + 1)
|
||||||
|
</if>
|
||||||
|
<if test="query.payType!=null and query.payType!=''">
|
||||||
|
and oi.pay_type = #{query.payType}
|
||||||
|
</if>
|
||||||
|
<if test="query.startTime!=null and query.startTime!=''">
|
||||||
|
and ins.start_time between #{query.startTime} and #{query.endTime}
|
||||||
|
</if>
|
||||||
|
order by ins.start_time desc
|
||||||
|
</select>
|
||||||
|
<select id="workOrderDataNew" resultType="java.util.Map">
|
||||||
|
select ifnull(sum(oi.pay_money),0) as payMoneySum,ifnull(sum(oi.goods_price),0) goodsPriceSum
|
||||||
|
from inspection_info ins
|
||||||
|
left join order_info oi on oi.id = ins.inspection_order_id
|
||||||
|
left join system_users su on su.id = ins.user_id
|
||||||
|
left join system_user_role sur on sur.user_id = su.id
|
||||||
|
where 1=1
|
||||||
|
<if test="query.carModelOrCarYear!=null and query.carModelOrCarYear!=''">
|
||||||
|
and ins.car_num like concat('%',#{query.carModelOrCarYear},'%')
|
||||||
|
</if>
|
||||||
|
<if test="query.skuName!=null and query.skuName!=''">
|
||||||
|
and oi.sku_name like concat('%',#{query.skuName},'%')
|
||||||
|
</if>
|
||||||
|
<if test="query.customerSource!=null and query.customerSource!=''">
|
||||||
|
AND ins.customer_source = #{query.customerSource}
|
||||||
|
</if>
|
||||||
|
<if test="query.carYear!=null and query.carYear!=''">
|
||||||
|
AND (TIMESTAMPDIFF(YEAR, ins.car_register_date, CURDATE()) >= #{query.carYear}
|
||||||
|
AND TIMESTAMPDIFF(YEAR, ins.car_register_date, CURDATE()) < #{query.carYear} + 1)
|
||||||
|
</if>
|
||||||
|
<if test="query.payType!=null and query.payType!=''">
|
||||||
|
and oi.pay_type = #{query.payType}
|
||||||
|
</if>
|
||||||
|
<if test="query.startTime!=null and query.startTime!=''">
|
||||||
|
and ins.start_time between #{query.startTime} and #{query.endTime}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user