提交 b471e910 authored 作者: aiqingguo's avatar aiqingguo

司机上报

上级 d7670b71
package com.clx.performance.param.app.collect;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class CollectWaitReportReceiveAddressSaveParam {
@ApiModelProperty(value = "运单编号")
@NotBlank(message = "运单编号不能为空")
private String childNo;
@ApiModelProperty(value = "排队状态:1 无需排队 2 场内需要排队 3 厂外需要排队", example = "1")
@NotNull(message = "排队状态不能为空")
private Integer waitType;
@ApiModelProperty(value = "预计站内等待时长", example = "1")
private BigDecimal stationInTime;
@ApiModelProperty(value = "预计站内等待时长图片列表")
private List<String> stationInImageList;
@ApiModelProperty(value = "预计站外等待时长", example = "1")
private BigDecimal stationOutTime;
@ApiModelProperty(value = "预计站外等待时长图片列表")
private List<String> stationOutImageList;
}
package com.clx.performance.param.app.collect;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
public class CollectWaitReportSendAddressSaveParam {
@ApiModelProperty(value = "运单编号")
@NotBlank(message = "运单编号不能为空")
private String childNo;
@ApiModelProperty(value = "排队状态:1 无需排队 2 场内需要排队 3 厂外需要排队", example = "1")
@NotNull(message = "排队状态不能为空")
private Integer waitType;
@ApiModelProperty(value = "预计站内等待时长", example = "1")
private BigDecimal stationInTime;
@ApiModelProperty(value = "预计站内等待时长图片列表")
private List<String> stationInImageList;
@ApiModelProperty(value = "预计站外等待时长", example = "1")
private BigDecimal stationOutTime;
@ApiModelProperty(value = "预计站外等待时长图片列表")
private List<String> stationOutImageList;
}
package com.clx.performance.param.app.collect;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@NoArgsConstructor
@ToString
public class PageCollectTruckWaitParam extends PageParam {
@ApiModelProperty(value = "用户编号", hidden = true)
private Long userNo;
}
package com.clx.performance.controller.app;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.collect.CollectWaitReportReceiveAddressSaveParam;
import com.clx.performance.param.app.collect.CollectWaitReportSendAddressSaveParam;
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.service.collect.CollectWaitReportService;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Slf4j
@RestController
@RequestMapping(value="/app/driver/collect/wait")
@Validated
@Api(tags = "APP-排队上报")
@AllArgsConstructor
public class AppDriverCollectTruckWaitController {
private final CollectWaitReportService collectWaitReportService;
@ApiOperation(value = "上报装货地排队情况", notes = "<br>By:艾庆国")
@PostMapping("/saveSendAddressReport")
public Result<Void> saveSendAddressReport(@RequestBody @Validated CollectWaitReportSendAddressSaveParam param) {
collectWaitReportService.saveSendAddressReport(param);
return Result.ok();
}
@ApiOperation(value = "上报卸车地排队情况", notes = "<br>By:艾庆国")
@PostMapping("/saveReceiveAddressReport")
public Result<Void> saveReceiveAddressReport(@RequestBody @Validated CollectWaitReportReceiveAddressSaveParam param) {
collectWaitReportService.saveReceiveAddressReport(param);
return Result.ok();
}
@ApiOperation(value = "查询线路上报详情", notes = "<br>By:艾庆国")
@GetMapping("/getReportInfo")
public Result<CollectTruckWaitVO> getReportInfo(Integer id) {
return Result.ok(collectWaitReportService.getReportInfo(id));
}
@ApiOperation(value = "分页查询线路上报列表",notes = "<br>By:艾庆国")
@PostMapping("/pageWaitReport")
@UnitCovert(param = false)
public Result<PageData<CollectTruckWaitVO>> pageWaitReport(@RequestBody @Validated PageCollectTruckWaitParam param) {
IPage<CollectTruckWaitVO> page = collectWaitReportService.pageWaitReport(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
}
package com.clx.performance.dao.collect; package com.clx.performance.dao.collect;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.collect.CollectTruckWaitMapper; import com.clx.performance.mapper.collect.CollectTruckWaitMapper;
import com.clx.performance.model.collect.CollectTruckWait; import com.clx.performance.model.collect.CollectTruckWait;
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import com.msl.common.dao.BaseDao; import com.msl.common.dao.BaseDao;
/** /**
...@@ -12,5 +15,6 @@ import com.msl.common.dao.BaseDao; ...@@ -12,5 +15,6 @@ import com.msl.common.dao.BaseDao;
*/ */
public interface CollectTruckWaitDao extends BaseDao<CollectTruckWaitMapper, CollectTruckWait, Integer> { public interface CollectTruckWaitDao extends BaseDao<CollectTruckWaitMapper, CollectTruckWait, Integer> {
IPage<CollectTruckWaitVO> pageWaitReport(PageCollectTruckWaitParam param);
} }
package com.clx.performance.dao.impl.collect; package com.clx.performance.dao.impl.collect;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.collect.CollectTruckWaitDao; import com.clx.performance.dao.collect.CollectTruckWaitDao;
import com.clx.performance.mapper.collect.CollectTruckWaitMapper; import com.clx.performance.mapper.collect.CollectTruckWaitMapper;
import com.clx.performance.model.collect.CollectTruckWait; import com.clx.performance.model.collect.CollectTruckWait;
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import com.msl.common.dao.impl.BaseDaoImpl; import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -15,4 +19,9 @@ import org.springframework.stereotype.Repository; ...@@ -15,4 +19,9 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public class CollectTruckWaitDaoImpl extends BaseDaoImpl<CollectTruckWaitMapper, CollectTruckWait, Integer> implements CollectTruckWaitDao { public class CollectTruckWaitDaoImpl extends BaseDaoImpl<CollectTruckWaitMapper, CollectTruckWait, Integer> implements CollectTruckWaitDao {
@Override
public IPage<CollectTruckWaitVO> pageWaitReport(PageCollectTruckWaitParam param) {
Page<CollectTruckWaitVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.pageWaitReport(page,param);
}
} }
...@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.collect.CollectTruckWait; import com.clx.performance.model.collect.CollectTruckWait;
import com.clx.performance.param.app.collect.PageCollectTraficCongestionParam; import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.sqlProvider.collect.CollectTrafficCongestionSqlProvider; import com.clx.performance.sqlProvider.collect.CollectTruckWaitSqlProvider;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO; import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -21,9 +21,9 @@ import org.apache.ibatis.annotations.SelectProvider; ...@@ -21,9 +21,9 @@ import org.apache.ibatis.annotations.SelectProvider;
@Mapper @Mapper
public interface CollectTruckWaitMapper extends BaseMapper<CollectTruckWait> { public interface CollectTruckWaitMapper extends BaseMapper<CollectTruckWait> {
/** /**
* @see CollectTrafficCongestionSqlProvider#pageTraffic(com.baomidou.mybatisplus.extension.plugins.pagination.Page, com.clx.performance.param.app.collect.PageCollectTraficCongestionParam) * @see CollectTruckWaitSqlProvider#pageWaitReport(com.baomidou.mybatisplus.extension.plugins.pagination.Page, com.clx.performance.param.app.collect.PageCollectTruckWaitParam)
*/ */
@SelectProvider(type = CollectTrafficCongestionSqlProvider.class, method = "pageTraffic") @SelectProvider(type = CollectTruckWaitSqlProvider.class, method = "pageWaitReport")
IPage<CollectTruckWaitVO> pageTraffic(@Param("page") Page<CollectTruckWaitVO> page, @Param("param") PageCollectTraficCongestionParam param); IPage<CollectTruckWaitVO> pageWaitReport(@Param("page") Page<CollectTruckWaitVO> page, @Param("param") PageCollectTruckWaitParam param);
} }
\ No newline at end of file
...@@ -5,13 +5,12 @@ import com.baomidou.mybatisplus.annotation.TableId; ...@@ -5,13 +5,12 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.msl.common.config.KeyColumn; import com.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey; import com.msl.common.model.HasKey;
import lombok.Getter; import lombok.*;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Optional;
/** /**
* @Author: aiqinguo * @Author: aiqinguo
...@@ -36,7 +35,7 @@ public class CollectTruckWait implements HasKey<Integer> { ...@@ -36,7 +35,7 @@ public class CollectTruckWait implements HasKey<Integer> {
private Integer addressId; //地址id private Integer addressId; //地址id
private String address; //详细地址 private String address; //详细地址
private Integer reportType; //上报类型:1 装车类型 2卸车类型 private Integer reportType; //上报类型:1 装车类型 2卸车类型
private Integer waitType; //上报类型:1 需要排队 private Integer waitType; //上报类型:1 无需排队 2 场内需要排队 3 厂外需要排队
private BigDecimal stationInTime; //预计站内等待时长 private BigDecimal stationInTime; //预计站内等待时长
private String stationInImage; //预计站内等待时长图片 private String stationInImage; //预计站内等待时长图片
private BigDecimal stationOutTime; //预计站外等待时长 private BigDecimal stationOutTime; //预计站外等待时长
...@@ -51,4 +50,30 @@ public class CollectTruckWait implements HasKey<Integer> { ...@@ -51,4 +50,30 @@ public class CollectTruckWait implements HasKey<Integer> {
return id; return id;
} }
@Getter
@AllArgsConstructor
public enum ReportType {
LOAD(1, "装车类型"),
UNLOAD(2, "卸车类型");
private final Integer code;
private final String msg;
public static Optional<ReportType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
@Getter
@AllArgsConstructor
public enum waitType {
LOAD(1, "装车类型"),
UNLOAD(2, "卸车类型");
private final Integer code;
private final String msg;
public static Optional<waitType> getByCode(int code) {
return Arrays.stream(values()).filter(e -> e.code == code).findFirst();
}
}
} }
\ No newline at end of file
package com.clx.performance.service.collect;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.app.collect.CollectWaitReportReceiveAddressSaveParam;
import com.clx.performance.param.app.collect.CollectWaitReportSendAddressSaveParam;
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
public interface CollectWaitReportService {
void saveSendAddressReport(CollectWaitReportSendAddressSaveParam param);
void saveReceiveAddressReport(CollectWaitReportReceiveAddressSaveParam param);
CollectTruckWaitVO getReportInfo(Integer id);
IPage<CollectTruckWaitVO> pageWaitReport(PageCollectTruckWaitParam param);
}
package com.clx.performance.service.impl.collect;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.OrderChildDao;
import com.clx.performance.dao.collect.CollectTruckWaitDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.collect.CollectTruckWait;
import com.clx.performance.param.app.collect.CollectWaitReportReceiveAddressSaveParam;
import com.clx.performance.param.app.collect.CollectWaitReportSendAddressSaveParam;
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.service.collect.CollectWaitReportService;
import com.clx.performance.struct.collect.CollectTruckWaitStruct;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@Slf4j
@Service
public class CollectWaitReportServiceImpl implements CollectWaitReportService {
@Autowired
private CollectTruckWaitDao collectTruckWaitDao;
@Autowired
private OrderChildDao orderChildDao;
@Autowired
private CollectTruckWaitStruct collectTruckWaitStruct;
@Override
public void saveSendAddressReport(CollectWaitReportSendAddressSaveParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(param.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
CollectTruckWait collectTruckWait = new CollectTruckWait();
collectTruckWait.setUserNo(userNo);
collectTruckWait.setName(loginUserInfo.getUserName());
collectTruckWait.setMobile(loginUserInfo.getUserMobile());
collectTruckWait.setTruckNo(orderChild.getTruckNo());
collectTruckWait.setChildNo(param.getChildNo());
collectTruckWait.setAddressId(orderChild.getSendAddressId());
collectTruckWait.setAddress(orderChild.getSendAddress());
collectTruckWait.setReportType(CollectTruckWait.ReportType.LOAD.getCode());
collectTruckWait.setWaitType(param.getWaitType());
collectTruckWait.setStationInTime(param.getStationInTime());
collectTruckWait.setStationInImage(JSON.toJSONString(param.getStationInImageList()));
// collectTruckWait.setStationOutTime(param.getStationOutTime());
// collectTruckWait.setStationOutImage(JSON.toJSONString(param.getStationOutImageList()));
collectTruckWait.setReportTime(LocalDateTime.now());
collectTruckWaitDao.saveEntity(collectTruckWait);
}
@Override
public void saveReceiveAddressReport(CollectWaitReportReceiveAddressSaveParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
OrderChild orderChild = orderChildDao.getByChildNo(param.getChildNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
CollectTruckWait collectTruckWait = new CollectTruckWait();
collectTruckWait.setUserNo(userNo);
collectTruckWait.setName(loginUserInfo.getUserName());
collectTruckWait.setMobile(loginUserInfo.getUserMobile());
collectTruckWait.setTruckNo(orderChild.getTruckNo());
collectTruckWait.setChildNo(param.getChildNo());
collectTruckWait.setAddressId(orderChild.getSendAddressId());
collectTruckWait.setAddress(orderChild.getSendAddress());
collectTruckWait.setReportType(CollectTruckWait.ReportType.UNLOAD.getCode());
collectTruckWait.setWaitType(param.getWaitType());
// collectTruckWait.setStationInTime(param.getStationInTime());
// collectTruckWait.setStationInImage(JSON.toJSONString(param.getStationInImageList()));
collectTruckWait.setStationOutTime(param.getStationOutTime());
collectTruckWait.setStationOutImage(JSON.toJSONString(param.getStationOutImageList()));
collectTruckWait.setReportTime(LocalDateTime.now());
collectTruckWaitDao.saveEntity(collectTruckWait);
}
@Override
public CollectTruckWaitVO getReportInfo(Integer id) {
return collectTruckWaitDao.getEntityByKey(id).map(collectTruckWaitStruct::convert).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
}
@Override
public IPage<CollectTruckWaitVO> pageWaitReport(PageCollectTruckWaitParam param) {
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
Long userNo = loginUserInfo.getUserNo();
param.setUserNo(userNo);
return collectTruckWaitDao.pageWaitReport(param);
}
}
package com.clx.performance.sqlProvider.collect;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.param.app.collect.PageCollectTruckWaitParam;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
public class CollectTruckWaitSqlProvider {
public String pageWaitReport(@Param("page") Page<CollectTruckWaitVO> page, @Param("param") PageCollectTruckWaitParam param) {
return new SQL(){{
SELECT(" id, user_no as userNo, name, mobile, truck_no as truckNo, child_no as childNo, address_id as addressId, " +
" address, report_type as reportType, wait_type as waitType, station_in_time as stationInTime, " +
" station_in_image as stationInImage, station_out_time as stationOutTime, station_out_image as stationOutImage, " +
" date_format(report_time, '%Y-%m-%d %H:%i:%s') as reportTime, date_format(create_time, '%Y-%m-%d %H:%i:%s') as createTime, " +
" date_format(modified_time, '%Y-%m-%d %H:%i:%s') as modifiedTime "
);
FROM(" collect_truck_wait ");
WHERE("user_no = #{param.userNo} ");
ORDER_BY("create_time desc");
}}.toString();
}
}
package com.clx.performance.struct.collect;
import com.clx.performance.model.collect.CollectTruckWait;
import com.clx.performance.vo.app.collect.CollectTruckWaitVO;
import com.msl.common.utils.DateStructUtil;
import org.mapstruct.Mapper;
import java.util.Objects;
@Mapper(componentModel = "spring", uses = DateStructUtil.class, imports = {Objects.class})
public interface CollectTruckWaitStruct {
CollectTruckWaitVO convert(CollectTruckWait item);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论