Merge remote-tracking branch 'origin/dev' into test

This commit is contained in:
qianshijiang
2026-01-08 16:33:51 +08:00
22 changed files with 695 additions and 42 deletions

View File

@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Schema(description = "管理后台 - 收发货规则 Response VO") @Schema(description = "管理后台 - 收发货规则 Response VO")
@@ -47,11 +48,11 @@ public class ContractReceiveSendRespDTO {
@Schema(description = "区间下限") @Schema(description = "区间下限")
@ExcelProperty("区间下限") @ExcelProperty("区间下限")
private String gradeDown; private BigDecimal gradeDown;
@Schema(description = "区间上限") @Schema(description = "区间上限")
@ExcelProperty("区间上限") @ExcelProperty("区间上限")
private String gradeUp; private BigDecimal gradeUp;
@Schema(description = "合同id", example = "22162") @Schema(description = "合同id", example = "22162")
@ExcelProperty("合同id") @ExcelProperty("合同id")

View File

@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@@ -38,10 +39,10 @@ public class ContractReceiveSendPageReqVO extends PageParam {
private String rangeWay; private String rangeWay;
@Schema(description = "区间下限") @Schema(description = "区间下限")
private String gradeDown; private BigDecimal gradeDown;
@Schema(description = "区间上限") @Schema(description = "区间上限")
private String gradeUp; private BigDecimal gradeUp;
@Schema(description = "合同id", example = "22162") @Schema(description = "合同id", example = "22162")
private Long contractId; private Long contractId;

View File

@@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@Schema(description = "管理后台 - 收发货规则 Response VO") @Schema(description = "管理后台 - 收发货规则 Response VO")
@@ -50,11 +51,11 @@ public class ContractReceiveSendRespVO {
@Schema(description = "区间下限") @Schema(description = "区间下限")
@ExcelProperty("区间下限") @ExcelProperty("区间下限")
private String gradeDown; private BigDecimal gradeDown;
@Schema(description = "区间上限") @Schema(description = "区间上限")
@ExcelProperty("区间上限") @ExcelProperty("区间上限")
private String gradeUp; private BigDecimal gradeUp;
@Schema(description = "合同id", example = "22162") @Schema(description = "合同id", example = "22162")
@ExcelProperty("合同id") @ExcelProperty("合同id")

View File

@@ -3,6 +3,8 @@ package com.zt.plat.module.contractorder.api.vo.contract;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 收发货规则新增/修改 Request VO") @Schema(description = "管理后台 - 收发货规则新增/修改 Request VO")
@Data @Data
public class ContractReceiveSendSaveReqVO { public class ContractReceiveSendSaveReqVO {
@@ -35,10 +37,10 @@ public class ContractReceiveSendSaveReqVO {
private String rangeWay; private String rangeWay;
@Schema(description = "区间下限") @Schema(description = "区间下限")
private String gradeDown; private BigDecimal gradeDown;
@Schema(description = "区间上限") @Schema(description = "区间上限")
private String gradeUp; private BigDecimal gradeUp;
@Schema(description = "合同id", example = "22162") @Schema(description = "合同id", example = "22162")
private Long contractId; private Long contractId;

View File

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
import lombok.*; import lombok.*;
import java.math.BigDecimal;
/** /**
* 收发货规则 DO * 收发货规则 DO
* *
@@ -73,12 +75,12 @@ public class ContractReceiveSendDO extends BusinessBaseDO {
* 区间下限 * 区间下限
*/ */
@TableField("GRD_DOWN") @TableField("GRD_DOWN")
private String gradeDown; private BigDecimal gradeDown;
/** /**
* 区间上限 * 区间上限
*/ */
@TableField("GRD_UP") @TableField("GRD_UP")
private String gradeUp; private BigDecimal gradeUp;
/** /**
* 合同id * 合同id
*/ */

View File

@@ -58,5 +58,7 @@ public interface ErrorCodeConstants {
ErrorCode MATERIAL_ERROR = new ErrorCode( 1_017_000_009, "主物料信息错误"); ErrorCode MATERIAL_ERROR = new ErrorCode( 1_017_000_009, "主物料信息错误");
ErrorCode INTERNAL_WAREHOUSE_NOT_EXISTS= new ErrorCode(1_017_000_011,"内部仓库不存在");
ErrorCode WAREHOUSE_FACTORY_NOT_EXISTS=new ErrorCode(1_017_000_010,"库位与工厂信息不存在"); ErrorCode WAREHOUSE_FACTORY_NOT_EXISTS=new ErrorCode(1_017_000_010,"库位与工厂信息不存在");
} }

View File

@@ -168,9 +168,8 @@ public class ErpMaterialController {
@GetMapping("/erpMaterial-mainMaterial-code") @GetMapping("/erpMaterial-mainMaterial-code")
@Operation(summary = "通过主物料编号查询子物料信息") @Operation(summary = "通过主物料编号查询子物料信息")
@PreAuthorize("@ss.hasPermission('sply:erp-material:query')") @PreAuthorize("@ss.hasPermission('sply:erp-material:query')")
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByMainMaterialByCOde(String code) { public CommonResult<ErpMaterialRespVO> getErpMaterialByMainMaterialByCode(String code) {
return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByMainMaterialByCode(code), ErpMaterialRespVO.class));
return success(BeanUtils.toBean(List.of(new MaterialInfomationPageReqDTO()), ErpMaterialRespVO.class));
} }
//查询物料 //查询物料
@@ -179,6 +178,6 @@ public class ErpMaterialController {
@PreAuthorize("@ss.hasPermission('sply:erp-material:query')") @PreAuthorize("@ss.hasPermission('sply:erp-material:query')")
public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByApiByCode(String code) { public CommonResult<List<ErpMaterialRespVO>> getErpMaterialByApiByCode(String code) {
return success(BeanUtils.toBean(List.of(new MaterialInfomationPageReqDTO()), ErpMaterialRespVO.class)); return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByApiByCode(code), ErpMaterialRespVO.class));
} }
} }

View File

@@ -83,8 +83,8 @@ public class ErpWarehouseController {
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "获得ERP库位分页") @Operation(summary = "获得ERP库位分页")
@PreAuthorize("@ss.hasPermission('sply:erp-warehouse:query')") @PreAuthorize("@ss.hasPermission('sply:erp-warehouse:query')")
public CommonResult<PageResult<ErpWarehouseRespVO>> getErpWarehousePage(@Valid ErpWarehousePageReqVO pageReqVO) { public CommonResult<PageResult<ErpWarehouseDO> > getErpWarehousePage(@Valid ErpWarehousePageReqVO pageReqVO) {
PageResult<ErpWarehouseRespVO> pageResult = erpWarehouseService.getErpWarehousePage(pageReqVO); PageResult<ErpWarehouseDO> pageResult = erpWarehouseService.getErpWarehousePage(pageReqVO);
return success(pageResult); return success(pageResult);
} }

View File

@@ -0,0 +1,119 @@
package com.zt.plat.module.erp.controller.admin.erp.internalwarehouse;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseEnableDisableReqVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehousePageReqVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseRespVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseSaveReqVO;
import com.zt.plat.module.erp.dal.dataobject.erp.internalwarehouse.InternalWarehouseDO;
import com.zt.plat.module.erp.service.erp.internalwarehouse.InternalWarehouseService;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.*;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - ERP内部库位")
@RestController
@RequestMapping("/base/internal-warehouse")
@Validated
public class InternalWarehouseController implements BusinessControllerMarker {
@Resource
private InternalWarehouseService internalWarehouseService;
@PostMapping("/create")
@Operation(summary = "创建ERP库位")
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:create')")
public CommonResult<InternalWarehouseRespVO> createInternalWarehouse(@Valid @RequestBody InternalWarehouseSaveReqVO createReqVO) {
return success(internalWarehouseService.createInternalWarehouse(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新ERP库位")
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:update')")
public CommonResult<Boolean> updateInternalWarehouse(@Valid @RequestBody InternalWarehouseSaveReqVO updateReqVO) {
internalWarehouseService.updateInternalWarehouse(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除ERP库位")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:delete')")
public CommonResult<Boolean> deleteInternalWarehouse(@RequestParam("id") Long id) {
internalWarehouseService.deleteInternalWarehouse(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除ERP库位")
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:delete')")
public CommonResult<Boolean> deleteInternalWarehouseList(@RequestBody BatchDeleteReqVO req) {
internalWarehouseService.deleteInternalWarehouseListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得ERP库位")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:query')")
public CommonResult<InternalWarehouseRespVO> getInternalWarehouse(@RequestParam("id") Long id) {
InternalWarehouseDO internalWarehouse = internalWarehouseService.getInternalWarehouse(id);
return success(BeanUtils.toBean(internalWarehouse, InternalWarehouseRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得ERP库位分页")
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:query')")
public CommonResult<PageResult<InternalWarehouseRespVO>> getInternalWarehousePage(@Valid InternalWarehousePageReqVO pageReqVO) {
PageResult<InternalWarehouseDO> pageResult = internalWarehouseService.getInternalWarehousePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, InternalWarehouseRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出ERP库位 Excel")
@PreAuthorize("@ss.hasPermission('bse:internal-warehouse:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportInternalWarehouseExcel(@Valid InternalWarehousePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<InternalWarehouseDO> list = internalWarehouseService.getInternalWarehousePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "ERP库位.xls", "数据", InternalWarehouseRespVO.class,
BeanUtils.toBean(list, InternalWarehouseRespVO.class));
}
//启用和停用
@PostMapping("/enable-disable")
@Operation(summary = "启用和停用ERP库位")
public CommonResult<Boolean> enableDisable(@Valid @RequestBody InternalWarehouseEnableDisableReqVO reqVO) {
internalWarehouseService.enableDisable(reqVO);
return success(true);
}
}

View File

@@ -0,0 +1,19 @@
package com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.validation.annotation.Validated;
import java.util.List;
@Data
@Schema(description = "ERP库位启用禁用 Request VO")
@Validated
public class InternalWarehouseEnableDisableReqVO {
@Schema(description = "主键列表")
@NotNull(message = "主键列表不能为空")
private List<String> ids;
@Schema(description = "状态")
private String isEnable;
}

View File

@@ -0,0 +1,49 @@
package com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - ERP库位分页 Request VO")
@Data
public class InternalWarehousePageReqVO extends PageParam {
@Schema(description = "工厂编码")
private String factoryNumber;
@Schema(description = "库位名称", example = "赵六")
private String name;
@Schema(description = "库位编码")
private String number;
@Schema(description = "类型;数据字典(SPLY_FACT_TP)", example = "2")
private String type;
@Schema(description = "绑定库位名称", example = "张三")
private String relativityName;
@Schema(description = "绑定库位编码")
private String relativityNumber;
@Schema(description = "是否启用")
private String isEnable;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "erp公司编码")
private String companyIdCustom;
@Schema(description = "erp公司名称")
private String companyNameCustom;
@Schema(description = "工厂名称")
private String factoryName;
}

View File

@@ -0,0 +1,61 @@
package com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - ERP库位 Response VO")
@Data
@ExcelIgnoreUnannotated
public class InternalWarehouseRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20049")
@ExcelProperty("主键")
private Long id;
@Schema(description = "工厂编码")
@ExcelProperty("工厂编码")
private String factoryNumber;
@Schema(description = "库位名称", example = "赵六")
@ExcelProperty("库位名称")
private String name;
@Schema(description = "库位编码")
@ExcelProperty("库位编码")
private String number;
@Schema(description = "类型;数据字典(SPLY_FACT_TP)", example = "2")
@ExcelProperty("类型;数据字典(SPLY_FACT_TP)")
private String type;
@Schema(description = "绑定库位名称", example = "张三")
@ExcelProperty("绑定库位名称")
private String relativityName;
@Schema(description = "绑定库位编码")
@ExcelProperty("绑定库位编码")
private String relativityNumber;
@Schema(description = "是否启用")
@ExcelProperty("是否启用")
private String isEnable;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "erp公司编码")
@ExcelProperty("erp公司编码")
private String companyIdCustom;
@Schema(description = "erp公司名称")
@ExcelProperty("erp公司名称")
private String companyNameCustom;
@Schema(description = "工厂名称")
@ExcelProperty("工厂名称")
private String factoryName;
}

View File

@@ -0,0 +1,44 @@
package com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
@Schema(description = "管理后台 - ERP库位新增/修改 Request VO")
@Data
public class InternalWarehouseSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20049")
private Long id;
@Schema(description = "工厂编码")
private String factoryNumber;
@Schema(description = "库位名称", example = "赵六")
private String name;
@Schema(description = "库位编码")
private String number;
@Schema(description = "类型;数据字典(SPLY_FACT_TP)", example = "2")
private String type;
@Schema(description = "绑定库位名称", example = "张三")
private String relativityName;
@Schema(description = "绑定库位编码")
private String relativityNumber;
@Schema(description = "是否启用")
private String isEnable;
@Schema(description = "erp公司编码")
private String companyIdCustom;
@Schema(description = "erp公司名称")
private String companyNameCustom;
@Schema(description = "工厂名称")
private String factoryName;
}

View File

@@ -0,0 +1,85 @@
package com.zt.plat.module.erp.dal.dataobject.erp.internalwarehouse;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
/**
* ERP库位 DO
*
* @author 后台管理-1
*/
@TableName("bse_intl_wrh")
@KeySequence("bse_intl_wrh_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class InternalWarehouseDO extends BusinessBaseDO {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 工厂编码
*/
@TableField("FACT_NUM")
private String factoryNumber;
/**
* 库位名称
*/
@TableField("NAME")
private String name;
/**
* 库位编码
*/
@TableField("NUM")
private String number;
/**
* 类型;数据字典(SPLY_FACT_TP)
*/
@TableField("TP")
private String type;
/**
* 绑定库位名称
*/
@TableField("REL_NAME")
private String relativityName;
/**
* 绑定库位编码
*/
@TableField("REL_NUM")
private String relativityNumber;
/**
* 是否启用
*/
@TableField("IS_ENB")
private String isEnable;
/**
* erp公司编码
*/
@TableField("CPN_ID_CST")
private String companyIdCustom;
/**
* erp公司名称
*/
@TableField("CPN_NAME_CST")
private String companyNameCustom;
/**
* 工厂名称
*/
@TableField("FACT_NAME")
private String factoryName;
}

View File

@@ -0,0 +1,37 @@
package com.zt.plat.module.erp.dal.mysql.erp.internalwarehouse;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehousePageReqVO;
import com.zt.plat.module.erp.dal.dataobject.erp.internalwarehouse.InternalWarehouseDO;
import org.apache.ibatis.annotations.Mapper;
/**
* ERP库位 Mapper
*
* @author 后台管理-1
*/
@Mapper
public interface InternalWarehouseMapper extends BaseMapperX<InternalWarehouseDO> {
default PageResult<InternalWarehouseDO> selectPage(InternalWarehousePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InternalWarehouseDO>()
.eqIfPresent(InternalWarehouseDO::getFactoryNumber, reqVO.getFactoryNumber())
.likeIfPresent(InternalWarehouseDO::getName, reqVO.getName())
.eqIfPresent(InternalWarehouseDO::getNumber, reqVO.getNumber())
.eqIfPresent(InternalWarehouseDO::getType, reqVO.getType())
.likeIfPresent(InternalWarehouseDO::getRelativityName, reqVO.getRelativityName())
.eqIfPresent(InternalWarehouseDO::getRelativityNumber, reqVO.getRelativityNumber())
.eqIfPresent(InternalWarehouseDO::getIsEnable, reqVO.getIsEnable())
.betweenIfPresent(InternalWarehouseDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(InternalWarehouseDO::getCompanyIdCustom, reqVO.getCompanyIdCustom())
.eqIfPresent(InternalWarehouseDO::getCompanyNameCustom, reqVO.getCompanyNameCustom())
.orderByDesc(InternalWarehouseDO::getId));
}
}

View File

@@ -80,4 +80,8 @@ public interface ErpMaterialService {
List<ErpMaterialDO> getErpMaterialByMainMaterial(Long mainMaterialId); List<ErpMaterialDO> getErpMaterialByMainMaterial(Long mainMaterialId);
List<ErpMaterialDO> getErpMaterialByApi( MaterialInfomationPageReqDTO material); List<ErpMaterialDO> getErpMaterialByApi( MaterialInfomationPageReqDTO material);
ErpMaterialDO getErpMaterialByMainMaterialByCode(String code);
List <ErpMaterialDO>getErpMaterialByApiByCode(String code);
} }

View File

@@ -34,6 +34,7 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.pojo.PageParam.PAGE_SIZE_NONE;
import static com.zt.plat.module.erp.enums.ErrorCodeConstants.*; import static com.zt.plat.module.erp.enums.ErrorCodeConstants.*;
import static dm.jdbc.util.DriverUtil.log; import static dm.jdbc.util.DriverUtil.log;
@@ -292,6 +293,41 @@ public class ErpMaterialServiceImpl implements ErpMaterialService {
return erpMaterialDOList; return erpMaterialDOList;
} }
@Override
public ErpMaterialDO getErpMaterialByMainMaterialByCode(String code) {
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO();
material.setCode(code);
material.setPageSize(PAGE_SIZE_NONE);
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material);
if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) {
return buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0)));
}
return null;
}
@Override
public List<ErpMaterialDO> getErpMaterialByApiByCode(String code) {
MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO();
material.setCode(code);
material.setPageSize(PAGE_SIZE_NONE);
CommonResult<PageResult<MaterialInfomationRespDTO>> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material);
List<ErpMaterialDO> erpMaterialDOList = new ArrayList<>();
if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) {
ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0)));
List<ErpMaterialCorrRspVO> erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(erpMaterialDO.getId());
CommonResult<List<MaterialInfomationRespDTO>> materialInfomationListByIds = materialInfomationApi.getMaterialInfomationListByIds(erpMaterialByMainMaterial.stream().map(ErpMaterialCorrRspVO::getMaterialId).toList());
if (materialInfomationListByIds.getData() == null || materialInfomationListByIds.getData().isEmpty()) {
return erpMaterialDOList;
}
materialInfomationListByIds.getData().forEach(
materialInfomation -> {
erpMaterialDOList.add(buildErpMaterialDOData(CommonResult.success(materialInfomation)));
}
);
}
return erpMaterialDOList;
}
@Override @Override
@Transactional @Transactional
@XxlJob("getErpMaterialTask") @XxlJob("getErpMaterialTask")

