Commit 06f27c68662fe4e0a5f1ec76c29fa8774786e92f

Authored by yeqianyong
1 parent 7fd4768f

楚江ERP-订货单变更调整

1 package com.lframework.xingyun.sc.bo.order.change; 1 package com.lframework.xingyun.sc.bo.order.change;
2 2
3 import com.fasterxml.jackson.annotation.JsonFormat; 3 import com.fasterxml.jackson.annotation.JsonFormat;
  4 +import com.lframework.starter.web.core.components.security.SecurityUtil;
4 import com.lframework.xingyun.sc.entity.OrderInfoChangeRecord; 5 import com.lframework.xingyun.sc.entity.OrderInfoChangeRecord;
5 import com.lframework.starter.common.constants.StringPool; 6 import com.lframework.starter.common.constants.StringPool;
6 import com.lframework.starter.web.core.bo.BaseBo; 7 import com.lframework.starter.web.core.bo.BaseBo;
@@ -55,6 +56,12 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> { @@ -55,6 +56,12 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> {
55 private String orderingUnit; 56 private String orderingUnit;
56 57
57 /** 58 /**
  59 + * 订货单位名称
  60 + */
  61 + @ApiModelProperty("订货单位名称")
  62 + private String orderingUnitName;
  63 +
  64 + /**
58 * 订货日期 65 * 订货日期
59 */ 66 */
60 @ApiModelProperty("订货日期") 67 @ApiModelProperty("订货日期")
@@ -200,12 +207,24 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> { @@ -200,12 +207,24 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> {
200 private Double totalQuantity; 207 private Double totalQuantity;
201 208
202 /** 209 /**
  210 + * 变更后总数量
  211 + */
  212 + @ApiModelProperty("变更后总数量")
  213 + private Double afterTotalQuantity;
  214 +
  215 + /**
203 * 包装费 216 * 包装费
204 */ 217 */
205 @ApiModelProperty("包装费") 218 @ApiModelProperty("包装费")
206 private BigDecimal packagingFee; 219 private BigDecimal packagingFee;
207 220
208 /** 221 /**
  222 + * 制单日期
  223 + */
  224 + @ApiModelProperty("制单日期")
  225 + private LocalDate createDate;
  226 +
  227 + /**
209 * 变更前规格数据 228 * 变更前规格数据
210 */ 229 */
211 @ApiModelProperty("变更前规格数据") 230 @ApiModelProperty("变更前规格数据")
@@ -217,6 +236,18 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> { @@ -217,6 +236,18 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> {
217 @ApiModelProperty("变更后规格数据") 236 @ApiModelProperty("变更后规格数据")
218 private List<PurchaseOrderLine> afterChangeSpecList; 237 private List<PurchaseOrderLine> afterChangeSpecList;
219 238
  239 + /**
  240 + * 是否展示审核按钮
  241 + */
  242 + @ApiModelProperty("是否展示审核按钮")
  243 + private Boolean showExamine;
  244 +
  245 + /**
  246 + * 是否是变更发起人
  247 + */
  248 + @ApiModelProperty("是否是变更发起人")
  249 + private Boolean changeCreateBy;
  250 +
220 251
221 public OrderChangeRecordBo() { 252 public OrderChangeRecordBo() {
222 253
@@ -233,6 +264,11 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> { @@ -233,6 +264,11 @@ public class OrderChangeRecordBo extends BaseBo<OrderInfoChangeRecord> {
233 264
234 @Override 265 @Override
235 protected void afterInit(OrderInfoChangeRecord dto) { 266 protected void afterInit(OrderInfoChangeRecord dto) {
236 - 267 + LocalDateTime time = dto.getCreateTime();
  268 + if (time != null) {
  269 + this.createDate = time.toLocalDate();
  270 + }
  271 + String createBy = dto.getCreateBy();
  272 + this.changeCreateBy = SecurityUtil.getCurrentUser().getId().equals(createBy);
237 } 273 }
238 } 274 }
@@ -176,6 +176,12 @@ public class OrderInfoChangeRecord extends BaseEntity implements BaseDto { @@ -176,6 +176,12 @@ public class OrderInfoChangeRecord extends BaseEntity implements BaseDto {
176 private Double totalQuantity; 176 private Double totalQuantity;
177 177
178 /** 178 /**
  179 + * 变更后总数量
  180 + */
  181 + @TableField(exist = false)
  182 + private Double afterTotalQuantity;
  183 +
  184 + /**
179 * 包装费 185 * 包装费
180 */ 186 */
181 private BigDecimal packagingFee; 187 private BigDecimal packagingFee;
@@ -205,6 +211,12 @@ public class OrderInfoChangeRecord extends BaseEntity implements BaseDto { @@ -205,6 +211,12 @@ public class OrderInfoChangeRecord extends BaseEntity implements BaseDto {
205 private List<PurchaseOrderLine> afterChangeSpecList; 211 private List<PurchaseOrderLine> afterChangeSpecList;
206 212
207 /** 213 /**
  214 + * 是否展示审核按钮
  215 + */
  216 + @TableField(exist = false)
  217 + private Boolean showExamine;
  218 +
  219 + /**
208 * 创建人ID 220 * 创建人ID
209 */ 221 */
210 @TableField(fill = FieldFill.INSERT) 222 @TableField(fill = FieldFill.INSERT)
@@ -3,9 +3,13 @@ package com.lframework.xingyun.sc.impl.order; @@ -3,9 +3,13 @@ package com.lframework.xingyun.sc.impl.order;
3 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 3 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
4 import com.baomidou.mybatisplus.core.toolkit.Wrappers; 4 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
5 import com.github.pagehelper.PageInfo; 5 import com.github.pagehelper.PageInfo;
  6 +import com.lframework.starter.bpm.dto.FlowTaskDto;
  7 +import com.lframework.starter.bpm.mappers.FlowTaskWrapperMapper;
6 import com.lframework.starter.bpm.service.FlowInstanceWrapperService; 8 import com.lframework.starter.bpm.service.FlowInstanceWrapperService;
  9 +import com.lframework.starter.bpm.vo.flow.task.QueryTodoTaskListVo;
7 import com.lframework.starter.common.utils.StringUtil; 10 import com.lframework.starter.common.utils.StringUtil;
8 import com.lframework.starter.web.core.components.redis.RedisHandler; 11 import com.lframework.starter.web.core.components.redis.RedisHandler;
  12 +import com.lframework.starter.web.core.components.security.SecurityUtil;
9 import com.lframework.starter.web.core.utils.*; 13 import com.lframework.starter.web.core.utils.*;
10 import com.lframework.starter.web.inner.service.system.SysUserService; 14 import com.lframework.starter.web.inner.service.system.SysUserService;
11 import com.lframework.xingyun.basedata.service.customer.CustomerService; 15 import com.lframework.xingyun.basedata.service.customer.CustomerService;
@@ -29,6 +33,7 @@ import com.lframework.xingyun.sc.vo.order.CreatePurchaseOrderLineVo; @@ -29,6 +33,7 @@ import com.lframework.xingyun.sc.vo.order.CreatePurchaseOrderLineVo;
29 import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderInfoVo; 33 import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderInfoVo;
30 import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderLineVo; 34 import com.lframework.xingyun.sc.vo.order.UpdatePurchaseOrderLineVo;
31 import com.lframework.xingyun.sc.vo.order.change.*; 35 import com.lframework.xingyun.sc.vo.order.change.*;
  36 +import org.apache.commons.collections4.CollectionUtils;
32 import org.apache.commons.lang3.BooleanUtils; 37 import org.apache.commons.lang3.BooleanUtils;
33 import org.apache.commons.lang3.StringUtils; 38 import org.apache.commons.lang3.StringUtils;
34 import org.springframework.transaction.annotation.Transactional; 39 import org.springframework.transaction.annotation.Transactional;
@@ -37,6 +42,7 @@ import com.lframework.xingyun.sc.service.order.OrderChangeRecordService; @@ -37,6 +42,7 @@ import com.lframework.xingyun.sc.service.order.OrderChangeRecordService;
37 import org.springframework.stereotype.Service; 42 import org.springframework.stereotype.Service;
38 43
39 import javax.annotation.Resource; 44 import javax.annotation.Resource;
  45 +import java.math.BigDecimal;
40 import java.util.*; 46 import java.util.*;
41 import java.util.stream.Collectors; 47 import java.util.stream.Collectors;
42 48
@@ -63,6 +69,8 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR @@ -63,6 +69,8 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR
63 private RedisHandler redisHandler; 69 private RedisHandler redisHandler;
64 @Resource 70 @Resource
65 private MessageHandler messageHandler; 71 private MessageHandler messageHandler;
  72 + @Resource
  73 + private FlowTaskWrapperMapper flowTaskWrapperMapper;
66 74
67 75
68 @Override 76 @Override
@@ -78,7 +86,21 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR @@ -78,7 +86,21 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR
78 86
79 @Override 87 @Override
80 public List<OrderInfoChangeRecord> query(QueryPurchaseOrderInfoVo vo) { 88 public List<OrderInfoChangeRecord> query(QueryPurchaseOrderInfoVo vo) {
81 - return getBaseMapper().query(vo); 89 + List<OrderInfoChangeRecord> recordList = getBaseMapper().query(vo);
  90 + if (CollectionUtils.isEmpty(recordList)) {
  91 + return Collections.emptyList();
  92 + }
  93 + // 判断当前人员是否有审核权限
  94 + // 获取当前人员的待办任务数据
  95 + List<String> businessIds = new ArrayList<>();
  96 + List<FlowTaskDto> flowTaskList = flowTaskWrapperMapper.queryTodoList(new QueryTodoTaskListVo(), SecurityUtil.getCurrentUser().getId());
  97 + if (CollectionUtils.isNotEmpty(flowTaskList)) {
  98 + businessIds = flowTaskList.stream().map(FlowTaskDto::getBusinessId).collect(Collectors.toList());
  99 + }
  100 + for (OrderInfoChangeRecord record : recordList) {
  101 + record.setShowExamine(businessIds.contains(record.getId()));
  102 + }
  103 + return recordList;
82 } 104 }
83 105
84 @Override 106 @Override
@@ -94,6 +116,16 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR @@ -94,6 +116,16 @@ public class OrderChangeRecordServiceImpl extends BaseMpServiceImpl<OrderChangeR
94 changeRecord.setBeforeChangeSpecList(beforeChangeList); 116 changeRecord.setBeforeChangeSpecList(beforeChangeList);
95 // 变更后 117 // 变更后
96 List<PurchaseOrderLine> afterChangeList = purchaseOrderLineService.listByOrderIds(Collections.singletonList(id), true); 118 List<PurchaseOrderLine> afterChangeList = purchaseOrderLineService.listByOrderIds(Collections.singletonList(id), true);
  119 + if (CollectionUtils.isNotEmpty(afterChangeList)) {
  120 + BigDecimal total = BigDecimal.ZERO;
  121 + for (PurchaseOrderLine afterChangeLine : afterChangeList) {
  122 + BigDecimal quantity = afterChangeLine.getQuantity();
  123 + if (quantity != null) {
  124 + total = total.add(quantity);
  125 + }
  126 + }
  127 + changeRecord.setAfterTotalQuantity(total.doubleValue());
  128 + }
97 changeRecord.setAfterChangeSpecList(afterChangeList); 129 changeRecord.setAfterChangeSpecList(afterChangeList);
98 130
99 return changeRecord; 131 return changeRecord;