Showing
8 changed files
with
139 additions
and
0 deletions
| ... | ... | @@ -216,6 +216,12 @@ public class GetPurchaseOrderInfoBo extends BaseBo<PurchaseOrderInfo> { |
| 216 | 216 | @ApiModelProperty("订货单表物料行") |
| 217 | 217 | private List<PurchaseOrderLine> purchaseOrderLineList; |
| 218 | 218 | |
| 219 | + /** | |
| 220 | + * 规格变更状态 | |
| 221 | + */ | |
| 222 | + @ApiModelProperty("规格变更状态") | |
| 223 | + private String specChangeStatus; | |
| 224 | + | |
| 219 | 225 | |
| 220 | 226 | |
| 221 | 227 | public GetPurchaseOrderInfoBo() { | ... | ... |
| ... | ... | @@ -3,6 +3,7 @@ package com.lframework.xingyun.sc.controller.order; |
| 3 | 3 | import com.lframework.starter.web.core.annotations.security.HasPermission; |
| 4 | 4 | import com.lframework.starter.web.core.controller.DefaultBaseController; |
| 5 | 5 | import com.lframework.xingyun.sc.bo.order.change.OrderSpecificationChangeRecordBo; |
| 6 | +import com.lframework.xingyun.sc.enums.OrderSpecChangeStatus; | |
| 6 | 7 | import com.lframework.xingyun.sc.vo.order.change.QueryOrderSpecificationChangeRecordVo; |
| 7 | 8 | import com.lframework.xingyun.sc.service.order.OrderSpecificationChangeRecordService; |
| 8 | 9 | import com.lframework.xingyun.sc.vo.order.change.CreateOrderSpecificationChangeRecordVo; |
| ... | ... | @@ -107,4 +108,16 @@ public class OrderSpecificationChangeRecordController extends DefaultBaseControl |
| 107 | 108 | orderSpecificationChangeRecordService.deleteById(id); |
| 108 | 109 | return InvokeResultBuilder.success(); |
| 109 | 110 | } |
| 111 | + | |
| 112 | + /** | |
| 113 | + * 取消变更 | |
| 114 | + */ | |
| 115 | + @ApiOperation("取消变更") | |
| 116 | + @ApiImplicitParam(value = "id", name = "id", paramType = "query", required = true) | |
| 117 | + @HasPermission({"order:change:cancel"}) | |
| 118 | + @GetMapping("/cancel") | |
| 119 | + public InvokeResult<Void> cancelById(@NotBlank(message = "id不能为空!") String id) { | |
| 120 | + orderSpecificationChangeRecordService.updateStatus(id, OrderSpecChangeStatus.CANCEL.getCode()); | |
| 121 | + return InvokeResultBuilder.success(); | |
| 122 | + } | |
| 110 | 123 | } | ... | ... |
| ... | ... | @@ -175,6 +175,11 @@ public class PurchaseOrderInfo extends BaseEntity implements BaseDto { |
| 175 | 175 | private String customerTier; |
| 176 | 176 | |
| 177 | 177 | /** |
| 178 | + * 规格变更状态 | |
| 179 | + */ | |
| 180 | + private String specChangeStatus; | |
| 181 | + | |
| 182 | + /** | |
| 178 | 183 | * 创建人ID |
| 179 | 184 | */ |
| 180 | 185 | @TableField(fill = FieldFill.INSERT) | ... | ... |
| 1 | +package com.lframework.xingyun.sc.enums; | |
| 2 | + | |
| 3 | +import com.baomidou.mybatisplus.annotation.EnumValue; | |
| 4 | +import com.lframework.starter.web.core.enums.BaseEnum; | |
| 5 | + | |
| 6 | +public enum OrderSpecChangeStatus implements BaseEnum<String> { | |
| 7 | + | |
| 8 | + | |
| 9 | + IN_PROGRESS("IN_PROGRESS", "变更中"), | |
| 10 | + COMPLETED("COMPLETED", "已完成"), | |
| 11 | + CANCEL("CANCEL", "已取消"), | |
| 12 | + ; | |
| 13 | + | |
| 14 | + | |
| 15 | + @EnumValue | |
| 16 | + private final String code; | |
| 17 | + | |
| 18 | + private final String desc; | |
| 19 | + | |
| 20 | + OrderSpecChangeStatus(String code, String desc) { | |
| 21 | + this.code = code; | |
| 22 | + this.desc = desc; | |
| 23 | + } | |
| 24 | + | |
| 25 | + @Override | |
| 26 | + public String getCode() { | |
| 27 | + return this.code; | |
| 28 | + } | |
| 29 | + | |
| 30 | + @Override | |
| 31 | + public String getDesc() { | |
| 32 | + return this.desc; | |
| 33 | + } | |
| 34 | + | |
| 35 | + | |
| 36 | + /** | |
| 37 | + * 通过code获取desc | |
| 38 | + * | |
| 39 | + * @param code 状态码 | |
| 40 | + * @return 描述信息 | |
| 41 | + */ | |
| 42 | + public static String getDescByCode(String code) { | |
| 43 | + for (OrderSpecChangeStatus status : OrderSpecChangeStatus.values()) { | |
| 44 | + if (status.getCode().equals(code)) { | |
| 45 | + return status.getDesc(); | |
| 46 | + } | |
| 47 | + } | |
| 48 | + return null; | |
| 49 | + } | |
| 50 | +} | ... | ... |
| ... | ... | @@ -16,9 +16,12 @@ import com.lframework.starter.web.core.annotations.oplog.OpLog; |
| 16 | 16 | import com.lframework.starter.common.utils.Assert; |
| 17 | 17 | import com.lframework.starter.web.inner.components.oplog.OtherOpLogType; |
| 18 | 18 | import com.lframework.xingyun.sc.entity.PurchaseOrderLine; |
| 19 | +import com.lframework.xingyun.sc.enums.OrderSpecChangeStatus; | |
| 20 | +import com.lframework.xingyun.sc.service.order.PurchaseOrderInfoService; | |
| 19 | 21 | import com.lframework.xingyun.sc.service.order.PurchaseOrderLineService; |
| 20 | 22 | import com.lframework.xingyun.sc.vo.order.change.*; |
| 21 | 23 | import org.apache.commons.collections4.CollectionUtils; |
| 24 | +import org.apache.commons.lang3.StringUtils; | |
| 22 | 25 | import org.springframework.transaction.annotation.Transactional; |
| 23 | 26 | import com.lframework.xingyun.sc.mappers.OrderSpecificationChangeRecordMapper; |
| 24 | 27 | import com.lframework.xingyun.sc.service.order.OrderSpecificationChangeRecordService; |
| ... | ... | @@ -36,6 +39,8 @@ public class OrderSpecificationChangeRecordServiceImpl extends BaseMpServiceImpl |
| 36 | 39 | private PurchaseOrderLineService purchaseOrderLineService; |
| 37 | 40 | @Resource |
| 38 | 41 | private SysUserService sysUserService; |
| 42 | + @Resource | |
| 43 | + private PurchaseOrderInfoService purchaseOrderInfoService; | |
| 39 | 44 | |
| 40 | 45 | |
| 41 | 46 | @Override |
| ... | ... | @@ -153,6 +158,8 @@ public class OrderSpecificationChangeRecordServiceImpl extends BaseMpServiceImpl |
| 153 | 158 | } |
| 154 | 159 | getBaseMapper().insert(data); |
| 155 | 160 | purchaseOrderLineService.batchAdd(orderLineList); |
| 161 | + // 更新订货单规格变更状态 | |
| 162 | + purchaseOrderInfoService.updateSpecChangeStatus(vo.getOrderId(), OrderSpecChangeStatus.IN_PROGRESS.getCode()); | |
| 156 | 163 | |
| 157 | 164 | OpLogUtil.setVariable("id", data.getId()); |
| 158 | 165 | OpLogUtil.setExtra(vo); |
| ... | ... | @@ -207,4 +214,29 @@ public class OrderSpecificationChangeRecordServiceImpl extends BaseMpServiceImpl |
| 207 | 214 | public void deleteById(String id) { |
| 208 | 215 | getBaseMapper().deleteById(id); |
| 209 | 216 | } |
| 217 | + | |
| 218 | + /** | |
| 219 | + * 更新状态 | |
| 220 | + * | |
| 221 | + * @param id 主键ID | |
| 222 | + * @param status 状态 | |
| 223 | + */ | |
| 224 | + @Override | |
| 225 | + public void updateStatus(String id, String status) { | |
| 226 | + if (StringUtils.isBlank(id) || StringUtils.isBlank(status)) { | |
| 227 | + return; | |
| 228 | + } | |
| 229 | + OrderSpecificationChangeRecord record = getById(id); | |
| 230 | + if (record == null) { | |
| 231 | + throw new DefaultClientException("规格变更记录不存在!"); | |
| 232 | + } | |
| 233 | + LambdaUpdateWrapper<OrderSpecificationChangeRecord> updateWrapper = Wrappers.lambdaUpdate(OrderSpecificationChangeRecord.class); | |
| 234 | + updateWrapper.set(OrderSpecificationChangeRecord::getStatus, status) | |
| 235 | + .eq(OrderSpecificationChangeRecord::getId, id); | |
| 236 | + getBaseMapper().update(updateWrapper); | |
| 237 | + if (OrderSpecChangeStatus.CANCEL.getCode().equals(status)) { | |
| 238 | + // 更新订货单规格变更状态 | |
| 239 | + purchaseOrderInfoService.updateSpecChangeStatus(record.getOrderId(), status); | |
| 240 | + } | |
| 241 | + } | |
| 210 | 242 | } | ... | ... |
| ... | ... | @@ -321,6 +321,23 @@ public class PurchaseOrderInfoServiceImpl extends BaseMpServiceImpl<PurchaseOrde |
| 321 | 321 | getBaseMapper().update(updateWrapper); |
| 322 | 322 | } |
| 323 | 323 | |
| 324 | + /** | |
| 325 | + * 更新规格变更状态 | |
| 326 | + * | |
| 327 | + * @param id 主键ID | |
| 328 | + * @param status 状态 | |
| 329 | + */ | |
| 330 | + @Override | |
| 331 | + public void updateSpecChangeStatus(String id, String status) { | |
| 332 | + if (StringUtils.isBlank(id) || StringUtils.isBlank(status)) { | |
| 333 | + return; | |
| 334 | + } | |
| 335 | + LambdaUpdateWrapper<PurchaseOrderInfo> updateWrapper = Wrappers.lambdaUpdate(PurchaseOrderInfo.class) | |
| 336 | + .set(PurchaseOrderInfo::getSpecChangeStatus, status) | |
| 337 | + .eq(PurchaseOrderInfo::getId, id); | |
| 338 | + getBaseMapper().update(updateWrapper); | |
| 339 | + } | |
| 340 | + | |
| 324 | 341 | @Override |
| 325 | 342 | public void cleanCacheByKey(Serializable key) { |
| 326 | 343 | ... | ... |
| ... | ... | @@ -57,4 +57,12 @@ public interface OrderSpecificationChangeRecordService extends BaseMpService<Ord |
| 57 | 57 | * @param id 主键ID |
| 58 | 58 | */ |
| 59 | 59 | void deleteById(String id); |
| 60 | + | |
| 61 | + /** | |
| 62 | + * 更新状态 | |
| 63 | + * | |
| 64 | + * @param id 主键ID | |
| 65 | + * @param status 状态 | |
| 66 | + */ | |
| 67 | + void updateStatus(String id, String status); | |
| 60 | 68 | } | ... | ... |
| ... | ... | @@ -88,4 +88,12 @@ public interface PurchaseOrderInfoService extends BaseMpService<PurchaseOrderInf |
| 88 | 88 | * @param status 撤销状态 |
| 89 | 89 | */ |
| 90 | 90 | void updateRevokeStatus(String id, String status); |
| 91 | + | |
| 92 | + /** | |
| 93 | + * 更新规格变更状态 | |
| 94 | + * | |
| 95 | + * @param id 主键ID | |
| 96 | + * @param status 状态 | |
| 97 | + */ | |
| 98 | + void updateSpecChangeStatus(String id, String status); | |
| 91 | 99 | } | ... | ... |