diff --git a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFreightEntity.java b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFreightEntity.java index 44fe9fed3..769c3d19b 100644 --- a/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFreightEntity.java +++ b/blade-service-api/logpm-basicdata-api/src/main/java/com/logpm/basicdata/entity/BasicdataFreightEntity.java @@ -23,6 +23,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; +import javax.validation.constraints.NotBlank; import java.math.BigDecimal; import java.util.Date; @@ -67,6 +68,7 @@ public class BasicdataFreightEntity extends TenantEntity { /** * 物品名称 */ + @NotBlank(message = "用户名称必填") @ApiModelProperty(value = "物品名称") private String itemName; /** @@ -92,6 +94,7 @@ public class BasicdataFreightEntity extends TenantEntity { /** * 品类 */ + @NotBlank(message = "品类必填") @ApiModelProperty(value = "品类") private Long category; /** diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataFreightController.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataFreightController.java index f39f4d434..2cf4db88d 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataFreightController.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/controller/BasicdataFreightController.java @@ -20,8 +20,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.basicdata.dto.BasicdataFreightDTO; +import com.logpm.basicdata.entity.BasicdataFreightDetailEntity; import com.logpm.basicdata.entity.BasicdataFreightEntity; import com.logpm.basicdata.excel.BasicdataFreightExcel; +import com.logpm.basicdata.service.IBasicdataFreightDetailService; import com.logpm.basicdata.service.IBasicdataFreightService; import com.logpm.basicdata.vo.BasicdataFreightVO; import io.swagger.annotations.Api; @@ -37,7 +39,13 @@ import org.springblade.core.tool.api.R; import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; -import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import javax.servlet.http.HttpServletResponse; @@ -59,16 +67,18 @@ public class BasicdataFreightController extends BladeController { private final IBasicdataFreightService basicdataFreightService; + private final IBasicdataFreightDetailService basicdataFreightDetailService; + /** * 基础客户品牌类型表 详情 */ @GetMapping("/detail") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入basicdataFreight") - public R detail(BasicdataFreightEntity basicdataFreight) { - BasicdataFreightEntity detail = basicdataFreightService.getOne(Condition.getQueryWrapper(basicdataFreight)); - return R.data(detail); + public R detail(@Validated BasicdataFreightEntity basicdataFreight) { + return R.data(basicdataFreightService.getDetail(basicdataFreight)); } + /** * 基础客户品牌类型表 分页 */ @@ -129,7 +139,12 @@ public class BasicdataFreightController extends BladeController { @ApiOperationSupport(order = 7) @ApiOperation(value = "逻辑删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { - return R.status(basicdataFreightService.deleteLogic(Func.toLongList(ids))); + List longs = Func.toLongList(ids); + boolean b = basicdataFreightService.deleteLogic(longs); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.in("freight_id", longs); + basicdataFreightDetailService.remove(queryWrapper); + return R.status(b); } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDTO.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDTO.java index f76e19ca6..a33e35d6e 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDTO.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDTO.java @@ -17,9 +17,12 @@ package com.logpm.basicdata.dto; import com.logpm.basicdata.entity.BasicdataFreightEntity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * 基础客户品牌类型表 数据传输对象实体类 * @@ -35,6 +38,10 @@ public class BasicdataFreightDTO extends BasicdataFreightEntity { */ private String clientIds; - + /** + * 干仓配明细 + */ + @ApiModelProperty(value = "干仓配明细") + private List details; } diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDetailDTO.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDetailDTO.java new file mode 100644 index 000000000..33f5965b9 --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/dto/BasicdataFreightDetailDTO.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.basicdata.dto; + +import com.logpm.basicdata.entity.BasicdataFreightDetailEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 基础客户品牌类型表 数据传输对象实体类 + * + * @author cyz + * @since 2023-06-08 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class BasicdataFreightDetailDTO extends BasicdataFreightDetailEntity { + private static final long serialVersionUID = 1L; +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFreightDetailMapper.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFreightDetailMapper.java new file mode 100644 index 000000000..7ca3a1991 --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/mapper/BasicdataFreightDetailMapper.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.basicdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.logpm.basicdata.entity.BasicdataFreightDetailEntity; + +/** + * 基础客户品牌类型表 Mapper 接口 + * + * @author cyz + * @since 2023-06-08 + */ +public interface BasicdataFreightDetailMapper extends BaseMapper { + + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightDetailService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightDetailService.java new file mode 100644 index 000000000..87caa9db7 --- /dev/null +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightDetailService.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 庄骞 (smallchill@163.com) + */ +package com.logpm.basicdata.service; + +import com.logpm.basicdata.entity.BasicdataFreightDetailEntity; +import org.springblade.core.mp.base.BaseService; + +/** + * 基础客户品牌类型表 服务类 + * + * @author cyz + * @since 2023-06-08 + */ +public interface IBasicdataFreightDetailService extends BaseService { + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightService.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightService.java index 052b14074..6a40970d7 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightService.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/IBasicdataFreightService.java @@ -58,4 +58,5 @@ public interface IBasicdataFreightService extends BaseService implements IBasicdataFreightDetailService { + +} diff --git a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java index dfdff7880..eb96081f9 100644 --- a/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java +++ b/blade-service/logpm-basicdata/src/main/java/com/logpm/basicdata/service/impl/BasicdataFreightServiceImpl.java @@ -16,20 +16,29 @@ */ package com.logpm.basicdata.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.logpm.basicdata.dto.BasicdataFreightDTO; +import com.logpm.basicdata.dto.BasicdataFreightDetailDTO; +import com.logpm.basicdata.entity.BasicdataFreightDetailEntity; import com.logpm.basicdata.entity.BasicdataFreightEntity; import com.logpm.basicdata.excel.BasicdataFreightExcel; import com.logpm.basicdata.mapper.BasicdataFreightMapper; +import com.logpm.basicdata.service.IBasicdataFreightDetailService; import com.logpm.basicdata.service.IBasicdataFreightService; import com.logpm.basicdata.vo.BasicdataFreightVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; /** @@ -43,6 +52,9 @@ import java.util.List; @Slf4j public class BasicdataFreightServiceImpl extends BaseServiceImpl implements IBasicdataFreightService { + @Autowired + private IBasicdataFreightDetailService detailService; + @Override public IPage selectBasicdataFreightPage(IPage page, BasicdataFreightVO basicdataFreight) { return page.setRecords(baseMapper.selectBasicdataFreightPage(page, basicdataFreight)); @@ -60,27 +72,66 @@ public class BasicdataFreightServiceImpl extends BaseServiceImpl objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("freight_id", basicdataFreightEntity.getId()); + detailService.remove(objectQueryWrapper); + } else { + this.save(basicdataFreightEntity); + } + List details = basicdataFreight.getDetails(); + if (CollectionUtil.isNotEmpty(details)) { + List detailEntities = new ArrayList<>(); + for (BasicdataFreightDetailDTO detail : details) { + BasicdataFreightDetailEntity detailEntity = new BasicdataFreightDetailEntity(); + BeanUtil.copyProperties(detail, detailEntity); + detailEntity.setFreightId(basicdataFreightEntity.getId()); + detailEntities.add(detailEntity); } + detailService.saveBatch(detailEntities); + } + return Boolean.TRUE; + } - + @Override + public BasicdataFreightDTO getDetail(BasicdataFreightEntity basicdataFreight) { + BasicdataFreightDTO basicdataFreightDTO = new BasicdataFreightDTO(); + BasicdataFreightEntity detail = this.getOne(Condition.getQueryWrapper(basicdataFreight)); + if (null != detail) { + BeanUtil.copyProperties(detail, basicdataFreightDTO); + QueryWrapper objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("freight_id", detail.getId()).ne("is_deleted", 1); + List list = detailService.list(objectQueryWrapper); + if (CollectionUtil.isNotEmpty(list)) { + List detailDTOS = new ArrayList<>(); + for (BasicdataFreightDetailEntity detailEntity : list) { + BasicdataFreightDetailDTO detailDTO = new BasicdataFreightDetailDTO(); + BeanUtil.copyProperties(detailEntity, detailDTO); + detailDTOS.add(detailDTO); + } + basicdataFreightDTO.setDetails(detailDTOS); + } } - return null; + return basicdataFreightDTO; } }