diff --git a/base-server/pom.xml b/base-server/pom.xml index a4933a05..f82352da 100644 --- a/base-server/pom.xml +++ b/base-server/pom.xml @@ -40,7 +40,11 @@ zt-module-erp-server ${revision} - + + com.zt.plat + zt-module-unit-management-server + ${revision} + com.zt.plat diff --git a/pom.xml b/pom.xml index c92f4b71..39e73ac7 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,7 @@ zt-module-contract-order zt-module-erp base-server + zt-module-unit-management ${project.artifactId} diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java index a53335ba..c36bd6e0 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/base/enums/ErrorCodeConstants.java @@ -19,6 +19,7 @@ public interface ErrorCodeConstants { ErrorCode COMPANY_RELATIVITY_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在"); ErrorCode WAREHOUSE_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在"); ErrorCode FACTORY_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在"); + ErrorCode TAX_NOT_EXISTS = new ErrorCode(1_001_000_001, "示例不存在"); ErrorCode BUSINESS_RULE_NOT_EXISTS = new ErrorCode(1_027_100_001, "规则模型不存在"); diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/TaxController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/TaxController.java new file mode 100644 index 00000000..0e8ff365 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/TaxController.java @@ -0,0 +1,105 @@ +package com.zt.plat.module.base.controller.admin.base; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.module.base.controller.admin.base.vo.TaxPageReqVO; +import com.zt.plat.module.base.controller.admin.base.vo.TaxRespVO; +import com.zt.plat.module.base.controller.admin.base.vo.TaxSaveReqVO; +import com.zt.plat.module.base.dal.dataobject.base.TaxDO; +import com.zt.plat.module.base.service.base.TaxService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 税码信息") +@RestController +@RequestMapping("/base/tax") +@Validated +public class TaxController implements BusinessControllerMarker { + + + @Resource + private TaxService taxService; + + @PostMapping("/create") + @Operation(summary = "创建税码信息") + @PreAuthorize("@ss.hasPermission('base:tax:create')") + public CommonResult createTax(@Valid @RequestBody TaxSaveReqVO createReqVO) { + return success(taxService.createTax(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新税码信息") + @PreAuthorize("@ss.hasPermission('base:tax:update')") + public CommonResult updateTax(@Valid @RequestBody TaxSaveReqVO updateReqVO) { + taxService.updateTax(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除税码信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:tax:delete')") + public CommonResult deleteTax(@RequestParam("id") Long id) { + taxService.deleteTax(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除税码信息") + @PreAuthorize("@ss.hasPermission('base:tax:delete')") + public CommonResult deleteTaxList(@RequestBody BatchDeleteReqVO req) { + taxService.deleteTaxListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得税码信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:tax:query')") + public CommonResult getTax(@RequestParam("id") Long id) { + TaxDO tax = taxService.getTax(id); + return success(BeanUtils.toBean(tax, TaxRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得税码信息分页") + @PreAuthorize("@ss.hasPermission('base:tax:query')") + public CommonResult> getTaxPage(@Valid TaxPageReqVO pageReqVO) { + PageResult pageResult = taxService.getTaxPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, TaxRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出税码信息 Excel") + @PreAuthorize("@ss.hasPermission('base:tax:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportTaxExcel(@Valid TaxPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = taxService.getTaxPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "税码信息.xls", "数据", TaxRespVO.class, + BeanUtils.toBean(list, TaxRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxPageReqVO.java new file mode 100644 index 00000000..49acb7c4 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxPageReqVO.java @@ -0,0 +1,45 @@ +package com.zt.plat.module.base.controller.admin.base.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +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; + +@Schema(description = "管理后台 - 税码信息分页 Request VO") +@Data +public class TaxPageReqVO extends PageParam { + + @Schema(description = "类型(字典: SPLY_BSN_TP)", example = "2") + private String type; + + @Schema(description = "类别") + private String category; + + @Schema(description = "税码") + private String taxCoding; + + @Schema(description = "税码描述") + private String remark; + + @Schema(description = "税率") + private BigDecimal tax; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "是否启用") + private String isEnable; + + @Schema(description = "公司编码") + private String customerNumber; + + @Schema(description = "公司名称", example = "王五") + private String customerName; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxRespVO.java new file mode 100644 index 00000000..dfc4b678 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxRespVO.java @@ -0,0 +1,56 @@ +package com.zt.plat.module.base.controller.admin.base.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.math.BigDecimal; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 税码信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class TaxRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26656") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "类型(字典: SPLY_BSN_TP)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("类型(字典: SPLY_BSN_TP)") + private String type; + + @Schema(description = "类别", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("类别") + private String category; + + @Schema(description = "税码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("税码") + private String taxCoding; + + @Schema(description = "税码描述") + @ExcelProperty("税码描述") + private String remark; + + @Schema(description = "税率") + @ExcelProperty("税率") + private BigDecimal tax; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "是否启用") + @ExcelProperty("是否启用") + private String isEnable; + + @Schema(description = "公司编码") + @ExcelProperty("公司编码") + private String customerNumber; + + @Schema(description = "公司名称", example = "王五") + @ExcelProperty("公司名称") + private String customerName; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxSaveReqVO.java new file mode 100644 index 00000000..3d3ba947 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/base/vo/TaxSaveReqVO.java @@ -0,0 +1,43 @@ +package com.zt.plat.module.base.controller.admin.base.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 税码信息新增/修改 Request VO") +@Data +public class TaxSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26656") + private Long id; + + @Schema(description = "类型(字典: SPLY_BSN_TP)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "类型(字典: SPLY_BSN_TP)不能为空") + private String type; + + @Schema(description = "类别", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "类别不能为空") + private String category; + + @Schema(description = "税码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "税码不能为空") + private String taxCoding; + + @Schema(description = "税码描述") + private String remark; + + @Schema(description = "税率") + private BigDecimal tax; + + @Schema(description = "是否启用") + private String isEnable; + + @Schema(description = "公司编码") + private String customerNumber; + + @Schema(description = "公司名称", example = "王五") + private String customerName; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java index 3735ad17..86408279 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/controller/OnlyOfficeCallbackController.java @@ -39,4 +39,19 @@ public class OnlyOfficeCallbackController { response.put("error", 0); return new ResponseEntity<>(response, HttpStatus.OK); } + + /** + * 处理OnlyOffice文档编辑服务发送的回调 + */ + @PostMapping("/contract /callback/{id}") + @PermitAll + @TenantIgnore + public ResponseEntity> handleContractCallback(@RequestBody OnlyOfficeCallback callback, @PathVariable String id,@RequestParam("fileName") String fileName) { + // 处理回调逻辑 + callbackService.processContractCallback(callback,id,fileName); + // 返回必须的响应,否则OnlyOffice会显示错误 + Map response = new HashMap<>(); + response.put("error", 0); + return new ResponseEntity<>(response, HttpStatus.OK); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java index 7ba5e384..4abbe2d6 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackService.java @@ -9,4 +9,11 @@ public interface OnlyOfficeCallbackService { * @param callback 回调数据 */ void processCallback(OnlyOfficeCallback callback,String id,String fileName); + + + /** + * 处理OnlyOffice回调 + * @param callback 回调数据 + */ + void processContractCallback(OnlyOfficeCallback callback,String id,String fileName); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java index 90db08bc..14d75f9e 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java @@ -209,4 +209,159 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService } + + + + @Override + public void processContractCallback(OnlyOfficeCallback callback, String id, String fileName) { + log.info("收到OnlyOffice文档回调: {}", callback.getKey()); + log.info("回调状态: {}", callback.getStatus()); + + // 根据不同的状态处理回调 + switch (callback.getStatus()) { + case 1: + handleContractEditingStatus(callback, id,fileName); + break; + case 2: + handleContractDocumentSaved(callback, id,fileName); + break; + case 3: + handleContractSaveError(callback, id,fileName); + break; + case 4: + handleContractDocumentClosedWithoutChanges(callback, id,fileName); + break; + case 6: + handleContractForcedSave(callback, id,fileName); + break; + case 7: + handleContractForcedSaveError(callback, id,fileName); + break; + default: + log.warn("收到未知的回调状态: {}", callback.getStatus()); + } + } + + + /** + * 处理文档正在编辑的状态 + */ + private void handleContractEditingStatus(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 正在被以下用户编辑: {}", + callback.getKey(), callback.getUsers()); + + // 处理用户操作(连接或断开连接) + if (callback.getActions() != null) { + for (Action action : callback.getActions()) { + String actionType = switch (action.getType()) { + case 0 -> "断开了连接"; + case 1 -> "连接成功"; + case 2 -> "在中点击了强制保存"; + default -> "在中执行了未知操作"; + }; + log.info("用户 {} {}", action.getUserId(), actionType); + } + } + } + + /** + * 处理文档已保存的状态 + */ + private void handleContractDocumentSaved(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 已准备好保存", callback.getKey()); + saveContractDocument(callback, id,fileName); + + // 处理历史记录 + // handleHistoryChanges(callback,id); + } + + /** + * 处理保存错误的状态 + */ + private void handleContractSaveError(OnlyOfficeCallback callback, String id,String fileName) { + log.error("保存文档 {} 时出错", callback.getKey()); + // 可以在这里添加错误处理逻辑,如发送通知等 + } + + /** + * 处理文档关闭且无更改的状态 + */ + private void handleContractDocumentClosedWithoutChanges(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 已关闭,未做任何更改", callback.getKey()); + // 可以在这里添加清理资源等逻辑 + } + + /** + * 处理强制保存的状态 + */ + private void handleContractForcedSave(OnlyOfficeCallback callback, String id,String fileName) { + log.info("文档 {} 执行强制保存。类型: {}", + callback.getKey(), callback.getForceSaveType()); + saveContractDocument(callback, id,fileName); + + // 处理历史记录 + handleHistoryChanges(callback, id); + + // 如果是表单提交,处理表单数据 + if (callback.getForceSaveType() == 3 && callback.getFormsDataUrl() != null) { + handleFormSubmission(callback, id); + } + } + + + /** + * 处理强制保存错误的状态 + */ + private void handleContractForcedSaveError(OnlyOfficeCallback callback, String id,String fileName) { + log.error("文档 {} 强制保存时出错", callback.getKey()); + // 可以在这里添加错误处理逻辑 + } + + /** + * 保存文档到存储 + */ + private void saveContractDocument(OnlyOfficeCallback callback, String id,String fileName) { + if (callback.getUrl() == null) { + log.error("文件路径为空"); + return; + } + + try { + MultipartFile file = downloadFileAsMultipart(callback.getUrl()); + // 1. 验证文件是否为空 + + String directory = "模版实例"; + FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO(); + fileCreateReqDTO.setName(fileName); + fileCreateReqDTO.setContent(file.getBytes()); + fileCreateReqDTO.setType(file.getContentType()); // 使用真实的MIME类型 + fileCreateReqDTO.setDirectory(directory); // 设置文件存储目录 + if (file.getSize() <=0){ + log.error("文件大小为0"); + return; + } + // 7. 调用文件服务创建文件 + CommonResult result = fileApi.createFileWithReturn(fileCreateReqDTO); + if (result.isSuccess()) { + // 创建文件成功,处理结果 + result.getData().setContent(null); + log.info("文件创建成功,文件ID:{}", result.getData()); + // 创建文件成功,处理结果 + FileRespDTO fileRespDTO = result.getData(); + Map fileInfo = new HashMap<>(); + fileInfo.put("id",String.valueOf(fileRespDTO.getId())); + fileInfo.put("name", fileRespDTO.getName()); + fileInfo.put("directory", fileRespDTO.getDirectory()); + templateInstanceService.updateTemplateInstanceFileUrlByInstanceId(id, JSONObject.toJSONString(fileInfo)); + } else { + // 创建文件失败,处理错误 + log.error("文件创建失败,错误信息:{}", result.getMsg()); + } + log.info("文件创建结果:{}", result); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/TaxDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/TaxDO.java new file mode 100644 index 00000000..c64c7026 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/base/TaxDO.java @@ -0,0 +1,74 @@ +package com.zt.plat.module.base.dal.dataobject.base; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; +/** +* 税码信息 DO +* +* @author 后台管理-1 +*/ +@TableName("sply_tax") +@KeySequence("sply_tax_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class TaxDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 类型(字典: SPLY_BSN_TP) + */ + @TableField("TP") + private String type; + /** + * 类别 + */ + @TableField("CTGR") + private String category; + /** + * 税码 + */ + @TableField("TAX_CDG") + private String taxCoding; + /** + * 税码描述 + */ + @TableField("RMK") + private String remark; + /** + * 税率 + */ + @TableField("TAX") + private BigDecimal tax; + /** + * 是否启用 + */ + @TableField("IS_ENB") + private String isEnable; + /** + * 公司编码 + */ + @TableField("CSTM_NUM") + private String customerNumber; + /** + * 公司名称 + */ + @TableField("CSTM_NAME") + private String customerName; + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/TaxMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/TaxMapper.java new file mode 100644 index 00000000..ca0dc83a --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/mysql/base/TaxMapper.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.base.dal.mysql.base; + +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.base.dal.dataobject.base.TaxDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.base.controller.admin.base.vo.*; + +/** + * 税码信息 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface TaxMapper extends BaseMapperX { + + default PageResult selectPage(TaxPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(TaxDO::getType, reqVO.getType()) + .eqIfPresent(TaxDO::getCategory, reqVO.getCategory()) + .eqIfPresent(TaxDO::getTaxCoding, reqVO.getTaxCoding()) + .eqIfPresent(TaxDO::getRemark, reqVO.getRemark()) + .eqIfPresent(TaxDO::getTax, reqVO.getTax()) + .betweenIfPresent(TaxDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(TaxDO::getIsEnable, reqVO.getIsEnable()) + .eqIfPresent(TaxDO::getCustomerNumber, reqVO.getCustomerNumber()) + .likeIfPresent(TaxDO::getCustomerName, reqVO.getCustomerName()) + .orderByDesc(TaxDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/TaxService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/TaxService.java new file mode 100644 index 00000000..eabf8f51 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/TaxService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.base.service.base; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.base.controller.admin.base.vo.TaxPageReqVO; +import com.zt.plat.module.base.controller.admin.base.vo.TaxRespVO; +import com.zt.plat.module.base.controller.admin.base.vo.TaxSaveReqVO; +import com.zt.plat.module.base.dal.dataobject.base.TaxDO; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * 税码信息 Service 接口 + * + * @author 后台管理-1 + */ +public interface TaxService { + + /** + * 创建税码信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + TaxRespVO createTax(@Valid TaxSaveReqVO createReqVO); + + /** + * 更新税码信息 + * + * @param updateReqVO 更新信息 + */ + void updateTax(@Valid TaxSaveReqVO updateReqVO); + + /** + * 删除税码信息 + * + * @param id 编号 + */ + void deleteTax(Long id); + + /** + * 批量删除税码信息 + * + * @param ids 编号 + */ + void deleteTaxListByIds(List ids); + + /** + * 获得税码信息 + * + * @param id 编号 + * @return 税码信息 + */ + TaxDO getTax(Long id); + + /** + * 获得税码信息分页 + * + * @param pageReqVO 分页查询 + * @return 税码信息分页 + */ + PageResult getTaxPage(TaxPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/TaxServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/TaxServiceImpl.java new file mode 100644 index 00000000..09f5c031 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/base/TaxServiceImpl.java @@ -0,0 +1,89 @@ +package com.zt.plat.module.base.service.base; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.base.controller.admin.base.vo.TaxPageReqVO; +import com.zt.plat.module.base.controller.admin.base.vo.TaxRespVO; +import com.zt.plat.module.base.controller.admin.base.vo.TaxSaveReqVO; +import com.zt.plat.module.base.dal.dataobject.base.TaxDO; +import com.zt.plat.module.base.dal.mysql.base.TaxMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.TAX_NOT_EXISTS; + +/** + * 税码信息 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class TaxServiceImpl implements TaxService { + + @Resource + private TaxMapper taxMapper; + + @Override + public TaxRespVO createTax(TaxSaveReqVO createReqVO) { + // 插入 + TaxDO tax = BeanUtils.toBean(createReqVO, TaxDO.class); + taxMapper.insert(tax); + // 返回 + return BeanUtils.toBean(tax, TaxRespVO.class); + } + + @Override + public void updateTax(TaxSaveReqVO updateReqVO) { + // 校验存在 + validateTaxExists(updateReqVO.getId()); + // 更新 + TaxDO updateObj = BeanUtils.toBean(updateReqVO, TaxDO.class); + taxMapper.updateById(updateObj); + } + + @Override + public void deleteTax(Long id) { + // 校验存在 + validateTaxExists(id); + // 删除 + taxMapper.deleteById(id); + } + + @Override + public void deleteTaxListByIds(List ids) { + // 校验存在 + validateTaxExists(ids); + // 删除 + taxMapper.deleteByIds(ids); + } + + private void validateTaxExists(List ids) { + List list = taxMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(TAX_NOT_EXISTS); + } + } + + private void validateTaxExists(Long id) { + if (taxMapper.selectById(id) == null) { + throw exception(TAX_NOT_EXISTS); + } + } + + @Override + public TaxDO getTax(Long id) { + return taxMapper.selectById(id); + } + + @Override + public PageResult getTaxPage(TaxPageReqVO pageReqVO) { + return taxMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java index ec257831..8e57b3c1 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java @@ -68,4 +68,11 @@ public interface TmplInscBsnRelService { * @param tmplInscBsnRelRespVO 类 */ void getTmplInscBsnRelDetails(TmplInscBsnRelRespVO tmplInscBsnRelRespVO); + + /** + * 跟新cntt + * + * @param bsnId ,params + */ + void updateCntt(Long bsnId,String params); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java index a7a5745a..35215704 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java @@ -145,6 +145,20 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { } } + @Override + public void updateCntt(Long bsnId, String params) { + List tmplInscBsnRelDOS = tmplInscBsnRelMapper.selectList(new LambdaQueryWrapper() + .eq(TmplInscBsnRelDO::getBsnId, bsnId).orderByDesc(TmplInscBsnRelDO::getVer) + ); + if (tmplInscBsnRelDOS.isEmpty()) { + throw exception(TEMPLATE_INSTANCE_FILE_NOT_EXISTS); + } + TmplInscBsnRelDO tmplInscBsnRelDO = tmplInscBsnRelDOS.get(0); + tmplInscBsnRelDO.setCntt( params); + tmplInscBsnRelMapper.updateById(tmplInscBsnRelDO); + log.info("更新业务实例cntt字段值成功"); + } + //业务条款 private List setTmplInscItmBsnRespVOS(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { List tmplInscItmBsnRespVOS = BeanUtils.toBean(SpringUtil.getBean(TmplInscItmBsnMapper.class).selectList(new LambdaQueryWrapper() @@ -152,7 +166,7 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { ), TmplInscItmBsnRespVO.class); tmplInscItmBsnRespVOS.forEach(tmplInscItmBsnRespVO -> { tmplInscBsnRelRespVO.getInstanceItemRespVOS().forEach(instanceItemRespVO -> { - if (tmplInscItmBsnRespVO.getInscItmId().equals(instanceItemRespVO.getId())){ + if (tmplInscItmBsnRespVO.getInscItmId().equals(instanceItemRespVO.getId())) { tmplInscItmBsnRespVO.setItmName(instanceItemRespVO.getItmName()); } }); @@ -273,4 +287,6 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { log.info("删除业务实例条款值【{}】", ids); } } + + } diff --git a/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/TaxMapper.xml b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/TaxMapper.xml new file mode 100644 index 00000000..6b117653 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/resources/mapper/base/TaxMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java new file mode 100644 index 00000000..1d03d773 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/salesorder/ErrorCodeConstants.java @@ -0,0 +1,17 @@ +package com.zt.plat.module.contractorder.enums.salesorder; + +import com.zt.plat.framework.common.exception.ErrorCode; + +/** + * contract-order 错误码枚举类 + * + * contract-order 系统,使用 1-xxx-xxx-xxx 段 + * + * @author ZT + */ +public interface ErrorCodeConstants { + + // ========== 合同模块 1-027-000-000 ========== + ErrorCode SALES_ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_008_00_600, "消费订单不存在"); + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java index fef3ebe9..41ba61ea 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/contract/ContractController.java @@ -145,8 +145,8 @@ public class ContractController implements BusinessControllerMarker { @PostMapping("/submit/erp") @Operation(summary = "提交ERP") @PreAuthorize("@ss.hasPermission('base:contract:erp')") - public CommonResult> submitErp(@RequestBody List ids) { - return success(contractService.submitErp(ids)); + public CommonResult submitErp(@RequestParam("id") Long id) { + return success(contractService.submitErp(id)); } @GetMapping("/list/up-not-relation") diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java index 2980070c..339592c6 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/PurchaseOrderController.java @@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.controller.admin.purchaseorder; import com.zt.plat.module.contractorder.api.ContractApiImpl; import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,6 +20,7 @@ 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; @@ -27,11 +29,13 @@ 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.*; @@ -75,7 +79,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @DeleteMapping("/delete-list") @Parameter(name = "ids", description = "编号", required = true) @Operation(summary = "批量删除采购订单") - @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") + @PreAuthorize("@ss.hasPermission('bse:purchase-order:delete')") public CommonResult deletePurchaseOrderList(@RequestBody BatchDeleteReqVO req) { purchaseOrderService.deletePurchaseOrderListByIds(req.getIds()); return success(true); @@ -83,12 +87,12 @@ public class PurchaseOrderController implements BusinessControllerMarker { @GetMapping("/get") @Operation(summary = "获得采购订单") - @Parameter(name = "id", description = "编号", required = true, example = "1024") + @Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型采购或者是消费", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") - public CommonResult getPurchaseOrder(@RequestParam("id") Long id) { - PurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(id); + public CommonResult getPurchaseOrder(@RequestParam("id") Long id, @RequestParam(value = "splyBsnTp", required = false) String splyBsnTp) { + PurchaseOrderDO purchaseOrder = purchaseOrderService.getPurchaseOrder(id, splyBsnTp); PurchaseOrderRespVO purchaseOrderRespVO = BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class); - if (purchaseOrderRespVO == null){ + if (purchaseOrderRespVO == null) { return success(null); } purchaseOrderService.setOrderDetails(purchaseOrderRespVO); @@ -100,7 +104,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('bse:purchase-order:query')") public CommonResult> getPurchaseOrderPage(@Valid PurchaseOrderPageReqVO pageReqVO) { PageResult pageResult = purchaseOrderService.getPurchaseOrderPage(pageReqVO); - PageResult purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class); + PageResult purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, PurchaseOrderRespVO.class); purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> purchaseOrderService.setOrderDetails(purchaseOrderRespVO)); return success(purchaseOrderRespVOPageResult); } @@ -110,12 +114,12 @@ public class PurchaseOrderController implements BusinessControllerMarker { @PreAuthorize("@ss.hasPermission('bse:purchase-order:export')") @ApiAccessLog(operateType = EXPORT) public void exportPurchaseOrderExcel(@Valid PurchaseOrderPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = purchaseOrderService.getPurchaseOrderPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class, - BeanUtils.toBean(list, PurchaseOrderRespVO.class)); + BeanUtils.toBean(list, PurchaseOrderRespVO.class)); } //提交订单审核 @@ -131,7 +135,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { @Operation(summary = "批量提交订单审核") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult submitOrder(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List ids) { - System.out.println("ids:"+ids); + System.out.println("ids:" + ids); ids.forEach(id -> purchaseOrderService.submitOrder(Long.valueOf(id))); return success(true); } @@ -141,25 +145,27 @@ public class PurchaseOrderController implements BusinessControllerMarker { @Operation(summary = "推送ERP订单", description = "061')") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult submitErp061(@RequestBody @Validated @NotEmpty(message = "采购订单id不能为空") List ids) { - return success( purchaseOrderService.submitErp061(ids)); + return success(purchaseOrderService.submitErp061(ids)); } + @PostMapping("/submit-erp062") @Operation(summary = "推送ERP订单", description = "062当每次调更新接口后都需要调此接口") @PreAuthorize("@ss.hasPermission('bse:purchase-order:update')") public CommonResult submitErp062(@RequestParam @Validated @NotNull(message = "采购订单id不能为空") Long id) { - return success( purchaseOrderService.submitErp062(id)); + return success(purchaseOrderService.submitErp062(id)); } //通过订单号查询订单信息 @PostMapping("/get-order-by-order-no") @Operation(summary = "通过订单号查询订单信息", description = "通过订单号查询订单信息") - public CommonResult> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List orderNos){ + public CommonResult> getOrderByOrderNo(@RequestBody @Validated @NotEmpty(message = "采购订单不能为空") List orderNos) { return success(purchaseOrderService.getOrderByOrderNo(orderNos)); } + //根据订单id修改订单状态 @PutMapping("/update-order-status") @Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'采购订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改") - public CommonResult updateOrderStatus(@RequestBody @Validated PurchaseOrderStsReqVO req){ + public CommonResult updateOrderStatus(@RequestBody @Validated PurchaseOrderStsReqVO req) { purchaseOrderService.updateOrderStatusByIdOrOrderNo(req); return success(true); } @@ -168,26 +174,34 @@ public class PurchaseOrderController implements BusinessControllerMarker { @GetMapping("/material") @Operation(summary = "查询物料接口") public CommonResult getMaterialList(@RequestParam - @Schema(description = "采购订单号") - @Validated - @NotEmpty(message = "采购订单号不能为空") - String orderNo){ + @Schema(description = "采购订单号") + @Validated + @NotEmpty(message = "采购订单号不能为空") + String orderNo) { return purchaseOrderService.getMaterial(orderNo); } //关联订单 @PostMapping("/link-order") @Operation(summary = "关联订单") - public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req){ + public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req) { return success(purchaseOrderService.linkOrder(req)); } @PostMapping("/order-pass-reject") @Operation(summary = "订单审核") - public CommonResult orderPassReject(@RequestBody PurchaseorderReqVO reqVO){ + public CommonResult orderPassReject(@RequestBody PurchaseorderReqVO reqVO) { return success(purchaseOrderService.orderPassReject(reqVO)); } - + //根据订单id和方式获取上或下游订单 + @PostMapping("/order-by-order-id-and-type") + @Operation(summary = "根据订单id和方式获取上或下游订单") + public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { + Map map = new HashMap<>(); + map.put("unBindOrder", purchaseOrderService.getOrderByOrderIdAndType(reqVO)); + map.put("bindOrder", purchaseOrderService.getBindOrderByOrder(reqVO)); + return success(map); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java new file mode 100644 index 00000000..afc47e64 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderReqVO.java @@ -0,0 +1,19 @@ +package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import org.springframework.validation.annotation.Validated; + +@Data +@Schema(description = "上下级订单 请求 VO") +@Validated +public class DownOrUpOrderReqVO { + @Schema(description = "订单id") + private Long orderId; + @Schema(description = "订单类型") + @NotEmpty(message = "订单类型不能为空(上游 up ,下游 down)") + private String orderType; + @Schema(description = "订单号") + private String orderNo; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java new file mode 100644 index 00000000..01f8a93e --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/DownOrUpOrderRespVO.java @@ -0,0 +1,41 @@ +package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "上下游订单 响应 VO") +public class DownOrUpOrderRespVO { + /** + * 订单编号 + */ + @Schema(description = "订单编号") + private String orderNo; + /** + * 订单ID + */ + @Schema(description = "订单ID") + private String orderId; + /** + * 订单类型 + */ + @Schema(description = "订单类型") + private String orderType; + /** + * 合同名称 + */ + @Schema(description = "合同名称") + private String contractName; + /** + * 合同id + */ + @Schema(description = "合同id") + private String contractId; + /** + * 合同号 + */ + @Schema(description = "合同号") + private String contractNumber; + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java index 6bd27870..eef75678 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlPageReqVO.java @@ -156,4 +156,6 @@ public class PrchOrdDtlPageReqVO extends PageParam { @Schema(description = "金属元素编码") private String elemCdg; + @Schema(description = "订单类型") + private String splyBsnTp; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java index a9c5e28c..dc61f2de 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PrchOrdDtlSaveReqVO.java @@ -163,5 +163,7 @@ public class PrchOrdDtlSaveReqVO { @Schema(description = "金属元素编码") private String elemCdg; + @Schema(description = "税点") + private String taxRte; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java new file mode 100644 index 00000000..02cff483 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderController.java @@ -0,0 +1,124 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.module.contractorder.api.ContractApiImpl; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; +import com.zt.plat.module.contractorder.service.salesorder.SalesOrderService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + + +@Tag(name = "管理后台 - 销售订单") +@RestController +@RequestMapping("/base/sales-order") +@Validated +public class SalesOrderController implements BusinessControllerMarker { + + + @Resource + private SalesOrderService salesOrderService; + @Resource + private ContractApiImpl contractApi; + + + @PostMapping("/create") + @Operation(summary = "创建采购订单") + @PreAuthorize("@ss.hasPermission('base:sales-order:create')") + public CommonResult createSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO createReqVO) { + return success(salesOrderService.createSalesOrder(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新采购订单") + @PreAuthorize("@ss.hasPermission('base:sales-order:update')") + public CommonResult updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) { + salesOrderService.updateSalesOrder(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除采购订单") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") + public CommonResult deleteSalesOrder(@RequestParam("id") Long id) { + salesOrderService.deleteSalesOrder(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除采购订单") + @PreAuthorize("@ss.hasPermission('base:sales-order:delete')") + public CommonResult deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) { + salesOrderService.deleteSalesOrderListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得采购订单") + @Parameter(name = "id", description = "id是订单主键,splyBsnTp是订单类型采购或者是消费", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:sales-order:query')") + public CommonResult getSalesOrder(@RequestParam("id") Long id,@RequestParam(value = "splyBsnTp",required = false) String splyBsnTp) { + SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp); + SalesOrderRespVO salesOrderRespVO = BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); + if (salesOrderRespVO == null){ + return success(null); + } + // + return success(salesOrderRespVO); + } + + @GetMapping("/page") + @Operation(summary = "获得采购订单分页") + @PreAuthorize("@ss.hasPermission('base:sales-order:query')") + public CommonResult> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) { + PageResult pageResult = salesOrderService.getSalesOrderPage(pageReqVO); + PageResult purchaseOrderRespVOPageResult = BeanUtils.toBean(pageResult, SalesOrderRespVO.class); + // purchaseOrderRespVOPageResult.getList().forEach(purchaseOrderRespVO -> salesOrderService.setOrderDetails(purchaseOrderRespVO)); + return success(purchaseOrderRespVOPageResult); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出采购订单 Excel") + @PreAuthorize("@ss.hasPermission('base:sales-order:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = salesOrderService.getSalesOrderPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class, + BeanUtils.toBean(list, PurchaseOrderRespVO.class)); + } + + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java new file mode 100644 index 00000000..823305cb --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/SalesOrderDetailController.java @@ -0,0 +1,118 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import com.zt.plat.module.contractorder.service.salesorder.SalesOrderDetailService; +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 = "管理后台 - 销售订单明细") +@RestController +@RequestMapping("/base/sales-order-detail") +@Validated +public class SalesOrderDetailController implements BusinessControllerMarker { + + + @Resource + private SalesOrderDetailService salesOrderDetailService; + + @PostMapping("/create") + @Operation(summary = "创建销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:create')") + public CommonResult createSalesOrderDetail(@Valid @RequestBody SalesOrderDetailSaveReqVO createReqVO) { + return success(salesOrderDetailService.createSalesOrderDetail(createReqVO)); + } + + @PostMapping("/create-batch") + @Operation(summary = "批量创建销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:create')") + public CommonResult> createSalesOrderDetail(@Valid @NotEmpty(message = "需要保存的数据为空") @RequestBody List createReqVOS) { + return success(salesOrderDetailService.createSalesOrderDetail(createReqVOS)); + } + + @PutMapping("/update") + @Operation(summary = "更新销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:update')") + public CommonResult updateSalesOrderDetail(@Valid @RequestBody SalesOrderDetailSaveReqVO updateReqVO) { + salesOrderDetailService.updateSalesOrderDetail(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除销售订单明细") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:delete')") + public CommonResult deleteSalesOrderDetail(@RequestParam("id") Long id) { + salesOrderDetailService.deleteSalesOrderDetail(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除销售订单明细") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:delete')") + public CommonResult deleteSalesOrderDetailList(@RequestBody BatchDeleteReqVO req) { + salesOrderDetailService.deleteSalesOrderDetailListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得销售订单明细") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:query')") + public CommonResult getSalesOrderDetail(@RequestParam("id") Long id) { + SalesOrderDetailDO salesOrderDetail = salesOrderDetailService.getSalesOrderDetail(id); + return success(BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得销售订单明细分页") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:query')") + public CommonResult> getSalesOrderDetailPage(@Valid SalesOrderDetailPageReqVO pageReqVO) { + PageResult pageResult = salesOrderDetailService.getSalesOrderDetailPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, SalesOrderDetailRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出销售订单明细 Excel") + @PreAuthorize("@ss.hasPermission('base:sales-order-detail:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportSalesOrderDetailExcel(@Valid SalesOrderDetailPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = salesOrderDetailService.getSalesOrderDetailPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "销售订单明细.xls", "数据", SalesOrderDetailRespVO.class, + BeanUtils.toBean(list, SalesOrderDetailRespVO.class)); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java new file mode 100644 index 00000000..573fca7b --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SaleOrderDetailsRespVO.java @@ -0,0 +1,194 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class SaleOrderDetailsRespVO { + /** + * 主键 + */ + private Long id; + /** + * ERP订单号 + */ + private String orderSAPNumber; + /** + * 订单号 + */ + private String systemOrderNumber; + /** + * 公司名称 + */ + private String cpName; + /** + * 公司编码;推送ERP(必须) + */ + private String companyNumber; + /** + * 客商编码;推送ERP(必须) + */ + private String supplierNumber; + /** + * 客商名称 + */ + private String supplierName; + /** + * 订单类型(字典:PRCH_ORD_TP);推送ERP(必须) + */ + private String type; + /** + * 凭证日期;推送ERP(必须) + */ + private LocalDateTime voucherDate; + /** + * 采购组织编码;推送ERP(必须) + */ + private String purchaseOrganizationCustomsDeclaration; + /** + * 收货工厂名称 + */ + private String receiveFactoryName; + /** + * 收货工厂编码;推送ERP(必须) + */ + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + private String receiveWarehouseName; + /** + * 收货库位编码;推送ERP + */ + private String receiveWarehouseNumber; + /** + * 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须) + */ + private String purchaseGroup; + /** + * 货币码(字典:CUR);推送ERP(必须) + */ + private String currencyNumber; + /** + * 汇率;推送ERP + */ + private BigDecimal exchangeRate; + /** + * 合同纸质合同号;推送ERP(必须) + */ + private String paperContractNumber; + /** + * 小协议号;推送ERP + */ + private String agreementNumber; + /** + * 备注;推送ERP + */ + private String remark; + /** + * 代理方编码;推送ERP + */ + private String agentNumber; + /** + * 代理方名称 + */ + private String agentName; + /** + * 订单编码 + */ + private String orderNumber; + /** + * 系统合同编号 + */ + private String contractNumber; + /** + * 物料编码 + */ + private String materialNumber; + /** + * 物料名称 + */ + private String materialName; + /** + * 合同名称 + */ + private String contractName; + /** + * 小户头号 + */ + private String tenantNumber; + /** + * ERP公司编号 + */ + private String erpPurchaseCompanyNumber; + /** + * ERP公司名称 + */ + private String erpPurchaseCompanyName; + /** + * ERP客商公司编码 + */ + private String erpSalesCompanyNumber; + /** + * ERP客商公司名称 + */ + private String erpSalesCompanyName; + /** + * 采购组织名称 + */ + private String purchaseOrganizationName; + /** + * ERP状态(字典: ERP_REQ_STS) + */ + private String erpStatus; + /** + * 请求ERP失败原因 + */ + private String cause; + /** + * 订单状态(字典:PRCH_ORD_STS) + */ + + private String status; + /** + * 采购组名称 + */ + private String purchaseGroupName; + + /** + * 流程实例编号 + */ + + private String processInstanceId; + + /** + * 流程当前任务节点id + */ + + private String taskId; + + /** + * 审批意见 + */ + + private String reviewOpinion; + + /** + * 是否需要审批 + */ + private int isPush; + + /** + * 物料类型 + */ + private String mtrlTp; + + /** + * 消费订单行项目 + */ + private List orderDetails; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java new file mode 100644 index 00000000..d6bea5d4 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailPageReqVO.java @@ -0,0 +1,90 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import java.math.BigDecimal; +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 = "管理后台 - 销售订单明细分页 Request VO") +@Data +public class SalesOrderDetailPageReqVO extends PageParam { + + @Schema(description = "订单主键", example = "9072") + private Long orderId; + + @Schema(description = "行项目;推送ERP(必须)") + private Long lineNumber; + + @Schema(description = "物料名称", example = "芋艿") + private String materialName; + + @Schema(description = "物料编码;推送ERP(必须)") + private String materialNumber; + + @Schema(description = "工厂名称", example = "芋艿") + private String factoryName; + + @Schema(description = "工厂编码;推送ERP(必须)") + private String factoryNumber; + + @Schema(description = "库位名称", example = "赵六") + private String warehouseName; + + @Schema(description = "库位编码;推送ERP(必须)") + private String warehouseNumber; + + @Schema(description = "计量单位;推送ERP(必须)") + private String unit; + + @Schema(description = "开票类型;推送ERP(必须)", example = "2") + private String invoiceType; + + @Schema(description = "暂估数量;推送ERP(必须)") + private BigDecimal quantity; + + @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)") + private String taxAcctasscat; + + @Schema(description = "项目类别;推送ERP") + private String projectCategory; + + @Schema(description = "装运地点;推送ERP") + private String shippingPlace; + + @Schema(description = "物料科目分配组;推送ERP(必须)") + private String metalAcctasscatGroup; + + @Schema(description = "小协议号") + private String agreementNumber; + + @Schema(description = "总价") + private BigDecimal gross; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + private String elementName; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用") + private String isEnable; + + @Schema(description = "价格条件详情;推送ERP(必须):JSON") + private String priceConditionDetail; + + @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)") + private String originDetail; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java new file mode 100644 index 00000000..59daf0bc --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailRespVO.java @@ -0,0 +1,119 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 销售订单明细 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SalesOrderDetailRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28517") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072") + @ExcelProperty("订单主键") + private Long orderId; + + @Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("行项目;推送ERP(必须)") + private Long lineNumber; + + @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "物料编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("物料编码;推送ERP(必须)") + private String materialNumber; + + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("工厂名称") + private String factoryName; + + @Schema(description = "工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("工厂编码;推送ERP(必须)") + private String factoryNumber; + + @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @ExcelProperty("库位名称") + private String warehouseName; + + @Schema(description = "库位编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("库位编码;推送ERP(必须)") + private String warehouseNumber; + + @Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("计量单位;推送ERP(必须)") + private String unit; + + @Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("开票类型;推送ERP(必须)") + private String invoiceType; + + @Schema(description = "暂估数量;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("暂估数量;推送ERP(必须)") + private BigDecimal quantity; + + @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("稅分类(字典:SALE_TAX);推送ERP(必须)") + private String taxAcctasscat; + + @Schema(description = "项目类别;推送ERP") + @ExcelProperty("项目类别;推送ERP") + private String projectCategory; + + @Schema(description = "装运地点;推送ERP") + @ExcelProperty("装运地点;推送ERP") + private String shippingPlace; + + @Schema(description = "物料科目分配组;推送ERP(必须)") + @ExcelProperty("物料科目分配组;推送ERP(必须)") + private String metalAcctasscatGroup; + + @Schema(description = "小协议号") + @ExcelProperty("小协议号") + private String agreementNumber; + + @Schema(description = "总价") + @ExcelProperty("总价") + private BigDecimal gross; + + @Schema(description = "金属元素缩写") + @ExcelProperty("金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + @ExcelProperty("金属元素名称") + private String elementName; + + @Schema(description = "金属元素编码") + @ExcelProperty("金属元素编码") + private String elementNumber; + + @Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否启用;处理明细中多个相同物料,只能允许一种物料启用") + private String isEnable; + + @Schema(description = "价格条件详情;推送ERP(必须):JSON", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("价格条件详情;推送ERP(必须):JSON") + private String priceConditionDetail; + + @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)") + @ExcelProperty("来料加工原料详情;推送ERP:订单类型(JSON)") + private String originDetail; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "税率", requiredMode = Schema.RequiredMode.REQUIRED) + private String taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java new file mode 100644 index 00000000..b1bf4f70 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderDetailSaveReqVO.java @@ -0,0 +1,102 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 销售订单明细新增/修改 Request VO") +@Data +public class SalesOrderDetailSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "28517") + private Long id; + + @Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9072") + @NotNull(message = "订单主键不能为空") + private Long orderId; + + @Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "行项目;推送ERP(必须)不能为空") + private Long lineNumber; + + @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "物料名称不能为空") + private String materialName; + + @Schema(description = "物料编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "物料编码;推送ERP(必须)不能为空") + private String materialNumber; + + @Schema(description = "工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "工厂名称不能为空") + private String factoryName; + + @Schema(description = "工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "工厂编码;推送ERP(必须)不能为空") + private String factoryNumber; + + @Schema(description = "库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六") + @NotEmpty(message = "库位名称不能为空") + private String warehouseName; + + @Schema(description = "库位编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "库位编码;推送ERP(必须)不能为空") + private String warehouseNumber; + + @Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "计量单位;推送ERP(必须)不能为空") + private String unit; + + @Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "开票类型;推送ERP(必须)不能为空") + private String invoiceType; + + @Schema(description = "暂估数量;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "暂估数量;推送ERP(必须)不能为空") + private BigDecimal quantity; + + @Schema(description = "稅分类(字典:SALE_TAX);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "稅分类(字典:SALE_TAX);推送ERP(必须)不能为空") + private String taxAcctasscat; + + @Schema(description = "项目类别;推送ERP") + private String projectCategory; + + @Schema(description = "装运地点;推送ERP") + private String shippingPlace; + + @Schema(description = "物料科目分配组;推送ERP(必须)") + private String metalAcctasscatGroup; + + @Schema(description = "小协议号") + private String agreementNumber; + + @Schema(description = "总价") + private BigDecimal gross; + + @Schema(description = "金属元素缩写") + private String elementAbbreviation; + + @Schema(description = "金属元素名称", example = "张三") + private String elementName; + + @Schema(description = "金属元素编码") + private String elementNumber; + + @Schema(description = "是否启用;处理明细中多个相同物料,只能允许一种物料启用", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "是否启用;处理明细中多个相同物料,只能允许一种物料启用不能为空") + private String isEnable; + + @Schema(description = "价格条件详情;推送ERP(必须):JSON", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "价格条件详情;推送ERP(必须):JSON不能为空") + private String priceConditionDetail; + + @Schema(description = "来料加工原料详情;推送ERP:订单类型(JSON)") + private String originDetail; + + @Schema(description = "税率") + private String taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java new file mode 100644 index 00000000..a2b71795 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java @@ -0,0 +1,137 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +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; + +@Schema(description = "管理后台 - 采购订单分页 Request VO") +@Data +public class SalesOrderPageReqVO extends PageParam { + + @Schema(description = "ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)") + private String companyNumber; + + @Schema(description = "客商编码;推送ERP(必须)") + private String supplierNumber; + + @Schema(description = "客商名称", example = "芋艿") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", example = "2") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", example = "芋艿") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", example = "王五") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)") + private String purchaseGroup; + + @Schema(description = "计量单位") + private String unt; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + private String agentName; + + @Schema(description = "订单编码") + private String orderNumber; + + @Schema(description = "系统合同编号") + private String contractNumber; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + private String contractName; + + @Schema(description = "小户头号") + private String tenantNumber; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "ERP公司编号") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", example = "王五") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", example = "芋艿") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + private String status; + + @Schema(description = "采购组名称", example = "张三") + private String purchaseGroupName; + + @Schema(description = "物料类型(字典:MTRL_TP)", example = "2") + private String mtrlTp; + + @Schema(description = "订单分类") + private String splyBsnTp; + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java new file mode 100644 index 00000000..a214ebf1 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderReqVO.java @@ -0,0 +1,23 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Schema(description = "管理后台 - 订单审核请求对象 Request VO") +@Data +public class SalesOrderReqVO { + + @Schema(description = "合同主键ID", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "合同主键ID不能为空") + private Long id; + + @Schema(description = "审批意见", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "审核意见不能为空") + private String reviewOpinion; + + @Schema(description = "状态:待推送 WAIT_PUSH,已驳回 REJECTED", requiredMode = Schema.RequiredMode.REQUIRED) + @NotBlank(message = "审核状态不能为空") + private String status; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java new file mode 100644 index 00000000..f85582b2 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java @@ -0,0 +1,201 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 采购订单 Response VO") +@Data +@ExcelIgnoreUnannotated +public class SalesOrderRespVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "ERP订单号") + @ExcelProperty("ERP订单号") + private String orderSAPNumber; + + @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("订单号") + private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("公司编码;推送ERP(必须)") + private String companyNumber; + + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("客商编码;推送ERP(必须)") + private String supplierNumber; + + @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("客商名称") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("订单类型(字典:PRCH_ORD_TP);推送ERP(必须)") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("凭证日期;推送ERP(必须)") + private LocalDateTime voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("采购组织编码;推送ERP(必须)") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("收货工厂名称") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("收货工厂编码;推送ERP(必须)") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("收货库位名称") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("收货库位编码;推送ERP") + private String receiveWarehouseNumber; + + @Schema(description = "计量单位") + private String unt; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("货币码(字典:CUR);推送ERP(必须)") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + @ExcelProperty("汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("合同纸质合同号;推送ERP(必须)") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + @ExcelProperty("小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + @ExcelProperty("备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + @ExcelProperty("代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + @ExcelProperty("代理方名称") + private String agentName; + + @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("订单编码") + private String orderNumber; + + @Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("系统合同编号") + private String contractNumber; + + @Schema(description = "物料编码") + @ExcelProperty("物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + @ExcelProperty("物料名称") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + @ExcelProperty("合同名称") + private String contractName; + + @Schema(description = "小户头号") + @ExcelProperty("小户头号") + private String tenantNumber; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("ERP公司编号") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("ERP公司名称") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("ERP客商公司编码") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("ERP客商公司名称") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + @ExcelProperty("采购组织名称") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + @ExcelProperty("ERP状态(字典: ERP_REQ_STS)") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + @ExcelProperty("请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + @ExcelProperty("订单状态(字典:PRCH_ORD_STS)") + private String status; + + @Schema(description = "采购组名称", example = "张三") + @ExcelProperty("采购组名称") + private String purchaseGroupName; + + @Schema(description = "订单明细") + @ExcelProperty("订单明细") + private List prchOrdDtlRespVOS; + + @Schema(description = "物料类型(字典:MTRL_TP)", example = "2") + @ExcelProperty("物料类型(字典:MTRL_TP)") + private String mtrlTp; + + @Schema(description = "订单分类", example = "2") + @ExcelProperty("订单分类") + private String splyBsnTp; + + @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @ExcelProperty("公司名称") + private String cpName; + + @Schema(description = "是否提交审核,value为0或1") + @ExcelProperty("是否提交审核") + private int isPush; + + @Schema(description = "流程实例编号") + @ExcelProperty("流程实例编号") + private String processInstanceId; + + @Schema(description = "流程当前任务节点id") + @ExcelProperty("流程当前任务节点id") + private String taskId; + + @Schema(description = " 审批意见") + @ExcelProperty(" 审批意见") + private String reviewOpinion; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java new file mode 100644 index 00000000..ade2eaea --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java @@ -0,0 +1,182 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlSaveReqVO; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Schema(description = "管理后台 - 采购订单新增/修改 Request VO") +@Data +public class SalesOrderSaveReqVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6074") + private Long id; + + @Schema(description = "公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "公司名称不能为空") + private String cpName; + + @Schema(description = "ERP订单号") + private String orderSAPNumber; + +// @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotEmpty(message = "订单号不能为空") +// private String systemOrderNumber; + + @Schema(description = "公司编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "公司编码;推送ERP(必须)不能为空") + private String companyNumber; + + @Schema(description = "客商编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "客商编码;推送ERP(必须)不能为空") + private String supplierNumber; + + @Schema(description = "客商名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "客商名称不能为空") + private String supplierName; + + @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotEmpty(message = "订单类型(字典:PRCH_ORD_TP);推送ERP(必须)不能为空") + private String type; + + @Schema(description = "凭证日期;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "凭证日期;推送ERP(必须)不能为空") + private LocalDateTime voucherDate; + + @Schema(description = "采购组织编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "采购组织编码;推送ERP(必须)不能为空") + private String purchaseOrganizationCustomsDeclaration; + + @Schema(description = "收货工厂名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "收货工厂名称不能为空") + private String receiveFactoryName; + + @Schema(description = "收货工厂编码;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "收货工厂编码;推送ERP(必须)不能为空") + private String receiveFactoryNumber; + + @Schema(description = "收货库位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "收货库位名称不能为空") + private String receiveWarehouseName; + + @Schema(description = "收货库位编码;推送ERP", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "收货库位编码;推送ERP不能为空") + private String receiveWarehouseNumber; + + @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "采购组编码(字典:PRCH_GRP_TP);推送ERP(必须)不能为空") + private String purchaseGroup; + + @Schema(description = "货币码(字典:CUR);推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "货币码(字典:CUR);推送ERP(必须)不能为空") + private String currencyNumber; + + @Schema(description = "汇率;推送ERP") + private BigDecimal exchangeRate; + + @Schema(description = "合同纸质合同号;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "合同纸质合同号;推送ERP(必须)不能为空") + private String paperContractNumber; + + @Schema(description = "小协议号;推送ERP") + private String agreementNumber; + + @Schema(description = "备注;推送ERP") + private String remark; + + @Schema(description = "代理方编码;推送ERP") + private String agentNumber; + + @Schema(description = "代理方名称", example = "张三") + private String agentName; +// +// @Schema(description = "订单编码", requiredMode = Schema.RequiredMode.REQUIRED) +// @NotEmpty(message = "订单编码不能为空") +// private String orderNumber; + + + @Schema(description = "计量单位") + @NotEmpty(message = "计量单位(unt)不能为空") + private String unt; + + @Schema(description = "系统合同编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "系统合同编号不能为空") + private String contractNumber; + + @Schema(description = "物料编码") + private String materialNumber; + + @Schema(description = "物料名称", example = "王五") + private String materialName; + + @Schema(description = "合同名称", example = "赵六") + private String contractName; + + @Schema(description = "小户头号") + private String tenantNumber; + + @Schema(description = "ERP公司编号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "ERP公司编号不能为空") + private String erpPurchaseCompanyNumber; + + @Schema(description = "ERP公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "ERP公司名称不能为空") + private String erpPurchaseCompanyName; + + @Schema(description = "ERP客商公司编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "ERP客商公司编码不能为空") + private String erpSalesCompanyNumber; + + @Schema(description = "ERP客商公司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") + @NotEmpty(message = "ERP客商公司名称不能为空") + private String erpSalesCompanyName; + + @Schema(description = "采购组织名称", example = "赵六") + private String purchaseOrganizationName; + + @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2") + private String erpStatus; + + @Schema(description = "请求ERP失败原因") + private String cause; + + @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2") + private String status; + + @Schema(description = "采购组名称", example = "张三") + private String purchaseGroupName; + + @Schema(description = "订单明细") + @ExcelProperty("订单明细") + private List salesOrderDetailSaveReqVOS; + + + @Schema(description = "流程实例编号") + @ExcelProperty("流程实例编号") + private String processInstanceId; + + @Schema(description = "流程当前任务节点id") + @ExcelProperty("流程当前任务节点id") + private String taskId; + + @Schema(description = " 审批意见") + @ExcelProperty(" 审批意见") + private String reviewOpinion; + + @Schema(description = "是否提交审核,value为0或1") + @ExcelProperty("是否提交审核") + private int isPush; + @Schema(description = "物料类别(字典:MTRL_TP)", example = "1") + @ExcelProperty("物料类别") + private String mtrlTp; + + @Schema(description = "订单分类", example = "2") + @ExcelProperty("订单分类") + private String splyBsnTp; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java new file mode 100644 index 00000000..e0379070 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderStsReqVO.java @@ -0,0 +1,22 @@ +package com.zt.plat.module.contractorder.controller.admin.salesorder.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + + +@Schema(description = "管理后台 - 采购订单状态 Request VO") +@Data +@ExcelIgnoreUnannotated +public class SalesOrderStsReqVO { + @Schema(description = "采购订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26419") + private List ids; + @Schema(description = "采购订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotEmpty(message = "采购订单状态不能为空") + private String sts; + @Schema(description = "采购订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + private List orderNos; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java index fbd1a6fe..fab9a2b8 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PrchOrdDtlDO.java @@ -270,5 +270,10 @@ public class PrchOrdDtlDO extends BusinessBaseDO { */ @TableField("ELEM_CDG") private String elemCdg; + /** + * 税率 + */ + @TableField("TAX_RTE") + private String taxRte; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java index fff3139e..723a1e5b 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java @@ -257,4 +257,25 @@ public class PurchaseOrderDO extends BusinessBaseDO { */ @TableField("SPLY_BSN_TP") private String splyBsnTp; + /** + * 产品组编码 + */ + @TableField("PDT_GRP_CDG") + private String pdtGrpCdg; + /** + * 产品组名称 + */ + @TableField("PDT_GRP_NAME") + private String pdtGrpName; + /** + * 分销聚道编码 + */ + @TableField("SALE_ACS_CDG") + private String saleAcsCdg; + /** + * 分销聚道名称 + */ + @TableField("SALE_ACS_NAME") + private String saleAcsName; + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java new file mode 100644 index 00000000..cf915da3 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java @@ -0,0 +1,268 @@ +package com.zt.plat.module.contractorder.dal.dataobject.salesorder; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** +* 采购订单 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_prch_ord") +@KeySequence("bse_prch_ord_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class SalesOrderDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * ERP订单号 + */ + @TableField("ORD_SAP_NUM") + private String orderSAPNumber; + /** + * 订单号 + */ + @TableField("SYS_ORD_NUM") + private String systemOrderNumber; + /** + * 公司名称 + */ + @TableField("CPN_NAME") + private String cpName; + /** + * 公司编码;推送ERP(必须) + */ + @TableField("CPN_NUM") + private String companyNumber; + /** + * 客商编码;推送ERP(必须) + */ + @TableField("SPLR_NUM") + private String supplierNumber; + /** + * 客商名称 + */ + @TableField("SPLR_NAME") + private String supplierName; + /** + * 订单类型(字典:PRCH_ORD_TP);推送ERP(必须) + */ + @TableField("TP") + private String type; + /** + * 凭证日期;推送ERP(必须) + */ + @TableField("VCHR_DT") + private LocalDateTime voucherDate; + /** + * 采购组织编码;推送ERP(必须) + */ + @TableField("PRCH_ORGZ_CD") + private String purchaseOrganizationCustomsDeclaration; + /** + * 收货工厂名称 + */ + @TableField("RCV_FACT_NAME") + private String receiveFactoryName; + /** + * 收货工厂编码;推送ERP(必须) + */ + @TableField("RCV_FACT_NUM") + private String receiveFactoryNumber; + /** + * 收货库位名称 + */ + @TableField("RCV_WRH_NAME") + private String receiveWarehouseName; + /** + * 收货库位编码;推送ERP + */ + @TableField("RCV_WRH_NUM") + private String receiveWarehouseNumber; + /** + * 采购组编码(字典:PRCH_GRP_TP);推送ERP(必须) + */ + @TableField("PRCH_GRP") + private String purchaseGroup; + /** + * 货币码(字典:CUR);推送ERP(必须) + */ + @TableField("CUR_NUM") + private String currencyNumber; + /** + * 汇率;推送ERP + */ + @TableField("EXCH_RTE") + private BigDecimal exchangeRate; + /** + * 合同纸质合同号;推送ERP(必须) + */ + @TableField("PPR_CTRT_NUM") + private String paperContractNumber; + /** + * 小协议号;推送ERP + */ + @TableField("AGR_NUM") + private String agreementNumber; + /** + * 备注;推送ERP + */ + @TableField("RMK") + private String remark; + /** + * 代理方编码;推送ERP + */ + @TableField("AGT_NUM") + private String agentNumber; + /** + * 代理方名称 + */ + @TableField("AGT_NAME") + private String agentName; + /** + * 订单编码 + */ +// @TableField("ORD_NUM") +// private String orderNumber; + /** + * 系统合同编号 + */ + @TableField("CTRT_NUM") + private String contractNumber; + /** + * 物料编码 + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 合同名称 + */ + @TableField("CTRT_NAME") + private String contractName; + /** + * 小户头号 + */ + @TableField("TNT_NUM") + private String tenantNumber; + /** + * ERP公司编号 + */ + @TableField("ERP_PRCH_CPN_NUM") + private String erpPurchaseCompanyNumber; + /** + * ERP公司名称 + */ + @TableField("ERP_PRCH_CPN_NAME") + private String erpPurchaseCompanyName; + /** + * ERP客商公司编码 + */ + @TableField("ERP_SALE_CPN_NUM") + private String erpSalesCompanyNumber; + /** + * ERP客商公司名称 + */ + @TableField("ERP_SALE_CPN_NAME") + private String erpSalesCompanyName; + /** + * 采购组织名称 + */ + @TableField("PRCH_ORGZ_NAME") + private String purchaseOrganizationName; + /** + * ERP状态(字典: ERP_REQ_STS) + */ + @TableField("ERP_STS") + private String erpStatus; + /** + * 请求ERP失败原因 + */ + @TableField("CAUS") + private String cause; + /** + * 订单状态(字典:PRCH_ORD_STS) + */ + @TableField("STS") + private String status; + /** + * 采购组名称 + */ + @TableField("PRCH_GRP_NAME") + private String purchaseGroupName; + + /** + * 流程实例编号 + */ + @TableField("PRCS_INSC_ID") + private String processInstanceId; + + /** + * 流程当前任务节点id + */ + @TableField("TSK_NDE_ID") + private String taskId; + + /** + * 审批意见 + */ + @TableField("RVW_ONN") + private String reviewOpinion; + + /** + * 是否需要审批 + */ + @TableField("IS_PUSH") + private int isPush; + + /** + * 计量单位 + */ + @TableField("UNT") + private String unt; + + /** + * 物料字典 + * + */ + @TableField("MTRL_TP") + private String mtrlTp; + + /** + * 订单分类 + * + */ + @TableField("SPLY_BSN_TP") + private String splyBsnTp; + + @TableField("PDT_GRP_CDG") + private String pdtGrpCdg; + @TableField("PDT_GRP_NAME") + private String pdtGrpName; + @TableField("SALE_ACS_CDG") + private String saleAcsCdg; + @TableField("SALE_ACS_NAME") + private String saleAcsName; +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java new file mode 100644 index 00000000..0ea67031 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDetailDO.java @@ -0,0 +1,158 @@ +package com.zt.plat.module.contractorder.dal.dataobject.salesorder; + +import lombok.*; +import java.util.*; + import java.math.BigDecimal; + import java.math.BigDecimal; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +/** +* 销售订单明细 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_sale_ord_dtl") +@KeySequence("bse_sale_ord_dtl_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class SalesOrderDetailDO extends BusinessBaseDO { + + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 订单主键 + */ + @TableField("ORD_ID") + private Long orderId; + /** + * 行项目;推送ERP(必须) + */ + @TableField("LINE_NUM") + private Long lineNumber; + /** + * 物料名称 + */ + @TableField("MTRL_NAME") + private String materialName; + /** + * 物料编码;推送ERP(必须) + */ + @TableField("MTRL_NUM") + private String materialNumber; + /** + * 工厂名称 + */ + @TableField("FACT_NAME") + private String factoryName; + /** + * 工厂编码;推送ERP(必须) + */ + @TableField("FACT_NUM") + private String factoryNumber; + /** + * 库位名称 + */ + @TableField("WRH_NAME") + private String warehouseName; + /** + * 库位编码;推送ERP(必须) + */ + @TableField("WRH_NUM") + private String warehouseNumber; + /** + * 计量单位;推送ERP(必须) + */ + @TableField("UNT") + private String unit; + /** + * 开票类型;推送ERP(必须) + */ + @TableField("INV_TP") + private String invoiceType; + /** + * 暂估数量;推送ERP(必须) + */ + @TableField("QTY") + private BigDecimal quantity; + /** + * 稅分类(字典:SALE_TAX);推送ERP(必须) + */ + @TableField("TAX_ACTS") + private String taxAcctasscat; + /** + * 项目类别;推送ERP + */ + @TableField("PRJ_CTGR") + private String projectCategory; + /** + * 装运地点;推送ERP + */ + @TableField("SHPP_PLCE") + private String shippingPlace; + /** + * 物料科目分配组;推送ERP(必须) + */ + @TableField("MTL_ACTS_GRP") + private String metalAcctasscatGroup; + /** + * 小协议号 + */ + @TableField("AGR_NUM") + private String agreementNumber; + /** + * 总价 + */ + @TableField("GRS") + private BigDecimal gross; + /** + * 金属元素缩写 + */ + @TableField("ELEM_ABBR") + private String elementAbbreviation; + /** + * 金属元素名称 + */ + @TableField("ELEM_NAME") + private String elementName; + /** + * 金属元素编码 + */ + @TableField("ELEM_NUM") + private String elementNumber; + /** + * 是否启用;处理明细中多个相同物料,只能允许一种物料启用 + */ + @TableField("IS_ENB") + private String isEnable; + /** + * 价格条件详情;推送ERP(必须):JSON + */ + @TableField("PRC_CND_DTL") + private String priceConditionDetail; + /** + * 来料加工原料详情;推送ERP:订单类型(JSON) + */ + @TableField("ORGN_DTL") + private String originDetail; + + /** + * 税率 + */ + @TableField("TAX_RTE") + private String taxRte; + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java index e61f3a83..44865af3 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java @@ -24,7 +24,7 @@ public interface PurchaseOrderMapper extends BaseMapperX { default PageResult selectPage(PurchaseOrderPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(PurchaseOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) - .eqIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) + .likeIfPresent(PurchaseOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) .eqIfPresent(PurchaseOrderDO::getCompanyNumber, reqVO.getCompanyNumber()) .eqIfPresent(PurchaseOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) .likeIfPresent(PurchaseOrderDO::getSupplierName, reqVO.getSupplierName()) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java new file mode 100644 index 00000000..60af871d --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderDetailMapper.java @@ -0,0 +1,51 @@ +package com.zt.plat.module.contractorder.dal.mysql.salesorder; + +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.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 销售订单明细 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface SalesOrderDetailMapper extends BaseMapperX { + + default PageResult selectPage(SalesOrderDetailPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SalesOrderDetailDO::getOrderId, reqVO.getOrderId()) + .eqIfPresent(SalesOrderDetailDO::getLineNumber, reqVO.getLineNumber()) + .likeIfPresent(SalesOrderDetailDO::getMaterialName, reqVO.getMaterialName()) + .eqIfPresent(SalesOrderDetailDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(SalesOrderDetailDO::getFactoryName, reqVO.getFactoryName()) + .eqIfPresent(SalesOrderDetailDO::getFactoryNumber, reqVO.getFactoryNumber()) + .likeIfPresent(SalesOrderDetailDO::getWarehouseName, reqVO.getWarehouseName()) + .eqIfPresent(SalesOrderDetailDO::getWarehouseNumber, reqVO.getWarehouseNumber()) + .eqIfPresent(SalesOrderDetailDO::getUnit, reqVO.getUnit()) + .eqIfPresent(SalesOrderDetailDO::getInvoiceType, reqVO.getInvoiceType()) + .eqIfPresent(SalesOrderDetailDO::getQuantity, reqVO.getQuantity()) + .eqIfPresent(SalesOrderDetailDO::getTaxAcctasscat, reqVO.getTaxAcctasscat()) + .eqIfPresent(SalesOrderDetailDO::getProjectCategory, reqVO.getProjectCategory()) + .eqIfPresent(SalesOrderDetailDO::getShippingPlace, reqVO.getShippingPlace()) + .eqIfPresent(SalesOrderDetailDO::getMetalAcctasscatGroup, reqVO.getMetalAcctasscatGroup()) + .eqIfPresent(SalesOrderDetailDO::getAgreementNumber, reqVO.getAgreementNumber()) + .eqIfPresent(SalesOrderDetailDO::getGross, reqVO.getGross()) + .eqIfPresent(SalesOrderDetailDO::getElementAbbreviation, reqVO.getElementAbbreviation()) + .likeIfPresent(SalesOrderDetailDO::getElementName, reqVO.getElementName()) + .eqIfPresent(SalesOrderDetailDO::getElementNumber, reqVO.getElementNumber()) + .eqIfPresent(SalesOrderDetailDO::getIsEnable, reqVO.getIsEnable()) + .eqIfPresent(SalesOrderDetailDO::getPriceConditionDetail, reqVO.getPriceConditionDetail()) + .eqIfPresent(SalesOrderDetailDO::getOriginDetail, reqVO.getOriginDetail()) + .betweenIfPresent(SalesOrderDetailDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(SalesOrderDetailDO::getId)); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java new file mode 100644 index 00000000..a372de77 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.contractorder.dal.mysql.salesorder; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 采购订单 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface SalesOrderMapper extends BaseMapperX { + + default PageResult selectPage(SalesOrderPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SalesOrderDO::getOrderSAPNumber, reqVO.getOrderSAPNumber()) + .eqIfPresent(SalesOrderDO::getSystemOrderNumber, reqVO.getSystemOrderNumber()) + .eqIfPresent(SalesOrderDO::getCompanyNumber, reqVO.getCompanyNumber()) + .eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) + .likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName()) + .eqIfPresent(SalesOrderDO::getType, reqVO.getType()) + .betweenIfPresent(SalesOrderDO::getVoucherDate, reqVO.getVoucherDate()) + .eqIfPresent(SalesOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration()) + .likeIfPresent(SalesOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) + .eqIfPresent(SalesOrderDO::getReceiveFactoryNumber, reqVO.getReceiveFactoryNumber()) + .likeIfPresent(SalesOrderDO::getReceiveWarehouseName, reqVO.getReceiveWarehouseName()) + .eqIfPresent(SalesOrderDO::getReceiveWarehouseNumber, reqVO.getReceiveWarehouseNumber()) + .eqIfPresent(SalesOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup()) + .eqIfPresent(SalesOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber()) + .eqIfPresent(SalesOrderDO::getExchangeRate, reqVO.getExchangeRate()) + .eqIfPresent(SalesOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber()) + .eqIfPresent(SalesOrderDO::getAgreementNumber, reqVO.getAgreementNumber()) + .eqIfPresent(SalesOrderDO::getRemark, reqVO.getRemark()) + .eqIfPresent(SalesOrderDO::getAgentNumber, reqVO.getAgentNumber()) + .likeIfPresent(SalesOrderDO::getAgentName, reqVO.getAgentName()) +// .eqIfPresent(SalesOrderDO::getOrderNumber, reqVO.getOrderNumber()) + .eqIfPresent(SalesOrderDO::getContractNumber, reqVO.getContractNumber()) + .eqIfPresent(SalesOrderDO::getMaterialNumber, reqVO.getMaterialNumber()) + .likeIfPresent(SalesOrderDO::getMaterialName, reqVO.getMaterialName()) + .likeIfPresent(SalesOrderDO::getContractName, reqVO.getContractName()) + .eqIfPresent(SalesOrderDO::getTenantNumber, reqVO.getTenantNumber()) + .betweenIfPresent(SalesOrderDO::getCreateTime, reqVO.getCreateTime()) + .eqIfPresent(SalesOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) + .likeIfPresent(SalesOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName()) + .eqIfPresent(SalesOrderDO::getErpSalesCompanyNumber, reqVO.getErpSalesCompanyNumber()) + .likeIfPresent(SalesOrderDO::getErpSalesCompanyName, reqVO.getErpSalesCompanyName()) + .likeIfPresent(SalesOrderDO::getPurchaseOrganizationName, reqVO.getPurchaseOrganizationName()) + .eqIfPresent(SalesOrderDO::getErpStatus, reqVO.getErpStatus()) + .eqIfPresent(SalesOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp()) + .eqIfPresent(SalesOrderDO::getCause, reqVO.getCause()) + .eqIfPresent(SalesOrderDO::getStatus, reqVO.getStatus()) + .likeIfPresent(SalesOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName()) + .orderByDesc(SalesOrderDO::getId)); + } +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java index 6e44a5ce..6b229bbe 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractService.java @@ -102,10 +102,10 @@ public interface ContractService { /** * 提交ERP * - * @param ids 合同ID集合 - * @return + * @param id 合同ID + * @return 提交结果 */ - List submitErp(List ids); + JSONObject submitErp(Long id); /** * 删除合同 @@ -203,12 +203,6 @@ public interface ContractService { */ Boolean complete(List ids); - /** - * 关联订单;该接口仅供订单关联使用 - * - * @param LinkOrderReqVO 订单信息 - * @return 结果 - */ - Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO); + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index b6a5b21b..9cc0d785 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -2,7 +2,6 @@ package com.zt.plat.module.contractorder.service.contract; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; @@ -25,7 +24,6 @@ import com.zt.plat.module.bpm.api.task.dto.*; import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum; import com.zt.plat.module.contractorder.api.dto.contract.*; import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.*; -import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.LinkOrderReqVO; import com.zt.plat.module.contractorder.dal.dataobject.contract.*; import com.zt.plat.module.contractorder.dal.mysql.contract.*; import com.zt.plat.module.contractorder.enums.*; @@ -57,7 +55,10 @@ import java.io.ByteArrayOutputStream; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -1317,55 +1318,62 @@ public class ContractServiceImpl implements ContractService { } @Override - public List submitErp(List ids) { + public JSONObject submitErp(Long id) { - List results = new ArrayList<>(); + JSONObject result = new JSONObject(); - // 遍历合同ID集合 - ids.forEach(id -> { + // 查询合同信息 + ContractMainDO contractMainDO = contractMainMapper.selectById(id); - // 查询合同信息 - ContractMainDO contractMainDO = contractMainMapper.selectById(id); + // 合同数据不存在 + if (contractMainDO == null) { + throw exception(CONTRACT_NOT_EXISTS); + } - if (contractMainDO != null) { + // 合同状态校验 + if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) { - // 合同状态校验 - if (!(DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) - || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus()))) { + throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, + DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); + } - throw exception(CONTRACT_STATUS_NOT_SUBMIT_ERP, - DictEnum.getByCodeAndType(contractMainDO.getStatus(), DictTypeConstants.BSE_CTRT_STS).getLabel()); - } + // 生成ERP合同映射表 + ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); - // 生成ERP合同映射表 - ErpContractSaveReqVO erpContractVO = getErpContract(contractMainDO); + // 调用ERP模块 + JSONObject erpResult = sendToErp(erpContractVO); + log.info("合同提交ERP结果:{}", erpResult); + result.putOnce("success", erpResult.getBool("success")); - // 调用ERP模块 - JSONObject erpResult = sendToErp(erpContractVO); - log.info("合同提交ERP结果:{}", erpResult); - String result = id - +"-"+erpResult.getBool("success") - +(erpResult.getBool("success") ? "" : "-" + erpResult.getStr("errMsg")); - results.add(result); - - // 更新合同状态 - if (erpResult.getBool("success")) { - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); - contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode()); - contractMainMapper.updateById(contractMainDO); - } else { - contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode()); - contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode()); - contractMainDO.setCause(erpResult.getStr("errMsg")); - contractMainMapper.updateById(contractMainDO); - } - } else { - results.add(id+"-"+"false"+"-"+CONTRACT_NOT_EXISTS); + // 更新合同状态 + if (erpResult.getBool("success")) { + if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(contractMainDO.getStatus())) { + // 待推送的合同设置为执行中 + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); } - }); + contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_FIND.getCode()); + contractMainMapper.updateById(contractMainDO); - return results; + result.putOnce("data", erpResult.getStr("data")); + } else { + if (DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus()) + || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus())) { + // 作废和已完结订单退回执行中 + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_TERMINATED.getCode()); + } else { + // 待推送的合同设置为推送失败 + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_PUSH_ERROR.getCode()); + } + contractMainDO.setErpStatus(DictEnum.ERP_REQ_STS_RLBK.getCode()); + contractMainDO.setCause(erpResult.getStr("errMsg")); + contractMainMapper.updateById(contractMainDO); + + result.putOnce("data", erpResult.getStr("errMsg")); + } + + return result; } private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) { @@ -1554,10 +1562,10 @@ public class ContractServiceImpl implements ContractService { // 更新合同 contractMainMapper.updateById(contractMainDO); - }); - // 重新提交erp - submitErp(ids); + // 重新提交erp + submitErp(id); + }); return true; } @@ -1585,28 +1593,14 @@ public class ContractServiceImpl implements ContractService { // 更新合同 contractMainMapper.updateById(contractMainDO); + + // 重新提交erp + submitErp(id); }); - // 重新提交erp - submitErp(ids); - return true; } - @Override - public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) { - - SystemRelativityDO saveDO = new SystemRelativityDO(); - saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); - saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); - saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); - //判断订单有没有关联过 - if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId()))>0){ - throw exception(CONTRACT_ORDER_EXISTS); - } - return systemRelativityMapper.insert(saveDO)>0; - } - private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) { ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO(); @@ -1699,9 +1693,17 @@ public class ContractServiceImpl implements ContractService { // 变更后合同总金额(本位币-含税):CHG_BSC_AMT erpContractVO.setChangeBasicAmount(contractMainDO.getChangeBasicAmount()); // 合同状态编号:STS_NUM 参照060接口 - erpContractVO.setStatusNumber(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getCode()); // 合同状态名称:STS_NAME 参照060接口 - erpContractVO.setStatusName(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getLabel()); + if (DictEnum.BSE_CTRT_STS_VOID.getCode().equals(contractMainDO.getStatus())) { // 作废 + erpContractVO.setStatusNumber(DictEnum.SUBMIT_ERP_CTRT_STS_CA.getCode()); + erpContractVO.setStatusName(DictEnum.SUBMIT_ERP_CTRT_STS_CA.getLabel()); + } else if (DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus())) { // 完结 + erpContractVO.setStatusNumber(DictEnum.SUBMIT_ERP_CTRT_STS_ZXWB.getCode()); + erpContractVO.setStatusName(DictEnum.SUBMIT_ERP_CTRT_STS_ZXWB.getLabel()); + } else { // 其它所有状态 + erpContractVO.setStatusNumber(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getCode()); + erpContractVO.setStatusName(DictEnum.SUBMIT_ERP_CTRT_STS_EF.getLabel()); + } // 是否有预付款:IS_PPYM erpContractVO.setIsPrepayment(contractMainDO.getHasPrepayment()); // 预付款比例:PPYM_RTIO diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java index c9075b5a..34cb420c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderService.java @@ -4,6 +4,7 @@ import java.util.*; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; import jakarta.validation.*; @@ -52,7 +53,7 @@ public interface PurchaseOrderService { * @param id 编号 * @return 采购订单 */ - PurchaseOrderDO getPurchaseOrder(Long id); + PurchaseOrderDO getPurchaseOrder(Long id,String splyBsnTp); /** * 获得采购订单分页 @@ -103,13 +104,7 @@ public interface PurchaseOrderService { * */ CommonResult getMaterial(String orderNo); - /** - * 关联订单 - * - * @param reqVO 关联订单 - * - */ - boolean linkOrder(LinkOrderReqVO reqVO); + /** * 订单审核通过和不通过 * @@ -117,4 +112,16 @@ public interface PurchaseOrderService { * */ boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO); + + List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO); + + List getBindOrderByOrder(DownOrUpOrderReqVO reqVO); + + /** + * 关联订单;该接口仅供订单关联使用 + * + * @param LinkOrderReqVO 订单信息 + * @return 结果 + */ + Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index df3849da..aa78b12d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -11,9 +11,13 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.bpm.api.task.dto.*; import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum; +import com.zt.plat.module.contractorder.controller.admin.contract.vo.contract.ContractRespVO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO; +import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper; import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper; import com.zt.plat.module.contractorder.enums.contract.DictEnum; @@ -44,6 +48,7 @@ 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.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; import static com.zt.plat.module.contractorder.enums.purchaseorder.ErrorCodeConstants.*; @@ -80,8 +85,12 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { @Resource private ContractService contractService; + @Resource + private SystemRelativityMapper systemRelativityMapper; + + @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) { // 插入 PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class); @@ -95,7 +104,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { purchaseOrder.setSystemOrderNumber(orderNumber); purchaseOrderMapper.insert(purchaseOrder); - if (createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()){ + if (createReqVO.getPrchOrdDtlSaveReqVOS().isEmpty()) { return BeanUtils.toBean(purchaseOrder, PurchaseOrderRespVO.class); } //批量插入订单明细 @@ -107,7 +116,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void updatePurchaseOrder(PurchaseOrderSaveReqVO updateReqVO) { // 校验存在 validatePurchaseOrderExists(updateReqVO.getId()); @@ -164,8 +173,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - public PurchaseOrderDO getPurchaseOrder(Long id) { - return purchaseOrderMapper.selectById(id); + public PurchaseOrderDO getPurchaseOrder(Long id, String splyBsnTp) { + return purchaseOrderMapper.selectOne(new LambdaQueryWrapper().eq(PurchaseOrderDO::getId, id).eq(splyBsnTp != null && !splyBsnTp.isEmpty(), PurchaseOrderDO::getSplyBsnTp, splyBsnTp)); } @Override @@ -474,10 +483,18 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } @Override - public boolean linkOrder(LinkOrderReqVO reqVO) { - return contractService.linkOrder(reqVO); - } + public Boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) { + SystemRelativityDO saveDO = new SystemRelativityDO(); + saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); + saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); + saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); + //判断订单有没有关联过 + if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { + throw exception(CONTRACT_ORDER_EXISTS); + } + return systemRelativityMapper.insert(saveDO) > 0; + } private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) { //head @@ -543,7 +560,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { if (ObjectUtils.isEmpty(purchaseOrderDO)) { throw exception(PURCHASE_ORDER_NOT_EXISTS); } - AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData(); // 获取当前流程正在审批的任务节点 List taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData(); BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1); @@ -585,4 +601,68 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } return false; } + + @Override + public List getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) { + PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(reqVO.getOrderId()); + if (purchaseOrderDO == null) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + String contractNumber = purchaseOrderDO.getContractNumber();// 合同号 + + ContractRespVO upRelation = null; + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + upRelation = contractService.getUpRelation(Long.valueOf(contractNumber)); + } else { + //下游 + log.info("获取下游订单"); + upRelation = contractService.getDownRelation(Long.valueOf(contractNumber)); + } + List orderList = new ArrayList<>(); + if (upRelation != null) { + String systemContractNumber = upRelation.getSystemContractNumber(); + + List purchaseOrderDOS = purchaseOrderMapper.selectList(new LambdaQueryWrapper().eq(PurchaseOrderDO::getContractNumber, systemContractNumber)); + purchaseOrderDOS.forEach(p -> { + DownOrUpOrderRespVO downOrUpOrderRespVO = new DownOrUpOrderRespVO(); + downOrUpOrderRespVO.setOrderId(String.valueOf(p.getId())); + downOrUpOrderRespVO.setOrderNo(p.getSystemOrderNumber()); + downOrUpOrderRespVO.setOrderType(reqVO.getOrderType()); + downOrUpOrderRespVO.setContractId(String.valueOf(p.getId())); + downOrUpOrderRespVO.setContractName(p.getContractName()); + downOrUpOrderRespVO.setContractNumber(p.getContractNumber()); + orderList.add(downOrUpOrderRespVO); + } + ); + + } + return orderList; + } + + @Override + public List getBindOrderByOrder(DownOrUpOrderReqVO reqVO) { + List orderList = new ArrayList<>(); + if ("up".equals(reqVO.getOrderType())) { + log.info("获取上游订单"); + //上游 + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getDownId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + systemRelativityDOS.forEach(systemRelativityDO -> { + orderList.add(systemRelativityDO.getUpId().toString()); + }); + } + } else { + //下游 + log.info("获取下游订单"); + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + systemRelativityDOS.forEach(systemRelativityDO -> { + orderList.add(systemRelativityDO.getDownId().toString()); + }); + } + } + return orderList; + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java new file mode 100644 index 00000000..1fe03e80 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailService.java @@ -0,0 +1,85 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import java.util.*; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import jakarta.validation.*; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 销售订单明细 Service 接口 + * + * @author 后台管理-1 + */ +public interface SalesOrderDetailService { + + /** + * 创建销售订单明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + SalesOrderDetailRespVO createSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO createReqVO); + + /** + * 批量创建销售订单明细 + * + * @param createReqVOS 创建信息 + * @return 编号 + */ + List createSalesOrderDetail(@Valid List createReqVOS); + + /** + * 更新销售订单明细 + * + * @param updateReqVO 更新信息 + */ + void updateSalesOrderDetail(@Valid SalesOrderDetailSaveReqVO updateReqVO); + + /** + * 删除销售订单明细 + * + * @param id 编号 + */ + void deleteSalesOrderDetail(Long id); + + /** + * 批量删除销售订单明细 + * + * @param ids 编号 + */ + void deleteSalesOrderDetailListByIds(List ids); + + /** + * 获得销售订单明细 + * + * @param id 编号 + * @return 销售订单明细 + */ + SalesOrderDetailDO getSalesOrderDetail(Long id); + + /** + * 获得销售订单明细分页 + * + * @param pageReqVO 分页查询 + * @return 销售订单明细分页 + */ + PageResult getSalesOrderDetailPage(SalesOrderDetailPageReqVO pageReqVO); + + + /** + * 根据订单主键删除订单明细 + * + * @param orderIds 订单主键 + * + */ + void deleteSalesOrderDetailByOrderIds(List orderIds); + + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java new file mode 100644 index 00000000..9523d684 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java @@ -0,0 +1,111 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper; +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.module.contractorder.enums.salesorder.ErrorCodeConstants.SALES_ORDER_DETAIL_NOT_EXISTS; + +/** + * 销售订单明细 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { + + @Resource + private SalesOrderDetailMapper salesOrderDetailMapper; + + @Override + @Transactional + public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) { + // 插入 + SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class); + salesOrderDetailMapper.insert(salesOrderDetail); + // 返回 + return BeanUtils.toBean(salesOrderDetail, SalesOrderDetailRespVO.class); + } + + @Override + @Transactional + public List createSalesOrderDetail(List createReqVOS) { + List salesOrderDetailDOS = BeanUtils.toBean(createReqVOS, SalesOrderDetailDO.class); + salesOrderDetailMapper.insertBatch(salesOrderDetailDOS); + return BeanUtils.toBean(salesOrderDetailDOS, SalesOrderDetailRespVO.class); + } + + @Override + public void updateSalesOrderDetail(SalesOrderDetailSaveReqVO updateReqVO) { + // 校验存在 + validateSalesOrderDetailExists(updateReqVO.getId()); + // 更新 + SalesOrderDetailDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDetailDO.class); + salesOrderDetailMapper.updateById(updateObj); + } + + @Override + public void deleteSalesOrderDetail(Long id) { + // 校验存在 + validateSalesOrderDetailExists(id); + // 删除 + salesOrderDetailMapper.deleteById(id); + } + + @Override + public void deleteSalesOrderDetailListByIds(List ids) { + // 校验存在 + validateSalesOrderDetailExists(ids); + // 删除 + salesOrderDetailMapper.deleteByIds(ids); + } + + private void validateSalesOrderDetailExists(List ids) { + List list = salesOrderDetailMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(SALES_ORDER_DETAIL_NOT_EXISTS); + } + } + + private void validateSalesOrderDetailExists(Long id) { + if (salesOrderDetailMapper.selectById(id) == null) { + throw exception(SALES_ORDER_DETAIL_NOT_EXISTS); + } + } + + @Override + public SalesOrderDetailDO getSalesOrderDetail(Long id) { + return salesOrderDetailMapper.selectById(id); + } + + @Override + public PageResult getSalesOrderDetailPage(SalesOrderDetailPageReqVO pageReqVO) { + return salesOrderDetailMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteSalesOrderDetailByOrderIds(List orderIds) { + salesOrderDetailMapper.deleteBatch(SalesOrderDetailDO::getOrderId, orderIds); + } + + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java new file mode 100644 index 00000000..2f17584a --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderService.java @@ -0,0 +1,65 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import java.util.*; + +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import jakarta.validation.*; + +import com.zt.plat.framework.common.pojo.PageResult; + +/** + * 采购订单 Service 接口 + * + * @author 后台管理-1 + */ +public interface SalesOrderService { + + /** + * 创建采购订单 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + SalesOrderRespVO createSalesOrder(@Valid SalesOrderSaveReqVO createReqVO); + + /** + * 更新采购订单 + * + * @param updateReqVO 更新信息 + */ + void updateSalesOrder(@Valid SalesOrderSaveReqVO updateReqVO); + + /** + * 删除采购订单 + * + * @param id 编号 + */ + void deleteSalesOrder(Long id); + + /** + * 批量删除采购订单 + * + * @param ids 编号 + */ + void deleteSalesOrderListByIds(List ids); + + /** + * 获得采购订单 + * + * @param id 编号 + * @return 采购订单 + */ + SalesOrderDO getSalesOrder(Long id, String splyBsnTp); + + /** + * 获得采购订单分页 + * + * @param pageReqVO 分页查询 + * @return 采购订单分页 + */ + PageResult getSalesOrderPage(SalesOrderPageReqVO pageReqVO); + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java new file mode 100644 index 00000000..8e4dbf02 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java @@ -0,0 +1,99 @@ +package com.zt.plat.module.contractorder.service.salesorder; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderPageReqVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO; +import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderSaveReqVO; +import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO; +import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper; +import org.springframework.stereotype.Service; +import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.util.*; + +import com.zt.plat.framework.common.pojo.PageResult; + +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.module.contractorder.enums.purchaseorder.ErrorCodeConstants.PURCHASE_ORDER_NOT_EXISTS; + + +/** + * 采购订单 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class SalesOrderServiceImpl implements SalesOrderService { + + @Resource + private SalesOrderMapper salesOrderMapper; + + @Override + @Transactional + public SalesOrderRespVO createSalesOrder(SalesOrderSaveReqVO createReqVO) { + // 插入 + SalesOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, SalesOrderDO.class); + salesOrderMapper.insert(purchaseOrder); + // 返回 + return BeanUtils.toBean(purchaseOrder, SalesOrderRespVO.class); + } + + @Override + @Transactional + public void updateSalesOrder(SalesOrderSaveReqVO updateReqVO) { + // 校验存在 + validateSalesOrderExists(updateReqVO.getId()); + // 更新 + SalesOrderDO updateObj = BeanUtils.toBean(updateReqVO, SalesOrderDO.class); + salesOrderMapper.updateById(updateObj); + } + + @Override + @Transactional + public void deleteSalesOrder(Long id) { + // 校验存在 + validateSalesOrderExists(id); + // 删除 + salesOrderMapper.deleteById(id); + } + + @Override + @Transactional + public void deleteSalesOrderListByIds(List ids) { + // 校验存在 + validateSalesOrderExists(ids); + // 删除 + salesOrderMapper.deleteByIds(ids); + } + + private void validateSalesOrderExists(List ids) { + List list = salesOrderMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + } + + private void validateSalesOrderExists(Long id) { + if (salesOrderMapper.selectById(id) == null) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + } + + @Override + public SalesOrderDO getSalesOrder(Long id, String splyBsnTp) { + return salesOrderMapper.selectOne(new LambdaQueryWrapper().eq(SalesOrderDO::getId, id).eq(splyBsnTp != null && !splyBsnTp.isEmpty(), SalesOrderDO::getSplyBsnTp, splyBsnTp)); + } + + @Override + public PageResult getSalesOrderPage(SalesOrderPageReqVO pageReqVO) { + return salesOrderMapper.selectPage(pageReqVO); + } + +} diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml index ab904c0a..585f3e2f 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml @@ -166,6 +166,10 @@ po.CREATOR, po.UPDATER, po.DELETED, + po.pdtGrpCdg, + po.pdtGrpName, + po.saleAcsCdg, + po.saleAcsName, pod.ID as pod_id, pod.ORD_ID, pod.LINE_NUM, @@ -279,6 +283,10 @@ + + + + @@ -328,6 +336,5 @@ - diff --git a/zt-module-unit-management/pom.xml b/zt-module-unit-management/pom.xml new file mode 100644 index 00000000..d23f6dfa --- /dev/null +++ b/zt-module-unit-management/pom.xml @@ -0,0 +1,24 @@ + + + + dsc-base + com.zt.plat + ${revision} + + + zt-module-unit-management-api + zt-module-unit-management-server + + 4.0.0 + + zt-module-unit-management + pom + + ${project.artifactId} + + 计量单位 模块。 + + + diff --git a/zt-module-unit-management/zt-module-unit-management-api/pom.xml b/zt-module-unit-management/zt-module-unit-management-api/pom.xml new file mode 100644 index 00000000..a3915ed3 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-api/pom.xml @@ -0,0 +1,46 @@ + + + + zt-module-unit-management + com.zt.plat + ${revision} + + 4.0.0 + zt-module-unit-management-api + jar + + ${project.artifactId} + + 暴露给其它模块调用 + + + + + com.zt.plat + zt-common + + + + org.springdoc + springdoc-openapi-starter-webmvc-api + provided + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + true + + + + diff --git a/zt-module-unit-management/zt-module-unit-management-api/src/main/java/com/zt/plat/module/unitmanagement/enums/UnitErrorCodeConstants.java b/zt-module-unit-management/zt-module-unit-management-api/src/main/java/com/zt/plat/module/unitmanagement/enums/UnitErrorCodeConstants.java new file mode 100644 index 00000000..696c09b8 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-api/src/main/java/com/zt/plat/module/unitmanagement/enums/UnitErrorCodeConstants.java @@ -0,0 +1,22 @@ +package com.zt.plat.module.unitmanagement.enums; + +import com.zt.plat.framework.common.exception.ErrorCode; + +/** + * unit-management 模块的错误码常量 + */ +public interface UnitErrorCodeConstants { + + ErrorCode QUANTITY_UNIT_RELATION_NOT_EXISTS = + new ErrorCode(1_010_000_001, "计量单位量与单位关联不存在"); + + ErrorCode UNIT_CONVERSION_NOT_EXISTS = + new ErrorCode(1_010_000_002, "单位转换记录不存在"); + + ErrorCode UNIT_QUANTITY_NOT_EXISTS = + new ErrorCode(1_010_000_003, "单位数量记录不存在"); + + ErrorCode UNT_INFO_NOT_EXISTS = + new ErrorCode(1_010_000_004, "单位信息记录不存在"); + +} diff --git a/zt-module-unit-management/zt-module-unit-management-server/pom.xml b/zt-module-unit-management/zt-module-unit-management-server/pom.xml new file mode 100644 index 00000000..d7463396 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/pom.xml @@ -0,0 +1,151 @@ + + + + zt-module-unit-management + com.zt.plat + ${revision} + + 4.0.0 + jar + + zt-module-unit-management-server + + ${project.artifactId} + + 计量单位管理 模块。 + + + + + + com.zt.plat + zt-spring-boot-starter-env + + + + + com.zt.plat + zt-module-system-api + ${revision} + + + com.zt.plat + zt-module-infra-api + ${revision} + + + + com.zt.plat + zt-module-unit-management-api + ${revision} + + + + + com.zt.plat + zt-spring-boot-starter-biz-data-permission + + + com.zt.plat + zt-spring-boot-starter-biz-tenant + + + + + com.zt.plat + zt-spring-boot-starter-web + + + + com.zt.plat + zt-spring-boot-starter-security + + + + + com.zt.plat + zt-spring-boot-starter-mybatis + + + + com.zt.plat + zt-spring-boot-starter-redis + + + + + com.zt.plat + zt-spring-boot-starter-rpc + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.zt.plat + zt-spring-boot-starter-job + + + + + com.zt.plat + zt-spring-boot-starter-mq + + + + + com.zt.plat + zt-spring-boot-starter-test + + + + + com.zt.plat + zt-spring-boot-starter-excel + + + + + com.zt.plat + zt-spring-boot-starter-monitor + + + com.zt.plat + zt-spring-boot-starter-biz-business + ${revision} + + + + + + ${project.artifactId} + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java new file mode 100644 index 00000000..6a48f14d --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/QuantityUnitRelationController.java @@ -0,0 +1,116 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation; + +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.*; + +import com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.QuantityUnitRelation.QuantityUnitRelationDO; +import com.zt.plat.module.unitmanagement.service.QuantityUnitRelation.QuantityUnitRelationService; + +@Tag(name = "管理后台 - 计量单位量与单位关联") +@RestController +@RequestMapping("/base/unit-management/quantity-unit-relation") +@Validated +public class QuantityUnitRelationController implements BusinessControllerMarker { + + + @Resource + private QuantityUnitRelationService quantityUnitRelationService; + + @PostMapping("/create") + @Operation(summary = "创建计量单位量与单位关联") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:create')") + public CommonResult createQuantityUnitRelation(@Valid @RequestBody QuantityUnitRelationSaveReqVO createReqVO) { + return success(quantityUnitRelationService.createQuantityUnitRelation(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新计量单位量与单位关联") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:update')") + public CommonResult updateQuantityUnitRelation(@Valid @RequestBody QuantityUnitRelationSaveReqVO updateReqVO) { + quantityUnitRelationService.updateQuantityUnitRelation(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除计量单位量与单位关联") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:delete')") + public CommonResult deleteQuantityUnitRelation(@RequestParam("id") Long id) { + quantityUnitRelationService.deleteQuantityUnitRelation(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除计量单位量与单位关联") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:delete')") + public CommonResult deleteQuantityUnitRelationList(@RequestBody BatchDeleteReqVO req) { + quantityUnitRelationService.deleteQuantityUnitRelationListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得计量单位量与单位关联") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:query')") + public CommonResult getQuantityUnitRelation(@RequestParam("id") Long id) { + QuantityUnitRelationDO quantityUnitRelation = quantityUnitRelationService.getQuantityUnitRelation(id); + return success(BeanUtils.toBean(quantityUnitRelation, QuantityUnitRelationRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得计量单位量与单位关联分页") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:query')") + public CommonResult> getQuantityUnitRelationPage(@Valid QuantityUnitRelationPageReqVO pageReqVO) { + PageResult pageResult = quantityUnitRelationService.getQuantityUnitRelationPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, QuantityUnitRelationRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出计量单位量与单位关联 Excel") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportQuantityUnitRelationExcel(@Valid QuantityUnitRelationPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = quantityUnitRelationService.getQuantityUnitRelationPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "计量单位量与单位关联.xls", "数据", QuantityUnitRelationRespVO.class, + BeanUtils.toBean(list, QuantityUnitRelationRespVO.class)); + } + + @PostMapping("/batch-save") + @Operation(summary = "批量保存计量单位量与单位关联") + @PreAuthorize("@ss.hasPermission('unitmanagement:quantity-unit-relation:create')") + public CommonResult batchSaveQuantityUnitRelations(@Valid @RequestBody QuantityUnitRelationBatchSaveReqVO batchSaveReqVO) { + quantityUnitRelationService.batchSaveQuantityUnitRelations(batchSaveReqVO); + return success(true); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationBatchSaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationBatchSaveReqVO.java new file mode 100644 index 00000000..d308cfe2 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationBatchSaveReqVO.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 计量单位量与单位关联批量保存 Request VO") +@Data +public class QuantityUnitRelationBatchSaveReqVO { + + @Schema(description = "计量单位量ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11015") + @NotNull(message = "计量单位量ID不能为空") + private Long untQtyId; + + @Schema(description = "单位关联列表", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "单位关联列表不能为空") + private List unitRelations; + + @Schema(description = "单位关联项") + @Data + public static class UnitRelationItemVO { + + @Schema(description = "主键ID(新增时为空,更新时必填)", example = "11015") + private Long id; + + @Schema(description = "计量单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30976") + @NotNull(message = "计量单位ID不能为空") + private Long untId; + + @Schema(description = "是否基准单位-标识该维度基准单位") + private Integer isBse; + } + +} diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationPageReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationPageReqVO.java new file mode 100644 index 00000000..69c8aabe --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationPageReqVO.java @@ -0,0 +1,22 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.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 = "管理后台 - 计量单位量与单位关联分页 Request VO") +@Data +public class QuantityUnitRelationPageReqVO extends PageParam { + + @Schema(description = "所属量纲") + private Long untQtyId; + + @Schema(description = "是否基准单位-标识该维度基准单位") + private Integer isBse; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationRespVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationRespVO.java new file mode 100644 index 00000000..f79d47b9 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationRespVO.java @@ -0,0 +1,34 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.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 = "管理后台 - 计量单位量与单位关联 Response VO") +@Data +@ExcelIgnoreUnannotated +public class QuantityUnitRelationRespVO { + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11015") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "计量单位量ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11015") + @ExcelProperty("计量单位量ID") + private Long untQtyId; + + @Schema(description = "计量单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30976") + @ExcelProperty("计量单位ID") + private Long untId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + + @Schema(description = "是否基准单位-标识该维度基准单位") + @ExcelProperty("是否基准单位-标识该维度基准单位") + private Integer isBse; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationSaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationSaveReqVO.java new file mode 100644 index 00000000..8f40f602 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/QuantityUnitRelation/vo/QuantityUnitRelationSaveReqVO.java @@ -0,0 +1,24 @@ +package com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 计量单位量与单位关联新增/修改 Request VO") +@Data +public class QuantityUnitRelationSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11015") + private Long id; + + @Schema(description = "计量单位量ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "11015") + private Long untQtyId; + + @Schema(description = "计量单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "30976") + private Long untId; + + @Schema(description = "是否基准单位-标识该维度基准单位") + private Integer isBse; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/UnitConversionController.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/UnitConversionController.java new file mode 100644 index 00000000..c3ddbfef --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/UnitConversionController.java @@ -0,0 +1,108 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitConversion; + +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.*; + +import com.zt.plat.module.unitmanagement.controller.admin.UnitConversion.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UnitConversion.UnitConversionDO; +import com.zt.plat.module.unitmanagement.service.UnitConversion.UnitConversionService; + +@Tag(name = "管理后台 - 单位转换") +@RestController +@RequestMapping("/base/unit-management/unit-conversion") +@Validated +public class UnitConversionController implements BusinessControllerMarker { + + + @Resource + private UnitConversionService unitConversionService; + + @PostMapping("/create") + @Operation(summary = "创建单位转换") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:create')") + public CommonResult createUnitConversion(@Valid @RequestBody UnitConversionSaveReqVO createReqVO) { + return success(unitConversionService.createUnitConversion(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新单位转换") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:update')") + public CommonResult updateUnitConversion(@Valid @RequestBody UnitConversionSaveReqVO updateReqVO) { + unitConversionService.updateUnitConversion(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除单位转换") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:delete')") + public CommonResult deleteUnitConversion(@RequestParam("id") Long id) { + unitConversionService.deleteUnitConversion(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除单位转换") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:delete')") + public CommonResult deleteUnitConversionList(@RequestBody BatchDeleteReqVO req) { + unitConversionService.deleteUnitConversionListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得单位转换") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:query')") + public CommonResult getUnitConversion(@RequestParam("id") Long id) { + UnitConversionDO unitConversion = unitConversionService.getUnitConversion(id); + return success(BeanUtils.toBean(unitConversion, UnitConversionRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得单位转换分页") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:query')") + public CommonResult> getUnitConversionPage(@Valid UnitConversionPageReqVO pageReqVO) { + PageResult pageResult = unitConversionService.getUnitConversionPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, UnitConversionRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出单位转换 Excel") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-conversion:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportUnitConversionExcel(@Valid UnitConversionPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = unitConversionService.getUnitConversionPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "单位转换.xls", "数据", UnitConversionRespVO.class, + BeanUtils.toBean(list, UnitConversionRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java new file mode 100644 index 00000000..77fb3394 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionPageReqVO.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitConversion.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.zt.plat.framework.common.pojo.PageParam; +import java.math.BigDecimal; +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 = "管理后台 - 单位转换分页 Request VO") +@Data +public class UnitConversionPageReqVO extends PageParam { + + @Schema(description = "源单位ID", example = "26239") + private Long srcUntId; + + @Schema(description = "目标单位ID", example = "25640") + private Long tgtUntId; + + @Schema(description = "转换因子") + private BigDecimal fctr; + + @Schema(description = "转换公式") + private String fmu; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionRespVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionRespVO.java new file mode 100644 index 00000000..7c599383 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionRespVO.java @@ -0,0 +1,40 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitConversion.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 单位转换 Response VO") +@Data +@ExcelIgnoreUnannotated +public class UnitConversionRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "339") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "源单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26239") + @ExcelProperty("源单位ID") + private Long srcUntId; + + @Schema(description = "目标单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25640") + @ExcelProperty("目标单位ID") + private Long tgtUntId; + + @Schema(description = "转换因子") + @ExcelProperty("转换因子") + private BigDecimal fctr; + + @Schema(description = "转换公式", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("转换公式") + private String fmu; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java new file mode 100644 index 00000000..b8da368c --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/UnitConversion/vo/UnitConversionSaveReqVO.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitConversion.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 单位转换新增/修改 Request VO") +@Data +public class UnitConversionSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "339") + private Long id; + + @Schema(description = "源单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26239") + @NotNull(message = "源单位ID不能为空") + private Long srcUntId; + + @Schema(description = "目标单位ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25640") + @NotNull(message = "目标单位ID不能为空") + private Long tgtUntId; + + @Schema(description = "转换因子") + private BigDecimal fctr; + + @Schema(description = "转换公式", requiredMode = Schema.RequiredMode.REQUIRED) + private String fmu; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/UnitQuantityController.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/UnitQuantityController.java new file mode 100644 index 00000000..b9de3d66 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/UnitQuantityController.java @@ -0,0 +1,108 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity; + +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.*; + +import com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UnitQuantity.UnitQuantityDO; +import com.zt.plat.module.unitmanagement.service.UnitQuantity.UnitQuantityService; + +@Tag(name = "管理后台 - 计量单位量") +@RestController +@RequestMapping("/base/unit-management/unit-quantity") +@Validated +public class UnitQuantityController implements BusinessControllerMarker { + + + @Resource + private UnitQuantityService unitQuantityService; + + @PostMapping("/create") + @Operation(summary = "创建计量单位量") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:create')") + public CommonResult createUnitQuantity(@Valid @RequestBody UnitQuantitySaveReqVO createReqVO) { + return success(unitQuantityService.createUnitQuantity(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新计量单位量") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:update')") + public CommonResult updateUnitQuantity(@Valid @RequestBody UnitQuantitySaveReqVO updateReqVO) { + unitQuantityService.updateUnitQuantity(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除计量单位量") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:delete')") + public CommonResult deleteUnitQuantity(@RequestParam("id") Long id) { + unitQuantityService.deleteUnitQuantity(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除计量单位量") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:delete')") + public CommonResult deleteUnitQuantityList(@RequestBody BatchDeleteReqVO req) { + unitQuantityService.deleteUnitQuantityListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得计量单位量") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:query')") + public CommonResult getUnitQuantity(@RequestParam("id") Long id) { + UnitQuantityDO unitQuantity = unitQuantityService.getUnitQuantity(id); + return success(BeanUtils.toBean(unitQuantity, UnitQuantityRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得计量单位量分页") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:query')") + public CommonResult> getUnitQuantityPage(@Valid UnitQuantityPageReqVO pageReqVO) { + PageResult pageResult = unitQuantityService.getUnitQuantityPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, UnitQuantityRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出计量单位量 Excel") + @PreAuthorize("@ss.hasPermission('unitmanagement:unit-quantity:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportUnitQuantityExcel(@Valid UnitQuantityPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = unitQuantityService.getUnitQuantityPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "计量单位量.xls", "数据", UnitQuantityRespVO.class, + BeanUtils.toBean(list, UnitQuantityRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantityPageReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantityPageReqVO.java new file mode 100644 index 00000000..3ddd3379 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantityPageReqVO.java @@ -0,0 +1,29 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity.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 = "管理后台 - 计量单位量分页 Request VO") +@Data +public class UnitQuantityPageReqVO extends PageParam { + + @Schema(description = "计量名称", example = "王五") + private String name; + + @Schema(description = "计量符号") + private String symbol; + + @Schema(description = "计量描述") + private String dsp; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantityRespVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantityRespVO.java new file mode 100644 index 00000000..ad653e34 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantityRespVO.java @@ -0,0 +1,35 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity.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 = "管理后台 - 计量单位量 Response VO") +@Data +@ExcelIgnoreUnannotated +public class UnitQuantityRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "314") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "计量名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("计量名称") + private String name; + + @Schema(description = "计量符号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("计量符号") + private String symbol; + + @Schema(description = "计量描述", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("计量描述") + private String dsp; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantitySaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantitySaveReqVO.java new file mode 100644 index 00000000..086ef77f --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/unitQuantity/vo/UnitQuantitySaveReqVO.java @@ -0,0 +1,27 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 计量单位量新增/修改 Request VO") +@Data +public class UnitQuantitySaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "314") + private Long id; + + @Schema(description = "计量名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "计量名称不能为空") + private String name; + + @Schema(description = "计量符号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "计量符号不能为空") + private String symbol; + + @Schema(description = "计量描述", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "计量描述不能为空") + private String dsp; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/UntInfoController.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/UntInfoController.java new file mode 100644 index 00000000..6935276a --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/UntInfoController.java @@ -0,0 +1,108 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UntInfo; + +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.*; + +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UntInfo.UntInfoDO; +import com.zt.plat.module.unitmanagement.service.UntInfo.UntInfoService; + +@Tag(name = "管理后台 - 计量单位") +@RestController +@RequestMapping("/base/unit-management/unt-info") +@Validated +public class UntInfoController implements BusinessControllerMarker { + + + @Resource + private UntInfoService untInfoService; + + @PostMapping("/create") + @Operation(summary = "创建计量单位") + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:create')") + public CommonResult createUntInfo(@Valid @RequestBody UntInfoSaveReqVO createReqVO) { + return success(untInfoService.createUntInfo(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新计量单位") + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:update')") + public CommonResult updateUntInfo(@Valid @RequestBody UntInfoSaveReqVO updateReqVO) { + untInfoService.updateUntInfo(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除计量单位") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:delete')") + public CommonResult deleteUntInfo(@RequestParam("id") Long id) { + untInfoService.deleteUntInfo(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除计量单位") + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:delete')") + public CommonResult deleteUntInfoList(@RequestBody BatchDeleteReqVO req) { + untInfoService.deleteUntInfoListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得计量单位") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:query')") + public CommonResult getUntInfo(@RequestParam("id") Long id) { + UntInfoDO untInfo = untInfoService.getUntInfo(id); + return success(BeanUtils.toBean(untInfo, UntInfoRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得计量单位分页") + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:query')") + public CommonResult> getUntInfoPage(@Valid UntInfoPageReqVO pageReqVO) { + PageResult pageResult = untInfoService.getUntInfoPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, UntInfoRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出计量单位 Excel") + @PreAuthorize("@ss.hasPermission('unitmanagement:unt-info:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportUntInfoExcel(@Valid UntInfoPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = untInfoService.getUntInfoPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "计量单位.xls", "数据", UntInfoRespVO.class, + BeanUtils.toBean(list, UntInfoRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoPageReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoPageReqVO.java new file mode 100644 index 00000000..b2582c3a --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoPageReqVO.java @@ -0,0 +1,26 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UntInfo.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 = "管理后台 - 计量单位分页 Request VO") +@Data +public class UntInfoPageReqVO extends PageParam { + + @Schema(description = "单位名称", example = "王五") + private String name; + + @Schema(description = "单位符号") + private String smb; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoRespVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoRespVO.java new file mode 100644 index 00000000..1ca397a3 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoRespVO.java @@ -0,0 +1,31 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UntInfo.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 = "管理后台 - 计量单位 Response VO") +@Data +@ExcelIgnoreUnannotated +public class UntInfoRespVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18527") + @ExcelProperty("主键ID") + private Long id; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("单位名称") + private String name; + + @Schema(description = "单位符号", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("单位符号") + private String smb; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoSaveReqVO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoSaveReqVO.java new file mode 100644 index 00000000..32aabe3c --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/controller/admin/untinfo/vo/UntInfoSaveReqVO.java @@ -0,0 +1,23 @@ +package com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import jakarta.validation.constraints.*; + +@Schema(description = "管理后台 - 计量单位新增/修改 Request VO") +@Data +public class UntInfoSaveReqVO { + + @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18527") + private Long id; + + @Schema(description = "单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @NotEmpty(message = "单位名称不能为空") + private String name; + + @Schema(description = "单位符号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "单位符号不能为空") + private String smb; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/QuantityUnitRelation/QuantityUnitRelationMapper.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/QuantityUnitRelation/QuantityUnitRelationMapper.java new file mode 100644 index 00000000..60ca4a09 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/QuantityUnitRelation/QuantityUnitRelationMapper.java @@ -0,0 +1,38 @@ +package com.zt.plat.module.unitmanagement.dal.dao.QuantityUnitRelation; + +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.unitmanagement.dal.dataobject.QuantityUnitRelation.QuantityUnitRelationDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo.*; + +/** + * 计量单位量与单位关联 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface QuantityUnitRelationMapper extends BaseMapperX { + + default PageResult selectPage(QuantityUnitRelationPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(QuantityUnitRelationDO::getUntQtyId, reqVO.getUntQtyId()) + .eqIfPresent(QuantityUnitRelationDO::getIsBse, reqVO.getIsBse()) + .orderByDesc(QuantityUnitRelationDO::getUntQtyId)); + } + + /** + * 根据量纲ID查询所有关联关系 + * + * @param untQtyId 量纲ID + * @return 关联关系列表 + */ + default List selectListByUntQtyId(Long untQtyId) { + return selectList(new LambdaQueryWrapperX() + .eq(QuantityUnitRelationDO::getUntQtyId, untQtyId)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java new file mode 100644 index 00000000..a667ad78 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/UnitConversion/UnitConversionMapper.java @@ -0,0 +1,30 @@ +package com.zt.plat.module.unitmanagement.dal.dao.UnitConversion; + +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.unitmanagement.dal.dataobject.UnitConversion.UnitConversionDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.unitmanagement.controller.admin.UnitConversion.vo.*; + +/** + * 单位转换 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface UnitConversionMapper extends BaseMapperX { + + default PageResult selectPage(UnitConversionPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(UnitConversionDO::getSrcUntId, reqVO.getSrcUntId()) + .eqIfPresent(UnitConversionDO::getTgtUntId, reqVO.getTgtUntId()) + .eqIfPresent(UnitConversionDO::getFctr, reqVO.getFctr()) + .eqIfPresent(UnitConversionDO::getFmu, reqVO.getFmu()) + .betweenIfPresent(UnitConversionDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(UnitConversionDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/unitQuantity/UnitQuantityMapper.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/unitQuantity/UnitQuantityMapper.java new file mode 100644 index 00000000..56292e08 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/unitQuantity/UnitQuantityMapper.java @@ -0,0 +1,29 @@ +package com.zt.plat.module.unitmanagement.dal.dao.UnitQuantity; + +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.unitmanagement.dal.dataobject.UnitQuantity.UnitQuantityDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity.vo.*; + +/** + * 计量单位量 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface UnitQuantityMapper extends BaseMapperX { + + default PageResult selectPage(UnitQuantityPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(UnitQuantityDO::getName, reqVO.getName()) + .eqIfPresent(UnitQuantityDO::getSymbol, reqVO.getSymbol()) + .eqIfPresent(UnitQuantityDO::getDsp, reqVO.getDsp()) + .betweenIfPresent(UnitQuantityDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(UnitQuantityDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/untinfo/UntInfoMapper.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/untinfo/UntInfoMapper.java new file mode 100644 index 00000000..16640fbc --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dao/untinfo/UntInfoMapper.java @@ -0,0 +1,28 @@ +package com.zt.plat.module.unitmanagement.dal.dao.UntInfo; + +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.unitmanagement.dal.dataobject.UntInfo.UntInfoDO; +import org.apache.ibatis.annotations.Mapper; +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.*; + +/** + * 计量单位 Mapper + * + * @author 后台管理-1 + */ +@Mapper +public interface UntInfoMapper extends BaseMapperX { + + default PageResult selectPage(UntInfoPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(UntInfoDO::getName, reqVO.getName()) + .eqIfPresent(UntInfoDO::getSmb, reqVO.getSmb()) + .betweenIfPresent(UntInfoDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(UntInfoDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/QuantityUnitRelation/QuantityUnitRelationDO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/QuantityUnitRelation/QuantityUnitRelationDO.java new file mode 100644 index 00000000..b8cf8774 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/QuantityUnitRelation/QuantityUnitRelationDO.java @@ -0,0 +1,49 @@ +package com.zt.plat.module.unitmanagement.dal.dataobject.QuantityUnitRelation; + +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +/** +* 计量单位量与单位关联 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_unt_qty_unt") +@KeySequence("bse_unt_qty_unt_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class QuantityUnitRelationDO extends BaseDO { + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 计量单位量ID + */ + @TableField("UNT_QTY_ID") + private Long untQtyId; + /** + * 计量单位ID + */ + @TableField("UNT_ID") + private Long untId; + /** + * 是否基准单位-标识该维度基准单位 + */ + @TableField("IS_BSE") + private Integer isBse; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java new file mode 100644 index 00000000..05431d29 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/UnitConversion/UnitConversionDO.java @@ -0,0 +1,56 @@ +package com.zt.plat.module.unitmanagement.dal.dataobject.UnitConversion; + +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; +import java.util.*; + import java.math.BigDecimal; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +/** +* 单位转换 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_unt_cnv") +@KeySequence("bse_unt_cnv_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class UnitConversionDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 源单位ID + */ + @TableField("SRC_UNT_ID") + private Long srcUntId; + /** + * 目标单位ID + */ + @TableField("TGT_UNT_ID") + private Long tgtUntId; + /** + * 转换因子 + */ + @TableField("FCTR") + private BigDecimal fctr; + /** + * 转换公式 + */ + @TableField("FMU") + private String fmu; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/unitQuantity/UnitQuantityDO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/unitQuantity/UnitQuantityDO.java new file mode 100644 index 00000000..a2cd8e22 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/unitQuantity/UnitQuantityDO.java @@ -0,0 +1,50 @@ +package com.zt.plat.module.unitmanagement.dal.dataobject.UnitQuantity; + +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +/** +* 计量单位量 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_unt_qty") +@KeySequence("bse_unt_qty_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class UnitQuantityDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 计量名称 + */ + @TableField("NAME") + private String name; + /** + * 计量符号 + */ + @TableField("SYMBOL") + private String symbol; + /** + * 计量描述 + */ + @TableField("DSP") + private String dsp; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/untinfo/UntInfoDO.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/untinfo/UntInfoDO.java new file mode 100644 index 00000000..1474f19b --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/dal/dataobject/untinfo/UntInfoDO.java @@ -0,0 +1,45 @@ +package com.zt.plat.module.unitmanagement.dal.dataobject.UntInfo; + +import com.zt.plat.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; +import java.util.*; + import java.time.LocalDateTime; + import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +/** +* 计量单位 DO +* +* @author 后台管理-1 +*/ +@TableName("bse_unt_inf") +@KeySequence("bse_unt_inf_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class UntInfoDO extends BaseDO { + + + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 单位名称 + */ + @TableField("NAME") + private String name; + /** + * 单位符号 + */ + @TableField("SMB") + private String smb; + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java new file mode 100644 index 00000000..cd2e715d --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationService.java @@ -0,0 +1,70 @@ +package com.zt.plat.module.unitmanagement.service.QuantityUnitRelation; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.unitmanagement.controller.admin.QuantityUnitRelation.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.QuantityUnitRelation.QuantityUnitRelationDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 计量单位量与单位关联 Service 接口 + * + * @author 后台管理-1 + */ +public interface QuantityUnitRelationService { + + /** + * 创建计量单位量与单位关联 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + QuantityUnitRelationRespVO createQuantityUnitRelation(@Valid QuantityUnitRelationSaveReqVO createReqVO); + + /** + * 更新计量单位量与单位关联 + * + * @param updateReqVO 更新信息 + */ + void updateQuantityUnitRelation(@Valid QuantityUnitRelationSaveReqVO updateReqVO); + + /** + * 删除计量单位量与单位关联 + * + * @param id 编号 + */ + void deleteQuantityUnitRelation(Long id); + + /** + * 批量删除计量单位量与单位关联 + * + * @param ids 编号 + */ + void deleteQuantityUnitRelationListByIds(List ids); + + /** + * 获得计量单位量与单位关联 + * + * @param id 编号 + * @return 计量单位量与单位关联 + */ + QuantityUnitRelationDO getQuantityUnitRelation(Long id); + + /** + * 获得计量单位量与单位关联分页 + * + * @param pageReqVO 分页查询 + * @return 计量单位量与单位关联分页 + */ + PageResult getQuantityUnitRelationPage(QuantityUnitRelationPageReqVO pageReqVO); + + /** + * 批量保存计量单位量与单位关联 + * 根据传入的量纲ID和单位列表,进行新增、更新和逻辑删除操作 + * + * @param batchSaveReqVO 批量保存请求 + */ + void batchSaveQuantityUnitRelations(@Valid QuantityUnitRelationBatchSaveReqVO batchSaveReqVO); + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java new file mode 100644 index 00000000..3848e1cb --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/QuantityUnitRelation/QuantityUnitRelationServiceImpl.java @@ -0,0 +1,141 @@ +package com.zt.plat.module.unitmanagement.service.QuantityUnitRelation; + +import cn.hutool.core.collection.CollUtil; +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.module.unitmanagement.controller.admin.QuantityUnitRelation.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.QuantityUnitRelation.QuantityUnitRelationDO; +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 com.zt.plat.module.unitmanagement.dal.dao.QuantityUnitRelation.QuantityUnitRelationMapper; + +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.unitmanagement.enums.UnitErrorCodeConstants.*; + +/** + * 计量单位量与单位关联 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class QuantityUnitRelationServiceImpl implements QuantityUnitRelationService { + + @Resource + private QuantityUnitRelationMapper quantityUnitRelationMapper; + + @Override + public QuantityUnitRelationRespVO createQuantityUnitRelation(QuantityUnitRelationSaveReqVO createReqVO) { + // 插入 + QuantityUnitRelationDO quantityUnitRelation = BeanUtils.toBean(createReqVO, QuantityUnitRelationDO.class); + quantityUnitRelationMapper.insert(quantityUnitRelation); + // 返回 + return BeanUtils.toBean(quantityUnitRelation, QuantityUnitRelationRespVO.class); + } + + @Override + public void updateQuantityUnitRelation(QuantityUnitRelationSaveReqVO updateReqVO) { + // 校验存在 + validateQuantityUnitRelationExists(updateReqVO.getId()); + // 更新 + QuantityUnitRelationDO updateObj = BeanUtils.toBean(updateReqVO, QuantityUnitRelationDO.class); + quantityUnitRelationMapper.updateById(updateObj); + } + + @Override + public void deleteQuantityUnitRelation(Long id) { + // 校验存在 + validateQuantityUnitRelationExists(id); + // 删除 + quantityUnitRelationMapper.deleteById(id); + } + + @Override + public void deleteQuantityUnitRelationListByIds(List ids) { + // 校验存在 + validateQuantityUnitRelationExists(ids); + // 删除 + quantityUnitRelationMapper.deleteByIds(ids); + } + + private void validateQuantityUnitRelationExists(List ids) { + List list = quantityUnitRelationMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(QUANTITY_UNIT_RELATION_NOT_EXISTS); + } + } + + private void validateQuantityUnitRelationExists(Long id) { + if (quantityUnitRelationMapper.selectById(id) == null) { + throw exception(QUANTITY_UNIT_RELATION_NOT_EXISTS); + } + } + + @Override + public QuantityUnitRelationDO getQuantityUnitRelation(Long id) { + return quantityUnitRelationMapper.selectById(id); + } + + @Override + public PageResult getQuantityUnitRelationPage(QuantityUnitRelationPageReqVO pageReqVO) { + return quantityUnitRelationMapper.selectPage(pageReqVO); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void batchSaveQuantityUnitRelations(QuantityUnitRelationBatchSaveReqVO batchSaveReqVO) { + Long untQtyId = batchSaveReqVO.getUntQtyId(); + List requestItems = batchSaveReqVO.getUnitRelations(); + + // 1. 查询数据库中该量纲下的所有现有关联关系 + List existingRelations = quantityUnitRelationMapper.selectListByUntQtyId(untQtyId); + + // 2. 提取请求中的ID列表(排除null) + List requestIds = requestItems.stream() + .map(QuantityUnitRelationBatchSaveReqVO.UnitRelationItemVO::getId) + .filter(Objects::nonNull) + .toList(); + + // 3. 提取现有数据的ID列表 + List existingIds = convertList(existingRelations, QuantityUnitRelationDO::getId); + + // 4. 找出需要删除的ID(数据库有但请求中没有的) + List toDeleteIds = new ArrayList<>(); + for (Long existingId : existingIds) { + if (!requestIds.contains(existingId)) { + toDeleteIds.add(existingId); + } + } + + // 5. 执行逻辑删除 + if (CollUtil.isNotEmpty(toDeleteIds)) { + quantityUnitRelationMapper.deleteByIds(toDeleteIds); + } + + // 6. 处理新增和更新 + for (QuantityUnitRelationBatchSaveReqVO.UnitRelationItemVO item : requestItems) { + QuantityUnitRelationDO relation = new QuantityUnitRelationDO(); + relation.setUntQtyId(untQtyId); + relation.setUntId(item.getUntId()); + relation.setIsBse(item.getIsBse()); + + if (item.getId() != null) { + // 更新操作 + relation.setId(item.getId()); + quantityUnitRelationMapper.updateById(relation); + } else { + // 新增操作 + quantityUnitRelationMapper.insert(relation); + } + } + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/UnitConversion/UnitConversionService.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/UnitConversion/UnitConversionService.java new file mode 100644 index 00000000..c5edb6d7 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/UnitConversion/UnitConversionService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.unitmanagement.service.UnitConversion; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.unitmanagement.controller.admin.UnitConversion.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UnitConversion.UnitConversionDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 单位转换 Service 接口 + * + * @author 后台管理-1 + */ +public interface UnitConversionService { + + /** + * 创建单位转换 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + UnitConversionRespVO createUnitConversion(@Valid UnitConversionSaveReqVO createReqVO); + + /** + * 更新单位转换 + * + * @param updateReqVO 更新信息 + */ + void updateUnitConversion(@Valid UnitConversionSaveReqVO updateReqVO); + + /** + * 删除单位转换 + * + * @param id 编号 + */ + void deleteUnitConversion(Long id); + + /** + * 批量删除单位转换 + * + * @param ids 编号 + */ + void deleteUnitConversionListByIds(List ids); + + /** + * 获得单位转换 + * + * @param id 编号 + * @return 单位转换 + */ + UnitConversionDO getUnitConversion(Long id); + + /** + * 获得单位转换分页 + * + * @param pageReqVO 分页查询 + * @return 单位转换分页 + */ + PageResult getUnitConversionPage(UnitConversionPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/UnitConversion/UnitConversionServiceImpl.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/UnitConversion/UnitConversionServiceImpl.java new file mode 100644 index 00000000..23adef11 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/UnitConversion/UnitConversionServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.unitmanagement.service.UnitConversion; + +import cn.hutool.core.collection.CollUtil; +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.module.unitmanagement.controller.admin.UnitConversion.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UnitConversion.UnitConversionDO; +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 com.zt.plat.module.unitmanagement.dal.dao.UnitConversion.UnitConversionMapper; + +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.unitmanagement.enums.UnitErrorCodeConstants.*; + +/** + * 单位转换 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class UnitConversionServiceImpl implements UnitConversionService { + + @Resource + private UnitConversionMapper unitConversionMapper; + + @Override + public UnitConversionRespVO createUnitConversion(UnitConversionSaveReqVO createReqVO) { + // 插入 + UnitConversionDO unitConversion = BeanUtils.toBean(createReqVO, UnitConversionDO.class); + unitConversionMapper.insert(unitConversion); + // 返回 + return BeanUtils.toBean(unitConversion, UnitConversionRespVO.class); + } + + @Override + public void updateUnitConversion(UnitConversionSaveReqVO updateReqVO) { + // 校验存在 + validateUnitConversionExists(updateReqVO.getId()); + // 更新 + UnitConversionDO updateObj = BeanUtils.toBean(updateReqVO, UnitConversionDO.class); + unitConversionMapper.updateById(updateObj); + } + + @Override + public void deleteUnitConversion(Long id) { + // 校验存在 + validateUnitConversionExists(id); + // 删除 + unitConversionMapper.deleteById(id); + } + + @Override + public void deleteUnitConversionListByIds(List ids) { + // 校验存在 + validateUnitConversionExists(ids); + // 删除 + unitConversionMapper.deleteByIds(ids); + } + + private void validateUnitConversionExists(List ids) { + List list = unitConversionMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(UNIT_CONVERSION_NOT_EXISTS); + } + } + + private void validateUnitConversionExists(Long id) { + if (unitConversionMapper.selectById(id) == null) { + throw exception(UNIT_CONVERSION_NOT_EXISTS); + } + } + + @Override + public UnitConversionDO getUnitConversion(Long id) { + return unitConversionMapper.selectById(id); + } + + @Override + public PageResult getUnitConversionPage(UnitConversionPageReqVO pageReqVO) { + return unitConversionMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/unitQuantity/UnitQuantityService.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/unitQuantity/UnitQuantityService.java new file mode 100644 index 00000000..3000f829 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/unitQuantity/UnitQuantityService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.unitmanagement.service.UnitQuantity; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.unitmanagement.controller.admin.UnitQuantity.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UnitQuantity.UnitQuantityDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 计量单位量 Service 接口 + * + * @author 后台管理-1 + */ +public interface UnitQuantityService { + + /** + * 创建计量单位量 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + UnitQuantityRespVO createUnitQuantity(@Valid UnitQuantitySaveReqVO createReqVO); + + /** + * 更新计量单位量 + * + * @param updateReqVO 更新信息 + */ + void updateUnitQuantity(@Valid UnitQuantitySaveReqVO updateReqVO); + + /** + * 删除计量单位量 + * + * @param id 编号 + */ + void deleteUnitQuantity(Long id); + + /** + * 批量删除计量单位量 + * + * @param ids 编号 + */ + void deleteUnitQuantityListByIds(List ids); + + /** + * 获得计量单位量 + * + * @param id 编号 + * @return 计量单位量 + */ + UnitQuantityDO getUnitQuantity(Long id); + + /** + * 获得计量单位量分页 + * + * @param pageReqVO 分页查询 + * @return 计量单位量分页 + */ + PageResult getUnitQuantityPage(UnitQuantityPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/unitQuantity/UnitQuantityServiceImpl.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/unitQuantity/UnitQuantityServiceImpl.java new file mode 100644 index 00000000..ff72621d --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/unitQuantity/UnitQuantityServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.unitmanagement.service.UnitQuantity; + +import cn.hutool.core.collection.CollUtil; +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.module.unitmanagement.controller.admin.UnitQuantity.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UnitQuantity.UnitQuantityDO; +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 com.zt.plat.module.unitmanagement.dal.dao.UnitQuantity.UnitQuantityMapper; + +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.unitmanagement.enums.UnitErrorCodeConstants.*; + +/** + * 计量单位量 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class UnitQuantityServiceImpl implements UnitQuantityService { + + @Resource + private UnitQuantityMapper unitQuantityMapper; + + @Override + public UnitQuantityRespVO createUnitQuantity(UnitQuantitySaveReqVO createReqVO) { + // 插入 + UnitQuantityDO unitQuantity = BeanUtils.toBean(createReqVO, UnitQuantityDO.class); + unitQuantityMapper.insert(unitQuantity); + // 返回 + return BeanUtils.toBean(unitQuantity, UnitQuantityRespVO.class); + } + + @Override + public void updateUnitQuantity(UnitQuantitySaveReqVO updateReqVO) { + // 校验存在 + validateUnitQuantityExists(updateReqVO.getId()); + // 更新 + UnitQuantityDO updateObj = BeanUtils.toBean(updateReqVO, UnitQuantityDO.class); + unitQuantityMapper.updateById(updateObj); + } + + @Override + public void deleteUnitQuantity(Long id) { + // 校验存在 + validateUnitQuantityExists(id); + // 删除 + unitQuantityMapper.deleteById(id); + } + + @Override + public void deleteUnitQuantityListByIds(List ids) { + // 校验存在 + validateUnitQuantityExists(ids); + // 删除 + unitQuantityMapper.deleteByIds(ids); + } + + private void validateUnitQuantityExists(List ids) { + List list = unitQuantityMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(UNIT_QUANTITY_NOT_EXISTS); + } + } + + private void validateUnitQuantityExists(Long id) { + if (unitQuantityMapper.selectById(id) == null) { + throw exception(UNIT_QUANTITY_NOT_EXISTS); + } + } + + @Override + public UnitQuantityDO getUnitQuantity(Long id) { + return unitQuantityMapper.selectById(id); + } + + @Override + public PageResult getUnitQuantityPage(UnitQuantityPageReqVO pageReqVO) { + return unitQuantityMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/untinfo/UntInfoService.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/untinfo/UntInfoService.java new file mode 100644 index 00000000..37a8967b --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/untinfo/UntInfoService.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.unitmanagement.service.UntInfo; + +import java.util.*; +import jakarta.validation.*; +import com.zt.plat.module.unitmanagement.controller.admin.UntInfo.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UntInfo.UntInfoDO; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.PageParam; + +/** + * 计量单位 Service 接口 + * + * @author 后台管理-1 + */ +public interface UntInfoService { + + /** + * 创建计量单位 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + UntInfoRespVO createUntInfo(@Valid UntInfoSaveReqVO createReqVO); + + /** + * 更新计量单位 + * + * @param updateReqVO 更新信息 + */ + void updateUntInfo(@Valid UntInfoSaveReqVO updateReqVO); + + /** + * 删除计量单位 + * + * @param id 编号 + */ + void deleteUntInfo(Long id); + + /** + * 批量删除计量单位 + * + * @param ids 编号 + */ + void deleteUntInfoListByIds(List ids); + + /** + * 获得计量单位 + * + * @param id 编号 + * @return 计量单位 + */ + UntInfoDO getUntInfo(Long id); + + /** + * 获得计量单位分页 + * + * @param pageReqVO 分页查询 + * @return 计量单位分页 + */ + PageResult getUntInfoPage(UntInfoPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/untinfo/UntInfoServiceImpl.java b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/untinfo/UntInfoServiceImpl.java new file mode 100644 index 00000000..ea38763e --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/java/com/zt/plat/module/unitmanagement/service/untinfo/UntInfoServiceImpl.java @@ -0,0 +1,92 @@ +package com.zt.plat.module.unitmanagement.service.UntInfo; + +import cn.hutool.core.collection.CollUtil; +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.module.unitmanagement.controller.admin.UntInfo.vo.*; +import com.zt.plat.module.unitmanagement.dal.dataobject.UntInfo.UntInfoDO; +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 com.zt.plat.module.unitmanagement.dal.dao.UntInfo.UntInfoMapper; + +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.unitmanagement.enums.UnitErrorCodeConstants.*; + +/** + * 计量单位 Service 实现类 + * + * @author 后台管理-1 + */ +@Service +@Validated +public class UntInfoServiceImpl implements UntInfoService { + + @Resource + private UntInfoMapper untInfoMapper; + + @Override + public UntInfoRespVO createUntInfo(UntInfoSaveReqVO createReqVO) { + // 插入 + UntInfoDO untInfo = BeanUtils.toBean(createReqVO, UntInfoDO.class); + untInfoMapper.insert(untInfo); + // 返回 + return BeanUtils.toBean(untInfo, UntInfoRespVO.class); + } + + @Override + public void updateUntInfo(UntInfoSaveReqVO updateReqVO) { + // 校验存在 + validateUntInfoExists(updateReqVO.getId()); + // 更新 + UntInfoDO updateObj = BeanUtils.toBean(updateReqVO, UntInfoDO.class); + untInfoMapper.updateById(updateObj); + } + + @Override + public void deleteUntInfo(Long id) { + // 校验存在 + validateUntInfoExists(id); + // 删除 + untInfoMapper.deleteById(id); + } + + @Override + public void deleteUntInfoListByIds(List ids) { + // 校验存在 + validateUntInfoExists(ids); + // 删除 + untInfoMapper.deleteByIds(ids); + } + + private void validateUntInfoExists(List ids) { + List list = untInfoMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(UNT_INFO_NOT_EXISTS); + } + } + + private void validateUntInfoExists(Long id) { + if (untInfoMapper.selectById(id) == null) { + throw exception(UNT_INFO_NOT_EXISTS); + } + } + + @Override + public UntInfoDO getUntInfo(Long id) { + return untInfoMapper.selectById(id); + } + + @Override + public PageResult getUntInfoPage(UntInfoPageReqVO pageReqVO) { + return untInfoMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/QuantityUnitRelation/QuantityUnitRelationMapper.xml b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/QuantityUnitRelation/QuantityUnitRelationMapper.xml new file mode 100644 index 00000000..d058a01f --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/QuantityUnitRelation/QuantityUnitRelationMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/UnitConversion/UnitConversionMapper.xml b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/UnitConversion/UnitConversionMapper.xml new file mode 100644 index 00000000..1cb67ca0 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/UnitConversion/UnitConversionMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/unitQuantity/UnitQuantityMapper.xml b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/unitQuantity/UnitQuantityMapper.xml new file mode 100644 index 00000000..a9130d87 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/unitQuantity/UnitQuantityMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/untinfo/UntInfoMapper.xml b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/untinfo/UntInfoMapper.xml new file mode 100644 index 00000000..1823cc43 --- /dev/null +++ b/zt-module-unit-management/zt-module-unit-management-server/src/main/resources/mapper/untinfo/UntInfoMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file