提交 fb88478b 作者: panda

开发云享飞作业服务订单-相关接口-同步前端字段名

上级 4f511ff1
package com.mmc.pms.controller.service;
import com.mmc.pms.common.Page;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.controller.BaseController;
import com.mmc.pms.model.group.Create;
import com.mmc.pms.model.qo.ServiceOrderTaskQO;
import com.mmc.pms.model.qo.ServiceQO;
import com.mmc.pms.model.work.dto.ServiceDTO;
import com.mmc.pms.model.work.dto.ServiceOrderTaskDTO;
import com.mmc.pms.model.work.vo.ServiceOrderTaskVO;
import com.mmc.pms.model.work.vo.ServiceVO;
import com.mmc.pms.service.ServiceOrderTaskService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* <p>
* 云享飞服务订单-主表
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Api(tags = {"云享飞作业服务订单-模块"})
@RestController
@RequestMapping("/serviceOrderTask")
public class ServiceOrderTaskController extends BaseController {
@Autowired
private ServiceOrderTaskService serviceOrderTaskService;
@ApiOperation(value = "服务订单任务-新增")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("insertOrderTask")
public ResultBody insertOrderTask(
@Validated(Create.class) @RequestBody ServiceOrderTaskVO param, HttpServletRequest request) {
return serviceOrderTaskService.insertOrderTask(param, this.getUserLoginInfoFromRedis(request).getUserAccountId());
}
@ApiOperation(value = "查询服务订单列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ServiceOrderTaskDTO.class)})
@PostMapping("queryOrderTaskList")
public ResultBody<ServiceOrderTaskDTO> queryOrderTaskList(
@Validated(Page.class) @RequestBody ServiceOrderTaskQO param, HttpServletRequest request) {
return ResultBody.success(serviceOrderTaskService.queryOrderTaskList(param, this.getUserLoginInfoFromRedis(request).getUserAccountId()));
}
@ApiOperation(value = "查询服务订单")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ServiceOrderTaskDTO.class)})
@GetMapping("queryOrderTask")
public ResultBody<ServiceOrderTaskDTO> queryOrderTask(@ApiParam("订单服务id") @RequestParam(value = "id") Integer id) {
return serviceOrderTaskService.queryById(id);
}
}
package com.mmc.pms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mmc.pms.entity.ServiceOrderProvinceCityDO;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 服务订单地址 Mapper 接口
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Mapper
public interface ServiceOrderProvinceCityDao extends BaseMapper<ServiceOrderProvinceCityDO> {
}
package com.mmc.pms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mmc.pms.entity.ServiceOrderStatusInfoDO;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 服务订单状态 Mapper 接口
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Mapper
public interface ServiceOrderStatusInfoDao extends BaseMapper<ServiceOrderStatusInfoDO> {
}
package com.mmc.pms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mmc.pms.entity.ServiceOrderTaskDO;
import com.mmc.pms.model.qo.ServiceOrderTaskQO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 云享飞服务订单-主表 Mapper 接口
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Mapper
public interface ServiceOrderTaskDao extends BaseMapper<ServiceOrderTaskDO> {
Integer conditionCount(@Param("param") ServiceOrderTaskQO param, @Param("userAccountId") Integer userAccountId);
List<ServiceOrderTaskDO> queryPageByLimit(ServiceOrderTaskQO param, Integer userAccountId);
}
package com.mmc.pms.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mmc.pms.entity.ServiceOrderTaskImageDO;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* 服务订单图片 Mapper 接口
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Mapper
public interface ServiceOrderTaskImageDao extends BaseMapper<ServiceOrderTaskImageDO> {
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* <p>
* 服务订单地址
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "service_order_province_city")
public class ServiceOrderProvinceCityDO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "服务订单id")
private Integer serviceOrderTaskId;
@ApiModelProperty(value = "省")
private String province;
@ApiModelProperty(value = "市")
private String city;
@ApiModelProperty(value = "详细地址")
private String address;
@ApiModelProperty(value = "经度")
private BigDecimal lon;
@ApiModelProperty(value = "纬度")
private BigDecimal lat;
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
import java.io.Serializable;
/**
* <p>
* 服务订单状态
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "service_order_status_info")
public class ServiceOrderStatusInfoDO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer orderStatus;
private String doing;
private String waiting;
private String userPort;
private String flyerPort;
private String managePort;
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
* 云享飞服务订单-主表
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "service_order_task")
public class ServiceOrderTaskDO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "唯一标识")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "订单名称")
private String orderName;
@ApiModelProperty(value = "订单总金额")
private BigDecimal orderAmt;
@ApiModelProperty(value = "订单状态:0 待分配运营")
private Integer orderStatus;
@ApiModelProperty(value = "客户ID")
private Integer userAccountId;
@ApiModelProperty(value = "运营人员ID(负责这个order的运营人员id)")
private Integer userOperateId;
@ApiModelProperty(value = "飞手ID")
private Integer flyerId;
@ApiModelProperty(value = "服务项ID")
private Integer inspectionId;
@ApiModelProperty(value = "服务名称")
private String inspectionName;
@ApiModelProperty(value = "预计服务开始时间")
private Date startTime;
@ApiModelProperty(value = "预计服务结束时间")
private Date endTime;
@ApiModelProperty(value = "实际服务开始时间")
private Date acStartTime;
@ApiModelProperty(value = "实际服务结束时间")
private Date acEndTime;
@ApiModelProperty(value = "任务描述")
private String taskDescription;
@ApiModelProperty(value = "平台备注")
private String pfRemark;
@ApiModelProperty(value = "是否显示:0 隐藏,1 显示")
private Integer display;
@ApiModelProperty(value = "创建时间")
private Date createdTime;
@ApiModelProperty(value = "更新时间")
private Date updatedTime;
@ApiModelProperty(value = "逻辑删除;1代表删除,0代表未删除")
@TableLogic
private Integer isDeleted;
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
/**
* <p>
* 服务订单图片
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "service_order_task_image")
public class ServiceOrderTaskImageDO implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer orderTaskId;
@ApiModelProperty(value = "图片")
private String picture;
}
package com.mmc.pms.feign;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mmc.pms.auth.dto.BUserAccountQO;
import com.mmc.pms.auth.dto.UserAccountSimpleDTO;
import com.mmc.pms.feign.hystrix.UserAppApiHystrix;
import io.swagger.annotations.ApiParam;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: zj
......@@ -16,6 +26,7 @@ import java.util.List;
//@FeignClient(name = "cms-svc", fallback = UserAppApiHystrix.class)
@FeignClient(url = "${iuav.userapp.url}", name = "cms-svc", fallback = UserAppApiHystrix.class)
public interface UserAppApi {
/**
* 根据用户id获取基本信息
*
......
package com.mmc.pms.model.qo;
import com.mmc.pms.common.Page;
import com.mmc.pms.model.group.Create;
import com.mmc.pms.model.group.Freeze;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* <p>
* 云享飞服务订单-主表
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ServiceOrderTaskQO implements Serializable {
private static final long serialVersionUID = -17878654L;
@ApiModelProperty(value = "订单状态:0 待分配运营")
private Integer orderStatus;
@ApiModelProperty(value = "页码", required = true)
@NotNull(
message = "页码不能为空",
groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true)
@NotNull(
message = "每页显示数不能为空",
groups = {Page.class, Freeze.class})
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
......@@ -34,10 +34,16 @@ public class ServiceQO implements Serializable {
private String serviceName;
@ApiModelProperty(value = "分类id集合(应用/行业等)")
private List<Integer> categoriesId;
private List<Integer> categoryId;
@ApiModelProperty(value = "应用id")
private Integer applicationId;
@ApiModelProperty(value = "行业id")
private Integer industryId;
@ApiModelProperty(value = "省份编码", example = "440000")
private Integer provinceCode;
private Integer provinceId;
@ApiModelProperty(value = "页码", required = true)
@NotNull(
......
package com.mmc.pms.model.work.dto;
import com.mmc.pms.model.group.Create;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* <p>
* 云享飞服务订单-主表
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ServiceOrderTaskDTO implements Serializable {
private static final long serialVersionUID = -178678654L;
@ApiModelProperty(value = "订单编号")
private String orderNo;
@ApiModelProperty(value = "订单名称")
private String orderName;
@ApiModelProperty(value = "订单总金额")
private BigDecimal orderAmt;
@ApiModelProperty(value = "服务项ID",example = "1")
@NotNull(message = "新增服务-id不能为空", groups = {Create.class})
private Integer inspectionId;
@ApiModelProperty(value = "预计服务开始时间")
@NotNull(message = "新增服务-预计服务开始时间不能为空", groups = {Create.class})
private Date startTime;
@ApiModelProperty(value = "预计服务结束时间")
@NotNull(message = "新增服务-预计服务结束时间不能为空", groups = {Create.class})
private Date endTime;
@ApiModelProperty(value = "省份",example = "广东")
@NotBlank(message = "新增服务-省份不能为空", groups = {Create.class})
private String province;
@ApiModelProperty(value = "市",example = "深圳")
@NotBlank(message = "新增服务-市不能为空", groups = {Create.class})
private String city;
@ApiModelProperty(value = "详细地址",example = "西丽街道")
@NotBlank(message = "新增服务-详细地址不能为空", groups = {Create.class})
private String address;
@ApiModelProperty(value = "经度",example = "117.257370")
@NotNull(message = "新增服务-经度不能为空", groups = {Create.class})
private BigDecimal lon;
@ApiModelProperty(value = "纬度",example = "32.050774")
@NotNull(message = "新增服务-纬度不能为空", groups = {Create.class})
private BigDecimal lat;
@ApiModelProperty(value = "任务描述")
private String taskDescription;
@ApiModelProperty(value = "图片")
private List<String> images;
}
package com.mmc.pms.model.work.vo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.mmc.pms.model.group.Create;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* <p>
* 云享飞服务订单-主表
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ServiceOrderTaskVO implements Serializable {
private static final long serialVersionUID = -178678654L;
@ApiModelProperty(value = "服务项ID",example = "1")
@NotNull(message = "新增服务-id不能为空", groups = {Create.class})
private Integer inspectionId;
@ApiModelProperty(value = "预计服务开始时间")
@NotNull(message = "新增服务-预计服务开始时间不能为空", groups = {Create.class})
private Date startTime;
@ApiModelProperty(value = "预计服务结束时间")
@NotNull(message = "新增服务-预计服务结束时间不能为空", groups = {Create.class})
private Date endTime;
@ApiModelProperty(value = "省份",example = "广东")
@NotBlank(message = "新增服务-省份不能为空", groups = {Create.class})
private String province;
@ApiModelProperty(value = "市",example = "深圳")
@NotBlank(message = "新增服务-市不能为空", groups = {Create.class})
private String city;
@ApiModelProperty(value = "详细地址",example = "西丽街道")
@NotBlank(message = "新增服务-详细地址不能为空", groups = {Create.class})
private String address;
@ApiModelProperty(value = "经度",example = "117.257370")
@NotNull(message = "新增服务-经度不能为空", groups = {Create.class})
private BigDecimal lon;
@ApiModelProperty(value = "纬度",example = "32.050774")
@NotNull(message = "新增服务-纬度不能为空", groups = {Create.class})
private BigDecimal lat;
@ApiModelProperty(value = "任务描述")
private String taskDescription;
@ApiModelProperty(value = "图片")
private List<String> images;
}
......@@ -3,8 +3,6 @@ package com.mmc.pms.service.Impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.common.ResultEnum;
import com.mmc.pms.constant.TokenConstant;
import com.mmc.pms.dao.BackstageTaskServiceDao;
import com.mmc.pms.dao.CategoriesDao;
import com.mmc.pms.entity.Categories;
......@@ -12,20 +10,16 @@ import com.mmc.pms.entity.InspComtDO;
import com.mmc.pms.entity.ServiceDO;
import com.mmc.pms.feign.UserAppApi;
import com.mmc.pms.model.qo.ServiceQO;
import com.mmc.pms.model.sale.dto.GoodsSpecDTO;
import com.mmc.pms.model.work.dto.ServiceDTO;
import com.mmc.pms.model.work.dto.WorkServiceDTO;
import com.mmc.pms.model.work.vo.ServiceVO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.redis.RedisConstant;
import com.mmc.pms.service.BackstageTaskService;
import com.mmc.pms.service.InspComtService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -143,14 +137,14 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<Integer> userIds = null;
Integer provinceCode = param.getProvinceCode();
Integer provinceCode = param.getProvinceId();
if(provinceCode!=null){
userIds = userAppApi.feignListUserAccountIds(provinceCode, null, null, null);
if(userIds==null || userIds.size()==0){
userIds = Arrays.asList(-1);
}
}
List<Integer> categoriesIds = param.getCategoriesId();
List<Integer> categoriesIds = param.getCategoryId();
int count = backstageTaskServiceDao.conditionCount(param,categoriesIds,userIds);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
......
package com.mmc.pms.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mmc.pms.dao.ServiceOrderProvinceCityDao;
import com.mmc.pms.entity.ServiceOrderProvinceCityDO;
import com.mmc.pms.service.ServiceOrderProvinceCityService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务订单地址 服务实现类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Service
public class ServiceOrderProvinceCityServiceImpl extends ServiceImpl<ServiceOrderProvinceCityDao, ServiceOrderProvinceCityDO> implements ServiceOrderProvinceCityService {
}
package com.mmc.pms.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mmc.pms.dao.ServiceOrderStatusInfoDao;
import com.mmc.pms.entity.ServiceOrderStatusInfoDO;
import com.mmc.pms.service.ServiceOrderStatusInfoService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务订单状态 服务实现类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Service
public class ServiceOrderStatusInfoServiceImpl extends ServiceImpl<ServiceOrderStatusInfoDao, ServiceOrderStatusInfoDO> implements ServiceOrderStatusInfoService {
}
package com.mmc.pms.service.Impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mmc.pms.dao.ServiceOrderTaskImageDao;
import com.mmc.pms.entity.ServiceOrderTaskImageDO;
import com.mmc.pms.service.ServiceOrderTaskImageService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务订单图片 服务实现类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
@Service
public class ServiceOrderTaskImageServiceImpl extends ServiceImpl<ServiceOrderTaskImageDao, ServiceOrderTaskImageDO> implements ServiceOrderTaskImageService {
}
package com.mmc.pms.service.Impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.dao.BackstageTaskServiceDao;
import com.mmc.pms.dao.ServiceOrderProvinceCityDao;
import com.mmc.pms.dao.ServiceOrderTaskDao;
import com.mmc.pms.dao.ServiceOrderTaskImageDao;
import com.mmc.pms.entity.ServiceDO;
import com.mmc.pms.entity.ServiceOrderProvinceCityDO;
import com.mmc.pms.entity.ServiceOrderTaskDO;
import com.mmc.pms.entity.ServiceOrderTaskImageDO;
import com.mmc.pms.model.qo.ServiceOrderTaskQO;
import com.mmc.pms.model.work.dto.ServiceOrderTaskDTO;
import com.mmc.pms.model.work.vo.ServiceOrderTaskVO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.service.ServiceOrderTaskService;
import com.mmc.pms.util.BeanCopyUtils;
import com.mmc.pms.util.CodeUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* 云享飞服务订单-主表 服务实现类
*
* @author Pika
* @since 2023-06-10
*/
@Service
public class ServiceOrderTaskServiceImpl
extends ServiceImpl<ServiceOrderTaskDao, ServiceOrderTaskDO>
implements ServiceOrderTaskService {
@Autowired private ServiceOrderTaskDao serviceOrderTaskDao;
@Autowired private ServiceOrderProvinceCityDao serviceOrderProvinceCityDao;
@Autowired private ServiceOrderTaskImageDao serviceOrderTaskImageDao;
@Autowired private BackstageTaskServiceDao backstageTaskServiceDao;
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBody insertOrderTask(ServiceOrderTaskVO param, Integer userAccountId) {
ServiceDO serviceDO = backstageTaskServiceDao.queryById(param.getInspectionId());
if (serviceDO == null) {
return ResultBody.error("服务id不存在");
}
// 保存作业服务订单
ServiceOrderTaskDO orderTaskDO =
ServiceOrderTaskDO.builder()
.orderNo(CodeUtil.createOrderTaskNO())
.orderName(serviceDO.getServiceName())
.inspectionId(param.getInspectionId())
.inspectionName(serviceDO.getServiceName())
.taskDescription(param.getTaskDescription())
.startTime(param.getStartTime())
.endTime(param.getEndTime())
.userAccountId(userAccountId)
.build();
serviceOrderTaskDao.insert(orderTaskDO);
// 保存作业服务地址信息
ServiceOrderProvinceCityDO provinceCityDO =
ServiceOrderProvinceCityDO.builder()
.serviceOrderTaskId(orderTaskDO.getId())
.province(param.getProvince())
.city(param.getCity())
.address(param.getAddress())
.lat(param.getLat())
.lon(param.getLon())
.build();
serviceOrderProvinceCityDao.insert(provinceCityDO);
// 保存作业服务图片
List<String> images = param.getImages();
if (CollectionUtils.isNotEmpty(images)) {
ServiceOrderTaskImageDO imageDO =
ServiceOrderTaskImageDO.builder()
.orderTaskId(orderTaskDO.getId())
.picture(String.join(",", images))
.build();
serviceOrderTaskImageDao.insert(imageDO);
}
return ResultBody.success();
}
@Override
public PageResult queryOrderTaskList(ServiceOrderTaskQO param, Integer userAccountId) {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
Integer count = serviceOrderTaskDao.conditionCount(param, userAccountId);
if (count == null || count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
}
List<ServiceOrderTaskDO> orderTaskList =
serviceOrderTaskDao.queryPageByLimit(param, userAccountId);
List<Integer> orderTaskIds =
orderTaskList.stream().map(ServiceOrderTaskDO::getId).collect(Collectors.toList());
Map<Integer, ServiceOrderProvinceCityDO> provinceCityMap = getOrderProvinceCityDOMapById(orderTaskIds);
Map<Integer, List<ServiceOrderTaskImageDO>> imageMap = getImageListMapById(orderTaskIds);
List<ServiceOrderTaskDTO> pageList = new ArrayList<>();
for (ServiceOrderTaskDO item : orderTaskList) {
ServiceOrderTaskDTO orderTaskDTO = getServiceOrderTaskDTO(provinceCityMap, imageMap, item);
pageList.add(orderTaskDTO);
}
return PageResult.buildPage(pageNo, param.getPageSize(), count, pageList);
}
@Override
public ResultBody<ServiceOrderTaskDTO> queryById(Integer id) {
ServiceOrderTaskDO order = serviceOrderTaskDao.selectById(id);
if(order==null){
return ResultBody.success();
}
Map<Integer, ServiceOrderProvinceCityDO> provinceCityMap = getOrderProvinceCityDOMapById(Arrays.asList(id));
Map<Integer, List<ServiceOrderTaskImageDO>> imageMap = getImageListMapById(Arrays.asList(id));
ServiceOrderTaskDTO serviceOrderTaskDTO = getServiceOrderTaskDTO(provinceCityMap, imageMap, order);
return ResultBody.success(serviceOrderTaskDTO);
}
private ServiceOrderTaskDTO getServiceOrderTaskDTO(Map<Integer, ServiceOrderProvinceCityDO> provinceCityMap, Map<Integer, List<ServiceOrderTaskImageDO>> imageMap, ServiceOrderTaskDO item) {
ServiceOrderTaskDTO orderTaskDTO = BeanCopyUtils.properties(item, new ServiceOrderTaskDTO());
BeanCopyUtils.properties(provinceCityMap.get(item.getId()), orderTaskDTO);
List<ServiceOrderTaskImageDO> imageDOList = imageMap.get(item.getId());
List<String> images = null;
if (CollectionUtils.isNotEmpty(imageDOList)) {
images =
imageDOList.stream()
.map(ServiceOrderTaskImageDO::getPicture)
.collect(Collectors.toList());
}
orderTaskDTO.setImages(images);
return orderTaskDTO;
}
private Map<Integer, List<ServiceOrderTaskImageDO>> getImageListMapById(List<Integer> orderTaskIds) {
LambdaQueryWrapper<ServiceOrderTaskImageDO> imageWrapper = new LambdaQueryWrapper<>();
imageWrapper.in(ServiceOrderTaskImageDO::getOrderTaskId, orderTaskIds);
List<ServiceOrderTaskImageDO> imageList = serviceOrderTaskImageDao.selectList(imageWrapper);
Map<Integer, List<ServiceOrderTaskImageDO>> imageMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(imageList)) {
imageMap =
imageList.stream()
.collect(Collectors.groupingBy(ServiceOrderTaskImageDO::getOrderTaskId));
}
return imageMap;
}
private Map<Integer, ServiceOrderProvinceCityDO> getOrderProvinceCityDOMapById(List<Integer> orderTaskIds) {
LambdaQueryWrapper<ServiceOrderProvinceCityDO> provinceCityWrapper = new LambdaQueryWrapper<>();
provinceCityWrapper.in(ServiceOrderProvinceCityDO::getServiceOrderTaskId, orderTaskIds);
List<ServiceOrderProvinceCityDO> orderProvinceCityDOList =
serviceOrderProvinceCityDao.selectList(provinceCityWrapper);
Map<Integer, ServiceOrderProvinceCityDO> provinceCityMap =
orderProvinceCityDOList.stream()
.collect(
Collectors.toMap(
ServiceOrderProvinceCityDO::getServiceOrderTaskId, d -> d, (k1, k2) -> k1));
return provinceCityMap;
}
}
package com.mmc.pms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mmc.pms.entity.ServiceOrderProvinceCityDO;
/**
* <p>
* 服务订单地址 服务类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
public interface ServiceOrderProvinceCityService extends IService<ServiceOrderProvinceCityDO> {
}
package com.mmc.pms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mmc.pms.entity.ServiceOrderStatusInfoDO;
/**
* <p>
* 服务订单状态 服务类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
public interface ServiceOrderStatusInfoService extends IService<ServiceOrderStatusInfoDO> {
}
package com.mmc.pms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mmc.pms.entity.ServiceOrderTaskImageDO;
/**
* <p>
* 服务订单图片 服务类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
public interface ServiceOrderTaskImageService extends IService<ServiceOrderTaskImageDO> {
}
package com.mmc.pms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.entity.ServiceOrderTaskDO;
import com.mmc.pms.model.qo.ServiceOrderTaskQO;
import com.mmc.pms.model.work.dto.ServiceOrderTaskDTO;
import com.mmc.pms.model.work.vo.ServiceOrderTaskVO;
import com.mmc.pms.page.PageResult;
/**
* <p>
* 云享飞服务订单-主表 服务类
* </p>
*
* @author Pika
* @since 2023-06-10
*/
public interface ServiceOrderTaskService extends IService<ServiceOrderTaskDO> {
ResultBody insertOrderTask(ServiceOrderTaskVO param, Integer userAccountId);
PageResult queryOrderTaskList(ServiceOrderTaskQO param, Integer userAccountId);
ResultBody<ServiceOrderTaskDTO> queryById(Integer id);
}
......@@ -74,9 +74,9 @@
<if test="industryId != null">
and industry_id = #{industryId}
</if>
<if test="accountId != null">
and account_id = #{accountId}
</if>
<!-- <if test="accountId != null">-->
<!-- and account_id = #{accountId}-->
<!-- </if>-->
</where>
order by create_time desc
limit #{pageNo}, #{pageSize}
......@@ -97,9 +97,9 @@
<if test="industryId != null">
and industry_id = #{industryId}
</if>
<if test="accountId != null">
and account_id = #{accountId}
</if>
<!-- <if test="accountId != null">-->
<!-- and account_id = #{accountId}-->
<!-- </if>-->
</where>
</select>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.ServiceOrderProvinceCityDao">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.ServiceOrderStatusInfoDao">
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.ServiceOrderTaskDao">
<select id="conditionCount" resultType="java.lang.Integer">
select count(*)
from service_order_task
<where>
is_deleted = 0
<if test="param.orderStatus != null">
and order_status = #{param.orderStatus}
</if>
<if test="userAccountId != null">
and user_account_id = #{userAccountId}
</if>
</where>
</select>
<select id="queryPageByLimit" resultType="com.mmc.pms.entity.ServiceOrderTaskDO">
select id, order_no, order_name, order_amt, order_status, user_account_id, user_operate_id, flyer_id,
inspection_id, inspection_name, start_time, end_time, ac_start_time, ac_end_time, task_description, pf_remark,
display, created_time, updated_time
from service_order_task
<where>
is_deleted = 0
<if test="param.orderStatus!=null">
and order_status = #{param.orderStatus}
</if>
<if test="userAccountId != null">
and user_account_id = #{userAccountId}
</if>
</where>
order by created_time desc
limit #{param.pageNo}, #{param.pageSize}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.pms.dao.ServiceOrderTaskImageDao">
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论