Browse Source

base中添加车辆未售买断代码。

zhanglei
dimengzhe 3 years ago
parent
commit
34ac9e72b2
  1. 27
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java
  2. 27
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java
  3. 16
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeign.java
  4. 12
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeignFallback.java
  5. 25
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java
  6. 29
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java
  7. 29
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java
  8. 36
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java
  9. 43
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java
  10. 34
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeignFallback.java
  11. 23
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesQuery.java
  12. 33
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesVo.java
  13. 29
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java
  14. 21
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml
  15. 17
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsRest.java
  16. 69
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java
  17. 36
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java
  18. 19
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml
  19. 46
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java
  20. 177
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

27
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java

@ -0,0 +1,27 @@
package com.yxt.anrui.base.api.basevehicleactualdetails;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:29
* @Description
*/
@Data
public class BaseVehicleActualDetails extends BaseEntity {
private static final long serialVersionUID = 8008152391857378580L;
@ApiModelProperty(value = "车辆未售买断申请sid")
private String vehicleActualSid;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "入库日期")
private Date inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
}

27
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java

@ -0,0 +1,27 @@
package com.yxt.anrui.base.api.basevehicleactualdetails;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:35
* @Description
*/
@Data
public class BaseVehicleActualDetailsDto implements Dto {
private static final long serialVersionUID = 4387929122120092628L;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "入库日期")
private Date inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
}

16
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeign.java

@ -0,0 +1,16 @@
package com.yxt.anrui.base.api.basevehicleactualdetails;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:09
* @Description
*/
@FeignClient(
contextId = "anrui-base-BaseVehicleActualDetails",
name = "anrui-base",
path = "v1/basevehicleactualdetails",
fallback = BaseVehicleActualDetailsFeignFallback.class)
public interface BaseVehicleActualDetailsFeign {
}

12
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.base.api.basevehicleactualdetails;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:10
* @Description
*/
@Component
public class BaseVehicleActualDetailsFeignFallback {
}

25
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.base.api.basevehicleactualdetails;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/9 11:35
* @Description 未售买断已选择的车辆列表
*/
@Data
public class BaseVehicleActualDetailsVo implements Vo {
private static final long serialVersionUID = -281646013506665817L;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "入库日期")
private String inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
}

29
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java

@ -0,0 +1,29 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/8 11:33
* @Description
*/
@Data
public class BaseVehicleActualSales extends BaseEntity {
private static final long serialVersionUID = -8236776276492093631L;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "买断")
private String reason;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty(value = "流程定义id")
private String procDefId;
@ApiModelProperty(value = "环节定义的sid")
private String nodeSid;
@ApiModelProperty(value = "流程实例的sid")
private String procInstSid;
}

29
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java

@ -0,0 +1,29 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/9 11:28
* @Description
*/
@Data
public class BaseVehicleActualSalesDetailsVo implements Vo {
private static final long serialVersionUID = -3110309934818922020L;
@ApiModelProperty(value = "未售买断sid")
private String sid;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "申请日期")
private String createTime;
@ApiModelProperty(value = "买断原因")
private String reason;
@ApiModelProperty(value = "车辆列表")
private List<BaseVehicleActualDetailsVo> voList = new ArrayList<>();
}

36
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java

@ -0,0 +1,36 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:22
* @Description
*/
@Data
public class BaseVehicleActualSalesDto implements Dto {
private static final long serialVersionUID = 3125388598762096051L;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "申请人sid")
private String userSid;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "申请日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty(value = "买断原因")
private String reason;
@ApiModelProperty(value = "车辆列表")
private List<BaseVehicleActualDetailsDto> detailsList;
}

43
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java

@ -0,0 +1,43 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
/**
* @Author dimengzhe
* @Date 2022/4/8 11:57
* @Description 未售买断管理
*/
@FeignClient(
contextId = "anrui-base-BaseVehicleActualSales",
name = "anrui-base",
path = "v1/basevehicleactualsales",
fallback = BaseVehicleActualSalesFeignFallback.class)
public interface BaseVehicleActualSalesFeign {
@ApiOperation("分页列表")
@PostMapping("/listPage")
@ResponseBody
ResultBean<PagerVo<BaseVehicleActualSalesVo>> listPage(@RequestBody PagerQuery<BaseVehicleActualSalesQuery> pagerQuery);
@ApiOperation("新增或修改")
@PostMapping("/saveOrUpdate")
@ResponseBody
ResultBean saveOrUpdate(@RequestBody BaseVehicleActualSalesDto baseVehicleActualSalesDto);
@ApiOperation("提交")
@PostMapping("/submitVehicleSales")
@ResponseBody
ResultBean submitVehicleSales(@RequestBody BaseVehicleActualSalesDto baseVehicleActualSalesDto);
@ApiOperation("初始化")
@GetMapping("/details")
@ResponseBody
ResultBean<BaseVehicleActualSalesDetailsVo> details(@RequestParam(value = "sid", required = false) String sid);
}