View File

@@ -60,7 +60,7 @@ public interface ErpWarehouseService {
* @param pageReqVO 分页查询 * @param pageReqVO 分页查询
* @return ERP库位分页 * @return ERP库位分页
*/ */
PageResult<ErpWarehouseRespVO> getErpWarehousePage(ErpWarehousePageReqVO pageReqVO); PageResult<ErpWarehouseDO> getErpWarehousePage(ErpWarehousePageReqVO pageReqVO);
void callErpRfcInterface(); void callErpRfcInterface();

View File

@@ -150,32 +150,32 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
@Override @Override
public PageResult<ErpWarehouseRespVO> getErpWarehousePage(ErpWarehousePageReqVO pageReqVO) { public PageResult<ErpWarehouseDO> getErpWarehousePage(ErpWarehousePageReqVO pageReqVO) {
PageResult<ErpWarehouseRespVO> erpWarehouseRespVOPageResult = BeanUtils.toBean(erpWarehouseMapper.selectPage(pageReqVO), ErpWarehouseRespVO.class); // PageResult<ErpWarehouseRespVO> erpWarehouseRespVOPageResult = BeanUtils.toBean(erpWarehouseMapper.selectPage(pageReqVO), ErpWarehouseRespVO.class);
if (erpWarehouseRespVOPageResult.getList() == null) { // if (erpWarehouseRespVOPageResult.getList() == null) {
return erpWarehouseRespVOPageResult; // return erpWarehouseRespVOPageResult;
// }
// erpWarehouseRespVOPageResult.getList().forEach(this::setWarehouseFactoryInfo);
// return erpWarehouseRespVOPageResult;
// 获取分页数据
List<ErpWarehouseDO> list = erpWarehouseMapper.getPageByReq(pageReqVO);
if (list == null) {
list = CollUtil.newArrayList();
} }
erpWarehouseRespVOPageResult.getList().forEach(this::setWarehouseFactoryInfo); // 分页处理
return erpWarehouseRespVOPageResult; int pageNo = pageReqVO.getPageNo();
// // 获取分页数据 int pageSize = pageReqVO.getPageSize();
// List<ErpWarehouseDO> list = erpWarehouseMapper.getPageByReq(pageReqVO); int total = list.size();
// if (list == null) { // 计算分页起始和结束位置
// list = CollUtil.newArrayList(); int fromIndex = (pageNo - 1) * pageSize;
// } int toIndex = Math.min(fromIndex + pageSize, total);
// // 分页处理 // 如果起始位置超出范围,则返回空列表
// int pageNo = pageReqVO.getPageNo(); if (fromIndex >= total) {
// int pageSize = pageReqVO.getPageSize(); return new PageResult<>(new ArrayList<>(), (long) total);
// int total = list.size(); }
// // 计算分页起始和结束位置 // 截取当前页数据
// int fromIndex = (pageNo - 1) * pageSize; List<ErpWarehouseDO> pageList = list.subList(fromIndex, toIndex);
// int toIndex = Math.min(fromIndex + pageSize, total); return new PageResult<>(pageList, (long) total);
// // 如果起始位置超出范围,则返回空列表
// if (fromIndex >= total) {
// return new PageResult<>(new ArrayList<>(), (long) total);
// }
// // 截取当前页数据
// List<ErpWarehouseDO> pageList = list.subList(fromIndex, toIndex);
// return new PageResult<>(pageList, (long) total);
} }
// 设置主物料信息 // 设置主物料信息

View File

@@ -0,0 +1,67 @@
package com.zt.plat.module.erp.service.erp.internalwarehouse;
import java.util.*;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseEnableDisableReqVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehousePageReqVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseRespVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseSaveReqVO;
import com.zt.plat.module.erp.dal.dataobject.erp.internalwarehouse.InternalWarehouseDO;
import jakarta.validation.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;
/**
* ERP库位 Service 接口
*
* @author 后台管理-1
*/
public interface InternalWarehouseService {
/**
* 创建ERP库位
*
* @param createReqVO 创建信息
* @return 编号
*/
InternalWarehouseRespVO createInternalWarehouse(@Valid InternalWarehouseSaveReqVO createReqVO);
/**
* 更新ERP库位
*
* @param updateReqVO 更新信息
*/
void updateInternalWarehouse(@Valid InternalWarehouseSaveReqVO updateReqVO);
/**
* 删除ERP库位
*
* @param id 编号
*/
void deleteInternalWarehouse(Long id);
/**
* 批量删除ERP库位
*
* @param ids 编号
*/
void deleteInternalWarehouseListByIds(List<Long> ids);
/**
* 获得ERP库位
*
* @param id 编号
* @return ERP库位
*/
InternalWarehouseDO getInternalWarehouse(Long id);
/**
* 获得ERP库位分页
*
* @param pageReqVO 分页查询
* @return ERP库位分页
*/
PageResult<InternalWarehouseDO> getInternalWarehousePage(InternalWarehousePageReqVO pageReqVO);
void enableDisable(InternalWarehouseEnableDisableReqVO enableDisableReqVO);
}

View File

@@ -0,0 +1,112 @@
package com.zt.plat.module.erp.service.erp.internalwarehouse;
import cn.hutool.core.collection.CollUtil;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseEnableDisableReqVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehousePageReqVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseRespVO;
import com.zt.plat.module.erp.controller.admin.erp.internalwarehouse.vo.InternalWarehouseSaveReqVO;
import com.zt.plat.module.erp.dal.dataobject.erp.internalwarehouse.InternalWarehouseDO;
import com.zt.plat.module.erp.dal.mysql.erp.internalwarehouse.InternalWarehouseMapper;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.util.object.BeanUtils;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
import static com.zt.plat.module.erp.enums.ErrorCodeConstants.INTERNAL_WAREHOUSE_NOT_EXISTS;
/**
* ERP库位 Service 实现类
*
* @author 后台管理-1
*/
@Service
@Validated
public class InternalWarehouseServiceImpl implements InternalWarehouseService {
@Resource
private InternalWarehouseMapper internalWarehouseMapper;
@Override
public InternalWarehouseRespVO createInternalWarehouse(InternalWarehouseSaveReqVO createReqVO) {
// 插入
InternalWarehouseDO internalWarehouse = BeanUtils.toBean(createReqVO, InternalWarehouseDO.class);
internalWarehouseMapper.insert(internalWarehouse);
// 返回
return BeanUtils.toBean(internalWarehouse, InternalWarehouseRespVO.class);
}
@Override
public void updateInternalWarehouse(InternalWarehouseSaveReqVO updateReqVO) {
// 校验存在
validateInternalWarehouseExists(updateReqVO.getId());
// 更新
InternalWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, InternalWarehouseDO.class);
internalWarehouseMapper.updateById(updateObj);
}
@Override
public void deleteInternalWarehouse(Long id) {
// 校验存在
validateInternalWarehouseExists(id);
// 删除
internalWarehouseMapper.deleteById(id);
}
@Override
public void deleteInternalWarehouseListByIds(List<Long> ids) {
// 校验存在
validateInternalWarehouseExists(ids);
// 删除
internalWarehouseMapper.deleteByIds(ids);
}
private void validateInternalWarehouseExists(List<Long> ids) {
List<InternalWarehouseDO> list = internalWarehouseMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(INTERNAL_WAREHOUSE_NOT_EXISTS);
}
}
private void validateInternalWarehouseExists(Long id) {
if (internalWarehouseMapper.selectById(id) == null) {
throw exception(INTERNAL_WAREHOUSE_NOT_EXISTS);
}
}
@Override
public InternalWarehouseDO getInternalWarehouse(Long id) {
return internalWarehouseMapper.selectById(id);
}
@Override
public PageResult<InternalWarehouseDO> getInternalWarehousePage(InternalWarehousePageReqVO pageReqVO) {
return internalWarehouseMapper.selectPage(pageReqVO);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void enableDisable(InternalWarehouseEnableDisableReqVO enableDisableReqVO) {
enableDisableReqVO.getIds().forEach(id -> {
// 校验存在
validateInternalWarehouseExists(Long.valueOf(id));
// 更新
InternalWarehouseDO updateObj = new InternalWarehouseDO();
updateObj.setId(Long.valueOf(id));
updateObj.setIsEnable(enableDisableReqVO.getIsEnable());
internalWarehouseMapper.updateById(updateObj);
});
}
}

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zt.plat.module.erp.dal.mysql.erp.internalwarehouse.InternalWarehouseMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>