Commit 70fb645ee813314579cb1450b5aa6dedc43371a6

Authored by 杨鸣坤
2 parents 0e896678 87077dd4

Merge remote-tracking branch 'origin/master_0929' into master_0929

... ... @@ -6,6 +6,7 @@ import com.lframework.starter.web.core.bo.BaseBo;
6 6 import java.time.LocalDate;
7 7 import java.util.List;
8 8 import com.lframework.xingyun.sc.entity.PurchaseOrderRevoke;
  9 +import com.lframework.xingyun.sc.entity.PurchaseOrderRevokeLine;
9 10 import io.swagger.annotations.ApiModelProperty;
10 11
11 12 import lombok.Data;
... ... @@ -26,12 +27,6 @@ public class GetPurchaseOrderRevokeBo extends BaseBo<PurchaseOrderRevoke> {
26 27 private String id;
27 28
28 29 /**
29   - * 第几次撤销
30   - */
31   - @ApiModelProperty("第几次撤销")
32   - private String sort;
33   -
34   - /**
35 30 * 订货单ID
36 31 */
37 32 @ApiModelProperty("订货单ID")
... ... @@ -101,7 +96,7 @@ public class GetPurchaseOrderRevokeBo extends BaseBo<PurchaseOrderRevoke> {
101 96 private String confirmationVoucherFileName;
102 97
103 98 /**
104   - * 创建人
  99 + * 创建人(制单人)
105 100 */
106 101 @ApiModelProperty("创建人")
107 102 private String createBy;
... ... @@ -110,7 +105,7 @@ public class GetPurchaseOrderRevokeBo extends BaseBo<PurchaseOrderRevoke> {
110 105 * 订货单撤销表物料行
111 106 */
112 107 @ApiModelProperty("订货单撤销表物料行")
113   - private List<GetPurchaseOrderRevokeLineBo> getPurchaseOrderRevokeLineBoList;
  108 + private List<PurchaseOrderRevokeLine> purchaseOrderRevokeLineList;
114 109
115 110 public GetPurchaseOrderRevokeBo() {
116 111
... ...
... ... @@ -68,6 +68,26 @@ public class PurchaseOrderInfoController extends DefaultBaseController {
68 68 }
69 69
70 70 /**
  71 + * 查询列表可以撤销数据
  72 + */
  73 + @ApiOperation("查询列表")
  74 + @HasPermission({"purchaseOrderInfo:purchaseorderinfo:query"})
  75 + @GetMapping("/queryRevokeList")
  76 + public InvokeResult<PageResult<GetPurchaseOrderInfoBo>> queryRevokeList(@Valid QueryPurchaseOrderInfoVo vo) {
  77 +
  78 + PageResult<PurchaseOrderInfo> pageResult = purchaseOrderInfoService.queryRevokeList(getPageIndex(vo), getPageSize(vo), vo);
  79 +
  80 + List<PurchaseOrderInfo> datas = pageResult.getDatas();
  81 + List<GetPurchaseOrderInfoBo> results = null;
  82 +
  83 + if (!CollectionUtil.isEmpty(datas)) {
  84 + results = datas.stream().map(GetPurchaseOrderInfoBo::new).collect(Collectors.toList());
  85 + }
  86 +
  87 + return InvokeResultBuilder.success(PageResultUtil.rebuild(pageResult, results));
  88 + }
  89 +
  90 + /**
71 91 * 根据ID查询
72 92 */
73 93 @ApiOperation("根据ID查询")
... ...
... ... @@ -9,15 +9,12 @@ import com.lframework.starter.web.core.components.resp.InvokeResult;
9 9 import javax.annotation.Resource;
10 10 import javax.validation.constraints.NotBlank;
11 11 import com.lframework.xingyun.sc.bo.order.GetPurchaseOrderRevokeBo;
12   -import com.lframework.xingyun.sc.bo.order.GetPurchaseOrderRevokeLineBo;
13 12 import com.lframework.xingyun.sc.entity.*;
14 13 import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
15 14 import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService;
  15 +import com.lframework.xingyun.sc.service.order.PurchaseOrderRevokeLineService;
16 16 import com.lframework.xingyun.sc.service.order.PurchaseOrderRevokeService;
17   -import com.lframework.xingyun.sc.vo.order.CreatePurchaseOrderRevokeVo;
18   -import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderLineVo;
19   -import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderRevokeVo;
20   -import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderRevokeVo;
  17 +import com.lframework.xingyun.sc.vo.order.*;
21 18 import io.swagger.annotations.ApiImplicitParam;
22 19 import com.lframework.starter.web.core.components.resp.InvokeResultBuilder;
23 20 import com.lframework.starter.common.exceptions.impl.DefaultClientException;
... ... @@ -50,6 +47,8 @@ public class PurchaseOrderRevokeController extends DefaultBaseController {
50 47 private PurchaseOrderInfoService purchaseOrderInfoService;
51 48 @Resource
52 49 private PurchaseOrderLineService purchaseOrderLineService;
  50 + @Resource
  51 + private PurchaseOrderRevokeLineService purchaseOrderRevokeLineService;
53 52
54 53 /**
55 54 * 查询列表
... ... @@ -86,6 +85,12 @@ public class PurchaseOrderRevokeController extends DefaultBaseController {
86 85 }
87 86
88 87 GetPurchaseOrderRevokeBo result = new GetPurchaseOrderRevokeBo(data);
  88 + QueryPurchaseOrderRevokeLineVo vo = new QueryPurchaseOrderRevokeLineVo();
  89 + vo.setPurchaseOrderRevokeId(id);
  90 + List<PurchaseOrderRevokeLine> query = purchaseOrderRevokeLineService.query(vo);
  91 + if (CollectionUtil.isNotEmpty(query)) {
  92 + result.setPurchaseOrderRevokeLineList(query);
  93 + }
89 94
90 95 return InvokeResultBuilder.success(result);
91 96 }
... ... @@ -114,7 +119,7 @@ public class PurchaseOrderRevokeController extends DefaultBaseController {
114 119 @ApiOperation("新增")
115 120 @HasPermission({"purchaseOrderRevoke:purchaseorderrevoke:add"})
116 121 @PostMapping("/create")
117   - public InvokeResult<Void> create(@Valid CreatePurchaseOrderRevokeVo vo) {
  122 + public InvokeResult<Void> create(@Valid @RequestBody CreatePurchaseOrderRevokeVo vo) {
118 123
119 124 purchaseOrderRevokeService.create(vo);
120 125
... ... @@ -127,7 +132,7 @@ public class PurchaseOrderRevokeController extends DefaultBaseController {
127 132 @ApiOperation("修改")
128 133 @HasPermission({"purchaseOrderRevoke:purchaseorderrevoke:modify"})
129 134 @PutMapping("/update")
130   - public InvokeResult<Void> update(@Valid UpdatePurchaseOrderRevokeVo vo) {
  135 + public InvokeResult<Void> update(@Valid @RequestBody UpdatePurchaseOrderRevokeVo vo) {
131 136
132 137 purchaseOrderRevokeService.update(vo);
133 138
... ... @@ -135,6 +140,20 @@ public class PurchaseOrderRevokeController extends DefaultBaseController {
135 140 }
136 141
137 142 /**
  143 + * 取消
  144 + */
  145 + @ApiOperation("取消")
  146 + @HasPermission({"purchaseOrderRevoke:purchaseorderrevoke:cancel"})
  147 + @GetMapping("/cancel")
  148 + public InvokeResult<Void> cancel(@NotBlank(message = "id不能为空!") String id,
  149 + @NotBlank(message = "status不能为空!") String status) {
  150 +
  151 + purchaseOrderRevokeService.updateStatus(id, status);
  152 +
  153 + return InvokeResultBuilder.success();
  154 + }
  155 +
  156 + /**
138 157 * 根据ID删除
139 158 */
140 159 @ApiOperation("根据ID删除")
... ... @@ -175,29 +194,29 @@ public class PurchaseOrderRevokeController extends DefaultBaseController {
175 194 vo.setPurchaseOrderId(purchaseOrderInfo.getId());
176 195 List<PurchaseOrderLine> purchaseOrderLineList = purchaseOrderLineService.query(vo);
177 196 if (CollectionUtil.isNotEmpty(purchaseOrderLineList)) {
178   - List<GetPurchaseOrderRevokeLineBo> revokeLineBoList = new ArrayList<>(purchaseOrderLineList.size());
  197 + List<PurchaseOrderRevokeLine> revokeLineList = new ArrayList<>(purchaseOrderLineList.size());
179 198 for (PurchaseOrderLine purchaseOrderLine : purchaseOrderLineList) {
180   - GetPurchaseOrderRevokeLineBo bo = new GetPurchaseOrderRevokeLineBo();
181   - bo.setPurchaseOrderLineId(purchaseOrderLine.getId());
182   - bo.setIndustry(purchaseOrderLine.getIndustry());
183   - bo.setQuality(purchaseOrderLine.getQuality());
184   - bo.setBrand(purchaseOrderLine.getBrand());
185   - bo.setThickness(purchaseOrderLine.getThickness());
186   - bo.setThicknessTolPos(purchaseOrderLine.getThicknessTolPos());
187   - bo.setThicknessTolNeg(purchaseOrderLine.getThicknessTolNeg());
188   - bo.setWidth(purchaseOrderLine.getWidth());
189   - bo.setWidthTolPos(purchaseOrderLine.getWidthTolPos());
190   - bo.setWidthTolNeg(purchaseOrderLine.getWidthTolNeg());
191   - bo.setLength(purchaseOrderLine.getLength());
192   - bo.setLengthTolPos(purchaseOrderLine.getLengthTolPos());
193   - bo.setLengthTolNeg(purchaseOrderLine.getLengthTolNeg());
194   - bo.setQuantity(purchaseOrderLine.getQuantity());
195   - bo.setSalesPrice(purchaseOrderLine.getSalesPrice());
196   - bo.setDeliveryDate(purchaseOrderLine.getDeliveryDate());
197   - bo.setShowOrder(purchaseOrderLine.getShowOrder());
198   - revokeLineBoList.add(bo);
  199 + PurchaseOrderRevokeLine line = new PurchaseOrderRevokeLine();
  200 + line.setPurchaseOrderLineId(purchaseOrderLine.getId());
  201 + line.setIndustry(purchaseOrderLine.getIndustry());
  202 + line.setQuality(purchaseOrderLine.getQuality());
  203 + line.setBrand(purchaseOrderLine.getBrand());
  204 + line.setThickness(purchaseOrderLine.getThickness());
  205 + line.setThicknessTolPos(purchaseOrderLine.getThicknessTolPos());
  206 + line.setThicknessTolNeg(purchaseOrderLine.getThicknessTolNeg());
  207 + line.setWidth(purchaseOrderLine.getWidth());
  208 + line.setWidthTolPos(purchaseOrderLine.getWidthTolPos());
  209 + line.setWidthTolNeg(purchaseOrderLine.getWidthTolNeg());
  210 + line.setLength(purchaseOrderLine.getLength());
  211 + line.setLengthTolPos(purchaseOrderLine.getLengthTolPos());
  212 + line.setLengthTolNeg(purchaseOrderLine.getLengthTolNeg());
  213 + line.setQuantity(purchaseOrderLine.getQuantity());
  214 + line.setSalesPrice(purchaseOrderLine.getSalesPrice());
  215 + line.setDeliveryDate(purchaseOrderLine.getDeliveryDate());
  216 + line.setShowOrder(purchaseOrderLine.getShowOrder());
  217 + revokeLineList.add(line);
199 218 }
200   - data.setGetPurchaseOrderRevokeLineBoList(revokeLineBoList);
  219 + data.setPurchaseOrderRevokeLineList(revokeLineList);
201 220 }
202 221
203 222 return data;
... ...
... ... @@ -29,11 +29,6 @@ public class PurchaseOrderRevoke extends BaseEntity implements BaseDto {
29 29 private String id;
30 30
31 31 /**
32   - * 第几次撤销
33   - */
34   - private String sort;
35   -
36   - /**
37 32 * 订货单ID
38 33 */
39 34 private String purchaseOrderId;
... ... @@ -49,6 +44,12 @@ public class PurchaseOrderRevoke extends BaseEntity implements BaseDto {
49 44 private String orderingUnit;
50 45
51 46 /**
  47 + * 订货单位名称(非持久化字段)
  48 + */
  49 + @TableField(exist = false)
  50 + private String orderingUnitName;
  51 +
  52 + /**
52 53 * 原订货日期
53 54 */
54 55 private LocalDate orderDate;
... ...
... ... @@ -57,12 +57,30 @@ public class PurchaseOrderInfoServiceImpl extends BaseMpServiceImpl<PurchaseOrde
57 57 }
58 58
59 59 @Override
  60 + public PageResult<PurchaseOrderInfo> queryRevokeList(Integer pageIndex, Integer pageSize, QueryPurchaseOrderInfoVo vo) {
  61 +
  62 + Assert.greaterThanZero(pageIndex);
  63 + Assert.greaterThanZero(pageSize);
  64 +
  65 + PageHelperUtil.startPage(pageIndex, pageSize);
  66 + List<PurchaseOrderInfo> datas = this.queryRevokeList(vo);
  67 +
  68 + return PageResultUtil.convert(new PageInfo<>(datas));
  69 + }
  70 +
  71 + @Override
60 72 public List<PurchaseOrderInfo> query(QueryPurchaseOrderInfoVo vo) {
61 73
62 74 return getBaseMapper().query(vo);
63 75 }
64 76
65 77 @Override
  78 + public List<PurchaseOrderInfo> queryRevokeList(QueryPurchaseOrderInfoVo vo) {
  79 +
  80 + return getBaseMapper().queryRevokeList(vo);
  81 + }
  82 +
  83 + @Override
66 84 public PurchaseOrderInfo findById(String id) {
67 85
68 86 return getBaseMapper().findById(id);
... ... @@ -290,6 +308,19 @@ public class PurchaseOrderInfoServiceImpl extends BaseMpServiceImpl<PurchaseOrde
290 308 }
291 309 }
292 310
  311 + @OpLog(type = OtherOpLogType.class, name = "更新撤销状态,ID:{}", params = {"#id"})
  312 + @Transactional(rollbackFor = Exception.class)
  313 + @Override
  314 + public void updateRevokeStatus(String id, String status) {
  315 + if (StringUtils.isBlank(id) || StringUtils.isBlank(status)) {
  316 + return;
  317 + }
  318 + LambdaUpdateWrapper<PurchaseOrderInfo> updateWrapper = Wrappers.lambdaUpdate(PurchaseOrderInfo.class)
  319 + .set(PurchaseOrderInfo::getRevokeStatus, status)
  320 + .eq(PurchaseOrderInfo::getId, id);
  321 + getBaseMapper().update(updateWrapper);
  322 + }
  323 +
293 324 @Override
294 325 public void cleanCacheByKey(Serializable key) {
295 326
... ...
... ... @@ -3,6 +3,7 @@ package com.lframework.xingyun.sc.impl.order;
3 3 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
4 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 5 import com.github.pagehelper.PageInfo;
  6 +import com.lframework.starter.common.utils.CollectionUtil;
6 7 import com.lframework.starter.web.core.impl.BaseMpServiceImpl;
7 8 import com.lframework.starter.web.core.utils.PageResultUtil;
8 9 import com.lframework.starter.web.core.components.resp.PageResult;
... ... @@ -17,19 +18,29 @@ import com.lframework.starter.web.core.utils.PageHelperUtil;
17 18 import com.lframework.starter.common.utils.Assert;
18 19 import com.lframework.starter.web.inner.components.oplog.OtherOpLogType;
19 20 import com.lframework.xingyun.sc.entity.PurchaseOrderRevoke;
  21 +import com.lframework.xingyun.sc.entity.PurchaseOrderRevokeLine;
20 22 import com.lframework.xingyun.sc.mappers.PurchaseOrderRevokeMapper;
  23 +import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService;
  24 +import com.lframework.xingyun.sc.service.order.PurchaseOrderRevokeLineService;
21 25 import com.lframework.xingyun.sc.service.order.PurchaseOrderRevokeService;
22   -import com.lframework.xingyun.sc.vo.order.CreatePurchaseOrderRevokeVo;
23   -import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderRevokeVo;
24   -import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderRevokeVo;
  26 +import com.lframework.xingyun.sc.vo.order.*;
  27 +import org.apache.commons.lang3.StringUtils;
25 28 import org.springframework.transaction.annotation.Transactional;
26 29 import org.springframework.stereotype.Service;
27 30
  31 +import javax.annotation.Resource;
  32 +import java.time.LocalDate;
28 33 import java.util.List;
29 34
30 35 @Service
31 36 public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOrderRevokeMapper, PurchaseOrderRevoke> implements PurchaseOrderRevokeService {
32 37
  38 + @Resource
  39 + private PurchaseOrderRevokeLineService purchaseOrderRevokeLineService;
  40 + @Resource
  41 + private PurchaseOrderInfoService purchaseOrderInfoService;
  42 +
  43 +
33 44 @Override
34 45 public PageResult<PurchaseOrderRevoke> query(Integer pageIndex, Integer pageSize, QueryPurchaseOrderRevokeVo vo) {
35 46
... ... @@ -51,7 +62,7 @@ public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOr
51 62 @Override
52 63 public PurchaseOrderRevoke findById(String id) {
53 64
54   - return getBaseMapper().selectById(id);
  65 + return getBaseMapper().findById(id);
55 66 }
56 67
57 68 @OpLog(type = OtherOpLogType.class, name = "新增订货单撤销表,ID:{}", params = {"#id"})
... ... @@ -61,7 +72,6 @@ public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOr
61 72
62 73 PurchaseOrderRevoke data = new PurchaseOrderRevoke();
63 74 data.setId(IdUtil.getId());
64   - data.setSort(vo.getSort());
65 75 data.setPurchaseOrderId(vo.getPurchaseOrderId());
66 76 if (!StringUtil.isBlank(vo.getOrderNo())) {
67 77 data.setOrderNo(vo.getOrderNo());
... ... @@ -75,11 +85,12 @@ public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOr
75 85 if (vo.getDeliveryDate() != null) {
76 86 data.setDeliveryDate(vo.getDeliveryDate());
77 87 }
78   - if (vo.getDocumentPreparationDate() != null) {
79   - data.setDocumentPreparationDate(vo.getDocumentPreparationDate());
80   - }
  88 + //制单日期
  89 + data.setDocumentPreparationDate(LocalDate.now());
81 90 if (!StringUtil.isBlank(vo.getStatus())) {
82 91 data.setStatus(vo.getStatus());
  92 + } else {
  93 + data.setStatus("AUDIT");
83 94 }
84 95 if (!StringUtil.isBlank(vo.getRevokeReason())) {
85 96 data.setRevokeReason(vo.getRevokeReason());
... ... @@ -96,6 +107,36 @@ public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOr
96 107 OpLogUtil.setVariable("id", data.getId());
97 108 OpLogUtil.setExtra(vo);
98 109
  110 + //新增订货单撤销表物料行
  111 + if (CollectionUtil.isNotEmpty(vo.getPurchaseOrderRevokeLineList())) {
  112 + List<PurchaseOrderRevokeLine> purchaseOrderRevokeLineList = vo.getPurchaseOrderRevokeLineList();
  113 + for (PurchaseOrderRevokeLine purchaseOrderRevokeLine : purchaseOrderRevokeLineList) {
  114 + CreatePurchaseOrderRevokeLineVo vo1 = new CreatePurchaseOrderRevokeLineVo();
  115 + vo1.setPurchaseOrderRevokeId(data.getId());
  116 + vo1.setPurchaseOrderLineId(purchaseOrderRevokeLine.getPurchaseOrderLineId());
  117 + vo1.setIndustry(purchaseOrderRevokeLine.getIndustry());
  118 + vo1.setQuality(purchaseOrderRevokeLine.getQuality());
  119 + vo1.setBrand(purchaseOrderRevokeLine.getBrand());
  120 + vo1.setThickness(purchaseOrderRevokeLine.getThickness());
  121 + vo1.setThicknessTolPos(purchaseOrderRevokeLine.getThicknessTolPos());
  122 + vo1.setThicknessTolNeg(purchaseOrderRevokeLine.getThicknessTolNeg());
  123 + vo1.setWidth(purchaseOrderRevokeLine.getWidth());
  124 + vo1.setWidthTolPos(purchaseOrderRevokeLine.getWidthTolPos());
  125 + vo1.setWidthTolNeg(purchaseOrderRevokeLine.getWidthTolNeg());
  126 + vo1.setLength(purchaseOrderRevokeLine.getLength());
  127 + vo1.setLengthTolPos(purchaseOrderRevokeLine.getLengthTolPos());
  128 + vo1.setLengthTolNeg(purchaseOrderRevokeLine.getLengthTolNeg());
  129 + vo1.setQuantity(purchaseOrderRevokeLine.getQuantity());
  130 + vo1.setSalesPrice(purchaseOrderRevokeLine.getSalesPrice());
  131 + vo1.setDeliveryDate(purchaseOrderRevokeLine.getDeliveryDate());
  132 + vo1.setRevokeQuantity(purchaseOrderRevokeLine.getRevokeQuantity());
  133 + vo1.setShowOrder(purchaseOrderRevokeLine.getShowOrder());
  134 + purchaseOrderRevokeLineService.create(vo1);
  135 + }
  136 + }
  137 + //更新订货单撤销状态为:撤销中
  138 + purchaseOrderInfoService.updateRevokeStatus(vo.getPurchaseOrderId(), "UNDOING");
  139 +
99 140 return data.getId();
100 141 }
101 142
... ... @@ -110,14 +151,8 @@ public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOr
110 151 }
111 152
112 153 LambdaUpdateWrapper<PurchaseOrderRevoke> updateWrapper = Wrappers.lambdaUpdate(PurchaseOrderRevoke.class)
113   - .set(PurchaseOrderRevoke::getSort, vo.getSort())
114   - .set(PurchaseOrderRevoke::getPurchaseOrderId, vo.getPurchaseOrderId())
115   - .set(PurchaseOrderRevoke::getOrderNo, StringUtil.isBlank(vo.getOrderNo()) ? null : vo.getOrderNo())
116   - .set(PurchaseOrderRevoke::getOrderingUnit, StringUtil.isBlank(vo.getOrderingUnit()) ? null : vo.getOrderingUnit())
117   - .set(PurchaseOrderRevoke::getOrderDate, vo.getOrderDate() == null ? null : vo.getOrderDate())
118 154 .set(PurchaseOrderRevoke::getDeliveryDate, vo.getDeliveryDate() == null ? null : vo.getDeliveryDate())
119   - .set(PurchaseOrderRevoke::getDocumentPreparationDate, vo.getDocumentPreparationDate() == null ? null : vo.getDocumentPreparationDate())
120   - .set(PurchaseOrderRevoke::getStatus, StringUtil.isBlank(vo.getStatus()) ? null : vo.getStatus())
  155 + .set(PurchaseOrderRevoke::getStatus, "AUDIT")
121 156 .set(PurchaseOrderRevoke::getRevokeReason, StringUtil.isBlank(vo.getRevokeReason()) ? null : vo.getRevokeReason())
122 157 .set(PurchaseOrderRevoke::getConfirmationVoucherFileId, StringUtil.isBlank(vo.getConfirmationVoucherFileId()) ? null : vo.getConfirmationVoucherFileId())
123 158 .set(PurchaseOrderRevoke::getConfirmationVoucherFileName, StringUtil.isBlank(vo.getConfirmationVoucherFileName()) ? null : vo.getConfirmationVoucherFileName())
... ... @@ -125,10 +160,39 @@ public class PurchaseOrderRevokeServiceImpl extends BaseMpServiceImpl<PurchaseOr
125 160
126 161 getBaseMapper().update(updateWrapper);
127 162
  163 + //撤销单物料行修改
  164 + List<UpdatePurchaseOrderRevokeLineVo> voList = vo.getUpdatePurchaseOrderRevokeLineVoList();
  165 + if (CollectionUtil.isNotEmpty(voList)) {
  166 + for (UpdatePurchaseOrderRevokeLineVo vo1 : voList) {
  167 + purchaseOrderRevokeLineService.update(vo1);
  168 + }
  169 + }
  170 +
128 171 OpLogUtil.setVariable("id", data.getId());
129 172 OpLogUtil.setExtra(vo);
130 173 }
131 174
  175 + @OpLog(type = OtherOpLogType.class, name = "更新状态,ID:{}", params = {"#id"})
  176 + @Transactional(rollbackFor = Exception.class)
  177 + @Override
  178 + public void updateStatus(String id, String status) {
  179 + if (StringUtils.isBlank(id) || StringUtils.isBlank(status)) {
  180 + return;
  181 + }
  182 +
  183 + LambdaUpdateWrapper<PurchaseOrderRevoke> updateWrapper = Wrappers.lambdaUpdate(PurchaseOrderRevoke.class)
  184 + .set(PurchaseOrderRevoke::getStatus, status)
  185 + .eq(PurchaseOrderRevoke::getId, id);
  186 + getBaseMapper().update(updateWrapper);
  187 +
  188 + if ("CANCEL".equals(status)) {
  189 + PurchaseOrderRevoke revoke = findById(id);
  190 + //更新订货单撤销状态为已取消
  191 + purchaseOrderInfoService.updateRevokeStatus(revoke.getPurchaseOrderId(), status);
  192 + }
  193 +
  194 + }
  195 +
132 196 @OpLog(type = OtherOpLogType.class, name = "删除订货单撤销表,ID:{}", params = {"#id"})
133 197 @Transactional(rollbackFor = Exception.class)
134 198 @Override
... ...
... ... @@ -22,5 +22,12 @@ public interface PurchaseOrderInfoMapper extends BaseMapper<PurchaseOrderInfo> {
22 22 */
23 23 List<PurchaseOrderInfo> query(@Param("vo") QueryPurchaseOrderInfoVo vo);
24 24
  25 + /**
  26 + * 查询可撤销操作列表
  27 + * @param vo
  28 + * @return
  29 + */
  30 + List<PurchaseOrderInfo> queryRevokeList(@Param("vo") QueryPurchaseOrderInfoVo vo);
  31 +
25 32 PurchaseOrderInfo findById(@Param("id") String id);
26 33 }
... ...
... ... @@ -21,4 +21,6 @@ public interface PurchaseOrderRevokeMapper extends BaseMapper<PurchaseOrderRevok
21 21 * @return
22 22 */
23 23 List<PurchaseOrderRevoke> query(@Param("vo") QueryPurchaseOrderRevokeVo vo);
  24 +
  25 + PurchaseOrderRevoke findById(@Param("id") String id);
24 26 }
... ...
... ... @@ -21,12 +21,25 @@ public interface PurchaseOrderInfoService extends BaseMpService<PurchaseOrderInf
21 21
22 22 /**
23 23 * 查询列表
  24 + * @return
  25 + */
  26 + PageResult<PurchaseOrderInfo> queryRevokeList(Integer pageIndex, Integer pageSize, QueryPurchaseOrderInfoVo vo);
  27 +
  28 + /**
  29 + * 查询列表
24 30 * @param vo
25 31 * @return
26 32 */
27 33 List<PurchaseOrderInfo> query(QueryPurchaseOrderInfoVo vo);
28 34
29 35 /**
  36 + * 查询可撤销列表
  37 + * @param vo
  38 + * @return
  39 + */
  40 + List<PurchaseOrderInfo> queryRevokeList(QueryPurchaseOrderInfoVo vo);
  41 +
  42 + /**
30 43 * 根据ID查询
31 44 * @param id
32 45 * @return
... ... @@ -67,4 +80,12 @@ public interface PurchaseOrderInfoService extends BaseMpService<PurchaseOrderInf
67 80 * @param vo 更新数据
68 81 */
69 82 void updateNoFlowInstance(UpdatePurchaseOrderInfoVo vo);
  83 +
  84 + /**
  85 + * 根据主键ID更新撤销状态
  86 + *
  87 + * @param id 主键ID
  88 + * @param status 撤销状态
  89 + */
  90 + void updateRevokeStatus(String id, String status);
70 91 }
... ...
... ... @@ -47,6 +47,14 @@ public interface PurchaseOrderRevokeService extends BaseMpService<PurchaseOrderR
47 47 void update(UpdatePurchaseOrderRevokeVo vo);
48 48
49 49 /**
  50 + * 更新状态
  51 + *
  52 + * @param id 主键
  53 + * @param status 状态
  54 + */
  55 + void updateStatus(String id, String status);
  56 +
  57 + /**
50 58 * 根据ID删除
51 59 * @param id
52 60 * @return
... ...
... ... @@ -3,10 +3,13 @@ package com.lframework.xingyun.sc.vo.order;
3 3 import javax.validation.constraints.NotBlank;
4 4 import java.time.LocalDate;
5 5 import com.lframework.starter.web.core.vo.BaseVo;
  6 +import com.lframework.xingyun.sc.entity.PurchaseOrderRevokeLine;
6 7 import io.swagger.annotations.ApiModelProperty;
7 8 import com.lframework.starter.web.core.components.validation.TypeMismatch;
8 9 import org.hibernate.validator.constraints.Length;
9 10 import java.io.Serializable;
  11 +import java.util.List;
  12 +
10 13 import lombok.Data;
11 14
12 15 @Data
... ... @@ -15,14 +18,6 @@ public class CreatePurchaseOrderRevokeVo implements BaseVo, Serializable {
15 18 private static final long serialVersionUID = 1L;
16 19
17 20 /**
18   - * 第几次撤销
19   - */
20   - @ApiModelProperty(value = "第几次撤销", required = true)
21   - @NotBlank(message = "请输入第几次撤销!")
22   - @Length(message = "第几次撤销最多允许20个字符!")
23   - private String sort;
24   -
25   - /**
26 21 * 订货单ID
27 22 */
28 23 @ApiModelProperty(value = "订货单ID", required = true)
... ... @@ -93,4 +88,10 @@ public class CreatePurchaseOrderRevokeVo implements BaseVo, Serializable {
93 88 @Length(message = "撤销确认凭证文件名称最多允许100个字符!")
94 89 private String confirmationVoucherFileName;
95 90
  91 + /**
  92 + * 订货单撤销表物料行
  93 + */
  94 + @ApiModelProperty("订货单撤销表物料行")
  95 + private List<PurchaseOrderRevokeLine> purchaseOrderRevokeLineList;
  96 +
96 97 }
... ...
... ... @@ -25,9 +25,9 @@ public class UpdatePurchaseOrderRevokeLineVo implements BaseVo, Serializable {
25 25 /**
26 26 * 撤销数量kg
27 27 */
28   - @ApiModelProperty("撤销数量kg")
29   - @TypeMismatch(message = "撤销数量kg格式有误!")
30   - @IsNumberPrecision(message = "撤销数量kg最多允许4位小数!", value = 4)
  28 + @ApiModelProperty("撤销数量")
  29 + @TypeMismatch(message = "撤销数量格式有误!")
  30 + @IsNumberPrecision(message = "撤销数量最多允许4位小数!", value = 4)
31 31 private BigDecimal revokeQuantity;
32 32
33 33 }
... ...
... ... @@ -8,6 +8,7 @@ import com.lframework.starter.web.core.components.validation.TypeMismatch;
8 8 import io.swagger.annotations.ApiModelProperty;
9 9 import org.hibernate.validator.constraints.Length;
10 10 import java.io.Serializable;
  11 +import java.util.List;
11 12
12 13 @Data
13 14 public class UpdatePurchaseOrderRevokeVo implements BaseVo, Serializable {
... ... @@ -21,42 +22,6 @@ public class UpdatePurchaseOrderRevokeVo implements BaseVo, Serializable {
21 22 @NotBlank(message = "id不能为空!")
22 23 private String id;
23 24
24   - /**
25   - * 第几次撤销
26   - */
27   - @ApiModelProperty(value = "第几次撤销", required = true)
28   - @NotBlank(message = "请输入第几次撤销!")
29   - @Length(message = "第几次撤销最多允许20个字符!")
30   - private String sort;
31   -
32   - /**
33   - * 订货单ID
34   - */
35   - @ApiModelProperty(value = "订货单ID", required = true)
36   - @NotBlank(message = "请输入订货单ID!")
37   - @Length(message = "订货单ID最多允许32个字符!")
38   - private String purchaseOrderId;
39   -
40   - /**
41   - * 订单编号
42   - */
43   - @ApiModelProperty("订单编号")
44   - @Length(message = "订单编号最多允许50个字符!")
45   - private String orderNo;
46   -
47   - /**
48   - * 订货单位ID
49   - */
50   - @ApiModelProperty("订货单位ID")
51   - @Length(message = "订货单位ID最多允许100个字符!")
52   - private String orderingUnit;
53   -
54   - /**
55   - * 原订货日期
56   - */
57   - @ApiModelProperty("原订货日期")
58   - @TypeMismatch(message = "原订货日期格式有误!")
59   - private LocalDate orderDate;
60 25
61 26 /**
62 27 * 要求交货日期
... ... @@ -66,20 +31,6 @@ public class UpdatePurchaseOrderRevokeVo implements BaseVo, Serializable {
66 31 private LocalDate deliveryDate;
67 32
68 33 /**
69   - * 制单日期
70   - */
71   - @ApiModelProperty("制单日期")
72   - @TypeMismatch(message = "制单日期格式有误!")
73   - private LocalDate documentPreparationDate;
74   -
75   - /**
76   - * 状态
77   - */
78   - @ApiModelProperty("状态")
79   - @Length(message = "状态最多允许20个字符!")
80   - private String status;
81   -
82   - /**
83 34 * 撤销原因
84 35 */
85 36 @ApiModelProperty("撤销原因")
... ... @@ -100,4 +51,10 @@ public class UpdatePurchaseOrderRevokeVo implements BaseVo, Serializable {
100 51 @Length(message = "撤销确认凭证文件名称最多允许100个字符!")
101 52 private String confirmationVoucherFileName;
102 53
  54 + /**
  55 + * 订货单撤销单物料行
  56 + */
  57 + @ApiModelProperty("订货单撤销单物料行")
  58 + List<UpdatePurchaseOrderRevokeLineVo> updatePurchaseOrderRevokeLineVoList;
  59 +
103 60 }
... ...
... ... @@ -120,6 +120,45 @@
120 120 ORDER BY tb.update_time DESC
121 121 </select>
122 122
  123 + <select id="queryRevokeList" resultMap="PurchaseOrderInfo">
  124 + <include refid="PurchaseOrderInfo_sql"/>
  125 + <where>
  126 + <if test="vo.orderNo != null and vo.orderNo != ''">
  127 + AND tb.order_no = #{vo.orderNo}
  128 + </if>
  129 + <if test="vo.orderingUnitName != null and vo.orderingUnitName != ''">
  130 + AND cu.name LIKE CONCAT('%', #{vo.orderingUnitName},'%')
  131 + </if>
  132 + <if test="vo.orderDateStart != null">
  133 + AND tb.order_date >= #{vo.orderDateStart}
  134 + </if>
  135 + <if test="vo.orderDateEnd != null">
  136 + <![CDATA[
  137 + AND tb.order_date <= #{vo.orderDateEnd}
  138 + ]]>
  139 + </if>
  140 + <if test="vo.status != null and vo.status != ''">
  141 + AND tb.status = #{vo.status}
  142 + </if>
  143 + <if test="vo.examineStatus != null and vo.examineStatus != ''">
  144 + AND tb.examine_status = #{vo.examineStatus}
  145 + </if>
  146 + <if test="vo.revokeStatus != null and vo.revokeStatus != ''">
  147 + AND tb.revoke_status = #{vo.revokeStatus}
  148 + </if>
  149 + <if test="vo.deptId != null and vo.deptId != ''">
  150 + AND tb.dept_id = #{vo.deptId}
  151 + </if>
  152 + <if test="vo.workshopId != null and vo.workshopId != ''">
  153 + AND tb.workshop_id = #{vo.workshopId}
  154 + </if>
  155 + AND (tb.revoke_status = '' OR tb.revoke_status = null OR tb.revoke_status='CANCEL' OR
  156 + tb.revoke_status='PARTIAL')
  157 + AND (tb.status='ISSUED' OR tb.status='WAIT' OR tb.status='TRANSIT')
  158 + </where>
  159 + ORDER BY tb.update_time DESC
  160 + </select>
  161 +
123 162 <select id="findById" resultType="com.lframework.xingyun.sc.entity.PurchaseOrderInfo">
124 163 <include refid="PurchaseOrderInfo_sql"/>
125 164 <where>
... ...
... ... @@ -4,7 +4,6 @@
4 4
5 5 <resultMap id="PurchaseOrderRevoke" type="com.lframework.xingyun.sc.entity.PurchaseOrderRevoke">
6 6 <id column="id" property="id"/>
7   - <result column="sort" property="sort"/>
8 7 <result column="purchase_order_id" property="purchaseOrderId"/>
9 8 <result column="order_no" property="orderNo"/>
10 9 <result column="ordering_unit" property="orderingUnit"/>
... ... @@ -26,10 +25,10 @@
26 25 <sql id="PurchaseOrderRevoke_sql">
27 26 SELECT
28 27 tb.id,
29   - tb.sort,
30 28 tb.purchase_order_id,
31 29 tb.order_no,
32 30 tb.ordering_unit,
  31 + cu.name AS ordering_unit_name,
33 32 tb.order_date,
34 33 tb.delivery_date,
35 34 tb.document_preparation_date,
... ... @@ -44,6 +43,7 @@
44 43 tb.create_time,
45 44 tb.update_time
46 45 FROM purchase_order_revoke AS tb
  46 + left join base_data_customer as cu on cu.id = tb.ordering_unit
47 47 </sql>
48 48
49 49 <select id="query" resultMap="PurchaseOrderRevoke">
... ... @@ -55,6 +55,9 @@
55 55 <if test="vo.orderingUnit != null and vo.orderingUnit != ''">
56 56 AND tb.ordering_unit = #{vo.orderingUnit}
57 57 </if>
  58 + <if test="vo.orderingUnitName != null and vo.orderingUnitName != ''">
  59 + AND cu.name LIKE CONCAT('%', #{vo.orderingUnitName},'%')
  60 + </if>
58 61 <if test="vo.startDate != null">
59 62 AND tb.document_preparation_date >= #{vo.startDate}
60 63 </if>
... ... @@ -69,4 +72,13 @@
69 72 </where>
70 73 ORDER BY tb.update_time DESC
71 74 </select>
  75 +
  76 + <select id="findById" resultType="com.lframework.xingyun.sc.entity.PurchaseOrderRevoke">
  77 + <include refid="PurchaseOrderRevoke_sql"/>
  78 + <where>
  79 + <if test="id != null and id != ''">
  80 + AND tb.id = #{id}
  81 + </if>
  82 + </where>
  83 + </select>
72 84 </mapper>
... ...