采购
This commit is contained in:
1 parent
f21df0dbef
commit
672dc98e68
8 files changed
+79
-45
No files matched your search
-1
@@ -3,7 +3,6 @@ package com.bsd.pjcloud.supermarket.vo.cgdd;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.SmeErpCgPlanItemVo;
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -17,7 +17,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Schema(description = "采购计划-item")
|
@Schema(description = "采购计划-item")
|
||||||
public class SmeErpCgPlanItemVo {
|
public class SmErpCgPlanItemVo {
|
||||||
|
|
||||||
@Schema(description = "id")
|
@Schema(description = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
@@ -43,12 +43,16 @@ public class SmeErpCgPlanItemVo {
|
|||||||
* 进价
|
* 进价
|
||||||
*/
|
*/
|
||||||
@Schema(description="进价")
|
@Schema(description="进价")
|
||||||
|
@JsonSerialize(using = MoneySerializer.class) // 分 -> 元
|
||||||
|
@JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分
|
||||||
private Integer unitPrice;
|
private Integer unitPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 累计总金额
|
* 累计总金额
|
||||||
*/
|
*/
|
||||||
@Schema(description="累计总金额")
|
@Schema(description="累计总金额")
|
||||||
|
@JsonSerialize(using = MoneySerializer.class) // 分 -> 元
|
||||||
|
@JsonDeserialize(using = MoneyDeserializer.class) // 元 -> 分
|
||||||
private Integer totalAmount;
|
private Integer totalAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-30
@@ -28,11 +28,6 @@ public class SmErpCgPlanVo {
|
|||||||
@Schema(description="采购计划单据日期")
|
@Schema(description="采购计划单据日期")
|
||||||
private LocalDate planDate;
|
private LocalDate planDate;
|
||||||
|
|
||||||
/**
|
|
||||||
* 仓库id
|
|
||||||
*/
|
|
||||||
@Schema(description="仓库id")
|
|
||||||
private String warehouseId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 经办人id
|
* 经办人id
|
||||||
@@ -41,36 +36,12 @@ public class SmErpCgPlanVo {
|
|||||||
private Long handlerUserId;
|
private Long handlerUserId;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 累计进货数量
|
|
||||||
*/
|
|
||||||
@Schema(description="累计进货数量")
|
|
||||||
private Integer totalNumber;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 累计总金额
|
|
||||||
*/
|
|
||||||
@Schema(description="累计总金额")
|
|
||||||
private Integer totalAmount;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 货商
|
|
||||||
*/
|
|
||||||
@Schema(description="货商")
|
|
||||||
private Long supplierId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
*/
|
*/
|
||||||
@Schema(description="备注")
|
@Schema(description="备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/**
|
|
||||||
* 订单编号
|
|
||||||
*/
|
|
||||||
@Schema(description="订单编号")
|
|
||||||
private String orderNumber;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建人
|
* 创建人
|
||||||
*/
|
*/
|
||||||
@@ -96,6 +67,6 @@ public class SmErpCgPlanVo {
|
|||||||
* @Link SmErpCgPlanVo
|
* @Link SmErpCgPlanVo
|
||||||
*/
|
*/
|
||||||
@Schema(description="采购计划-item")
|
@Schema(description="采购计划-item")
|
||||||
private List<SmeErpCgPlanItemVo> items;
|
private List<SmErpCgPlanItemVo> items;
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-2
@@ -169,7 +169,7 @@ public class SmErpCgDdController {
|
|||||||
* @param cGPlanLinkQueryDTO 采购计划
|
* @param cGPlanLinkQueryDTO 采购计划
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Operation(summary = "分页查询" , description = "分页查询" )
|
@Operation(summary = "采购申请单分页查询" , description = "关联采购申请" )
|
||||||
@GetMapping("/cgsq/page" )
|
@GetMapping("/cgsq/page" )
|
||||||
@PreAuthorize("@pms.hasPermission('supermarket_smErpCgPlan_view')" )
|
@PreAuthorize("@pms.hasPermission('supermarket_smErpCgPlan_view')" )
|
||||||
public R getSmErpCgPlanPage(@ParameterObject Page page, @ParameterObject CGPlanLinkQueryDTO cGPlanLinkQueryDTO) {
|
public R getSmErpCgPlanPage(@ParameterObject Page page, @ParameterObject CGPlanLinkQueryDTO cGPlanLinkQueryDTO) {
|
||||||
@@ -180,7 +180,7 @@ public class SmErpCgDdController {
|
|||||||
|
|
||||||
//todo 审核成功条件
|
//todo 审核成功条件
|
||||||
// wrapper.eq(SmErpCgPlanEntity::getCheckStatus,);
|
// wrapper.eq(SmErpCgPlanEntity::getCheckStatus,);
|
||||||
return R.ok(smErpCgPlanService.page(page, wrapper));
|
return R.ok(smErpCgPlanService.pageScope(page, wrapper));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+4
-4
@@ -21,7 +21,7 @@ import com.bsd.pjcloud.supermarket.service.SmErpSpuService;
|
|||||||
import com.bsd.pjcloud.supermarket.service.SmErpUnitService;
|
import com.bsd.pjcloud.supermarket.service.SmErpUnitService;
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo;
|
import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo;
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo;
|
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo;
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.SmeErpCgPlanItemVo;
|
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanItemVo;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
||||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
@@ -123,8 +123,8 @@ public class SmErpCgPlanController {
|
|||||||
|
|
||||||
|
|
||||||
SmErpCgPlanVo bean = BeanUtils.toBean(smErpCgPlanEntity, SmErpCgPlanVo.class, (source) -> {
|
SmErpCgPlanVo bean = BeanUtils.toBean(smErpCgPlanEntity, SmErpCgPlanVo.class, (source) -> {
|
||||||
List<SmeErpCgPlanItemVo> smeErpCgPlanItemVos = BeanUtils.toBean(list, SmeErpCgPlanItemVo.class);
|
List<SmErpCgPlanItemVo> smErpCgPlanItemVos = BeanUtils.toBean(list, SmErpCgPlanItemVo.class);
|
||||||
smeErpCgPlanItemVos.stream().forEach(item -> {
|
smErpCgPlanItemVos.stream().forEach(item -> {
|
||||||
List<SmErpUnitEntity> unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList());
|
List<SmErpUnitEntity> unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList());
|
||||||
|
|
||||||
// unitList.stream().forEach(unit -> {
|
// unitList.stream().forEach(unit -> {
|
||||||
@@ -137,7 +137,7 @@ public class SmErpCgPlanController {
|
|||||||
// });
|
// });
|
||||||
item.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class));
|
item.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class));
|
||||||
});
|
});
|
||||||
source.setItems(smeErpCgPlanItemVos);
|
source.setItems(smErpCgPlanItemVos);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
-4
@@ -6,15 +6,11 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
|
||||||
import com.bsd.pjcloud.common.core.util.R;
|
import com.bsd.pjcloud.common.core.util.R;
|
||||||
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
import com.bsd.pjcloud.common.log.annotation.SysLog;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanDTO;
|
||||||
import com.bsd.pjcloud.supermarket.entity.*;
|
import com.bsd.pjcloud.supermarket.entity.*;
|
||||||
import com.bsd.pjcloud.supermarket.service.*;
|
import com.bsd.pjcloud.supermarket.service.*;
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo;
|
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo;
|
|
||||||
import com.bsd.pjcloud.supermarket.vo.cgplan.SmeErpCgPlanItemVo;
|
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
||||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||||
|
|||||||
+15
@@ -1,10 +1,16 @@
|
|||||||
package com.bsd.pjcloud.supermarket.service;
|
package com.bsd.pjcloud.supermarket.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.bsd.pjcloud.common.core.util.R;
|
import com.bsd.pjcloud.common.core.util.R;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanEditDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanEditDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO;
|
||||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
|
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
|
||||||
|
import com.bsd.pjcloud.supermarket.vo.cgdd.SmErpCgDdVo;
|
||||||
|
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public interface SmErpCgPlanService extends IService<SmErpCgPlanEntity> {
|
public interface SmErpCgPlanService extends IService<SmErpCgPlanEntity> {
|
||||||
|
|
||||||
@@ -22,4 +28,13 @@ public interface SmErpCgPlanService extends IService<SmErpCgPlanEntity> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
R updateByErpCgPlanEditDTO(ErpCgPlanEditDTO erpCgPlanEditDTO);
|
R updateByErpCgPlanEditDTO(ErpCgPlanEditDTO erpCgPlanEditDTO);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页获取采购申请单的详细信息,采购申请单关联采购计划
|
||||||
|
* @param page
|
||||||
|
* @param wrapper
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Page<SmErpCgPlanVo> pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper);
|
||||||
}
|
}
|
||||||
+52
-3
@@ -1,26 +1,33 @@
|
|||||||
package com.bsd.pjcloud.supermarket.service.impl;
|
package com.bsd.pjcloud.supermarket.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||||
import com.bsd.pjcloud.common.core.util.R;
|
import com.bsd.pjcloud.common.core.util.R;
|
||||||
|
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||||
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||||
import com.bsd.pjcloud.common.sequence.sequence.Sequence;
|
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanEditDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanEditDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.ErpCgPlanSaveDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanEditItemDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanEditItemDTO;
|
||||||
import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanSaveItemDTO;
|
import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanSaveItemDTO;
|
||||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
|
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity;
|
||||||
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity;
|
import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity;
|
||||||
import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity;
|
|
||||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanItemMapper;
|
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanItemMapper;
|
||||||
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper;
|
import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper;
|
||||||
import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService;
|
import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService;
|
||||||
|
import com.bsd.pjcloud.supermarket.vo.cgdd.SmErpCgDdVo;
|
||||||
|
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo;
|
||||||
|
import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanItemVo;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -80,4 +87,46 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
|||||||
|
|
||||||
return R.ok(i);
|
return R.ok(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<SmErpCgPlanVo> pageScope(Page page, LambdaQueryWrapper<SmErpCgPlanEntity> wrapper) {
|
||||||
|
// 1. 查询主表分页数据
|
||||||
|
Page<SmErpCgPlanEntity> pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
|
||||||
|
List<SmErpCgPlanEntity> records = pageData.getRecords();
|
||||||
|
|
||||||
|
// 2. 提前收集所有主表ID(去重处理)
|
||||||
|
Set<Long> planIds = records.stream()
|
||||||
|
.map(SmErpCgPlanEntity::getId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 3. 批量查询所有子表数据(仅1次数据库查询)
|
||||||
|
Map<Long, List<SmErpCgPlanItemEntity>> itemMap;
|
||||||
|
if (!planIds.isEmpty()) {
|
||||||
|
LambdaQueryWrapper<SmErpCgPlanItemEntity> itemWrapper = new LambdaQueryWrapper<>();
|
||||||
|
itemWrapper.in(SmErpCgPlanItemEntity::getPlanId, planIds);
|
||||||
|
List<SmErpCgPlanItemEntity> items = smErpCgPlanItemMapper.selectList(itemWrapper);
|
||||||
|
|
||||||
|
// 按planId分组建立映射关系
|
||||||
|
itemMap = items.stream()
|
||||||
|
.collect(Collectors.groupingBy(SmErpCgPlanItemEntity::getPlanId));
|
||||||
|
} else {
|
||||||
|
itemMap = Collections.emptyMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. 转换主表VO并关联子表数据
|
||||||
|
List<SmErpCgPlanVo> voList = BeanUtils.toBean(records, SmErpCgPlanVo.class);
|
||||||
|
voList.forEach(vo -> {
|
||||||
|
List<SmErpCgPlanItemVo> itemVos = BeanUtils.toBean(
|
||||||
|
itemMap.getOrDefault(vo.getId(), Collections.emptyList()),
|
||||||
|
SmErpCgPlanItemVo.class
|
||||||
|
);
|
||||||
|
vo.setItems(itemVos);
|
||||||
|
});
|
||||||
|
Page<SmErpCgPlanVo> resultPage = new Page<>();
|
||||||
|
org.springframework.beans.BeanUtils.copyProperties(pageData, resultPage, "records"); // 复制分页参数
|
||||||
|
|
||||||
|
resultPage.setRecords(voList);
|
||||||
|
return resultPage;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user