34
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeignFallback.java

@ -0,0 +1,34 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/4/8 11:59
* @Description
*/
@Component
public class BaseVehicleActualSalesFeignFallback implements BaseVehicleActualSalesFeign {
@Override
public ResultBean<PagerVo<BaseVehicleActualSalesVo>> listPage(PagerQuery<BaseVehicleActualSalesQuery> pagerQuery) {
return null;
}
@Override
public ResultBean saveOrUpdate(BaseVehicleActualSalesDto baseVehicleActualSalesDto) {
return null;
}
@Override
public ResultBean submitVehicleSales(BaseVehicleActualSalesDto baseVehicleActualSalesDto) {
return null;
}
@Override
public ResultBean<BaseVehicleActualSalesDetailsVo> details(String sid) {
return null;
}
}

23
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:11
* @Description
*/
@Data
public class BaseVehicleActualSalesQuery implements Query {
private static final long serialVersionUID = 970443773657128722L;
@ApiModelProperty(value = "申请日期开始时间")
private String applyStartDate;
@ApiModelProperty(value = "申请日期结束时间")
private String applyEndDate;
@ApiModelProperty(value = "状态")
private String nodeState;
@ApiModelProperty(value = "车架号")
private String vinNo;
}

33
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesVo.java

@ -0,0 +1,33 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:02
* @Description
*/
@Data
public class BaseVehicleActualSalesVo implements Vo {
private static final long serialVersionUID = -8518464944096578672L;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "申请日期")
private String createTime;
@ApiModelProperty(value = "买断原因")
private String reason;
@ApiModelProperty(value = "台数")
private Integer num;
@ApiModelProperty(value = "流程状态") //若不为0则办理不能点击
private Integer flowState;
}

29
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java

@ -0,0 +1,29 @@
package com.yxt.anrui.base.biz.basevehicleactualdetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:12
* @Description
*/
@Mapper
public interface BaseVehicleActualDetailsMapper extends BaseMapper<BaseVehicleActualDetails> {
List<BaseVehicleActualDetails> selectBySaleSid(String sid);
int deleteBySaleSid(String sid);
/**
* 已选择的车辆列表
*
* @param sid 未售买断sid
* @return
*/
List<BaseVehicleActualDetailsVo> detailsList(String sid);
}

21
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml

@ -0,0 +1,21 @@
<?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.yxt.anrui.base.biz.basevehicleactualdetails.BaseVehicleActualDetailsMapper">
<select id="selectBySaleSid" resultType="com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails">
select *
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>
<delete id="deleteBySaleSid">
delete
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</delete>
<select id="detailsList" resultType="com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo">
select sid, vinNo, modelName, DATE_FORMAT(inboundDate, '%Y-%m-%d') as inboundDate, inboundPrice
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>
</mapper>

17
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsRest.java

@ -0,0 +1,17 @@
package com.yxt.anrui.base.biz.basevehicleactualdetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsFeign;
import io.swagger.annotations.Api;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:09
* @Description
*/
@Api(tags = "车辆未售买断管理")
@RequestMapping("v1/scmvehicleactualsales")
@Controller
public class BaseVehicleActualDetailsRest implements BaseVehicleActualDetailsFeign {
}

69
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java

@ -0,0 +1,69 @@
package com.yxt.anrui.base.biz.basevehicleactualdetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:11
* @Description
*/
@Service
public class BaseVehicleActualDetailsService extends MybatisBaseService<BaseVehicleActualDetailsMapper, BaseVehicleActualDetails> {
/**
* 新增
*
* @param detailsList
* @param saleSid
*/
@Transactional(rollbackFor = Exception.class)
public void saveDetails(List<BaseVehicleActualDetailsDto> detailsList, String saleSid) {
BaseVehicleActualDetails baseVehicleActualDetails = null;
for (BaseVehicleActualDetailsDto dto : detailsList) {
baseVehicleActualDetails = new BaseVehicleActualDetails();
BeanUtils.copyProperties(dto, baseVehicleActualDetails, baseVehicleActualDetails.getSid());
baseVehicleActualDetails.setVehicleActualSid(saleSid);
save(baseVehicleActualDetails);
}
}
/**
* 查询
*
* @param sid
* @return
*/
public List<BaseVehicleActualDetails> selectBySaleSid(String sid) {
return baseMapper.selectBySaleSid(sid);
}
/**
* 删除原车辆退库详细并新增
*
* @param sid 车辆退库sid
* @param detailsList 退库车辆详细
*/
@Transactional(rollbackFor = Exception.class)
public void updateListByReturnSid(String sid, List<BaseVehicleActualDetailsDto> detailsList) {
baseMapper.deleteBySaleSid(sid);
saveDetails(detailsList, sid);
}
/**
* 已选择的车辆列表
*
* @param sid
* @return
*/
public List<BaseVehicleActualDetailsVo> detailsList(String sid) {
return baseMapper.detailsList(sid);
}
}

