diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordSumVo.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordSumVo.java new file mode 100644 index 000000000..9f05e9ae1 --- /dev/null +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/vo/inventoryrecord/InventoryRecordSumVo.java @@ -0,0 +1,47 @@ +package com.bsd.pjcloud.supermarket.vo.inventoryrecord; + + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "出入库汇总sum") +@Data +public class InventoryRecordSumVo { + + @Schema(description ="id") + private Long erpSpuId; + + + @Schema(description="条码") + private String barcode; + + + @Schema(description="商品名称") + private String productName; + + + /* 规格 + */ + @Schema(description="规格") + private String spec; + + /** + * 单位 + */ + @Schema(description="单位") + private String unit; + + + @Schema(description="入库数量") + private Double inventoryNum; + + @Schema(description="入库金额") + private Double inventoryPrice; + +} diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java index ab0750cb0..50a71e5f3 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java @@ -177,7 +177,8 @@ public class SmErpCgDdController { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.like(StrUtil.isNotBlank(cGPlanLinkQueryDTO.getPlanCode()),SmErpCgPlanEntity::getPlanCode,cGPlanLinkQueryDTO.getPlanCode()); wrapper.eq(Objects.nonNull(cGPlanLinkQueryDTO.getPlanDate()),SmErpCgPlanEntity::getPlanDate,cGPlanLinkQueryDTO.getPlanDate()); - + //只查询未关联的 + wrapper.eq(SmErpCgPlanEntity::getLinkStatus,"0"); //todo 审核成功条件 // wrapper.eq(SmErpCgPlanEntity::getCheckStatus,); return R.ok(smErpCgPlanService.pageCgsqScope(page, wrapper)); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpInventoryRecordsController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpInventoryRecordsController.java index 7cb23af11..52fc10988 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpInventoryRecordsController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpInventoryRecordsController.java @@ -87,40 +87,7 @@ public class SmErpInventoryRecordsController { @GetMapping("/{id}" ) @PreAuthorize("@pms.hasPermission('supermarket_smErpInventoryRecords_view')" ) public R getById(@PathVariable("id" ) Long id) { - SmErpInventoryRecordsEntity smErpInventoryRecordsEntity = smErpInventoryRecordsService.getById(id); - List list =smErpInventoryRecordsItemService.list(new LambdaQueryWrapper() - .eq(SmErpInventoryRecordsItemEntity::getInventoryId, id)); - - //获取采购item下已选择的item的所有包装单位 - List spuIds =list.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toList()); - List unitList = smErpUnitService.list(new LambdaQueryWrapper().in(SmErpUnitEntity::getSpuId, spuIds)); - - -// - InventoryRecordVo bean = BeanUtils.toBean(smErpInventoryRecordsEntity, InventoryRecordVo.class, (source) -> { - List smeErpCgPlanItemVos = BeanUtils.toBean(list, InventoryRecordItemVo.class); - smeErpCgPlanItemVos.stream().forEach(item -> { - List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList()); - -// unitList.stream().forEach(unit -> { -// if(unit.getId().equals(item.getUnitId())){ -// item.setSpec(unit.getSpec()); -// item.setUnit(unit.getUnit()); -// item.setPackageNum(unit.getPackageNum()); -// item.setPurchasePrice(unit.getPurchasePrice()); -// } -// }); - item.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class)); - }); - source.setItems(smeErpCgPlanItemVos); - }); - -// bean.stream().forEach(vo -> { -// List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(vo.getId())).collect(Collectors.toList()); -// vo.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class)); -// }); - - return R.ok(bean); + return R.ok(smErpInventoryRecordsService.getInventoryDetailById(id)); } /** @@ -224,7 +191,7 @@ public class SmErpInventoryRecordsController { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.like(StrUtil.isNotBlank(cgDdLinkQueryDTO.getCode()),SmErpCgDdEntity::getCode,cgDdLinkQueryDTO.getCode()); wrapper.eq(Objects.nonNull(cgDdLinkQueryDTO.getDdDate()),SmErpCgDdEntity::getDdDate,cgDdLinkQueryDTO.getDdDate()); - + wrapper.eq(SmErpCgDdEntity::getLinkStatus,"0"); //todo 审核成功条件 // wrapper.eq(SmErpCgPlanEntity::getCheckStatus,); return R.ok(smErpCgDdService.pageCgddScope(page, wrapper)); @@ -268,7 +235,7 @@ public class SmErpInventoryRecordsController { */ @Operation(summary = "分页获取出入库明细" , description = "出库明细,入库明细" ) @GetMapping("/inventoryDetail" ) - public R getInventoryDetailByInventoryCode(@RequestParam("id")String inventoryCode) { + public R getInventoryDetailByInventoryCode(@RequestParam("inventoryCode")String inventoryCode) { return R.ok(smErpInventoryRecordsService.getInventoryDetailByInventoryCode(inventoryCode)); } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSupplierController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSupplierController.java index 6b3f4b285..e6ddc228d 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSupplierController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSupplierController.java @@ -135,8 +135,8 @@ public class SmErpSupplierController { */ @Operation(summary = "通过id查询" , description = "通过id查询" ) @GetMapping("/selectSimpleAll" ) - public R selectSimpleAll() { - List list = smErpSupplierService.selectSimpleAllScope(); + public R selectSimpleAll(@RequestParam(value = "name",required = false)String name) { + List list = smErpSupplierService.selectSimpleAllScope(name); List bean = BeanUtils.toBean(list, SmErpSupplierSimpleVo.class); return R.ok(bean); } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpInventoryRecordsItemMapper.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpInventoryRecordsItemMapper.java index cf60fb5dd..e7210f517 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpInventoryRecordsItemMapper.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/mapper/SmErpInventoryRecordsItemMapper.java @@ -1,11 +1,24 @@ package com.bsd.pjcloud.supermarket.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.supermarket.dto.inventoryrecords.InventoryDetailQueryDTO; import com.bsd.pjcloud.supermarket.entity.SmErpInventoryRecordsItemEntity; +import com.bsd.pjcloud.supermarket.vo.inventoryrecord.InventoryRecordSumVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface SmErpInventoryRecordsItemMapper extends PjcloudBaseMapper { + /** + * 入库汇总 + * @param page + * @param inventoryDetailQueryDTO + * @param of + * @return + */ + Page selectInventoryTypeSumPageByScope(Page page, @Param("inventoryDetailQueryDTO") InventoryDetailQueryDTO inventoryDetailQueryDTO, DataScope of); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpInventoryRecordsService.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpInventoryRecordsService.java index e1f28b8a7..1ba0168d6 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpInventoryRecordsService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpInventoryRecordsService.java @@ -58,4 +58,12 @@ public interface SmErpInventoryRecordsService extends IService { * 隔离查询 * @return */ - List selectSimpleAllScope(); + List selectSimpleAllScope(String name); /** diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java index 642dbea2a..b99455cfd 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgDdServiceImpl.java @@ -73,7 +73,7 @@ public class SmErpCgDdServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(SmErpCgPlanEntity::getPlanCode, erpCgDDSaveDTO.getCode()); + queryWrapper.eq(SmErpCgPlanEntity::getPlanCode, erpCgDDSaveDTO.getLinkCode()); SmErpCgPlanEntity smErpCgPlanEntity = new SmErpCgPlanEntity(); smErpCgPlanEntity.setLinkStatus("1"); smErpCgPlanMapper.update(smErpCgPlanEntity,queryWrapper); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java index fcf944ed3..9897f2aa5 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.supermarket.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.admin.api.entity.SysUser; @@ -18,10 +19,12 @@ import com.bsd.pjcloud.supermarket.entity.*; import com.bsd.pjcloud.supermarket.mapper.*; import com.bsd.pjcloud.supermarket.service.SmErpInventoryRecordsService; import com.bsd.pjcloud.supermarket.service.SmErpStockService; +import com.bsd.pjcloud.supermarket.vo.cgplan.ErpUnitVo; import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanItemVo; import com.bsd.pjcloud.supermarket.vo.cgplan.SmErpCgPlanVo; import com.bsd.pjcloud.supermarket.vo.inventoryrecord.InventoryRecordItemVo; import com.bsd.pjcloud.supermarket.vo.inventoryrecord.InventoryRecordPageVo; +import com.bsd.pjcloud.supermarket.vo.inventoryrecord.InventoryRecordSumVo; import com.bsd.pjcloud.supermarket.vo.inventoryrecord.InventoryRecordVo; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -76,12 +79,13 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl objectLambdaQueryWrapper = new LambdaQueryWrapper<>(); + objectLambdaQueryWrapper.eq(SmErpInventoryRecordsEntity::getInventoryCode, inventoryCode); + SmErpInventoryRecordsEntity inventoryRecordsEntity = baseMapper.selectOne(objectLambdaQueryWrapper); + Object inventoryDetailById = getInventoryDetailById(inventoryRecordsEntity.getId()); + return inventoryDetailById; } @Override public Object getInventoryTypeSumPage(Page page, InventoryDetailQueryDTO inventoryDetailQueryDTO) { - return null; + + Page pageDate = smErpInventoryRecordsItemMapper.selectInventoryTypeSumPageByScope(page, inventoryDetailQueryDTO, DataScope.of()); + List records = pageDate.getRecords(); + + Set erpSpuIds = records.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toSet()); + + List smErpSpuEntities = smErpSpuMapper.selectByIds(erpSpuIds); + Map spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu)); + + LambdaQueryWrapper smErpUnitEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + smErpUnitEntityLambdaQueryWrapper.in(SmErpUnitEntity::getSpuId, erpSpuIds); + smErpUnitEntityLambdaQueryWrapper.eq(SmErpUnitEntity::getIsBase, true); + List smErpUnitEntities = smErpUnitMapper.selectList(smErpUnitEntityLambdaQueryWrapper); + Map unitMap = smErpUnitEntities.stream().collect(Collectors.toMap(SmErpUnitEntity::getSpuId, unit -> unit)); + + records.stream().forEach(vo -> { + vo.setProductName(spuMap.getOrDefault(vo.getErpSpuId(), new SmErpSpuEntity()).getProductName()); + SmErpUnitEntity orDefault = unitMap.getOrDefault(vo.getErpSpuId(), new SmErpUnitEntity()); + vo.setSpec(orDefault.getSpec()); + vo.setUnit(orDefault.getUnit()); + vo.setBarcode(orDefault.getBarCode()); + }); + return pageDate; + } + + @Override + public Object getInventoryDetailById(Long id) { + SmErpInventoryRecordsEntity smErpInventoryRecordsEntity = this.getById(id); + List list =smErpInventoryRecordsItemMapper.selectList(new LambdaQueryWrapper() + .eq(SmErpInventoryRecordsItemEntity::getInventoryId, id)); + + //获取采购item下已选择的item的所有包装单位 + List spuIds =list.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toList()); + List unitList = smErpUnitMapper.selectList(new LambdaQueryWrapper().in(SmErpUnitEntity::getSpuId, spuIds)); + + +// + InventoryRecordVo bean = BeanUtils.toBean(smErpInventoryRecordsEntity, InventoryRecordVo.class, (source) -> { + List smeErpCgPlanItemVos = BeanUtils.toBean(list, InventoryRecordItemVo.class); + smeErpCgPlanItemVos.stream().forEach(item -> { + List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList()); + +// unitList.stream().forEach(unit -> { +// if(unit.getId().equals(item.getUnitId())){ +// item.setSpec(unit.getSpec()); +// item.setUnit(unit.getUnit()); +// item.setPackageNum(unit.getPackageNum()); +// item.setPurchasePrice(unit.getPurchasePrice()); +// } +// }); + item.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class)); + }); + source.setItems(smeErpCgPlanItemVos); + }); + +// bean.stream().forEach(vo -> { +// List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(vo.getId())).collect(Collectors.toList()); +// vo.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class)); +// }); + return bean; } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSupplierServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSupplierServiceImpl.java index d204933c1..13388e923 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSupplierServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSupplierServiceImpl.java @@ -16,6 +16,7 @@ import com.bsd.pjcloud.supermarket.mapper.SmErpSupplierTypeMapper; import com.bsd.pjcloud.supermarket.service.SmErpSupplierService; import com.bsd.pjcloud.supermarket.validarot.SupplierValidator; import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -37,8 +38,11 @@ public class SmErpSupplierServiceImpl extends ServiceImpl selectSimpleAllScope() { - return baseMapper.selectListByScope(new LambdaQueryWrapper().eq(SmErpSupplierEntity::getStatus, "0"), DataScope.of()); + public List selectSimpleAllScope(String name) { + LambdaQueryWrapper eq = new LambdaQueryWrapper() + .eq(SmErpSupplierEntity::getStatus, "0") + .like(StringUtils.isNotBlank(name),SmErpSupplierEntity::getSupplierName,name); + return baseMapper.selectListByScope(eq, DataScope.of()); } @Override diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsItemMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsItemMapper.xml index 7363fa0ea..0a83377bb 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsItemMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpInventoryRecordsItemMapper.xml @@ -26,4 +26,11 @@ + \ No newline at end of file