diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractReceiveSendRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractReceiveSendRespDTO.java index ebf299ab..7e765b6d 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractReceiveSendRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractReceiveSendRespDTO.java @@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; @Schema(description = "管理后台 - 收发货规则 Response VO") @@ -47,11 +48,11 @@ public class ContractReceiveSendRespDTO { @Schema(description = "区间下限") @ExcelProperty("区间下限") - private String gradeDown; + private BigDecimal gradeDown; @Schema(description = "区间上限") @ExcelProperty("区间上限") - private String gradeUp; + private BigDecimal gradeUp; @Schema(description = "合同id", example = "22162") @ExcelProperty("合同id") diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendPageReqVO.java index d63c0171..7f2ea339 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendPageReqVO.java @@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; import java.time.LocalDateTime; 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; @Schema(description = "区间下限") - private String gradeDown; + private BigDecimal gradeDown; @Schema(description = "区间上限") - private String gradeUp; + private BigDecimal gradeUp; @Schema(description = "合同id", example = "22162") private Long contractId; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendRespVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendRespVO.java index 2501e159..82d92712 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendRespVO.java @@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; import java.time.LocalDateTime; @Schema(description = "管理后台 - 收发货规则 Response VO") @@ -50,11 +51,11 @@ public class ContractReceiveSendRespVO { @Schema(description = "区间下限") @ExcelProperty("区间下限") - private String gradeDown; + private BigDecimal gradeDown; @Schema(description = "区间上限") @ExcelProperty("区间上限") - private String gradeUp; + private BigDecimal gradeUp; @Schema(description = "合同id", example = "22162") @ExcelProperty("合同id") diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendSaveReqVO.java index 3c97dcf9..e3c0be5c 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractReceiveSendSaveReqVO.java @@ -3,6 +3,8 @@ package com.zt.plat.module.contractorder.api.vo.contract; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.math.BigDecimal; + @Schema(description = "管理后台 - 收发货规则新增/修改 Request VO") @Data public class ContractReceiveSendSaveReqVO { @@ -35,10 +37,10 @@ public class ContractReceiveSendSaveReqVO { private String rangeWay; @Schema(description = "区间下限") - private String gradeDown; + private BigDecimal gradeDown; @Schema(description = "区间上限") - private String gradeUp; + private BigDecimal gradeUp; @Schema(description = "合同id", example = "22162") private Long contractId; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contractreceivesend/ContractReceiveSendDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contractreceivesend/ContractReceiveSendDO.java index d6a95129..bb19e28b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contractreceivesend/ContractReceiveSendDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contractreceivesend/ContractReceiveSendDO.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.*; import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; import lombok.*; +import java.math.BigDecimal; + /** * 收发货规则 DO * @@ -73,12 +75,12 @@ public class ContractReceiveSendDO extends BusinessBaseDO { * 区间下限 */ @TableField("GRD_DOWN") - private String gradeDown; + private BigDecimal gradeDown; /** * 区间上限 */ @TableField("GRD_UP") - private String gradeUp; + private BigDecimal gradeUp; /** * 合同id */ diff --git a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java index bec41aa8..6e64ccbf 100644 --- a/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java +++ b/zt-module-erp/zt-module-erp-api/src/main/java/com/zt/plat/module/erp/enums/ErrorCodeConstants.java @@ -58,5 +58,7 @@ public interface ErrorCodeConstants { 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,"库位与工厂信息不存在"); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java index 5636aeed..fe3daa6f 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpMaterialController.java @@ -168,9 +168,8 @@ public class ErpMaterialController { @GetMapping("/erpMaterial-mainMaterial-code") @Operation(summary = "通过主物料编号查询子物料信息") @PreAuthorize("@ss.hasPermission('sply:erp-material:query')") - public CommonResult> getErpMaterialByMainMaterialByCOde(String code) { - - return success(BeanUtils.toBean(List.of(new MaterialInfomationPageReqDTO()), ErpMaterialRespVO.class)); + public CommonResult getErpMaterialByMainMaterialByCode(String code) { + return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByMainMaterialByCode(code), ErpMaterialRespVO.class)); } //查询物料 @@ -179,6 +178,6 @@ public class ErpMaterialController { @PreAuthorize("@ss.hasPermission('sply:erp-material:query')") public CommonResult> getErpMaterialByApiByCode(String code) { - return success(BeanUtils.toBean(List.of(new MaterialInfomationPageReqDTO()), ErpMaterialRespVO.class)); + return success(BeanUtils.toBean(erpMaterialService.getErpMaterialByApiByCode(code), ErpMaterialRespVO.class)); } } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java index 4f49468e..6406ccae 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/ErpWarehouseController.java @@ -83,8 +83,8 @@ public class ErpWarehouseController { @GetMapping("/page") @Operation(summary = "获得ERP库位分页") @PreAuthorize("@ss.hasPermission('sply:erp-warehouse:query')") - public CommonResult> getErpWarehousePage(@Valid ErpWarehousePageReqVO pageReqVO) { - PageResult pageResult = erpWarehouseService.getErpWarehousePage(pageReqVO); + public CommonResult > getErpWarehousePage(@Valid ErpWarehousePageReqVO pageReqVO) { + PageResult pageResult = erpWarehouseService.getErpWarehousePage(pageReqVO); return success(pageResult); } diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/InternalWarehouseController.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/InternalWarehouseController.java new file mode 100644 index 00000000..c2809ab0 --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/InternalWarehouseController.java @@ -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 createInternalWarehouse(@Valid @RequestBody InternalWarehouseSaveReqVO createReqVO) { + return success(internalWarehouseService.createInternalWarehouse(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新ERP库位") + @PreAuthorize("@ss.hasPermission('bse:internal-warehouse:update')") + public CommonResult 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 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 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 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> getInternalWarehousePage(@Valid InternalWarehousePageReqVO pageReqVO) { + PageResult 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 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 enableDisable(@Valid @RequestBody InternalWarehouseEnableDisableReqVO reqVO) { + internalWarehouseService.enableDisable(reqVO); + return success(true); + } + +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseEnableDisableReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseEnableDisableReqVO.java new file mode 100644 index 00000000..9ea4f903 --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseEnableDisableReqVO.java @@ -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 ids; + @Schema(description = "状态") + private String isEnable; +} diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehousePageReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehousePageReqVO.java new file mode 100644 index 00000000..22ba3bbe --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehousePageReqVO.java @@ -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; +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseRespVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseRespVO.java new file mode 100644 index 00000000..84aaa39d --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseRespVO.java @@ -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; +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseSaveReqVO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseSaveReqVO.java new file mode 100644 index 00000000..576d7b82 --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/controller/admin/erp/internalwarehouse/vo/InternalWarehouseSaveReqVO.java @@ -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; + +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/internalwarehouse/InternalWarehouseDO.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/internalwarehouse/InternalWarehouseDO.java new file mode 100644 index 00000000..c832437d --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/dataobject/erp/internalwarehouse/InternalWarehouseDO.java @@ -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; + +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/internalwarehouse/InternalWarehouseMapper.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/internalwarehouse/InternalWarehouseMapper.java new file mode 100644 index 00000000..2db832cb --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/dal/mysql/erp/internalwarehouse/InternalWarehouseMapper.java @@ -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 { + + default PageResult selectPage(InternalWarehousePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .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)); + } + +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java index 12b5b012..d05d4a32 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialService.java @@ -80,4 +80,8 @@ public interface ErpMaterialService { List getErpMaterialByMainMaterial(Long mainMaterialId); List getErpMaterialByApi( MaterialInfomationPageReqDTO material); + + ErpMaterialDO getErpMaterialByMainMaterialByCode(String code); + + List getErpMaterialByApiByCode(String code); } \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java index f7e7fbde..482ac7bf 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpMaterialServiceImpl.java @@ -34,6 +34,7 @@ import java.util.*; import java.util.stream.Collectors; 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 dm.jdbc.util.DriverUtil.log; @@ -292,6 +293,41 @@ public class ErpMaterialServiceImpl implements ErpMaterialService { return erpMaterialDOList; } + @Override + public ErpMaterialDO getErpMaterialByMainMaterialByCode(String code) { + MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO(); + material.setCode(code); + material.setPageSize(PAGE_SIZE_NONE); + CommonResult> 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 getErpMaterialByApiByCode(String code) { + MaterialInfomationPageReqDTO material = new MaterialInfomationPageReqDTO(); + material.setCode(code); + material.setPageSize(PAGE_SIZE_NONE); + CommonResult> materialInfomationPage = materialInfomationApi.getMaterialInfomationPage(material); + List erpMaterialDOList = new ArrayList<>(); + if (materialInfomationPage.isSuccess() && materialInfomationPage.getData() != null&& !materialInfomationPage.getData().getList().isEmpty()) { + ErpMaterialDO erpMaterialDO = buildErpMaterialDOData(CommonResult.success(materialInfomationPage.getData().getList().get(0))); + List erpMaterialByMainMaterial = erpMaterialCorrService.getErpMaterialByMainMaterial(erpMaterialDO.getId()); + CommonResult> 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 @Transactional @XxlJob("getErpMaterialTask") diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseService.java index 51059e1d..fe8683e0 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseService.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseService.java @@ -60,7 +60,7 @@ public interface ErpWarehouseService { * @param pageReqVO 分页查询 * @return ERP库位分页 */ - PageResult getErpWarehousePage(ErpWarehousePageReqVO pageReqVO); + PageResult getErpWarehousePage(ErpWarehousePageReqVO pageReqVO); void callErpRfcInterface(); diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java index 3614c64c..e8efabda 100644 --- a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/ErpWarehouseServiceImpl.java @@ -150,32 +150,32 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService { @Override - public PageResult getErpWarehousePage(ErpWarehousePageReqVO pageReqVO) { - PageResult erpWarehouseRespVOPageResult = BeanUtils.toBean(erpWarehouseMapper.selectPage(pageReqVO), ErpWarehouseRespVO.class); - if (erpWarehouseRespVOPageResult.getList() == null) { - return erpWarehouseRespVOPageResult; + public PageResult getErpWarehousePage(ErpWarehousePageReqVO pageReqVO) { +// PageResult erpWarehouseRespVOPageResult = BeanUtils.toBean(erpWarehouseMapper.selectPage(pageReqVO), ErpWarehouseRespVO.class); +// if (erpWarehouseRespVOPageResult.getList() == null) { +// return erpWarehouseRespVOPageResult; +// } +// erpWarehouseRespVOPageResult.getList().forEach(this::setWarehouseFactoryInfo); +// return erpWarehouseRespVOPageResult; + // 获取分页数据 + List list = erpWarehouseMapper.getPageByReq(pageReqVO); + if (list == null) { + list = CollUtil.newArrayList(); } - erpWarehouseRespVOPageResult.getList().forEach(this::setWarehouseFactoryInfo); - return erpWarehouseRespVOPageResult; -// // 获取分页数据 -// List list = erpWarehouseMapper.getPageByReq(pageReqVO); -// if (list == null) { -// list = CollUtil.newArrayList(); -// } -// // 分页处理 -// int pageNo = pageReqVO.getPageNo(); -// int pageSize = pageReqVO.getPageSize(); -// int total = list.size(); -// // 计算分页起始和结束位置 -// int fromIndex = (pageNo - 1) * pageSize; -// int toIndex = Math.min(fromIndex + pageSize, total); -// // 如果起始位置超出范围,则返回空列表 -// if (fromIndex >= total) { -// return new PageResult<>(new ArrayList<>(), (long) total); -// } -// // 截取当前页数据 -// List pageList = list.subList(fromIndex, toIndex); -// return new PageResult<>(pageList, (long) total); + // 分页处理 + int pageNo = pageReqVO.getPageNo(); + int pageSize = pageReqVO.getPageSize(); + int total = list.size(); + // 计算分页起始和结束位置 + int fromIndex = (pageNo - 1) * pageSize; + int toIndex = Math.min(fromIndex + pageSize, total); + // 如果起始位置超出范围,则返回空列表 + if (fromIndex >= total) { + return new PageResult<>(new ArrayList<>(), (long) total); + } + // 截取当前页数据 + List pageList = list.subList(fromIndex, toIndex); + return new PageResult<>(pageList, (long) total); } // 设置主物料信息 diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/internalwarehouse/InternalWarehouseService.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/internalwarehouse/InternalWarehouseService.java new file mode 100644 index 00000000..d04c52d7 --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/internalwarehouse/InternalWarehouseService.java @@ -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 ids); + + /** + * 获得ERP库位 + * + * @param id 编号 + * @return ERP库位 + */ + InternalWarehouseDO getInternalWarehouse(Long id); + + /** + * 获得ERP库位分页 + * + * @param pageReqVO 分页查询 + * @return ERP库位分页 + */ + PageResult getInternalWarehousePage(InternalWarehousePageReqVO pageReqVO); + + void enableDisable(InternalWarehouseEnableDisableReqVO enableDisableReqVO); +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/internalwarehouse/InternalWarehouseServiceImpl.java b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/internalwarehouse/InternalWarehouseServiceImpl.java new file mode 100644 index 00000000..db481dd3 --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/java/com/zt/plat/module/erp/service/erp/internalwarehouse/InternalWarehouseServiceImpl.java @@ -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 ids) { + // 校验存在 + validateInternalWarehouseExists(ids); + // 删除 + internalWarehouseMapper.deleteByIds(ids); + } + + private void validateInternalWarehouseExists(List ids) { + List 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 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); + }); + } + +} \ No newline at end of file diff --git a/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/internalwarehouse/InternalWarehouseMapper.xml b/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/internalwarehouse/InternalWarehouseMapper.xml new file mode 100644 index 00000000..718e11a2 --- /dev/null +++ b/zt-module-erp/zt-module-erp-server/src/main/resources/mapper/internalwarehouse/InternalWarehouseMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file