36
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java

@ -0,0 +1,36 @@
package com.yxt.anrui.base.biz.basevehicleactualsales;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.basevehicleactualsales.BaseVehicleActualSales;
import com.yxt.anrui.base.api.basevehicleactualsales.BaseVehicleActualSalesDetailsVo;
import com.yxt.anrui.base.api.basevehicleactualsales.BaseVehicleActualSalesVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:43
* @Description
*/
@Mapper
public interface BaseVehicleActualSalesMapper extends BaseMapper<BaseVehicleActualSales> {
/**
* 分页列表
*
* @param page 分页
* @param qw 查询条件
* @return
*/
IPage<BaseVehicleActualSalesVo> pagerList(IPage<?> page, @Param(Constants.WRAPPER) QueryWrapper<BaseVehicleActualSales> qw);
/**
* 初始化
*
* @param sid 车辆未售买断sid
* @return
*/
BaseVehicleActualSalesDetailsVo details(String sid);
}

19
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml

@ -0,0 +1,19 @@
<?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.yxt.anrui.base.biz.basevehicleactualsales.BaseVehicleActualSalesMapper">
<select id="pagerList" resultType="com.yxt.anrui.base.api.basevehicleactualsales.BaseVehicleActualSalesVo">
select sv.sid,
sv.applicationName,
DATE_FORMAT(sv.createTime, '%Y-%m-%d') as createTime,
sv.reason,
(select count(*) from scm_vehicle_actual_details sa where sa.vehicleActualSid = sv.sid) as num
from base_vehicle_actual_sales sv
${ew.customSqlSegment}
</select>
<select id="details" resultType="com.yxt.anrui.base.api.basevehicleactualsales.BaseVehicleActualSalesDetailsVo">
select sid, DATE_FORMAT(createTime, '%Y-%m-%d') as createTime, reason, applicationName
from base_vehicle_actual_sales
where sid = #{sid}
</select>
</mapper>

46
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java

@ -0,0 +1,46 @@
package com.yxt.anrui.base.biz.basevehicleactualsales;
import com.yxt.anrui.base.api.basevehicleactualsales.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/4/8 15:05
* @Description
*/
@Api(tags = "车辆未售买断管理")
@RequestMapping("v1/basevehicleactualsales")
@Controller
public class BaseVehicleActualSalesRest implements BaseVehicleActualSalesFeign {
@Autowired
private BaseVehicleActualSalesService baseVehicleActualSalesService;
@Override
public ResultBean<PagerVo<BaseVehicleActualSalesVo>> listPage(PagerQuery<BaseVehicleActualSalesQuery> pagerQuery) {
ResultBean<PagerVo<BaseVehicleActualSalesVo>> rb = ResultBean.fireFail();
PagerVo<BaseVehicleActualSalesVo> pv = baseVehicleActualSalesService.listPage(pagerQuery);
return rb.success().setData(pv);
}
@Override
public ResultBean saveOrUpdate(BaseVehicleActualSalesDto scmVehicleActualSalesDto) {
return baseVehicleActualSalesService.saveOrUpdateVehicleSales(scmVehicleActualSalesDto);
}
@Override
public ResultBean submitVehicleSales(BaseVehicleActualSalesDto baseVehicleActualSalesDto) {
return baseVehicleActualSalesService.submitVehicleSales(baseVehicleActualSalesDto);
}
@Override
public ResultBean<BaseVehicleActualSalesDetailsVo> details(String sid) {
return baseVehicleActualSalesService.details(sid);
}
}

