This commit is contained in:
dzc committed 2025-03-06 16:46:18 +08:00
commit aaf97a9b3d
11 files changed
+162 -48

No files matched your search

@@ -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;
}
@@ -177,7 +177,8 @@ public class SmErpCgDdController {
LambdaQueryWrapper<SmErpCgPlanEntity> 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));
@@ -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<SmErpInventoryRecordsItemEntity> list =smErpInventoryRecordsItemService.list(new LambdaQueryWrapper<SmErpInventoryRecordsItemEntity>()
.eq(SmErpInventoryRecordsItemEntity::getInventoryId, id));
//获取采购item下已选择的item的所有包装单位
List<Long> spuIds =list.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toList());
List<SmErpUnitEntity> unitList = smErpUnitService.list(new LambdaQueryWrapper<SmErpUnitEntity>().in(SmErpUnitEntity::getSpuId, spuIds));
//
InventoryRecordVo bean = BeanUtils.toBean(smErpInventoryRecordsEntity, InventoryRecordVo.class, (source) -> {
List<InventoryRecordItemVo> smeErpCgPlanItemVos = BeanUtils.toBean(list, InventoryRecordItemVo.class);
smeErpCgPlanItemVos.stream().forEach(item -> {
List<SmErpUnitEntity> 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<SmErpUnitEntity> 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<SmErpCgDdEntity> 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));
}
@@ -135,8 +135,8 @@ public class SmErpSupplierController {
*/
@Operation(summary = "通过id查询" , description = "通过id查询" )
@GetMapping("/selectSimpleAll" )
public R selectSimpleAll() {
List<SmErpSupplierEntity> list = smErpSupplierService.selectSimpleAllScope();
public R selectSimpleAll(@RequestParam(value = "name",required = false)String name) {
List<SmErpSupplierEntity> list = smErpSupplierService.selectSimpleAllScope(name);
List<SmErpSupplierSimpleVo> bean = BeanUtils.toBean(list, SmErpSupplierSimpleVo.class);
return R.ok(bean);
}
@@ -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<SmErpInventoryRecordsItemEntity> {
/**
* 入库汇总
* @param page
* @param inventoryDetailQueryDTO
* @param of
* @return
*/
Page<InventoryRecordSumVo> selectInventoryTypeSumPageByScope(Page page, @Param("inventoryDetailQueryDTO") InventoryDetailQueryDTO inventoryDetailQueryDTO, DataScope of);
}
@@ -58,4 +58,12 @@ public interface SmErpInventoryRecordsService extends IService<SmErpInventoryRec
* @return
*/
Object getInventoryTypeSumPage(Page page, InventoryDetailQueryDTO inventoryDetailQueryDTO);
/**
* 获取详情
* @param id
* @return
*/
Object getInventoryDetailById(Long id);
}
@@ -17,7 +17,7 @@ public interface SmErpSupplierService extends IService<SmErpSupplierEntity> {
* 隔离查询
* @return
*/
List<SmErpSupplierEntity> selectSimpleAllScope();
List<SmErpSupplierEntity> selectSimpleAllScope(String name);
/**
@@ -73,7 +73,7 @@ public class SmErpCgDdServiceImpl extends ServiceImpl<SmErpCgDdMapper, SmErpCgDd
smErpCgDDItemMapper.insert(cgPlanItemEntities);
//更新已关联的采购计划,标记为已使用
LambdaQueryWrapper<SmErpCgPlanEntity> 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);
@@ -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<SmErpInventory
for (SmErpInventoryRecordsItemEntity cgPlanItemEntity : cgPlanItemEntities) {
cgPlanItemEntity.setInventoryId(smErpCgDdEntity.getId());
cgPlanItemEntity.setDeptId(deptId);
String orderType = smErpCgDdEntity.getOrderType();
cgPlanItemEntity.setOrderType(orderType);
UpdateStockDTO updateStockDTO = new UpdateStockDTO();
updateStockDTO.setId(cgPlanItemEntity.getErpSpuId());
if (smErpCgDdEntity.getOrderType().equals(OrderTypeEnum.RK.getType())){
if (orderType.equals(OrderTypeEnum.RK.getType())){
updateStockDTO.setIncrCount(cgPlanItemEntity.getQuantity());
}else if (smErpCgDdEntity.getOrderType().equals(OrderTypeEnum.CK.getType())){
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
updateStockDTO.setIncrCount(-cgPlanItemEntity.getQuantity());
}else {
throw new RuntimeException("订单类型错误");
@@ -247,12 +251,75 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
@Override
public Object getInventoryDetailByInventoryCode(String inventoryCode) {
return null;
LambdaQueryWrapper<SmErpInventoryRecordsEntity> 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<InventoryRecordSumVo> pageDate = smErpInventoryRecordsItemMapper.selectInventoryTypeSumPageByScope(page, inventoryDetailQueryDTO, DataScope.of());
List<InventoryRecordSumVo> records = pageDate.getRecords();
Set<Long> erpSpuIds = records.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toSet());
List<SmErpSpuEntity> smErpSpuEntities = smErpSpuMapper.selectByIds(erpSpuIds);
Map<Long, SmErpSpuEntity> spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu));
LambdaQueryWrapper<SmErpUnitEntity> smErpUnitEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
smErpUnitEntityLambdaQueryWrapper.in(SmErpUnitEntity::getSpuId, erpSpuIds);
smErpUnitEntityLambdaQueryWrapper.eq(SmErpUnitEntity::getIsBase, true);
List<SmErpUnitEntity> smErpUnitEntities = smErpUnitMapper.selectList(smErpUnitEntityLambdaQueryWrapper);
Map<Long, SmErpUnitEntity> 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<SmErpInventoryRecordsItemEntity> list =smErpInventoryRecordsItemMapper.selectList(new LambdaQueryWrapper<SmErpInventoryRecordsItemEntity>()
.eq(SmErpInventoryRecordsItemEntity::getInventoryId, id));
//获取采购item下已选择的item的所有包装单位
List<Long> spuIds =list.stream().map(vo -> vo.getErpSpuId()).collect(Collectors.toList());
List<SmErpUnitEntity> unitList = smErpUnitMapper.selectList(new LambdaQueryWrapper<SmErpUnitEntity>().in(SmErpUnitEntity::getSpuId, spuIds));
//
InventoryRecordVo bean = BeanUtils.toBean(smErpInventoryRecordsEntity, InventoryRecordVo.class, (source) -> {
List<InventoryRecordItemVo> smeErpCgPlanItemVos = BeanUtils.toBean(list, InventoryRecordItemVo.class);
smeErpCgPlanItemVos.stream().forEach(item -> {
List<SmErpUnitEntity> 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<SmErpUnitEntity> unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(vo.getId())).collect(Collectors.toList());
// vo.setErpUnitVos(BeanUtils.toBean(unitEntities, ErpUnitVo.class));
// });
return bean;
}
@@ -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<SmErpSupplierMapper, S
private final SmErpSupplierTypeMapper supplierTypeMapper;
@Override
public List<SmErpSupplierEntity> selectSimpleAllScope() {
return baseMapper.selectListByScope(new LambdaQueryWrapper<SmErpSupplierEntity>().eq(SmErpSupplierEntity::getStatus, "0"), DataScope.of());
public List<SmErpSupplierEntity> selectSimpleAllScope(String name) {
LambdaQueryWrapper<SmErpSupplierEntity> eq = new LambdaQueryWrapper<SmErpSupplierEntity>()
.eq(SmErpSupplierEntity::getStatus, "0")
.like(StringUtils.isNotBlank(name),SmErpSupplierEntity::getSupplierName,name);
return baseMapper.selectListByScope(eq, DataScope.of());
}
@Override
@@ -26,4 +26,11 @@
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
</resultMap>
<select id="selectInventoryTypeSumPageByScope"
resultType="com.bsd.pjcloud.supermarket.vo.inventoryrecord.InventoryRecordSumVo">
SELECT erp_spu_id ,sum(total_amount) as inventoryPrice,sum(quantity) as inventoryNum FROM sm_erp_inventory_records_item
where order_type = #{inventoryDetailQueryDTO.orderType}
GROUP BY erp_spu_id
</select>
</mapper>