diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java new file mode 100644 index 0000000000..772d2ccd02 --- /dev/null +++ b/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; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java new file mode 100644 index 0000000000..665be41af7 --- /dev/null +++ b/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; + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeign.java new file mode 100644 index 0000000000..dbbe670499 --- /dev/null +++ b/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 { +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsFeignFallback.java new file mode 100644 index 0000000000..e8a83fcf22 --- /dev/null +++ b/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 { +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java new file mode 100644 index 0000000000..2e2df6fbc0 --- /dev/null +++ b/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; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java new file mode 100644 index 0000000000..c095af558a --- /dev/null +++ b/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; + + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java new file mode 100644 index 0000000000..3a650d31bb --- /dev/null +++ b/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 voList = new ArrayList<>(); +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java new file mode 100644 index 0000000000..4c315361fc --- /dev/null +++ b/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 detailsList; + + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeign.java new file mode 100644 index 0000000000..222b0b00d7 --- /dev/null +++ b/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> listPage(@RequestBody PagerQuery pagerQuery); + + @ApiOperation("新增或修改") + @PostMapping("/saveOrUpdate") + @ResponseBody + ResultBean saveOrUpdate(@RequestBody BaseVehicleActualSalesDto baseVehicleActualSalesDto); + + @ApiOperation("提交") + @PostMapping("/submitVehicleSales") + @ResponseBody + ResultBean submitVehicleSales(@RequestBody BaseVehicleActualSalesDto baseVehicleActualSalesDto); + + @ApiOperation("初始化") + @GetMapping("/details") + @ResponseBody + ResultBean details(@RequestParam(value = "sid", required = false) String sid); + + +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeignFallback.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesFeignFallback.java new file mode 100644 index 0000000000..d9d3b6ae7a --- /dev/null +++ b/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> listPage(PagerQuery pagerQuery) { + return null; + } + + @Override + public ResultBean saveOrUpdate(BaseVehicleActualSalesDto baseVehicleActualSalesDto) { + return null; + } + + @Override + public ResultBean submitVehicleSales(BaseVehicleActualSalesDto baseVehicleActualSalesDto) { + return null; + } + + @Override + public ResultBean details(String sid) { + return null; + } +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesQuery.java new file mode 100644 index 0000000000..78feffd612 --- /dev/null +++ b/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; +} diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesVo.java new file mode 100644 index 0000000000..970e5b2eac --- /dev/null +++ b/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; + + +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.java new file mode 100644 index 0000000000..791f1831a3 --- /dev/null +++ b/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 { + + List selectBySaleSid(String sid); + + int deleteBySaleSid(String sid); + + /** + * 已选择的车辆列表 + * + * @param sid 未售买断sid + * @return + */ + List detailsList(String sid); +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml new file mode 100644 index 0000000000..6aa69814e6 --- /dev/null +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml @@ -0,0 +1,21 @@ + + + + + + + delete + from base_vehicle_actual_details + where vehicleActualSid = #{sid} + + + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsRest.java new file mode 100644 index 0000000000..5687b753bf --- /dev/null +++ b/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 { +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java new file mode 100644 index 0000000000..f2d3fecc4a --- /dev/null +++ b/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 { + + /** + * 新增 + * + * @param detailsList + * @param saleSid + */ + @Transactional(rollbackFor = Exception.class) + public void saveDetails(List 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 selectBySaleSid(String sid) { + return baseMapper.selectBySaleSid(sid); + } + + /** + * 删除原车辆退库详细并新增 + * + * @param sid 车辆退库sid + * @param detailsList 退库车辆详细 + */ + @Transactional(rollbackFor = Exception.class) + public void updateListByReturnSid(String sid, List detailsList) { + baseMapper.deleteBySaleSid(sid); + saveDetails(detailsList, sid); + } + + /** + * 已选择的车辆列表 + * + * @param sid + * @return + */ + public List detailsList(String sid) { + return baseMapper.detailsList(sid); + } +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.java new file mode 100644 index 0000000000..a098502d1b --- /dev/null +++ b/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 { + /** + * 分页列表 + * + * @param page 分页 + * @param qw 查询条件 + * @return + */ + IPage pagerList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + /** + * 初始化 + * + * @param sid 车辆未售买断sid + * @return + */ + BaseVehicleActualSalesDetailsVo details(String sid); +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml new file mode 100644 index 0000000000..a5a66b888f --- /dev/null +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesRest.java new file mode 100644 index 0000000000..cd296e5b35 --- /dev/null +++ b/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> listPage(PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo 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 details(String sid) { + return baseVehicleActualSalesService.details(sid); + } +} diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java new file mode 100644 index 0000000000..d9a1df04a7 --- /dev/null +++ b/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 { + + @Autowired + private SysFormLinkFeign sysFormLinkFeign; + @Autowired + private BaseVehicleActualDetailsService baseVehicleActualDetailsService; + + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + + /** + * 分页列表 + * + * @param pagerQuery 查询条件 + * @return + */ + public PagerVo listPage(PagerQuery pagerQuery) { + IPage page = pagerList(pagerQuery); + PagerVo pv = new PagerVo<>(); + PagerVo pv1 = PagerUtil.pageToVo(page, pv); + List voList = pv1.getRecords(); + if (voList.size() > 0) { + for (int i = 0; i < voList.size(); i++) { + ResultBean 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 pagerList(PagerQuery pagerQuery) { + IPage page = PagerUtil.queryToPage(pagerQuery); + QueryWrapper qw = buildQueryWrapper(pagerQuery.getParams()); + return baseMapper.pagerList(page, qw); + } + + private QueryWrapper buildQueryWrapper(BaseVehicleActualSalesQuery params) { + QueryWrapper 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 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 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 details(String sid) { + ResultBean 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 voList = baseVehicleActualDetailsService.detailsList(sid); + } + return rb.success().setData(vo); + } +}