177
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -0,0 +1,177 @@
package com.yxt.anrui.base.biz.basevehicleactualsales;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.anrui.base.api.basevehicleactualsales.*;
import com.yxt.anrui.base.biz.basevehicleactualdetails.BaseVehicleActualDetailsService;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:42
* @Description
*/
@Service
public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicleActualSalesMapper, BaseVehicleActualSales> {
@Autowired
private SysFormLinkFeign sysFormLinkFeign;
@Autowired
private BaseVehicleActualDetailsService baseVehicleActualDetailsService;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 分页列表
*
* @param pagerQuery 查询条件
* @return
*/
public PagerVo<BaseVehicleActualSalesVo> listPage(PagerQuery<BaseVehicleActualSalesQuery> pagerQuery) {
IPage<BaseVehicleActualSalesVo> page = pagerList(pagerQuery);
PagerVo<BaseVehicleActualSalesVo> pv = new PagerVo<>();
PagerVo<BaseVehicleActualSalesVo> pv1 = PagerUtil.pageToVo(page, pv);
List<BaseVehicleActualSalesVo> voList = pv1.getRecords();
if (voList.size() > 0) {
for (int i = 0; i < voList.size(); i++) {
ResultBean<SysFormStateVo> resultBean = sysFormLinkFeign.selectStateByBusinessSid(voList.get(i).getSid());
if (resultBean.getSuccess() && resultBean.getData() != null) {
SysFormStateVo formState = resultBean.getData();
voList.get(i).setNodeState(formState.getNodeState());
voList.get(i).setFlowState(formState.getFlowState());
} else {
voList.get(i).setFlowState(0);
}
}
}
return pv1;
}
private IPage<BaseVehicleActualSalesVo> pagerList(PagerQuery<BaseVehicleActualSalesQuery> pagerQuery) {
IPage<?> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<BaseVehicleActualSales> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pagerList(page, qw);
}
private QueryWrapper<BaseVehicleActualSales> buildQueryWrapper(BaseVehicleActualSalesQuery params) {
QueryWrapper<BaseVehicleActualSales> qw = new QueryWrapper<>();
if (params != null) {
//申请日期
//状态
//车架号
}
return qw;
}
@Transactional(rollbackFor = Exception.class)
public ResultBean saveOrUpdateVehicleSales(BaseVehicleActualSalesDto scmVehicleActualSalesDto) {
ResultBean rb = ResultBean.fireFail();
String sid = scmVehicleActualSalesDto.getSid();
if (StringUtils.isBlank(sid)) {
//新增
BaseVehicleActualSales baseVehicleActualSales = new BaseVehicleActualSales();
BeanUtils.copyProperties(scmVehicleActualSalesDto, baseVehicleActualSales, baseVehicleActualSales.getSid());
boolean isSave = save(baseVehicleActualSales);
if (!isSave) {
return rb.setMsg("保存失败");
} else {
sid = baseVehicleActualSales.getSid();
if (scmVehicleActualSalesDto.getDetailsList().size() > 0) {
baseVehicleActualDetailsService.saveDetails(scmVehicleActualSalesDto.getDetailsList(), baseVehicleActualSales.getSid());
}
}
} else {
//编辑
//验证数据是否可更改
if (checkCouldChange(sid)) {
return rb.setMsg("该条信息不可更改");
}
int i = updateBySid(scmVehicleActualSalesDto, sid);
//查询details中是否有关于sales的该条sid数据
List<BaseVehicleActualDetails> scmVehicleActualDetailsList = baseVehicleActualDetailsService.selectBySaleSid(sid);
if (scmVehicleActualDetailsList.size() > 0) {
baseVehicleActualDetailsService.updateListByReturnSid(sid, scmVehicleActualSalesDto.getDetailsList());
}
}
return rb.success().setData(sid);
}
/**
* 判断是否可删除
*
* @param sid sid
* @return
*/
private boolean checkCouldChange(String sid) {
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(sid);
// 判断是否可以更改(是否走了流程,更改了状态)
if (StringUtils.isNotBlank(baseVehicleActualSales.getNodeState())) {
return true;
}
return false;
}
/**
* 查询用户是否设置了部门
*
* @param userSid 用户sid
* @return
*/
private String checkUserOrg(String userSid) {
String orgSid = "";
String staffSid = sysUserFeign.selectBySid(userSid).getData().getStaffSid();
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
orgSid = resultBean.getData();
}
return orgSid;
}
public ResultBean submitVehicleSales(BaseVehicleActualSalesDto baseVehicleActualSalesDto) {
return null;
}
/**
* 初始化
*
* @param sid 未售买断sid
* @return
*/
public ResultBean<BaseVehicleActualSalesDetailsVo> details(String sid) {
ResultBean<BaseVehicleActualSalesDetailsVo> rb = ResultBean.fireFail();
BaseVehicleActualSalesDetailsVo vo = new BaseVehicleActualSalesDetailsVo();
if (StringUtils.isBlank(sid)) {
//申请日期即为当天
vo.setCreateTime(DateUtil.today());
} else {
BaseVehicleActualSales scmVehicleActualSales = fetchBySid(sid);
if (scmVehicleActualSales == null) {
return rb.setMsg("该未售买断数据不存在");
}
vo = baseMapper.details(sid);
List<BaseVehicleActualDetailsVo> voList = baseVehicleActualDetailsService.detailsList(sid);
}
return rb.success().setData(vo);
}
}
Loading…
Cancel
Save