| | |
| | | |
| | | import cn.hutool.core.util.ArrayUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.by4cloud.platformx.business.entity.ContractSubjectMatter; |
| | | import com.by4cloud.platformx.business.entity.PlanSubjectMatter; |
| | | import com.by4cloud.platformx.business.service.ContractSubjectMatterService; |
| | | import com.by4cloud.platformx.business.service.PlanSubjectMatterService; |
| | | import com.by4cloud.platformx.business.utils.ContractNumberGenerator; |
| | | import com.by4cloud.platformx.common.core.util.R; |
| | | import com.by4cloud.platformx.common.data.mybatis.BaseModel; |
| | | import com.by4cloud.platformx.common.log.annotation.SysLog; |
| | | import com.by4cloud.platformx.business.entity.ProductionPlan; |
| | | import com.by4cloud.platformx.business.service.ProductionPlanService; |
| | | import com.by4cloud.platformx.common.security.util.SecurityUtils; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; |
| | | import io.swagger.v3.oas.annotations.security.SecurityRequirement; |
| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 排产计划 |
| | |
| | | public class ProductionPlanController { |
| | | |
| | | private final ProductionPlanService productionPlanService; |
| | | //private final ContractSubjectMatterService contractSubjectMatterService; |
| | | private final PlanSubjectMatterService planSubjectMatterService; |
| | | |
| | | /** |
| | | * 分页查询 |
| | |
| | | @PreAuthorize("@pms.hasPermission('business_productionPlan_view')" ) |
| | | public R getProductionPlanPage(@ParameterObject Page page, @ParameterObject ProductionPlan productionPlan) { |
| | | LambdaQueryWrapper<ProductionPlan> wrapper = Wrappers.lambdaQuery(); |
| | | return R.ok(productionPlanService.page(page, wrapper)); |
| | | wrapper.like(StrUtil.isNotEmpty(productionPlan.getProductionPlanName()),ProductionPlan::getProductionPlanName,productionPlan.getProductionPlanName()); |
| | | wrapper.eq(productionPlan.getPartyaid()!=null,ProductionPlan::getPartyaid,productionPlan.getPartyaid()); |
| | | wrapper.eq(productionPlan.getPartybid()!=null,ProductionPlan::getPartybid,productionPlan.getPartybid()); |
| | | wrapper.eq(productionPlan.getStatus()!=null,ProductionPlan::getStatus,productionPlan.getStatus()); |
| | | Page<ProductionPlan> page1 = productionPlanService.page(page, wrapper); |
| | | List<ProductionPlan> list = page1.getRecords(); |
| | | for(ProductionPlan plan : list){ |
| | | List<PlanSubjectMatter> metterList = planSubjectMatterService.list(new LambdaQueryWrapper<PlanSubjectMatter>() |
| | | .eq(PlanSubjectMatter::getPlanId,plan.getId()) |
| | | ); |
| | | plan.setPlanSubjectMatterList(metterList); |
| | | } |
| | | page1.setRecords(list); |
| | | return R.ok(page1); |
| | | } |
| | | |
| | | /** |
| | | * 分页查询 |
| | | * @param productionPlan 排产计划 |
| | | * @return |
| | | */ |
| | | @Operation(summary = "分页查询" , description = "分页查询" ) |
| | | @GetMapping("/list" ) |
| | | @PreAuthorize("@pms.hasPermission('business_productionPlan_view')" ) |
| | | public R getProductionPlanList(@ParameterObject ProductionPlan productionPlan) { |
| | | LambdaQueryWrapper<ProductionPlan> wrapper = Wrappers.lambdaQuery(); |
| | | return R.ok(productionPlanService.list(wrapper)); |
| | | } |
| | | |
| | | /** |
| | | * 通过id查询排产计划 |
| | |
| | | @GetMapping("/{id}" ) |
| | | @PreAuthorize("@pms.hasPermission('business_productionPlan_view')" ) |
| | | public R getById(@PathVariable("id" ) Long id) { |
| | | return R.ok(productionPlanService.getById(id)); |
| | | ProductionPlan productionPlan = productionPlanService.getById(id); |
| | | if(productionPlan==null){ |
| | | return R.failed("id错误!"); |
| | | } |
| | | List<PlanSubjectMatter> list = planSubjectMatterService.list(new LambdaQueryWrapper<PlanSubjectMatter>() |
| | | .eq(PlanSubjectMatter::getPlanId,productionPlan.getId()) |
| | | ); |
| | | productionPlan.setPlanSubjectMatterList(list); |
| | | return R.ok(productionPlan); |
| | | } |
| | | |
| | | /** |
| | |
| | | @PostMapping |
| | | @PreAuthorize("@pms.hasPermission('business_productionPlan_add')" ) |
| | | public R save(@RequestBody ProductionPlan productionPlan) { |
| | | return R.ok(productionPlanService.save(productionPlan)); |
| | | if(StrUtil.isEmpty(productionPlan.getProductionPlanName())){ |
| | | return R.failed("排产计划名称不能为空!"); |
| | | } |
| | | productionPlan.setPartybid(SecurityUtils.getUser().getCompId()); |
| | | productionPlan.setPartyb(SecurityUtils.getUser().getCompName()); |
| | | productionPlan.setProductionPlanNo("p-"+ContractNumberGenerator.generateContractNumber()); |
| | | productionPlanService.save(productionPlan); |
| | | |
| | | if(productionPlan.getPlanSubjectMatterList()!=null){ |
| | | for(PlanSubjectMatter matter1 : productionPlan.getPlanSubjectMatterList()){ |
| | | matter1.setPlanId(productionPlan.getId()); |
| | | } |
| | | planSubjectMatterService.saveBatch(productionPlan.getPlanSubjectMatterList()); |
| | | } |
| | | |
| | | return R.ok(true); |
| | | } |
| | | |
| | | /** |
| | |
| | | @PutMapping |
| | | @PreAuthorize("@pms.hasPermission('business_productionPlan_edit')" ) |
| | | public R updateById(@RequestBody ProductionPlan productionPlan) { |
| | | |
| | | List<PlanSubjectMatter> list = planSubjectMatterService.list(new LambdaQueryWrapper<PlanSubjectMatter>() |
| | | .eq(PlanSubjectMatter::getPlanId,productionPlan.getId()) |
| | | ); |
| | | List<Long> idsO = new ArrayList<>(); |
| | | if(list!=null){ |
| | | if(!list.isEmpty()){ |
| | | idsO = list.stream().map(BaseModel::getId).collect(Collectors.toList()); |
| | | } |
| | | } |
| | | |
| | | if(productionPlan.getPlanSubjectMatterList()!=null){ |
| | | List<Long> idsN = new ArrayList<>(); |
| | | for(PlanSubjectMatter matter : productionPlan.getPlanSubjectMatterList()){ |
| | | if(matter.getId()==null){ |
| | | matter.setPlanId(productionPlan.getId()); |
| | | }else{ |
| | | idsN.add(matter.getId()); |
| | | } |
| | | } |
| | | planSubjectMatterService.saveOrUpdateBatch(productionPlan.getPlanSubjectMatterList()); |
| | | if(!idsO.isEmpty()) { |
| | | for (Long id : idsO) { |
| | | if (!idsN.contains(id)) { |
| | | planSubjectMatterService.removeById(id); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return R.ok(productionPlanService.updateById(productionPlan)); |
| | | } |
| | | |