From 8bf2a96f15dcedea17fd6d8113a9b945c1230d2e Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Sat, 11 May 2024 17:53:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8E=82=E4=BF=A1=E6=81=AF:=20=20=20?= =?UTF-8?q?=E8=A7=84=E6=A0=BC=E7=AE=A1=E7=90=86=20=20=20=E6=89=93=E5=8C=85?= =?UTF-8?q?=E7=BA=BF=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/system/api/dept/DeptApi.java | 16 +++- .../system/api/dept/dto/DeptRespDTO.java | 3 + .../module/system/api/dept/DeptApiImpl.java | 33 +++++++- .../admin/dept/vo/dept/DeptRespVO.java | 3 + .../admin/dept/vo/dept/DeptSaveReqVO.java | 3 + .../system/service/dept/DeptService.java | 2 + .../system/service/dept/DeptServiceImpl.java | 6 ++ .../enums/ErrorCodeConstants.java | 7 ++ .../factoryinfo/FactoryInfoController.java | 10 +++ .../factoryinfo/vo/FactoryInfoSaveReqVO.java | 2 +- .../factoryinfo/vo/FactorySimpleRespVO.java | 20 +++++ .../admin/packageInfo/PackageController.java | 72 ++++++++++++++++ .../packageInfo/vo/PackagePageReqVO.java | 39 +++++++++ .../admin/packageInfo/vo/PackageRespVO.java | 50 +++++++++++ .../packageInfo/vo/PackageSaveReqVO.java | 35 ++++++++ .../controller/admin/size/SizeController.java | 82 +++++++++++++++++++ .../admin/size/vo/SizePageReqVO.java | 27 ++++++ .../controller/admin/size/vo/SizeRespVO.java | 27 ++++++ .../admin/size/vo/SizeSaveReqVO.java | 19 +++++ .../dataobject/factoryinfo/FactoryInfoDO.java | 8 -- .../dal/dataobject/packageInfo/PackageDO.java | 51 ++++++++++++ .../dal/dataobject/size/SizeDO.java | 32 ++++++++ .../mysql/factoryinfo/FactoryInfoMapper.java | 2 +- .../dal/mysql/packageInfo/PackageMapper.java | 20 +++++ .../dal/mysql/size/SizeMapper.java | 25 ++++++ .../factoryinfo/FactoryInfoService.java | 6 ++ .../factoryinfo/FactoryInfoServiceImpl.java | 51 ++++++++++-- .../service/packageInfo/PackageService.java | 55 +++++++++++++ .../packageInfo/PackageServiceImpl.java | 76 +++++++++++++++++ .../service/size/SizeService.java | 61 ++++++++++++++ .../service/size/SizeServiceImpl.java | 80 ++++++++++++++++++ .../mapper/factorydata/FactoryDataMapper.xml | 2 +- .../mapper/packageInfo/PackageMapper.xml | 40 +++++++++ 33 files changed, 947 insertions(+), 18 deletions(-) create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactorySimpleRespVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/PackageController.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackagePageReqVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageRespVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageSaveReqVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/SizeController.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizePageReqVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeRespVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeSaveReqVO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/packageInfo/PackageDO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/size/SizeDO.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/packageInfo/PackageMapper.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/size/SizeMapper.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageService.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageServiceImpl.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeService.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeServiceImpl.java create mode 100644 zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/packageInfo/PackageMapper.xml diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java index ef3dc5cb..5e1a936a 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApi.java @@ -49,9 +49,23 @@ public interface DeptApi { CommonResult> getDeptList(); @PostMapping(PREFIX + "/create") - @Operation(summary = "获取所有部门信息") + @Operation(summary = "创建部门") CommonResult createDept(@RequestBody DeptRespDTO deptRespDTO); + @PostMapping(PREFIX + "/update") + @Operation(summary = "修改部门信息") + void updateDept(@RequestBody DeptRespDTO deptRespDTO); + + @PostMapping(PREFIX + "/delete") + @Operation(summary = "删除部门信息") + @Parameter(name = "factoryId", description = "工厂编号", example = "100001", required = true) + void deleteDept(@RequestParam("factoryId") Long factoryId); + + @PostMapping(PREFIX + "/getByFactoryId") + @Operation(summary = "根据工厂ID获得部门信息") + @Parameter(name = "factoryId", description = "工厂编号", example = "100001", required = true) + CommonResult getDeptByFactoryId(@RequestParam("factoryId") Long factoryId); + /** * 获得指定编号的部门 Map * diff --git a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java index 27ad7fd4..30ea8ff6 100644 --- a/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java +++ b/yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dept/dto/DeptRespDTO.java @@ -22,6 +22,9 @@ public class DeptRespDTO { @Schema(description = "负责人的用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private Long leaderUserId; + @Schema(description = "工厂编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long factoryId; + @Schema(description = "部门标识", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") private String flag; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java index 89353dfd..8f3dfef1 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dept/DeptApiImpl.java @@ -67,7 +67,38 @@ public class DeptApiImpl implements DeptApi { DeptSaveReqVO deptSaveReqVO = BeanUtils.toBean(deptRespDTO, DeptSaveReqVO.class); - return null; + return success(deptService.createDept(deptSaveReqVO)); } + @Override + public void updateDept(DeptRespDTO deptRespDTO) { + + DeptDO deptDO = deptService.getDeptByFactoryId(deptRespDTO.getFactoryId()); + + if (deptDO != null) { + + DeptSaveReqVO deptSaveReqVO = BeanUtils.toBean(deptDO, DeptSaveReqVO.class); + deptSaveReqVO.setLeaderUserId(deptRespDTO.getLeaderUserId()); + deptSaveReqVO.setName(deptRespDTO.getName()); + + deptService.updateDept(deptSaveReqVO); + } + } + + @Override + public void deleteDept(Long factoryId) { + + DeptDO deptDO = deptService.getDeptByFactoryId(factoryId); + if (deptDO != null) { + + deptService.deleteDept(deptDO.getId()); + } + } + + @Override + public CommonResult getDeptByFactoryId(Long factoryId) { + + DeptDO deptDO = deptService.getDeptByFactoryId(factoryId); + return success(BeanUtils.toBean(deptDO, DeptRespDTO.class)); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java index 777cb75d..45e66e83 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptRespVO.java @@ -24,6 +24,9 @@ public class DeptRespVO { @Schema(description = "负责人的用户编号", example = "2048") private Long leaderUserId; + @Schema(description = "工厂编号", example = "2048") + private Long factoryId; + @Schema(description = "联系电话", example = "15601691000") private String phone; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java index fb9f2984..a5859c0b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/dept/DeptSaveReqVO.java @@ -32,6 +32,9 @@ public class DeptSaveReqVO { @Schema(description = "负责人的用户编号", example = "2048") private Long leaderUserId; + @Schema(description = "工厂编号", example = "1") + private Long factoryId; + @Schema(description = "联系电话", example = "15601691000") @Size(max = 11, message = "联系电话长度不能超过11个字符") private String phone; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java index 7fdbc5d9..a229813d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java @@ -103,4 +103,6 @@ public interface DeptService { List getDeptByLeaderId(Long leaderUserId); List getDeptTree(); + + DeptDO getDeptByFactoryId(Long factoryId); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java index 58d40585..a3e429ee 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java @@ -278,4 +278,10 @@ public class DeptServiceImpl implements DeptService { return deptMapper.selectTree(); } + + @Override + public DeptDO getDeptByFactoryId(Long factoryId) { + + return deptMapper.selectOne(DeptDO::getFactoryId, factoryId); + } } diff --git a/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java b/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java index 4c242517..aa44f4fc 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java +++ b/zn-module-smartfactory/zn-module-smartfactory-api/src/main/java/cn/iocoder/yudao/module/smartfactory/enums/ErrorCodeConstants.java @@ -12,4 +12,11 @@ public interface ErrorCodeConstants { ErrorCode FACTORY_INFO_NOT_EXISTS = new ErrorCode(1_000_000_001, "工厂信息不存在"); ErrorCode CAMERA_DEVICE_NOT_EXISTS = new ErrorCode(1_000_000_002, "监控摄像头不存在"); + ErrorCode FACTOYRY_EXISTS_STAFF = new ErrorCode(1_000_000_003, "工厂下存在员工,不能删除工厂"); + + ErrorCode SIZE_NOT_EXISTS = new ErrorCode(1_000_002_001, "规格不存在"); + + ErrorCode PACKAGE_NOT_EXISTS = new ErrorCode(1_000_001_001, "打包线信息不存在"); + + } diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java index cb718dab..3a2f4eb0 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/FactoryInfoController.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoPageReqVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoRespVO; import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactoryInfoSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo.FactorySimpleRespVO; import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.service.factoryinfo.FactoryInfoService; import io.swagger.v3.oas.annotations.Operation; @@ -69,6 +70,15 @@ public class FactoryInfoController { return success(factoryInfo); } + @GetMapping("/simple-list") + @Operation(summary = "获得工厂列表 | 用于前端下拉框") + @PreAuthorize("@ss.hasPermission('smartfactory:factory-info:query')") + public CommonResult> getFactoryList() { + + List factoryInfo = factoryInfoService.getFactoryListByType(); + return success(BeanUtils.toBean(factoryInfo, FactorySimpleRespVO.class)); + } + @GetMapping("/page") @Operation(summary = "获得工厂信息分页") @PreAuthorize("@ss.hasPermission('smartfactory:factory-info:query')") diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryInfoSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryInfoSaveReqVO.java index 08251bdf..3862a101 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryInfoSaveReqVO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactoryInfoSaveReqVO.java @@ -39,7 +39,7 @@ public class FactoryInfoSaveReqVO { @Schema(description = "区县id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22761") @NotNull(message = "区县id不能为空") - private Long districtId; + private Long adCode; @Schema(description = "省名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "江西省") @NotEmpty(message = "省名称不能为空") diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactorySimpleRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactorySimpleRespVO.java new file mode 100644 index 00000000..7a7f4b40 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/factoryinfo/vo/FactorySimpleRespVO.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.factoryinfo.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 工厂信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class FactorySimpleRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28794") + private Long id; + + @Schema(description = "工厂名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "江西省南昌市第一工厂") + private String name; + + @Schema(description = "工厂简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "第一工厂") + private String shortName; +} diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/PackageController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/PackageController.java new file mode 100644 index 00000000..46c8fb35 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/PackageController.java @@ -0,0 +1,72 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackagePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageRespVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.packageInfo.PackageDO; +import cn.iocoder.yudao.module.smartfactory.service.packageInfo.PackageService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 打包线") +@RestController +@RequestMapping("/smartfactory/package") +@Validated +public class PackageController { + + @Resource + private PackageService packageService; + + @PostMapping("/create") + @Operation(summary = "创建打包线") + @PreAuthorize("@ss.hasPermission('smartfactory:package:create')") + public CommonResult createPackage(@Valid @RequestBody PackageSaveReqVO createReqVO) { + return success(packageService.createPackage(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新打包线") + @PreAuthorize("@ss.hasPermission('smartfactory:package:update')") + public CommonResult updatePackage(@Valid @RequestBody PackageSaveReqVO updateReqVO) { + packageService.updatePackage(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除打包线") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('smartfactory:package:delete')") + public CommonResult deletePackage(@RequestParam("id") Long id) { + packageService.deletePackage(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得打包线") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('smartfactory:package:query')") + public CommonResult getPackage(@RequestParam("id") Long id) { + PackageDO packageDO = packageService.getPackage(id); + return success(BeanUtils.toBean(packageDO, PackageRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得打包线分页") + @PreAuthorize("@ss.hasPermission('smartfactory:package:query')") + public CommonResult> getPackagePage(@Valid PackagePageReqVO pageReqVO) { + + return success(packageService.getPackagePage(pageReqVO)); + } +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackagePageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackagePageReqVO.java new file mode 100644 index 00000000..a347ed72 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackagePageReqVO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 打包线分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PackagePageReqVO extends PageParam { + + @Schema(description = "工厂id", example = "10000078") + private Long factoryId; + + @Schema(description = "规格id", example = "100") + private Long sizeId; + + @Schema(description = "规格片数", example = "3") + private Integer sizePieces; + + @Schema(description = "打包线名称", example = "1线") + private String name; + + @Schema(description = "设备名称", example = "芋艿") + private String deviceName; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageRespVO.java new file mode 100644 index 00000000..15732d5f --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageRespVO.java @@ -0,0 +1,50 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 打包线 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PackageRespVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + @ExcelProperty("主键id") + private Long id; + + @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000078") + @ExcelProperty("工厂id") + private Long factoryId; + + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "新景象") + @ExcelProperty("工厂名称") + private Long factoryName; + + @Schema(description = "规格id", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + @ExcelProperty("规格id") + private Long sizeId; + + @Schema(description = "规格名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "300*300") + @ExcelProperty("规格名称") + private Long sizeName; + + @Schema(description = "规格片数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + @ExcelProperty("规格片数") + private Integer sizePieces; + + @Schema(description = "打包线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1线") + @ExcelProperty("打包线名称") + private String name; + + @Schema(description = "设备名称", example = "芋艿") + @ExcelProperty("设备名称") + private String deviceName; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageSaveReqVO.java new file mode 100644 index 00000000..46396797 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/packageInfo/vo/PackageSaveReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 打包线新增/修改 Request VO") +@Data +public class PackageSaveReqVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") + private Long id; + + @Schema(description = "工厂id", requiredMode = Schema.RequiredMode.REQUIRED, example = "10000078") + @NotNull(message = "工厂id不能为空") + private Long factoryId; + + @Schema(description = "规格id", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") + @NotNull(message = "规格id不能为空") + private Long sizeId; + + @Schema(description = "规格片数", requiredMode = Schema.RequiredMode.REQUIRED, example = "3") + @NotNull(message = "规格片数不能为空") + private Integer sizePieces; + + @Schema(description = "打包线名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "1线") + @NotEmpty(message = "打包线名称不能为空") + private String name; + + @Schema(description = "设备名称", example = "芋艿") + private String deviceName; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/SizeController.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/SizeController.java new file mode 100644 index 00000000..0345e542 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/SizeController.java @@ -0,0 +1,82 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.size; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizeRespVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizeSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.size.SizeDO; +import cn.iocoder.yudao.module.smartfactory.service.size.SizeService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 规格") +@RestController +@RequestMapping("/smartfactory/size") +@Validated +public class SizeController { + + @Resource + private SizeService sizeService; + + @PostMapping("/create") + @Operation(summary = "创建规格") + @PreAuthorize("@ss.hasPermission('smartfactory:size:create')") + public CommonResult createSize(@Valid @RequestBody SizeSaveReqVO createReqVO) { + return success(sizeService.createSize(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新规格") + @PreAuthorize("@ss.hasPermission('smartfactory:size:update')") + public CommonResult updateSize(@Valid @RequestBody SizeSaveReqVO updateReqVO) { + sizeService.updateSize(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除规格") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('smartfactory:size:delete')") + public CommonResult deleteSize(@RequestParam("id") Long id) { + sizeService.deleteSize(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得规格") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('smartfactory:size:query')") + public CommonResult getSize(@RequestParam("id") Long id) { + SizeDO size = sizeService.getSize(id); + return success(BeanUtils.toBean(size, SizeRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得规格分页") + @PreAuthorize("@ss.hasPermission('smartfactory:size:query')") + public CommonResult> getSizePage(@Valid SizePageReqVO pageReqVO) { + PageResult pageResult = sizeService.getSizePage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SizeRespVO.class)); + } + + @GetMapping("/simple-list") + @Operation(summary = "获得规格列表 | 用于前端下拉框") + @PreAuthorize("@ss.hasPermission('smartfactory:size:query')") + public CommonResult> getSize() { + + List sizes = sizeService.getListSize(); + return success(BeanUtils.toBean(sizes, SizeRespVO.class)); + } +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizePageReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizePageReqVO.java new file mode 100644 index 00000000..564cc724 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizePageReqVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 规格分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class SizePageReqVO extends PageParam { + + @Schema(description = "规格名称", example = "300*300") + private String name; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeRespVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeRespVO.java new file mode 100644 index 00000000..6a4a9a47 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeRespVO.java @@ -0,0 +1,27 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 规格 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SizeRespVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @ExcelProperty("主键id") + private Long id; + + @Schema(description = "规格名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "300*300") + @ExcelProperty("规格名称") + private String name; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeSaveReqVO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeSaveReqVO.java new file mode 100644 index 00000000..28d6e47a --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/controller/admin/size/vo/SizeSaveReqVO.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; + +@Schema(description = "管理后台 - 规格新增/修改 Request VO") +@Data +public class SizeSaveReqVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private Long id; + + @Schema(description = "规格名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "300*300") + @NotEmpty(message = "规格名称不能为空") + private String name; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factoryinfo/FactoryInfoDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factoryinfo/FactoryInfoDO.java index b9346fd6..05c3a954 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factoryinfo/FactoryInfoDO.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/factoryinfo/FactoryInfoDO.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo; import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; -import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -108,11 +107,4 @@ public class FactoryInfoDO extends BaseDO { */ private Integer status; - public void setId(Long id) { - //由于 直接在数据库中改了 id 所以这里要加一层判断 - if (id == 1L){ - id = 10000078L; - } - this.id = id; - } } \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/packageInfo/PackageDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/packageInfo/PackageDO.java new file mode 100644 index 00000000..1e5a2dea --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/packageInfo/PackageDO.java @@ -0,0 +1,51 @@ +package cn.iocoder.yudao.module.smartfactory.dal.dataobject.packageInfo; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * 打包线 DO + * + * @author 符溶馨 + */ +@TableName("sf_package") +@KeySequence("sf_package_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PackageDO extends BaseDO { + + /** + * 主键id + */ + @TableId + private Long id; + /** + * 工厂id + */ + private Long factoryId; + /** + * 规格id + */ + private Long sizeId; + /** + * 规格片数 + */ + private Integer sizePieces; + /** + * 打包线名称 + */ + private String name; + /** + * 设备名称 + */ + private String deviceName; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/size/SizeDO.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/size/SizeDO.java new file mode 100644 index 00000000..633b3396 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/dataobject/size/SizeDO.java @@ -0,0 +1,32 @@ +package cn.iocoder.yudao.module.smartfactory.dal.dataobject.size; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +/** + * 规格 DO + * + * @author 符溶馨 + */ +@TableName("sf_size") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SizeDO extends BaseDO { + + /** + * 主键id + */ + @TableId + private Long id; + /** + * 规格名称 + */ + private String name; + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java index 8cf342f3..12870ac0 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/factoryinfo/FactoryInfoMapper.java @@ -26,7 +26,7 @@ public interface FactoryInfoMapper extends BaseMapperX { .likeIfPresent(FactoryInfoDO::getType, reqVO.getType()) .eqIfPresent(FactoryInfoDO::getStatus, reqVO.getStatus()) .betweenIfPresent(FactoryInfoDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(FactoryInfoDO::getSort)); + .orderByAsc(FactoryInfoDO::getSort)); } /** diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/packageInfo/PackageMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/packageInfo/PackageMapper.java new file mode 100644 index 00000000..3d11edac --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/packageInfo/PackageMapper.java @@ -0,0 +1,20 @@ +package cn.iocoder.yudao.module.smartfactory.dal.mysql.packageInfo; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackagePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageRespVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.packageInfo.PackageDO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 打包线 Mapper + * + * @author 符溶馨 + */ +@Mapper +public interface PackageMapper extends BaseMapperX { + + IPage selectPackagePage(@Param("page") IPage mpPage, @Param("reqVO") PackagePageReqVO pageReqVO); +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/size/SizeMapper.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/size/SizeMapper.java new file mode 100644 index 00000000..e01772b7 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/dal/mysql/size/SizeMapper.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.smartfactory.dal.mysql.size; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizePageReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.size.SizeDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 规格 Mapper + * + * @author 符溶馨 + */ +@Mapper +public interface SizeMapper extends BaseMapperX { + + default PageResult selectPage(SizePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(SizeDO::getName, reqVO.getName()) + .betweenIfPresent(SizeDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SizeDO::getId)); + } + +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java index c3a53f15..729e7e19 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoService.java @@ -47,6 +47,12 @@ public interface FactoryInfoService { */ FactoryInfoDO getFactoryInfo(Long id); + /** + * 获得类型为工厂的工厂信息列表 + * @return 工厂列表 + */ + List getFactoryListByType(); + /** * 获得工厂信息分页 * diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java index e3427e1a..7edc57ac 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/factoryinfo/FactoryInfoServiceImpl.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.smartfactory.service.factoryinfo; +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.ip.core.Area; import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; @@ -12,18 +14,19 @@ import cn.iocoder.yudao.module.smartfactory.controller.admin.screendata.factory. import cn.iocoder.yudao.module.smartfactory.dal.dataobject.factoryinfo.FactoryInfoDO; import cn.iocoder.yudao.module.smartfactory.dal.mysql.factoryinfo.FactoryInfoMapper; import cn.iocoder.yudao.module.system.api.dept.DeptApi; +import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO; +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.FACTORY_INFO_NOT_EXISTS; +import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.FACTOYRY_EXISTS_STAFF; /** * 工厂信息 Service 实现类 @@ -40,6 +43,9 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { @Resource private DeptApi deptApi; + @Resource + private AdminUserApi userApi; + @Override public Long createFactoryInfo(FactoryInfoSaveReqVO createReqVO) { // 插入 @@ -47,7 +53,13 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { factoryInfoMapper.insert(factoryInfo); //同步插入对应 生产部的下级部门 - + DeptRespDTO deptRespDTO = new DeptRespDTO(); + deptRespDTO.setFactoryId(factoryInfo.getId()); + deptRespDTO.setName(createReqVO.getShortName()); + deptRespDTO.setParentId(130L); //这里设置上级部门为 生产部 + deptRespDTO.setLeaderUserId(createReqVO.getLeaderUserId()); + deptRespDTO.setStatus(CommonStatusEnum.ENABLE.getStatus()); + deptApi.createDept(deptRespDTO); // 返回 return factoryInfo.getId(); @@ -60,14 +72,36 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { // 更新 FactoryInfoDO updateObj = BeanUtils.toBean(updateReqVO, FactoryInfoDO.class); factoryInfoMapper.updateById(updateObj); + + //同步更新 部门信息 + DeptRespDTO deptRespDTO = new DeptRespDTO(); + deptRespDTO.setName(updateReqVO.getShortName()); + deptRespDTO.setLeaderUserId(updateReqVO.getLeaderUserId()); + deptRespDTO.setFactoryId(updateReqVO.getId()); + deptApi.updateDept(deptRespDTO); } @Override public void deleteFactoryInfo(Long id) { // 校验存在 validateFactoryInfoExists(id); + + //校验工厂下是否存在 员工 + DeptRespDTO deptRespDTO = deptApi.getDeptByFactoryId(id).getCheckedData(); + + List deptId = new ArrayList<>(); + deptId.add(deptRespDTO.getId()); + List userRespDTOS = userApi.getUserListByDeptIds(deptId).getCheckedData(); + + if (userRespDTOS != null && !userRespDTOS.isEmpty()) { + throw exception(FACTOYRY_EXISTS_STAFF); + } + // 删除 factoryInfoMapper.deleteById(id); + + //同步删除部门 + deptApi.deleteDept(id); } private void validateFactoryInfoExists(Long id) { @@ -78,9 +112,16 @@ public class FactoryInfoServiceImpl implements FactoryInfoService { @Override public FactoryInfoDO getFactoryInfo(Long id) { + return factoryInfoMapper.selectById(id); } + @Override + public List getFactoryListByType() { + + return factoryInfoMapper.selectList(FactoryInfoDO::getType, 3); + } + @Override public PageResult getFactoryInfoPage(FactoryInfoPageReqVO pageReqVO) { return factoryInfoMapper.selectPage(pageReqVO); diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageService.java new file mode 100644 index 00000000..de237f36 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.smartfactory.service.packageInfo; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackagePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageRespVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.packageInfo.PackageDO; + +import javax.validation.Valid; + +/** + * 打包线 Service 接口 + * + * @author 符溶馨 + */ +public interface PackageService { + + /** + * 创建打包线 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPackage(@Valid PackageSaveReqVO createReqVO); + + /** + * 更新打包线 + * + * @param updateReqVO 更新信息 + */ + void updatePackage(@Valid PackageSaveReqVO updateReqVO); + + /** + * 删除打包线 + * + * @param id 编号 + */ + void deletePackage(Long id); + + /** + * 获得打包线 + * + * @param id 编号 + * @return 打包线 + */ + PackageDO getPackage(Long id); + + /** + * 获得打包线分页 + * + * @param pageReqVO 分页查询 + * @return 打包线分页 + */ + PageResult getPackagePage(PackagePageReqVO pageReqVO); +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageServiceImpl.java new file mode 100644 index 00000000..2aedeef0 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/packageInfo/PackageServiceImpl.java @@ -0,0 +1,76 @@ +package cn.iocoder.yudao.module.smartfactory.service.packageInfo; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackagePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageRespVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.packageInfo.vo.PackageSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.packageInfo.PackageDO; +import cn.iocoder.yudao.module.smartfactory.dal.mysql.packageInfo.PackageMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.PACKAGE_NOT_EXISTS; + +/** + * 打包线 Service 实现类 + * + * @author 符溶馨 + */ +@Service +@Validated +public class PackageServiceImpl implements PackageService { + + @Resource + private PackageMapper packageMapper; + + @Override + public Long createPackage(PackageSaveReqVO createReqVO) { + // 插入 + PackageDO packDO = BeanUtils.toBean(createReqVO, PackageDO.class); + packageMapper.insert(packDO); + // 返回 + return packDO.getId(); + } + + @Override + public void updatePackage(PackageSaveReqVO updateReqVO) { + // 校验存在 + validatePackageExists(updateReqVO.getId()); + // 更新 + PackageDO updateObj = BeanUtils.toBean(updateReqVO, PackageDO.class); + packageMapper.updateById(updateObj); + } + + @Override + public void deletePackage(Long id) { + // 校验存在 + validatePackageExists(id); + // 删除 + packageMapper.deleteById(id); + } + + private void validatePackageExists(Long id) { + if (packageMapper.selectById(id) == null) { + throw exception(PACKAGE_NOT_EXISTS); + } + } + + @Override + public PackageDO getPackage(Long id) { + return packageMapper.selectById(id); + } + + @Override + public PageResult getPackagePage(PackagePageReqVO pageReqVO) { + + IPage mpPage = MyBatisUtils.buildPage(pageReqVO); + IPage page = packageMapper.selectPackagePage(mpPage, pageReqVO); + return new PageResult<>(page.getRecords(), page.getTotal()); + } +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeService.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeService.java new file mode 100644 index 00000000..211fa4c8 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeService.java @@ -0,0 +1,61 @@ +package cn.iocoder.yudao.module.smartfactory.service.size; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizeSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.size.SizeDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 规格 Service 接口 + * + * @author 符溶馨 + */ +public interface SizeService { + + /** + * 创建规格 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createSize(@Valid SizeSaveReqVO createReqVO); + + /** + * 更新规格 + * + * @param updateReqVO 更新信息 + */ + void updateSize(@Valid SizeSaveReqVO updateReqVO); + + /** + * 删除规格 + * + * @param id 编号 + */ + void deleteSize(Long id); + + /** + * 获得规格 + * + * @param id 编号 + * @return 规格 + */ + SizeDO getSize(Long id); + + /** + * 获得规格分页 + * + * @param pageReqVO 分页查询 + * @return 规格分页 + */ + PageResult getSizePage(SizePageReqVO pageReqVO); + + /** + * 获得规格列表 + * @return 规格列表 + */ + List getListSize(); +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeServiceImpl.java b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeServiceImpl.java new file mode 100644 index 00000000..b93b67e6 --- /dev/null +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/java/cn/iocoder/yudao/module/smartfactory/service/size/SizeServiceImpl.java @@ -0,0 +1,80 @@ +package cn.iocoder.yudao.module.smartfactory.service.size; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizePageReqVO; +import cn.iocoder.yudao.module.smartfactory.controller.admin.size.vo.SizeSaveReqVO; +import cn.iocoder.yudao.module.smartfactory.dal.dataobject.size.SizeDO; +import cn.iocoder.yudao.module.smartfactory.dal.mysql.size.SizeMapper; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +import java.util.List; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.smartfactory.enums.ErrorCodeConstants.SIZE_NOT_EXISTS; + +/** + * 规格 Service 实现类 + * + * @author 符溶馨 + */ +@Service +@Validated +public class SizeServiceImpl implements SizeService { + + @Resource + private SizeMapper sizeMapper; + + @Override + public Long createSize(SizeSaveReqVO createReqVO) { + // 插入 + SizeDO size = BeanUtils.toBean(createReqVO, SizeDO.class); + sizeMapper.insert(size); + // 返回 + return size.getId(); + } + + @Override + public void updateSize(SizeSaveReqVO updateReqVO) { + // 校验存在 + validateSizeExists(updateReqVO.getId()); + // 更新 + SizeDO updateObj = BeanUtils.toBean(updateReqVO, SizeDO.class); + sizeMapper.updateById(updateObj); + } + + @Override + public void deleteSize(Long id) { + // 校验存在 + validateSizeExists(id); + // 删除 + sizeMapper.deleteById(id); + } + + private void validateSizeExists(Long id) { + if (sizeMapper.selectById(id) == null) { + throw exception(SIZE_NOT_EXISTS); + } + } + + @Override + public SizeDO getSize(Long id) { + + return sizeMapper.selectById(id); + } + + @Override + public PageResult getSizePage(SizePageReqVO pageReqVO) { + + return sizeMapper.selectPage(pageReqVO); + } + + @Override + public List getListSize() { + + return sizeMapper.selectList(); + } +} \ No newline at end of file diff --git a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorydata/FactoryDataMapper.xml b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorydata/FactoryDataMapper.xml index 5ab8182c..735bdb24 100644 --- a/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorydata/FactoryDataMapper.xml +++ b/zn-module-smartfactory/zn-module-smartfactory-biz/src/main/resources/mapper/factorydata/FactoryDataMapper.xml @@ -1,6 +1,6 @@ - + + + + \ No newline at end of file