Commit 5fee6a293b82dcfee8dc492344326ccde49a265e
1 parent
48611c93
采购计划:买断操作申请单生成、废弃按钮展示;选择分厂后自动生成买断操作申请单
Showing
3 changed files
with
69 additions
and
2 deletions
| ... | ... | @@ -351,6 +351,18 @@ public class GetProcurementPlanBo extends BaseBo<ProcurementPlan> { |
| 351 | 351 | private String salesmanQuotationId; |
| 352 | 352 | |
| 353 | 353 | /** |
| 354 | + * 是否展示「生成买断操作申请单」按钮 | |
| 355 | + */ | |
| 356 | + @ApiModelProperty("是否展示「生成买断操作申请单」") | |
| 357 | + private Boolean showGenerateBuyoutApply; | |
| 358 | + | |
| 359 | + /** | |
| 360 | + * 是否展示「废除买断操作申请单」按钮 | |
| 361 | + */ | |
| 362 | + @ApiModelProperty("是否展示「废除买断操作申请单」") | |
| 363 | + private Boolean showAbolishBuyoutApply; | |
| 364 | + | |
| 365 | + /** | |
| 354 | 366 | * 附件文件ID集合 |
| 355 | 367 | */ |
| 356 | 368 | @ApiModelProperty("附件文件ID集合") | ... | ... |
| 1 | 1 | package com.lframework.xingyun.sc.procurement.controller.plan; |
| 2 | 2 | |
| 3 | +import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |
| 3 | 4 | import com.lframework.starter.common.utils.CollectionUtil; |
| 4 | 5 | import com.lframework.starter.web.core.annotations.security.HasPermission; |
| 5 | 6 | import com.lframework.starter.web.core.controller.DefaultBaseController; |
| ... | ... | @@ -8,7 +9,9 @@ import com.lframework.starter.web.core.components.resp.InvokeResultBuilder; |
| 8 | 9 | import com.lframework.starter.web.core.components.resp.PageResult; |
| 9 | 10 | import com.lframework.starter.web.core.utils.PageResultUtil; |
| 10 | 11 | import com.lframework.xingyun.sc.bo.procurement.GetProcurementPlanBo; |
| 12 | +import com.lframework.xingyun.sc.procurement.entity.ProcurementBuyoutApply; | |
| 11 | 13 | import com.lframework.xingyun.sc.procurement.entity.ProcurementPlan; |
| 14 | +import com.lframework.xingyun.sc.procurement.service.buyout.ProcurementBuyoutApplyService; | |
| 12 | 15 | import com.lframework.xingyun.sc.procurement.service.plan.ProcurementPlanService; |
| 13 | 16 | import com.lframework.xingyun.sc.procurement.vo.plan.CreateProcurementPlanVo; |
| 14 | 17 | import com.lframework.xingyun.sc.procurement.vo.plan.QueryProcurementPlanVo; |
| ... | ... | @@ -16,7 +19,10 @@ import com.lframework.xingyun.sc.procurement.vo.plan.UpdateProcurementPlanVo; |
| 16 | 19 | import io.swagger.annotations.Api; |
| 17 | 20 | import io.swagger.annotations.ApiImplicitParam; |
| 18 | 21 | import io.swagger.annotations.ApiOperation; |
| 22 | +import java.util.HashMap; | |
| 19 | 23 | import java.util.List; |
| 24 | +import java.util.Map; | |
| 25 | +import java.util.Set; | |
| 20 | 26 | import java.util.stream.Collectors; |
| 21 | 27 | import javax.validation.Valid; |
| 22 | 28 | import javax.validation.constraints.NotBlank; |
| ... | ... | @@ -38,6 +44,8 @@ public class ProcurementPlanController extends DefaultBaseController { |
| 38 | 44 | |
| 39 | 45 | @Autowired |
| 40 | 46 | private ProcurementPlanService procurementPlanService; |
| 47 | + @Autowired | |
| 48 | + private ProcurementBuyoutApplyService procurementBuyoutApplyService; | |
| 41 | 49 | |
| 42 | 50 | /** |
| 43 | 51 | * 查询列表 |
| ... | ... | @@ -56,6 +64,7 @@ public class ProcurementPlanController extends DefaultBaseController { |
| 56 | 64 | results = datas.stream() |
| 57 | 65 | .map(GetProcurementPlanBo::new) |
| 58 | 66 | .collect(Collectors.toList()); |
| 67 | + fillBuyoutButtons(results, datas); | |
| 59 | 68 | } |
| 60 | 69 | |
| 61 | 70 | return InvokeResultBuilder.success(PageResultUtil.rebuild(pageResult, results)); |
| ... | ... | @@ -72,6 +81,11 @@ public class ProcurementPlanController extends DefaultBaseController { |
| 72 | 81 | @NotBlank(message = "ID不能为空!") String id) { |
| 73 | 82 | |
| 74 | 83 | GetProcurementPlanBo result = procurementPlanService.getDetail(id); |
| 84 | + if (result != null) { | |
| 85 | + ProcurementPlan plan = procurementPlanService.getById(id); | |
| 86 | + fillBuyoutButtons(java.util.Collections.singletonList(result), | |
| 87 | + plan == null ? java.util.Collections.emptyList() : java.util.Collections.singletonList(plan)); | |
| 88 | + } | |
| 75 | 89 | |
| 76 | 90 | return InvokeResultBuilder.success(result); |
| 77 | 91 | } |
| ... | ... | @@ -173,4 +187,35 @@ public class ProcurementPlanController extends DefaultBaseController { |
| 173 | 187 | |
| 174 | 188 | return InvokeResultBuilder.success(); |
| 175 | 189 | } |
| 190 | + | |
| 191 | + /** | |
| 192 | + * 填充采购计划买断操作相关两个按钮字段(生成/废除按钮) | |
| 193 | + */ | |
| 194 | + private void fillBuyoutButtons(List<GetProcurementPlanBo> results, List<ProcurementPlan> datas) { | |
| 195 | + if (CollectionUtil.isEmpty(results)) { | |
| 196 | + return; | |
| 197 | + } | |
| 198 | + Set<String> planIds = datas.stream().map(ProcurementPlan::getId).collect(Collectors.toSet()); | |
| 199 | + Map<String, Long> applyCountMap = new HashMap<>(); | |
| 200 | + if (!CollectionUtil.isEmpty(planIds)) { | |
| 201 | + List<ProcurementBuyoutApply> applies = procurementBuyoutApplyService.list( | |
| 202 | + Wrappers.lambdaQuery(ProcurementBuyoutApply.class) | |
| 203 | + .select(ProcurementBuyoutApply::getProcurementPlanId) | |
| 204 | + .in(ProcurementBuyoutApply::getProcurementPlanId, planIds)); | |
| 205 | + if (!CollectionUtil.isEmpty(applies)) { | |
| 206 | + applyCountMap = applies.stream() | |
| 207 | + .collect(Collectors.groupingBy(ProcurementBuyoutApply::getProcurementPlanId, Collectors.counting())); | |
| 208 | + } | |
| 209 | + } | |
| 210 | + for (int i = 0; i < results.size(); i++) { | |
| 211 | + ProcurementPlan plan = datas.get(i); | |
| 212 | + GetProcurementPlanBo bo = results.get(i); | |
| 213 | + boolean buyoutFlag = Boolean.TRUE.equals(plan.getCommodityBuyout()) | |
| 214 | + || Boolean.TRUE.equals(plan.getQualityBuyout()) | |
| 215 | + || Boolean.TRUE.equals(plan.getQuantityBuyout()); | |
| 216 | + long count = applyCountMap.getOrDefault(plan.getId(), 0L); | |
| 217 | + bo.setShowGenerateBuyoutApply(buyoutFlag && count == 0L); | |
| 218 | + bo.setShowAbolishBuyoutApply(buyoutFlag && count > 0L); | |
| 219 | + } | |
| 220 | + } | |
| 176 | 221 | } | ... | ... |
| ... | ... | @@ -28,8 +28,10 @@ import com.lframework.xingyun.sc.bo.procurement.GetProcurementPlanBo; |
| 28 | 28 | import com.lframework.xingyun.sc.procurement.entity.ProcurementPlan; |
| 29 | 29 | import com.lframework.xingyun.sc.procurement.entity.ProcurementPlanLine; |
| 30 | 30 | import com.lframework.xingyun.sc.procurement.mappers.plan.ProcurementPlanMapper; |
| 31 | +import com.lframework.xingyun.sc.procurement.service.buyout.ProcurementBuyoutApplyService; | |
| 31 | 32 | import com.lframework.xingyun.sc.procurement.service.plan.ProcurementPlanLineService; |
| 32 | 33 | import com.lframework.xingyun.sc.procurement.service.plan.ProcurementPlanService; |
| 34 | +import com.lframework.xingyun.sc.procurement.vo.buyout.CreateProcurementBuyoutApplyVo; | |
| 33 | 35 | import com.lframework.xingyun.sc.procurement.vo.plan.CreateProcurementPlanVo; |
| 34 | 36 | import com.lframework.xingyun.sc.procurement.vo.plan.ProcurementPlanLineVo; |
| 35 | 37 | import com.lframework.xingyun.sc.procurement.vo.plan.ProcurementPlanUpdateLineVo; |
| ... | ... | @@ -67,6 +69,8 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla |
| 67 | 69 | private FlowInstanceWrapperService flowInstanceWrapperService; |
| 68 | 70 | @Resource |
| 69 | 71 | private FlowTaskWrapperService flowTaskWrapperService; |
| 72 | + @Resource | |
| 73 | + private ProcurementBuyoutApplyService procurementBuyoutApplyService; | |
| 70 | 74 | |
| 71 | 75 | @Override |
| 72 | 76 | public PageResult<ProcurementPlan> query(Integer pageIndex, Integer pageSize, |
| ... | ... | @@ -312,7 +316,10 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla |
| 312 | 316 | .set(ProcurementPlan::getWorkshopId, allLines.get(0).getWorkshopId()) |
| 313 | 317 | .eq(ProcurementPlan::getId, id); |
| 314 | 318 | getBaseMapper().update(updateWrapper); |
| 315 | - //todo 生成买断操作申请单 | |
| 319 | + //生成买断操作申请单 | |
| 320 | + CreateProcurementBuyoutApplyVo vo = new CreateProcurementBuyoutApplyVo(); | |
| 321 | + vo.setProcurementPlanId(id); | |
| 322 | + procurementBuyoutApplyService.create(vo); | |
| 316 | 323 | return; |
| 317 | 324 | } |
| 318 | 325 | |
| ... | ... | @@ -351,7 +358,6 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla |
| 351 | 358 | |
| 352 | 359 | // 子计划创建(不重新生成编号,因为使用父code+后缀) |
| 353 | 360 | createSubPlan(subVo); |
| 354 | - //todo 生成买断操作申请单 | |
| 355 | 361 | } |
| 356 | 362 | |
| 357 | 363 | // 4. 冻结主计划(不再变更主计划) |
| ... | ... | @@ -559,6 +565,10 @@ public class ProcurementPlanServiceImpl extends BaseMpServiceImpl<ProcurementPla |
| 559 | 565 | procurementPlanLineService.save(line); |
| 560 | 566 | } |
| 561 | 567 | } |
| 568 | + //生成买断操作申请单 | |
| 569 | + CreateProcurementBuyoutApplyVo buyoutApplyVo = new CreateProcurementBuyoutApplyVo(); | |
| 570 | + buyoutApplyVo.setProcurementPlanId(plan.getId()); | |
| 571 | + procurementBuyoutApplyService.create(buyoutApplyVo); | |
| 562 | 572 | } |
| 563 | 573 | |
| 564 | 574 | /** | ... | ... |