
14 changed files with 357 additions and 40 deletions
@ -0,0 +1,51 @@ |
|||
package com.yxt.anrui.base.api.basevehicleout; |
|||
|
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 11:42 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class BaseVehicleOut extends BaseEntity { |
|||
private static final long serialVersionUID = -1745739629318036845L; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("车辆sid") |
|||
private String vinSid; |
|||
@ApiModelProperty("出库类型") |
|||
private String type; |
|||
@ApiModelProperty("出库类型") |
|||
private String typeKey; |
|||
@ApiModelProperty("销售部门sid") |
|||
private String orgSid; |
|||
@ApiModelProperty("销售部门名称") |
|||
private String orgName; |
|||
@ApiModelProperty("销售专员sid") |
|||
private String staffSid; |
|||
@ApiModelProperty("销售专员") |
|||
private String staffName; |
|||
@ApiModelProperty("合同编号") |
|||
private String concatNo; |
|||
@ApiModelProperty("成交价") |
|||
private String price; |
|||
@ApiModelProperty("是否为终端客户") |
|||
private String isTerminal; |
|||
@ApiModelProperty("客户名称") |
|||
private String customerName; |
|||
@ApiModelProperty("手机号") |
|||
private String mobile; |
|||
@ApiModelProperty("赠品说明") |
|||
private String giftsDescription; |
|||
@ApiModelProperty("二次经销商") |
|||
private String distributorName; |
|||
@ApiModelProperty("返利金额") |
|||
private String rebateAmount; |
|||
@ApiModelProperty("实际购车人名称") |
|||
private String actualCustomer; |
|||
@ApiModelProperty("实际购车人电话") |
|||
private String actualMobile; |
|||
} |
@ -0,0 +1,51 @@ |
|||
package com.yxt.anrui.base.api.basevehicleout; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 13:36 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class BaseVehicleOutDto implements Dto { |
|||
private static final long serialVersionUID = 7393182384733981516L; |
|||
|
|||
private List<BaseVehicleOutQuery> queryList; |
|||
@ApiModelProperty("出库类型") |
|||
private String type; |
|||
private String typeKey; |
|||
@ApiModelProperty("销售部门sid") |
|||
private String orgSid; |
|||
@ApiModelProperty("销售部门名称") |
|||
private String orgName; |
|||
@ApiModelProperty("销售专员sid") |
|||
private String staffSid; |
|||
@ApiModelProperty("销售专员") |
|||
private String staffName; |
|||
@ApiModelProperty("合同编号") |
|||
private String concatNo; |
|||
@ApiModelProperty("成交价") |
|||
private String price; |
|||
@ApiModelProperty("是否为终端客户") |
|||
private String isTerminal; |
|||
@ApiModelProperty("客户名称") |
|||
private String customerName; |
|||
@ApiModelProperty("手机号") |
|||
private String mobile; |
|||
@ApiModelProperty("赠品说明") |
|||
private String giftsDescription; |
|||
@ApiModelProperty("二次经销商") |
|||
private String distributorName; |
|||
@ApiModelProperty("返利金额") |
|||
private String rebateAmount; |
|||
|
|||
@ApiModelProperty("实际购车人名称") |
|||
private String actualCustomer; |
|||
@ApiModelProperty("实际购车人电话") |
|||
private String actualMobile; |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.yxt.anrui.base.api.basevehicleout; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 14:12 |
|||
* @Description |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "anrui-base-BaseVehicleOut", |
|||
name = "anrui-base", |
|||
path = "v1/basevehicleout", |
|||
fallback = BaseVehicleOutFeignFallback.class) |
|||
public interface BaseVehicleOutFeign { |
|||
|
|||
@ApiOperation("车辆出库") |
|||
@PostMapping("/vehicleOut") |
|||
@ResponseBody |
|||
public ResultBean vehicleOut(@RequestBody BaseVehicleOutDto dto); |
|||
} |
|||
|
|||
|
@ -0,0 +1,12 @@ |
|||
package com.yxt.anrui.base.api.basevehicleout; |
|||
|
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 14:42 |
|||
* @Description |
|||
*/ |
|||
@Component |
|||
public class BaseVehicleOutFeignFallback { |
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.yxt.anrui.base.api.basevehicleout; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 13:48 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class BaseVehicleOutQuery implements Query { |
|||
private static final long serialVersionUID = -5581600140473125908L; |
|||
|
|||
private String vinSid; |
|||
private String vinNo; |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.yxt.anrui.base.biz.basevehicleout; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOut; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 14:51 |
|||
* @Description |
|||
*/ |
|||
@Mapper |
|||
public interface BaseVehicleOutMapper extends BaseMapper<BaseVehicleOut> { |
|||
|
|||
List<String> selectCountBySid(@Param("list") List<String> stringList); |
|||
} |
@ -0,0 +1,16 @@ |
|||
<?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.basevehicleout.BaseVehicleOutMapper"> |
|||
<!--库存状态为库存或调入、且问题状态为无问题的、且为相同合同内--> |
|||
<select id="selectCountBySid" resultType="java.lang.String"> |
|||
select vinNo |
|||
from base_vehicle |
|||
where (vehicleStateValue <> '库存' |
|||
or vehicleStateValue <> '调入') |
|||
and isProblemVeh <> '0' |
|||
and sid in |
|||
<foreach collection="list" item="sid" open="(" separator="," close=")"> |
|||
#{sid} |
|||
</foreach> |
|||
</select> |
|||
</mapper> |
@ -0,0 +1,28 @@ |
|||
package com.yxt.anrui.base.biz.basevehicleout; |
|||
|
|||
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutDto; |
|||
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutFeign; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
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/9/23 14:11 |
|||
* @Description |
|||
*/ |
|||
@Api(tags = "车辆出库") |
|||
@RequestMapping("v1/basevehicleout") |
|||
@Controller |
|||
public class BaseVehicleOutRest implements BaseVehicleOutFeign { |
|||
|
|||
@Autowired |
|||
private BaseVehicleOutService baseVehicleOutService; |
|||
|
|||
@Override |
|||
public ResultBean vehicleOut(BaseVehicleOutDto dto) { |
|||
return baseVehicleOutService.vehicleOut(dto); |
|||
} |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.yxt.anrui.base.biz.basevehicleout; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.base.api.basevehicle.BaseVehicle; |
|||
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOut; |
|||
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutDto; |
|||
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutQuery; |
|||
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService; |
|||
import com.yxt.anrui.base.common.enums.VehicleState; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.stream.Collectors; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/9/23 14:46 |
|||
* @Description |
|||
*/ |
|||
@Service |
|||
public class BaseVehicleOutService extends MybatisBaseService<BaseVehicleOutMapper, BaseVehicleOut> { |
|||
|
|||
@Autowired |
|||
private BaseVehicleService baseVehicleService; |
|||
|
|||
public ResultBean vehicleOut(BaseVehicleOutDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
List<BaseVehicleOutQuery> list = dto.getQueryList(); |
|||
List<String> stringList = list.stream().map(BaseVehicleOutQuery -> BaseVehicleOutQuery.getVinSid()).collect(Collectors.toList()); |
|||
//根据sid查询出库的车辆是否符合出库条件(库存状态为库存或调入、且问题状态为无问题的、且为相同合同内的,车辆才能出库、可以批量选择)、当选择的车辆不满足条件时,点击出库按钮时
|
|||
//应给出提示“xx车辆不满足出库条件”、则不能出库
|
|||
List<String> count = baseMapper.selectCountBySid(stringList); |
|||
if (count.size() > 0) { |
|||
String vinNo = String.join(",", count); |
|||
return rb.setMsg(vinNo + "车辆不满足出库条件"); |
|||
} |
|||
for (BaseVehicleOutQuery baseVehicleOutQuery : list) { |
|||
BaseVehicleOut baseVehicleOut = new BaseVehicleOut(); |
|||
BeanUtil.copyProperties(dto, baseVehicleOut, "sid"); |
|||
baseVehicleOut.setVinNo(baseVehicleOutQuery.getVinNo()); |
|||
baseVehicleOut.setVinSid(baseVehicleOutQuery.getVinSid()); |
|||
baseMapper.insert(baseVehicleOut); |
|||
//更新车辆台账的出库状态等值,库存状态修改为出库,销售日期修改为当天,成交价,备注
|
|||
String remarks = baseVehicleOut.getConcatNo() + baseVehicleOut.getType(); |
|||
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(baseVehicleOutQuery.getVinSid()); |
|||
baseVehicle.setRemarks(remarks); |
|||
baseVehicle.setVehicleState(VehicleState.StockEnum.OUT_STOCK.getCode()); |
|||
baseVehicle.setVehicleStateValue(VehicleState.StockEnum.OUT_STOCK.getRemarks()); |
|||
baseVehicle.setSalesDate(new Date()); |
|||
baseVehicle.setSalePrice(Integer.valueOf(dto.getPrice())); |
|||
baseVehicleService.updateById(baseVehicle); |
|||
} |
|||
return rb.success(); |
|||
} |
|||
} |
Loading…
Reference in new issue