diff --git a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java index 8313a5cd..8908039e 100644 --- a/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java +++ b/mes-module-majoys/mes-module-majoys-api/src/main/java/com/chanko/yunxi/mes/module/biz/enums/ErrorCodeConstants.java @@ -73,6 +73,7 @@ public interface ErrorCodeConstants { ErrorCode STORAGE_CHECK_NOT_EXISTS = new ErrorCode(1_003_007, "库存盘点不存在"); ErrorCode STORAGE_CHECK_MAT_NOT_EXISTS = new ErrorCode(1_003_008, "盘点物料不存在"); ErrorCode STORAGE_STOCK_QUANTITY_LACK = new ErrorCode(1_003_009, "库存数量不足"); + ErrorCode TPLUS_LASTEST_STOCK_NOT_EXISTS = new ErrorCode(1_003_010, "用友Tplus最新库存不存在"); /************订单管理***********/ ErrorCode PROJECT_ORDER_NOT_EXISTS = new ErrorCode(1_004_001, "项目订单不存在"); diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java index f7b33b4f..d725a955 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/chanjet/ChanjetController.java @@ -257,6 +257,9 @@ public class ChanjetController { // //查询仓库 // chanjetSchedule.queryWarehouse(); + //查询库存-现存量 + chanjetSchedule.queryStock(); + //创建入库 chanjetSchedule.createStorageInOrder(); diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/TplusLastestStockController.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/TplusLastestStockController.java new file mode 100644 index 00000000..ae8539a3 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/TplusLastestStockController.java @@ -0,0 +1,95 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.CommonResult; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; +import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success; + +import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils; + +import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog; +import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.tpluslasteststock.TplusLastestStockDO; +import com.chanko.yunxi.mes.module.biz.service.tpluslasteststock.TplusLastestStockService; + +@Tag(name = "管理后台 - 用友Tplus最新库存") +@RestController +@RequestMapping("/biz/tplus-lastest-stock") +@Validated +public class TplusLastestStockController { + + @Resource + private TplusLastestStockService tplusLastestStockService; + + @PostMapping("/create") + @Operation(summary = "创建用友Tplus最新库存") + @PreAuthorize("@ss.hasPermission('biz:tplus-lastest-stock:create')") + public CommonResult createTplusLastestStock(@Valid @RequestBody TplusLastestStockSaveReqVO createReqVO) { + return success(tplusLastestStockService.createTplusLastestStock(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新用友Tplus最新库存") + @PreAuthorize("@ss.hasPermission('biz:tplus-lastest-stock:update')") + public CommonResult updateTplusLastestStock(@Valid @RequestBody TplusLastestStockSaveReqVO updateReqVO) { + tplusLastestStockService.updateTplusLastestStock(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除用友Tplus最新库存") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('biz:tplus-lastest-stock:delete')") + public CommonResult deleteTplusLastestStock(@RequestParam("id") Long id) { + tplusLastestStockService.deleteTplusLastestStock(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得用友Tplus最新库存") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('biz:tplus-lastest-stock:query')") + public CommonResult getTplusLastestStock(@RequestParam("id") Long id) { + TplusLastestStockDO tplusLastestStock = tplusLastestStockService.getTplusLastestStock(id); + return success(BeanUtils.toBean(tplusLastestStock, TplusLastestStockRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得用友Tplus最新库存分页") + @PreAuthorize("@ss.hasPermission('biz:tplus-lastest-stock:query')") + public CommonResult> getTplusLastestStockPage(@Valid TplusLastestStockPageReqVO pageReqVO) { + PageResult pageResult = tplusLastestStockService.getTplusLastestStockPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, TplusLastestStockRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出用友Tplus最新库存 Excel") + @PreAuthorize("@ss.hasPermission('biz:tplus-lastest-stock:export')") + @OperateLog(type = EXPORT) + public void exportTplusLastestStockExcel(@Valid TplusLastestStockPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = tplusLastestStockService.getTplusLastestStockPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "用友Tplus最新库存.xls", "数据", TplusLastestStockRespVO.class, + BeanUtils.toBean(list, TplusLastestStockRespVO.class)); + } + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockPageReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockPageReqVO.java new file mode 100644 index 00000000..ad390bfb --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockPageReqVO.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 用友Tplus最新库存分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class TplusLastestStockPageReqVO extends PageParam { + + @Schema(description = "自增字段,唯一") + private Long id; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "仓库id") + private String warehouseID; + + @Schema(description = "仓库名称") + private String warehouseName; + + @Schema(description = "仓库编码") + private String warehouseCode; + + @Schema(description = "物料ID") + private String inventoryID; + + @Schema(description = "物料编码") + private String inventoryCode; + + @Schema(description = "物料名称") + private String inventoryName; + + @Schema(description = "物料类型") + private String inventoryClassCode; + + @Schema(description = "物料类型名称") + private String inventoryClassName; + + @Schema(description = "可用量") + private String availableQuantity; + + @Schema(description = "现存量") + private String existingQuantity; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockRespVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockRespVO.java new file mode 100644 index 00000000..e2dafde4 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockRespVO.java @@ -0,0 +1,64 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 用友Tplus最新库存 Response VO") +@Data +@ExcelIgnoreUnannotated +public class TplusLastestStockRespVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("自增字段,唯一") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "仓库id") + @ExcelProperty("仓库id") + private String warehouseID; + + @Schema(description = "仓库名称") + @ExcelProperty("仓库名称") + private String warehouseName; + + @Schema(description = "仓库编码") + @ExcelProperty("仓库编码") + private String warehouseCode; + + @Schema(description = "物料ID") + @ExcelProperty("物料ID") + private String inventoryID; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String inventoryCode; + + @Schema(description = "物料名称") + @ExcelProperty("物料名称") + private String inventoryName; + + @Schema(description = "物料类型") + @ExcelProperty("物料类型") + private String inventoryClassCode; + + @Schema(description = "物料类型名称") + @ExcelProperty("物料类型名称") + private String inventoryClassName; + + @Schema(description = "可用量") + @ExcelProperty("可用量") + private String availableQuantity; + + @Schema(description = "现存量") + @ExcelProperty("现存量") + private String existingQuantity; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockSaveReqVO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockSaveReqVO.java new file mode 100644 index 00000000..85e55df8 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/controller/admin/tpluslasteststock/vo/TplusLastestStockSaveReqVO.java @@ -0,0 +1,46 @@ +package com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; +import java.util.*; + +@Schema(description = "管理后台 - 用友Tplus最新库存新增/修改 Request VO") +@Data +public class TplusLastestStockSaveReqVO { + + @Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED) + private Long id; + + @Schema(description = "仓库id") + private String warehouseID; + + @Schema(description = "仓库名称") + private String warehouseName; + + @Schema(description = "仓库编码") + private String warehouseCode; + + @Schema(description = "物料ID") + private String inventoryID; + + @Schema(description = "物料编码") + private String inventoryCode; + + @Schema(description = "物料名称") + private String inventoryName; + + @Schema(description = "物料类型") + private String inventoryClassCode; + + @Schema(description = "物料类型名称") + private String inventoryClassName; + + @Schema(description = "可用量") + private String availableQuantity; + + @Schema(description = "现存量") + private String existingQuantity; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/tpluslasteststock/TplusLastestStockDO.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/tpluslasteststock/TplusLastestStockDO.java new file mode 100644 index 00000000..75726ec1 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/dataobject/tpluslasteststock/TplusLastestStockDO.java @@ -0,0 +1,71 @@ +package com.chanko.yunxi.mes.module.biz.dal.dataobject.tpluslasteststock; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.chanko.yunxi.mes.framework.mybatis.core.dataobject.BaseDO; + +/** + * 用友Tplus最新库存 DO + * + * @author 管理员 + */ +@TableName("tplus_lastest_stock") +@KeySequence("tplus_lastest_stock_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TplusLastestStockDO extends BaseDO { + + /** + * 自增字段,唯一 + */ + @TableId + private Long id; + /** + * 仓库id + */ + private String warehouseID; + /** + * 仓库名称 + */ + private String warehouseName; + /** + * 仓库编码 + */ + private String warehouseCode; + /** + * 物料ID + */ + private String inventoryID; + /** + * 物料编码 + */ + private String inventoryCode; + /** + * 物料名称 + */ + private String inventoryName; + /** + * 物料类型 + */ + private String inventoryClassCode; + /** + * 物料类型名称 + */ + private String inventoryClassName; + /** + * 可用量 + */ + private String availableQuantity; + /** + * 现存量 + */ + private String existingQuantity; + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/tpluslasteststock/TplusLastestStockMapper.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/tpluslasteststock/TplusLastestStockMapper.java new file mode 100644 index 00000000..6ff26d3f --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/dal/mysql/tpluslasteststock/TplusLastestStockMapper.java @@ -0,0 +1,37 @@ +package com.chanko.yunxi.mes.module.biz.dal.mysql.tpluslasteststock; + +import java.util.*; + +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.tpluslasteststock.TplusLastestStockDO; +import org.apache.ibatis.annotations.Mapper; +import com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo.*; + +/** + * 用友Tplus最新库存 Mapper + * + * @author 管理员 + */ +@Mapper +public interface TplusLastestStockMapper extends BaseMapperX { + + default PageResult selectPage(TplusLastestStockPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(TplusLastestStockDO::getId, reqVO.getId()) + .betweenIfPresent(TplusLastestStockDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(TplusLastestStockDO::getWarehouseID, reqVO.getWarehouseID()) + .likeIfPresent(TplusLastestStockDO::getWarehouseName, reqVO.getWarehouseName()) + .eqIfPresent(TplusLastestStockDO::getWarehouseCode, reqVO.getWarehouseCode()) + .eqIfPresent(TplusLastestStockDO::getInventoryID, reqVO.getInventoryID()) + .eqIfPresent(TplusLastestStockDO::getInventoryCode, reqVO.getInventoryCode()) + .likeIfPresent(TplusLastestStockDO::getInventoryName, reqVO.getInventoryName()) + .eqIfPresent(TplusLastestStockDO::getInventoryClassCode, reqVO.getInventoryClassCode()) + .likeIfPresent(TplusLastestStockDO::getInventoryClassName, reqVO.getInventoryClassName()) + .eqIfPresent(TplusLastestStockDO::getAvailableQuantity, reqVO.getAvailableQuantity()) + .eqIfPresent(TplusLastestStockDO::getExistingQuantity, reqVO.getExistingQuantity()) + .orderByDesc(TplusLastestStockDO::getId)); + } + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java index 8a65882e..574356cd 100644 --- a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/manager/ChanjetSchedule.java @@ -34,6 +34,7 @@ import com.chanko.yunxi.mes.module.biz.dal.dataobject.supplier.SupplierDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.systemparameters.SystemParametersDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskdispatch.TaskDispatchDetailDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.taskreport.TaskReportDO; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.tpluslasteststock.TplusLastestStockDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.warehouse.WarehouseDO; import com.chanko.yunxi.mes.module.biz.dal.dataobject.workshop.WorkshopDO; import com.chanko.yunxi.mes.module.biz.dal.mysql.customer.CustomerMapper; @@ -46,6 +47,7 @@ import com.chanko.yunxi.mes.module.biz.dal.mysql.supplier.SupplierMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.systemparameters.SystemParametersMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.taskdispatch.TaskDispatchDetailMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.taskreport.TaskReportMapper; +import com.chanko.yunxi.mes.module.biz.dal.mysql.tpluslasteststock.TplusLastestStockMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.warehouse.WarehouseMapper; import com.chanko.yunxi.mes.module.biz.dal.mysql.workshop.WorkshopMapper; import com.chanko.yunxi.mes.module.biz.enums.*; @@ -143,6 +145,9 @@ public class ChanjetSchedule { @Resource private SystemParametersMapper systemParametersMapper; + @Resource + private TplusLastestStockMapper tplusLastestStockMapper; + private Boolean getSystemParameters(){ Boolean chanjet_switch = true; return chanjet_switch; @@ -917,14 +922,6 @@ public class ChanjetSchedule { } return resultData; } - - /** - * 查询存货 - * - * @param materialCodeList - * @param warehouseId - * @throws ChanjetApiException - */ @Transactional(rollbackFor = Exception.class) public List queryStock(List materialCodeList, Long warehouseId) throws ChanjetApiException { List dataList = null; @@ -972,6 +969,47 @@ public class ChanjetSchedule { return dataList; } + + /** + * 查询存货 + * + * @throws ChanjetApiException + */ + @Transactional(rollbackFor = Exception.class) + public void queryStock() throws ChanjetApiException { + List dataList = null; + // 设置为“否”,关闭所有与用友通信的接口;为“是”,打开所有与用友通信的接口 + if(getSystemParameters()) { + + List materialDOS = materialMapper.selectList(); + List materialCodeList = new ArrayList<>(); + materialDOS.forEach(mo->{ + if(!materialCodeList.contains(mo.getCode())){ + materialCodeList.add(mo.getCode()); + } + }); + CommonResult> result = chanjetSpi.invokeRetList(QUERY_CURRENT_STOCK, new QueryCurrentStockReqVO(new QueryCurrentStockReqVO.QueryCurrentStockParamVO(materialCodeList)), QueryCurrentStockResVO.class); + if (!result.isSuccess()) { + throw exception(CALL_API_ERROR); + } + List insertList = new ArrayList<>(); + List updateList = new ArrayList<>(); + dataList = result.getData(); + if(dataList == null) dataList = new ArrayList<>(16); + dataList.forEach(ro->{ + TplusLastestStockDO tplusLastestStockDO = tplusLastestStockMapper.selectOne(TplusLastestStockDO::getWarehouseCode,ro.getWarehouseCode(),TplusLastestStockDO::getInventoryCode,ro.getInventoryCode()); + if(tplusLastestStockDO== null){ + insertList.add(BeanUtils.toBean(ro,TplusLastestStockDO.class).setId(null)); + }else{ + updateList.add(BeanUtils.toBean(ro,TplusLastestStockDO.class).setId(tplusLastestStockDO.getId())); + } + }); + if(!CollUtil.isNotEmpty(insertList)) tplusLastestStockMapper.insertBatch(insertList); + if(!CollUtil.isNotEmpty(updateList)) tplusLastestStockMapper.updateBatch(updateList); + } + + } + /** * 查询存货 * diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/tpluslasteststock/TplusLastestStockService.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/tpluslasteststock/TplusLastestStockService.java new file mode 100644 index 00000000..87777a79 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/tpluslasteststock/TplusLastestStockService.java @@ -0,0 +1,55 @@ +package com.chanko.yunxi.mes.module.biz.service.tpluslasteststock; + +import java.util.*; +import javax.validation.*; +import com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.tpluslasteststock.TplusLastestStockDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; + +/** + * 用友Tplus最新库存 Service 接口 + * + * @author 管理员 + */ +public interface TplusLastestStockService { + + /** + * 创建用友Tplus最新库存 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createTplusLastestStock(@Valid TplusLastestStockSaveReqVO createReqVO); + + /** + * 更新用友Tplus最新库存 + * + * @param updateReqVO 更新信息 + */ + void updateTplusLastestStock(@Valid TplusLastestStockSaveReqVO updateReqVO); + + /** + * 删除用友Tplus最新库存 + * + * @param id 编号 + */ + void deleteTplusLastestStock(Long id); + + /** + * 获得用友Tplus最新库存 + * + * @param id 编号 + * @return 用友Tplus最新库存 + */ + TplusLastestStockDO getTplusLastestStock(Long id); + + /** + * 获得用友Tplus最新库存分页 + * + * @param pageReqVO 分页查询 + * @return 用友Tplus最新库存分页 + */ + PageResult getTplusLastestStockPage(TplusLastestStockPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/tpluslasteststock/TplusLastestStockServiceImpl.java b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/tpluslasteststock/TplusLastestStockServiceImpl.java new file mode 100644 index 00000000..8980d6f9 --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/java/com/chanko/yunxi/mes/module/biz/service/tpluslasteststock/TplusLastestStockServiceImpl.java @@ -0,0 +1,74 @@ +package com.chanko.yunxi.mes.module.biz.service.tpluslasteststock; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import com.chanko.yunxi.mes.module.biz.controller.admin.tpluslasteststock.vo.*; +import com.chanko.yunxi.mes.module.biz.dal.dataobject.tpluslasteststock.TplusLastestStockDO; +import com.chanko.yunxi.mes.framework.common.pojo.PageResult; +import com.chanko.yunxi.mes.framework.common.pojo.PageParam; +import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; + +import com.chanko.yunxi.mes.module.biz.dal.mysql.tpluslasteststock.TplusLastestStockMapper; + +import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.chanko.yunxi.mes.module.biz.enums.ErrorCodeConstants.*; + +/** + * 用友Tplus最新库存 Service 实现类 + * + * @author 管理员 + */ +@Service +@Validated +public class TplusLastestStockServiceImpl implements TplusLastestStockService { + + @Resource + private TplusLastestStockMapper tplusLastestStockMapper; + + @Override + public Long createTplusLastestStock(TplusLastestStockSaveReqVO createReqVO) { + // 插入 + TplusLastestStockDO tplusLastestStock = BeanUtils.toBean(createReqVO, TplusLastestStockDO.class); + tplusLastestStockMapper.insert(tplusLastestStock); + // 返回 + return tplusLastestStock.getId(); + } + + @Override + public void updateTplusLastestStock(TplusLastestStockSaveReqVO updateReqVO) { + // 校验存在 + validateTplusLastestStockExists(updateReqVO.getId()); + // 更新 + TplusLastestStockDO updateObj = BeanUtils.toBean(updateReqVO, TplusLastestStockDO.class); + tplusLastestStockMapper.updateById(updateObj); + } + + @Override + public void deleteTplusLastestStock(Long id) { + // 校验存在 + validateTplusLastestStockExists(id); + // 删除 + tplusLastestStockMapper.deleteById(id); + } + + private void validateTplusLastestStockExists(Long id) { + if (tplusLastestStockMapper.selectById(id) == null) { + throw exception(TPLUS_LASTEST_STOCK_NOT_EXISTS); + } + } + + @Override + public TplusLastestStockDO getTplusLastestStock(Long id) { + return tplusLastestStockMapper.selectById(id); + } + + @Override + public PageResult getTplusLastestStockPage(TplusLastestStockPageReqVO pageReqVO) { + return tplusLastestStockMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/mes-module-majoys/mes-module-majoys-biz/src/main/resources/mapper/tpluslasteststock/TplusLastestStockMapper.xml b/mes-module-majoys/mes-module-majoys-biz/src/main/resources/mapper/tpluslasteststock/TplusLastestStockMapper.xml new file mode 100644 index 00000000..0feec1cc --- /dev/null +++ b/mes-module-majoys/mes-module-majoys-biz/src/main/resources/mapper/tpluslasteststock/TplusLastestStockMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file