From ec87700d142a84e9c2bb9e423fbb86d105988949 Mon Sep 17 00:00:00 2001 From: dimengzhe <251008545@qq.com> Date: Thu, 7 Apr 2022 12:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E9=80=80=E5=BA=93=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E3=80=81=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scmvehiclereturn/ScmVehicleReturn.java | 2 + .../scmvehiclereturn/ScmVehicleReturnDto.java | 31 +++++++ .../ScmVehicleReturnFeign.java | 5 ++ .../ScmVehicleReturnDetailsDto.java | 25 ++++++ .../ScmVehicleReturnMapper.java | 14 ++++ .../ScmVehicleReturnMapper.xml | 4 + .../ScmVehicleReturnRest.java | 11 +++ .../ScmVehicleReturnService.java | 81 +++++++++++++++++++ .../ScmVehicleReturnDetailsMapper.java | 31 +++++++ .../ScmVehicleReturnDetailsMapper.xml | 15 ++++ .../ScmVehicleReturnDetailsService.java | 57 +++++++++++++ 11 files changed, 276 insertions(+) create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java create mode 100644 anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturndetails/ScmVehicleReturnDetailsDto.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.java create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.xml create mode 100644 anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsService.java diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java index 4e48dc56bd..45d03f0f96 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java @@ -18,4 +18,6 @@ public class ScmVehicleReturn extends BaseEntity { private String applicationName; @ApiModelProperty(value = "退库原因") private String reason; + @ApiModelProperty(value = "节点状态") + private String nodeState; } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java new file mode 100644 index 0000000000..e74b59f74e --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.scm.api.scmvehiclereturn; + +import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailsDto; +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/7 9:40 + * @Description + */ +@Data +public class ScmVehicleReturnDto implements Dto { + private static final long serialVersionUID = -276598777097000627L; + @ApiModelProperty(value = "sid") + private String sid; + @ApiModelProperty(value = "申请人sid", required = true) + private String userSid; + @ApiModelProperty(value = "申请人", required = true) + private String name; + @ApiModelProperty(value = "申请日期", required = true) + private Date createTime; + @ApiModelProperty(value = "退库原因", required = true) + private String reason; + @ApiModelProperty(value = "车辆列表") + private List detailsList; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java index 1a46874164..c0be9edb94 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java @@ -25,4 +25,9 @@ public interface ScmVehicleReturnFeign { @PostMapping("/listPage") @ResponseBody ResultBean> listPage(@RequestBody PagerQuery pagerQuery); + + @ApiOperation("新增或修改") + @PostMapping("/saveOrUpdate") + @ResponseBody + ResultBean saveOrUpdate(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto); } diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturndetails/ScmVehicleReturnDetailsDto.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturndetails/ScmVehicleReturnDetailsDto.java new file mode 100644 index 0000000000..a6e07f0f15 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturndetails/ScmVehicleReturnDetailsDto.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.scm.api.scmvehiclereturndetails; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author dimengzhe + * @Date 2022/4/7 9:44 + * @Description + */ +@Data +public class ScmVehicleReturnDetailsDto implements Dto { + private static final long serialVersionUID = 1207686604123585151L; + @ApiModelProperty(value = "车架号") + private String vinNo; + @ApiModelProperty(value = "车型") + private String modelName; + @ApiModelProperty(value = "常用配置") + private String configName; + @ApiModelProperty(value = "入库日期") + private Date inboundDate; +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java new file mode 100644 index 0000000000..6ec1b96a17 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java @@ -0,0 +1,14 @@ +package com.yxt.anrui.scm.biz.scmvehiclereturn; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn; +import org.apache.ibatis.annotations.Mapper; + +/** + * @Author dimengzhe + * @Date 2022/4/7 10:37 + * @Description + */ +@Mapper +public interface ScmVehicleReturnMapper extends BaseMapper { +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml new file mode 100644 index 0000000000..19e4d5baff --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java index 25d146b2b1..b7805ec963 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java @@ -1,11 +1,13 @@ package com.yxt.anrui.scm.biz.scmvehiclereturn; +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto; import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnFeign; import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnQuery; import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo; 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.factory.annotation.Autowired; /** * @Author dimengzhe @@ -13,8 +15,17 @@ import com.yxt.common.core.vo.PagerVo; * @Description */ public class ScmVehicleReturnRest implements ScmVehicleReturnFeign { + + @Autowired + private ScmVehicleReturnService scmVehicleReturnService; + @Override public ResultBean> listPage(PagerQuery pagerQuery) { return null; } + + @Override + public ResultBean saveOrUpdate(ScmVehicleReturnDto scmVehicleReturnDto) { + return scmVehicleReturnService.saveOrUpdateVehicleReturn(scmVehicleReturnDto); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java new file mode 100644 index 0000000000..b0de13ee61 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java @@ -0,0 +1,81 @@ +package com.yxt.anrui.scm.biz.scmvehiclereturn; + +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn; +import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto; +import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails; +import com.yxt.anrui.scm.biz.scmvehiclereturndetails.ScmVehicleReturnDetailsService; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +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/7 10:35 + * @Description + */ +@Service +public class ScmVehicleReturnService extends MybatisBaseService { + + @Autowired + private ScmVehicleReturnDetailsService scmVehicleReturnDetailsService; + + /** + * 采购退库新增编辑 + * + * @param scmVehicleReturnDto 数据传输对象 + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResultBean saveOrUpdateVehicleReturn(ScmVehicleReturnDto scmVehicleReturnDto) { + ResultBean rb = ResultBean.fireFail(); + String sid = scmVehicleReturnDto.getSid(); + if (StringUtils.isBlank(sid)) { + //新增 + ScmVehicleReturn scmVehicleReturn = new ScmVehicleReturn(); + BeanUtils.copyProperties(scmVehicleReturnDto, scmVehicleReturn, scmVehicleReturn.getSid()); + boolean isSave = save(scmVehicleReturn); + if (!isSave) { + return rb.setMsg("保存失败"); + } else { + sid = scmVehicleReturn.getSid(); + if (scmVehicleReturnDto.getDetailsList().size() > 0) { + scmVehicleReturnDetailsService.saveDetails(scmVehicleReturnDto.getDetailsList(), scmVehicleReturn.getSid()); + } + } + } else { + //编辑 + //验证数据是否可更改 + if (checkCouldChange(sid)) { + return rb.setMsg("该条信息不可更改"); + } + int i = updateBySid(scmVehicleReturnDto, sid); + //查询details中是否有关于return的该条sid数据 + List scmVehicleReturnDetailsList = scmVehicleReturnDetailsService.selectByReturnSid(sid); + if (scmVehicleReturnDetailsList.size() > 0) { + scmVehicleReturnDetailsService.updateListByReturnSid(sid, scmVehicleReturnDto.getDetailsList()); + } + } + return rb.success().setData(sid); + } + + /** + * 判断是否可删除 + * + * @param sid sid + * @return + */ + private boolean checkCouldChange(String sid) { + ScmVehicleReturn scmVehicleReturn = fetchBySid(sid); + // 判断是否可以更改(是否走了流程,更改了状态) + if (StringUtils.isNotBlank(scmVehicleReturn.getNodeState())) { + return true; + } + return false; + } +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.java new file mode 100644 index 0000000000..b2cb92df42 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.scm.biz.scmvehiclereturndetails; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/4/7 10:48 + * @Description + */ +@Mapper +public interface ScmVehicleReturnDetailsMapper extends BaseMapper { + /** + * 根据车辆采购退库sid查询退库详细的数据 + * + * @param sid 采购退库sid + * @return + */ + List selectByReturnSid(String sid); + + /** + * 删除详细数据 + * + * @param sid 采购退库sid + * @return + */ + int deleteByReturnSid(String sid); +} diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.xml new file mode 100644 index 0000000000..46c7b283de --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.xml @@ -0,0 +1,15 @@ + + + + + + + delete + from scm_vehicle_return_details + where vehicleOutSid = #{sid} + + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsService.java new file mode 100644 index 0000000000..0e0ad9f583 --- /dev/null +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsService.java @@ -0,0 +1,57 @@ +package com.yxt.anrui.scm.biz.scmvehiclereturndetails; + +import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails; +import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailsDto; +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/7 10:47 + * @Description + */ +@Service +public class ScmVehicleReturnDetailsService extends MybatisBaseService { + /** + * 新增 + * + * @param detailsList + * @param outSid + */ + @Transactional(rollbackFor = Exception.class) + public void saveDetails(List detailsList, String outSid) { + ScmVehicleReturnDetails scmVehicleReturnDetails = null; + for (ScmVehicleReturnDetailsDto dto : detailsList) { + scmVehicleReturnDetails = new ScmVehicleReturnDetails(); + BeanUtils.copyProperties(dto, scmVehicleReturnDetails, scmVehicleReturnDetails.getSid()); + scmVehicleReturnDetails.setVehicleOutSid(outSid); + save(scmVehicleReturnDetails); + } + } + + /** + * 查询 + * + * @param sid + * @return + */ + public List selectByReturnSid(String sid) { + return baseMapper.selectByReturnSid(sid); + } + + /** + * 删除原车辆退库详细并新增 + * + * @param sid 车辆退库sid + * @param detailsList 退库车辆详细 + */ + @Transactional(rollbackFor = Exception.class) + public void updateListByReturnSid(String sid, List detailsList) { + baseMapper.deleteByReturnSid(sid); + saveDetails(detailsList, sid); + } +}