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

This commit is contained in:
qianshijiang
2025-10-27 15:04:53 +08:00
41 changed files with 2262 additions and 106 deletions

View File

@@ -39,9 +39,9 @@ import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 部门与实例关联")
@RestController
@RequestMapping("/bse/department-instance-relativity")
@RequestMapping("/base/department-instance-relativity")
@Validated
@FileUploadController(source = "bse.departmentinstancerelativity")
@FileUploadController(source = "base.departmentinstancerelativity")
public class DepartmentInstanceRelativityController extends AbstractFileUploadController implements BusinessControllerMarker{
static {
@@ -56,14 +56,14 @@ public class DepartmentInstanceRelativityController extends AbstractFileUploadCo
@PostMapping("/create")
@Operation(summary = "创建部门与实例关联")
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:create')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:create')")
public CommonResult<DepartmentInstanceRelativityRespVO> createDepartmentInstanceRelativity(@Valid @RequestBody DepartmentInstanceRelativitySaveReqVO createReqVO) {
return success(departmentInstanceRelativityService.createDepartmentInstanceRelativity(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新部门与实例关联")
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:update')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:update')")
public CommonResult<Boolean> updateDepartmentInstanceRelativity(@Valid @RequestBody DepartmentInstanceRelativitySaveReqVO updateReqVO) {
departmentInstanceRelativityService.updateDepartmentInstanceRelativity(updateReqVO);
return success(true);
@@ -72,7 +72,7 @@ public class DepartmentInstanceRelativityController extends AbstractFileUploadCo
@DeleteMapping("/delete")
@Operation(summary = "删除部门与实例关联")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:delete')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:delete')")
public CommonResult<Boolean> deleteDepartmentInstanceRelativity(@RequestParam("id") String id) {
departmentInstanceRelativityService.deleteDepartmentInstanceRelativity(id);
return success(true);
@@ -81,7 +81,7 @@ public class DepartmentInstanceRelativityController extends AbstractFileUploadCo
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除部门与实例关联")
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:delete')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:delete')")
public CommonResult<Boolean> deleteDepartmentInstanceRelativityList(@RequestBody BatchDeleteReqVO req) {
departmentInstanceRelativityService.deleteDepartmentInstanceRelativityListByIds(req.getIds());
return success(true);
@@ -90,7 +90,7 @@ public class DepartmentInstanceRelativityController extends AbstractFileUploadCo
@GetMapping("/get")
@Operation(summary = "获得部门与实例关联")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:query')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:query')")
public CommonResult<DepartmentInstanceRelativityRespVO> getDepartmentInstanceRelativity(@RequestParam("id") String id) {
DepartmentInstanceRelativityDO departmentInstanceRelativity = departmentInstanceRelativityService.getDepartmentInstanceRelativity(id);
return success(BeanUtils.toBean(departmentInstanceRelativity, DepartmentInstanceRelativityRespVO.class));
@@ -98,7 +98,7 @@ public class DepartmentInstanceRelativityController extends AbstractFileUploadCo
@GetMapping("/page")
@Operation(summary = "获得部门与实例关联分页")
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:query')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:query')")
public CommonResult<PageResult<DepartmentInstanceRelativityRespVO>> getDepartmentInstanceRelativityPage(@Valid DepartmentInstanceRelativityPageReqVO pageReqVO) {
PageResult<DepartmentInstanceRelativityDO> pageResult = departmentInstanceRelativityService.getDepartmentInstanceRelativityPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, DepartmentInstanceRelativityRespVO.class));
@@ -106,7 +106,7 @@ public class DepartmentInstanceRelativityController extends AbstractFileUploadCo
@GetMapping("/export-excel")
@Operation(summary = "导出部门与实例关联 Excel")
@PreAuthorize("@ss.hasPermission('bse:department-instance-relativity:export')")
@PreAuthorize("@ss.hasPermission('base:department-instance-relativity:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportDepartmentInstanceRelativityExcel(@Valid DepartmentInstanceRelativityPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {

View File

@@ -48,7 +48,7 @@ import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@RestController
@RequestMapping("/base/template-instance")
@Validated
@FileUploadController(source = "bse.templateinstance")
@FileUploadController(source = "base.templateinstance")
public class TemplateInstanceController extends AbstractFileUploadController {
static {
@@ -70,14 +70,14 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@PostMapping("/create")
@Operation(summary = "创建模板实例")
@PreAuthorize("@ss.hasPermission('bse:template-instance:create')")
@PreAuthorize("@ss.hasPermission('base:template-instance:create')")
public CommonResult<TemplateInstanceRespVO> createTemplateInstance(@Valid @RequestBody TemplateInstanceSaveReqVO createReqVO) {
return success(templateInstanceService.createTemplateInstance(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新模板实例")
@PreAuthorize("@ss.hasPermission('bse:template-instance:update')")
@PreAuthorize("@ss.hasPermission('base:template-instance:update')")
public CommonResult<Boolean> updateTemplateInstance(@Valid @RequestBody TemplateInstanceSaveReqVO updateReqVO) {
templateInstanceService.updateTemplateInstance(updateReqVO);
return success(true);
@@ -86,7 +86,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@DeleteMapping("/delete")
@Operation(summary = "删除模板实例")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:template-instance:delete')")
@PreAuthorize("@ss.hasPermission('base:template-instance:delete')")
public CommonResult<Boolean> deleteTemplateInstance(@RequestParam("id") Long id) {
templateInstanceService.deleteTemplateInstance(id);
return success(true);
@@ -95,7 +95,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除模板实例")
@PreAuthorize("@ss.hasPermission('bse:template-instance:delete')")
@PreAuthorize("@ss.hasPermission('base:template-instance:delete')")
public CommonResult<Boolean> deleteTemplateInstanceList(@RequestBody BatchDeleteReqVO req) {
templateInstanceService.deleteTemplateInstanceListByIds(req.getIds());
return success(true);
@@ -104,7 +104,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@GetMapping("/get")
@Operation(summary = "获得模板实例")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
@PreAuthorize("@ss.hasPermission('base:template-instance:query')")
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@Valid @NotEmpty(message = "编号不能为空") @RequestParam("id") String id) {
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(Long.valueOf(id));
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
@@ -119,7 +119,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@GetMapping("/page")
@Operation(summary = "获得模板实例分页")
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
@PreAuthorize("@ss.hasPermission('base:template-instance:query')")
public CommonResult<PageResult<TemplateInstanceRespVO>> getTemplateInstancePage(@Valid TemplateInstancePageReqVO pageReqVO) {
PageResult<TemplateInstanceDO> pageResult = templateInstanceService.getTemplateInstancePage(pageReqVO);
PageResult<TemplateInstanceRespVO> templateInstanceRespVOPageResult = BeanUtils.toBean(pageResult, TemplateInstanceRespVO.class);
@@ -133,7 +133,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
@GetMapping("/export-excel")
@Operation(summary = "导出模板实例 Excel")
@PreAuthorize("@ss.hasPermission('bse:template-instance:export')")
@PreAuthorize("@ss.hasPermission('base:template-instance:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportTemplateInstanceExcel(@Valid TemplateInstancePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
@@ -147,7 +147,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
//模版实例发布
@PostMapping("/publish-batch")
@Operation(summary = "模版实例发布")
@PreAuthorize("@ss.hasPermission('bse:template-instance:publish')")
@PreAuthorize("@ss.hasPermission('base:template-instance:publish')")
public CommonResult<Boolean> publishTemplateInstance(@Valid @RequestBody List<PublishTemplateInstanceReqVO> publishReqVOS) {
templateInstanceService.publishTemplateInstance(publishReqVOS);
return success(true);
@@ -156,7 +156,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
//不显示停用状态的查询接口
@GetMapping("/list-excluding-disabled")
@Operation(summary = "获得模板实例")
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
@PreAuthorize("@ss.hasPermission('base:template-instance:query')")
public CommonResult<PageResult<TemplateInstanceRespVO>> listExcludingDisabled(@Valid TemplateInstancePageReqVO pageReqVO) {
PageResult<TemplateInstanceRespVO> templateInstanceRespVOPageResult = BeanUtils.toBean(templateInstanceService.listExcludingDisabled(pageReqVO), TemplateInstanceRespVO.class);
templateInstanceRespVOPageResult.getList().forEach(
@@ -172,7 +172,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
//停用和启用接口
@PostMapping("/disable-enable")
@Operation(summary = "实例停用和启用接口", description = "实例停用和启用接口")
@PreAuthorize("@ss.hasPermission('bse:template-instance:disable-enable')")
@PreAuthorize("@ss.hasPermission('base:template-instance:disable-enable')")
public CommonResult<Boolean> setDisableOrEnable(@Valid @RequestBody DisableEnableReqVO reqVO) {
templateInstanceService.setDisableOrEnable(reqVO);
return success(true);
@@ -188,7 +188,7 @@ public class TemplateInstanceController extends AbstractFileUploadController {
//创建版本
@PostMapping("/create-version")
@Operation(summary = "创建版本")
@PreAuthorize("@ss.hasPermission('bse:template-instance:create-version')")
@PreAuthorize("@ss.hasPermission('base:template-instance:create-version')")
public CommonResult<TemplateInstanceRespVO> createVersion(@Valid @NotEmpty(message = "模版实例id不能为空") String id) {
return success(templateInstanceService.createVersion(id));
}

View File

@@ -10,6 +10,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmpItmPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.UpdateStsVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplItmDO;
import com.zt.plat.module.base.service.tmpltp.TmplItmService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,6 +19,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -88,4 +90,13 @@ public class TmplItmController {
PageResult<TmplItmDO> pageResult = tmplItmService.pageTmplItm(pageReqVO);
return success(BeanUtils.toBean(pageResult, TmplItmRespVO.class));
}
@PutMapping("/update-sts")
@Operation(summary = "更新模板条款状态")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp-fld:update')")
public CommonResult<Boolean> updateTmplTpSts(@RequestBody UpdateStsVO updateStsVO) {
tmplItmService.updateTmplTpSts(updateStsVO);
return success(true);
}
}

View File

@@ -43,7 +43,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.PARAMS_IS_NULL_
@RestController
@RequestMapping("/base/tmpl-tp")
@Validated
@FileUploadController(source = "bse.tmpltp")
@FileUploadController(source = "base.tmpltp")
public class TmplTpController extends AbstractFileUploadController implements BusinessControllerMarker{
@Resource
@@ -51,14 +51,14 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@PostMapping("/create")
@Operation(summary = "创建模板分类")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:create')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:create')")
public CommonResult<TmplTpRespVO> createTmplTp(@Valid @RequestBody TmplTpSaveReqVO createReqVO) {
return success(tmplTpService.createTmplTp(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新模板分类")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:update')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:update')")
public CommonResult<Boolean> updateTmplTp(@Valid @RequestBody TmplTpSaveReqVO updateReqVO) {
tmplTpService.updateTmplTp(updateReqVO);
return success(true);
@@ -67,7 +67,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@DeleteMapping("/delete")
@Operation(summary = "删除模板分类")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:delete')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:delete')")
public CommonResult<Boolean> deleteTmplTp(@RequestBody BatchDeleteReqVO req) {
tmplTpService.deleteTmplTp(req.getIds());
return success(true);
@@ -76,7 +76,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除模板分类")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:delete')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:delete')")
public CommonResult<Boolean> deleteTmplTpList(@RequestBody BatchDeleteReqVO req) {
tmplTpService.deleteTmplTpListByIds(req.getIds());
return success(true);
@@ -85,7 +85,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@GetMapping("/get")
@Operation(summary = "获得模板分类")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:query')")
public CommonResult<TmplTpRespVO> getTmplTp(@Valid @NotEmpty(message = "编号不能为空") @RequestParam("id") String id) {
TmplTpDO tmplTp = tmplTpService.getTmplTp(Long.valueOf(id));
return success(BeanUtils.toBean(tmplTp, TmplTpRespVO.class));
@@ -93,7 +93,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@GetMapping("/page")
@Operation(summary = "获得模板分类分页")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:query')")
public CommonResult<PageResult<TmplTpRespVO>> getTmplTpPage(@Valid TmplTpPageReqVO pageReqVO) {
PageResult<TmplTpDO> pageResult = tmplTpService.getTmplTpPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, TmplTpRespVO.class));
@@ -101,7 +101,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@GetMapping("/export-excel")
@Operation(summary = "导出模板分类 Excel")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:export')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportTmplTpExcel(@Valid TmplTpPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
@@ -114,7 +114,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
//字段和条款回显
@GetMapping("/field-and-clause")
@Operation(summary = "获得字段和条款",description = "字段和条款回显,传入模版分类的id")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:query')")
public CommonResult<Map<String, Object>> getFieldAndClause(@Valid @NotEmpty(message = "编号不能为空")@RequestParam("id") String id) {
Map<String, Object> map = new HashMap<>();
map.put("field", tmplTpService.getField(Long.valueOf(id)));
@@ -132,7 +132,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
//更新类型状态
@PutMapping("/updateStatus")
@Operation(summary = "更新模板类型状态")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:update')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:update')")
public CommonResult<Boolean> updateStatus(@RequestBody Map<String,Object> params) {
if (params == null){
throw exception(PARAMS_IS_NULL_OR_ERR);
@@ -147,7 +147,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
//表单预览
// @GetMapping("/preview")
// @Operation(summary = "表单预览",description = "传入模版分类的id")
// @PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
// @PreAuthorize("@ss.hasPermission('base:tmpl-tp:query')")
// public CommonResult< List<TmplFldRespVO>> preview(@Valid @RequestParam("id") Long id) {
// List<TmplFldRespVO> field = tmplTpService.getField(id);
// return success(field);
@@ -156,7 +156,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
// 字段编辑新增或者删除
@PostMapping("/field-edit")
@Operation(summary = "字段编辑新增或者删除")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:update')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:update')")
public CommonResult<Boolean> fieldEdit(@Valid @RequestBody TmplTpEditOrDeleteReqVO reqVO) {
tmplTpService.fieldEdit(reqVO);
return success(true);
@@ -164,7 +164,7 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
@PostMapping("/ltm-edit")
@Operation(summary = "条款编辑新增或者删除")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:update')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp:update')")
public CommonResult<Boolean> ltmEdit(@Valid @RequestBody TmplTpEditOrDeleteReqVO reqVO) {
tmplTpService.ltmEdit(reqVO);
return success(true);

View File

@@ -8,6 +8,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplTpFldSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.UpdateStsVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpFldDO;
import com.zt.plat.module.base.service.tmpltp.TmplTpFldService;
import io.swagger.v3.oas.annotations.Operation;
@@ -27,42 +28,49 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
@RestController
@RequestMapping("/base/tmpl-fld")
@Validated
@FileUploadController(source = "bse.tmplfld")
@FileUploadController(source = "base.tmplfld")
@RequiredArgsConstructor
public class TmplTpFldController {
private final TmplTpFldService tmplTpFldService;
@PostMapping("/create")
@Operation(summary = "创建模板字段")
// @PreAuthorize("@ss.hasPermission('bse:tmpl-tp-fld:create')")
// @PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:create')")
public CommonResult<TmplFldRespVO> createTmplFld(@Valid @RequestBody TmplTpFldSaveReqVO tmplTpFldSaveReqVO) {
return success(tmplTpFldService.createTmplFld(tmplTpFldSaveReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新模板字段")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp-fld:update')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:update')")
public CommonResult<Boolean> updateTmplTp(@Valid @RequestBody TmplTpFldSaveReqVO updateReqVO) {
tmplTpFldService.updateTmplFld(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除模板字段")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp-fld:delete')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:delete')")
public CommonResult<Boolean> deleteTmplTp(@RequestBody BatchDeleteReqVO req) {
tmplTpFldService.deleteTmplTpByIds(req.getIds());
return success(true);
}
@GetMapping("/page")
@Operation(summary = "获得模板字段列表")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp-fld:list')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:list')")
public CommonResult<PageResult<TmplFldRespVO>> getTmplTpList( @Valid TmplFldPageReqVO pageReqVO) {
PageResult<TmplTpFldDO> pageResult = tmplTpFldService.tmplTpFldPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, TmplFldRespVO.class));
}
@GetMapping("/class-fld")
@Operation(summary = "获得类固定模板字段列表", description = "clazz为VO类类名")
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp-fld:list')")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:list')")
public CommonResult<List<Map<String, Object>>> getTmplTpListByClass(String clazz) {
return success(tmplTpFldService.getTmplTpListByClass(clazz));
}
@PutMapping("/update-sts")
@Operation(summary = "更新模板字段状态")
@PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:update')")
public CommonResult<Boolean> updateTmplTpSts(@RequestBody UpdateStsVO updateStsVO) {
tmplTpFldService.updateTmplTpSts(updateStsVO);
return success(true);
}
}

View File

@@ -40,4 +40,7 @@ public class TmplFldRespVO {
@ExcelProperty("是否必填")
private String isMust;
@Schema(description = "字段状态", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("字段状态")
private String sts;
}

View File

@@ -44,4 +44,9 @@ public class TmplItmRespVO {
@Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建人")
private String creator;
@Schema(description = "字段状态", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("字段状态")
private String sts;
}

View File

@@ -23,4 +23,7 @@ public class TmplItmSaveReqVO {
@Schema(description = "条款值", requiredMode = Schema.RequiredMode.REQUIRED, example = "")
private String itmVal;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "启用 or 禁用")
private String sts;
}

View File

@@ -22,4 +22,7 @@ public class TmplTpFldSaveReqVO {
@Schema(description = "是否必填", requiredMode = Schema.RequiredMode.REQUIRED, example = "Y or N")
private String isMust;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "启用 or 禁用")
private String sts;
}

View File

@@ -0,0 +1,20 @@
package com.zt.plat.module.base.controller.admin.templtp.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;
import org.springframework.validation.annotation.Validated;
import java.util.List;
@Data
@Schema(description = "管理后台 - 更新状态 Request VO")
@Validated
public class UpdateStsVO {
@Schema(description = "ids", requiredMode = Schema.RequiredMode.REQUIRED, example = "['id1','id2']")
@NotEmpty(message = "ids为空")
private List<String> ids;
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "启用和禁用或者其他")
@NotEmpty(message = "状态为空")
private String sts;
}

View File

@@ -29,4 +29,7 @@ public class TmplItmDO extends BusinessBaseDO {
@TableField("ITM_VAL")
private String itmVal;
@TableField("STS")
private String sts;
}

View File

@@ -73,4 +73,7 @@ public class TmplTpFldDO extends BusinessBaseDO { // 继承业务基类,自动
*/
@TableField("ORGN_TP")
private String orgnTp;
@TableField("STS")
private String sts;
}

View File

@@ -5,6 +5,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmpItmPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.UpdateStsVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplItmDO;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;
@@ -46,4 +47,10 @@ public interface TmplItmService extends IService<TmplItmDO> {
* @return 模板条目
*/
List<TmplItmDO> listTmplItmByIds(@Valid @NotEmpty(message = "ids不能为空") List<String> ids);
/**
* 更新模板条目状态
*
* @param updateStsVO 更新信息
*/
void updateTmplTpSts(UpdateStsVO updateStsVO);
}

View File

@@ -2,15 +2,19 @@ package com.zt.plat.module.base.service.tmpltp;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmpItmPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.UpdateStsVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplItmDO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpFldDO;
import com.zt.plat.module.base.dal.mysql.tmpltp.TmplItmMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -23,6 +27,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_ITM_NOT_EX
@Service
@Validated
@Slf4j
public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> implements TmplItmService{
@Override
public TmplItmRespVO createTmplItm(TmplItmSaveReqVO tmplItmSaveReqVO) {
@@ -76,4 +81,10 @@ public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> im
public List<TmplItmDO> listTmplItmByIds(List<String> ids) {
return baseMapper.selectByIds(ids);
}
@Override
public void updateTmplTpSts(UpdateStsVO updateStsVO) {
log.info("更新模板字段状态,参数:【{}】", updateStsVO);
baseMapper.update(Wrappers.<TmplItmDO>lambdaUpdate().set(TmplItmDO::getSts, updateStsVO.getSts()).in(TmplItmDO::getId, updateStsVO.getIds()));
}
}

View File

@@ -5,6 +5,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplTpFldSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.UpdateStsVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpFldDO;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid;
@@ -51,5 +52,7 @@ public interface TmplTpFldService extends IService<TmplTpFldDO> {
*/
List<TmplTpFldDO> getTmplTpListByValKeys(List< String> valNames);
void updateTmplTpSts(UpdateStsVO updateStsVO);
}

View File

@@ -9,6 +9,7 @@ import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldPageReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplTpFldSaveReqVO;
import com.zt.plat.module.base.controller.admin.templtp.vo.UpdateStsVO;
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpFldDO;
import com.zt.plat.module.base.dal.mysql.tmpltp.TmplTpFldMapper;
import com.alibaba.fastjson2.JSONObject;
@@ -38,6 +39,7 @@ public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFld
public TmplFldRespVO createTmplFld(TmplTpFldSaveReqVO tmplTpFldSaveReqVO) {
TmplTpFldDO tmplTpFldDO = BeanUtils.toBean(tmplTpFldSaveReqVO, TmplTpFldDO.class);
validateTmplFldCodeExists(tmplTpFldSaveReqVO.getFldKy());
tmplTpFldDO.setSts("启用");
baseMapper.insert(tmplTpFldDO);
log.info("创建模板字段成功,模板字段信息:【{}】", tmplTpFldDO);
return BeanUtils.toBean(tmplTpFldDO, TmplFldRespVO.class);
@@ -96,4 +98,10 @@ public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFld
public List<TmplTpFldDO> getTmplTpListByValKeys(List<String> valNames) {
return baseMapper.selectList(new LambdaQueryWrapper<TmplTpFldDO>().in(TmplTpFldDO::getFldKy, valNames));
}
@Override
public void updateTmplTpSts(UpdateStsVO updateStsVO) {
log.info("更新模板字段状态,参数:【{}】", updateStsVO);
baseMapper.update(Wrappers.<TmplTpFldDO>lambdaUpdate().set(TmplTpFldDO::getSts, updateStsVO.getSts()).in(TmplTpFldDO::getId, updateStsVO.getIds()));
}
}

View File

@@ -5,11 +5,13 @@ import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.module.contractorder.api.dto.PurchaseOrderWithDetailsDTO;
import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO;
import com.zt.plat.module.contractorder.api.vo.contract.ContractSaveReqVO;
import com.zt.plat.module.contractorder.api.vo.contract.international.ContractRequest;
import com.zt.plat.module.contractorder.enums.ApiConstants;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -31,10 +33,18 @@ public interface ContractApi {
CommonResult<Boolean> updateOrderStatus(@RequestParam("orderId") Long orderId, @RequestParam("status") String status);
@PostMapping(PREFIX + "/order-by-order-no")
@Operation(summary = "更新订单状态", description = "通过订单编号获取订单信息")
@Operation(summary = "通过订单编号获取订单信息", description = "通过订单编号获取订单信息")
CommonResult<List<PurchaseOrderWithDetailsDTO>> getOrderByOrderNo(@RequestBody List<String> orderNoS);
@PostMapping(PREFIX + "/create")
@Operation(summary = "创建合同")
CommonResult<Boolean> create(@Valid @RequestBody ContractSaveReqVO reqVO);
@PostMapping(PREFIX + "/order-by-order-id")
@Operation(summary = "通过订单id获取订单信息", description = "通过订单编号获取订单信息")
CommonResult<List<PurchaseOrderWithDetailsDTO>> getOrderByOrderIds(@RequestBody List<Long> ids);
@PostMapping(PREFIX + "/send")
@Operation(summary = "国贸2.0系统创建合同调用")
CommonResult<Boolean> push(@Valid @RequestBody ContractRequest reqVO);
}

View File

@@ -77,7 +77,7 @@ public class PrchOrdDtlDTO {
* 税码(字典: PRCH_TAX);推送ERP
*/
private BigDecimal taxNum;
private String taxNum;
/**
* 是否基于GR的发票校验;推送ERP
*/

View File

@@ -0,0 +1,18 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 收付款账号
*/
@Data
public class Account {
private String accountSourceId; // 收付款账号行号
private String accountSourceCode; // 收付款账号编号
private String accountType; // 类别
private String accountName; // 名称
private String bankAccountName; // 开户银行
private String bankAccountNo; // 银行账号
private String identificationNumber; // 纳税人识别号
private String addressPhoneTel; // 地址、电话
}

View File

@@ -0,0 +1,91 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.List;
/**
* 合同请求主实体
*/
@Data
public class ContractRequest {
// 基础信息
private String operateFlag; // 操作标志
private String bookId; // 账套代码
private String orgId; // 组织ID
private String contractId; // 合同唯一键
private String operateType; // 合同操作类型 (新增, 变更, 修正)
private String contractCode; // 合同编号
private String contractBusinessNo; // 业务合同编号
private String contractExternalNo; // 对方合同号
private BigDecimal contractVersion; // 系统合同版本号
private String contractStatus; // 合同状态代码 (值集: 40-签约)
private String contractName; // 合同名称
private String contractType; // 合同类型 (货运;货代;仓储;保险)
private String textType; // 是否非标准合同文本
@DateTimeFormat(pattern = "yyyyMMdd")
private Date contractStartDate; // 合同有效期起 (格式: yyyyMMdd)
@DateTimeFormat(pattern = "yyyyMMdd")
private Date contractEndDate; // 合同有效期止 (格式: yyyyMMdd)
private String priceType; // 是否固定单价 (0-浮动, 1-固定)
private String currencyCode; // 合同币种
private String settleMethod; // 结算方式
private String firstContractCode; // 对方合同号
private BigDecimal estimateAmountTotal; // 预估含税总金额
private String settleGist; // 结算依据 (10-交货量, 20-卸车量)
private BigDecimal priceTaxRate; // 税率
private String transType; // 运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)
private String packMethod; // 包装方式
private BigDecimal intransitLoss; // 在途损耗
private String pickupLocation; // 提货地
private BigDecimal warehouseNum; // 仓库数
private BigDecimal weightDisparity; // 按码单入库磅差比
private String insuredSubjectMatter; // 投保标的
private BigDecimal estimateCoverageAmount; // 预计年保险总额
private BigDecimal estimatePremium; // 预计年保险费
private BigDecimal premiumRate; // 保险费率
private String remark; // 备注信息
private String createdUser; // 经办人工号
private String createdUserName; // 经办人姓名
private String approveSubmitCode; // 拟签递交人工号
private String approveSubmitName; // 拟签递交人姓名
@DateTimeFormat(pattern = "yyyyMMdd")
private Date approveSubmitDate; // 拟签呈批日期
private String approvePassCode; // 拟签通过人工号
private String approvePassName; // 拟签通过人姓名
@DateTimeFormat(pattern = "yyyyMMdd")
private Date approvePassDate; // 拟签通过日期
private String signSite; // 签约地 (40-签约必填)
@DateTimeFormat(pattern = "yyyyMMdd")
private Date signDate; // 签约日期 (40-签约必填, 格式: yyyyMMdd)
private String signFirstPerson; // 对方签约人 (40-签约必填)
private String signSecondPersonCode; // 我方签约人工号 (40-签约必填)
private String signSecondPersonName; // 我方签约人
private String onceAuthorityFlag; // 推荐签约人工号 (40-签约必填, Y/N)
private String signOnceAccredit; // 推荐签约人工号
private String extCol1; // 备用字段1
private String extCol2; // 备用字段2
private String extCol3; // 备用字段3
private String extCol4; // 备用字段4
private String extCol5; // 备用字段5
private String extCol6; // 备用字段6
private String extCol7; // 备用字段7
private String extCol8; // 备用字段8
private String extCol9; // 备用字段9
private String extCol10; // 备用字段10
private List<String> attachList; // 附件清单列表
// 嵌套列表
private List<Partner> partnerList; // 客商信息
private List<GoodsSite> goodsSiteList; // 收发港/站点
private List<LoadingRequirement> loadingRequirementsList; // 货物装卸要求
private List<Account> accountList; // 收付款账号
private List<Freight> freightList; // 费用明细
private List<ServiceFee> serviceFeeList; // 服务费用项目
private List<Storge> storgeList; // 仓库明细
private List<ReceivingAddr> receivingAddrList; // 接货地址
}

View File

@@ -0,0 +1,33 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
import java.math.BigDecimal;
/*
* 费用明细
*/
@Data
public class Freight {
private String freightSourceId; // 费用明细行号
private String freightSourceCode; // 费用明细编号
private String beginSiteCode; // 发货地编号
private String beginSiteName; // 发货地名称
private String beginSiteAddress; // 详细地址
private String endSiteCode; // 收货地编码
private String endSiteName; // 收货地名称
private String endSiteAddress; // 详细地址
private String contractTypeDispatch; // 运输方式 (10-汽运;20-船运;30-水汽联运)
private String feeTypeCode; // 费用类型 (包干费、汽运费、港口费...)
private String feeTypeName; // 费用名称
private String isPartybPickup; // 是否乙方提货
private BigDecimal partybPickupPrice; // 乙方提货单价
private String feeCategoryL; // 费用大类
private String feeCategoryS; // 费用小类
private String goodsStorage; // 标的仓
private String categoryName; // 标的物
private BigDecimal noHeapDays; // 免堆期
private String quantityUnitCode; // 计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)
private BigDecimal priceWithtax; // 单价
private BigDecimal priceTaxRate; // 税率(%)
private String costBearing; // 费用承担
}

View File

@@ -0,0 +1,24 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 收发港/站点
*/
@Data
public class GoodsSite {
private String goodsSiteSourceId; // 收发港站点行号
private String goodsSiteSourceCode; // 收发港站点编号
private String subMattercategoryLevel; // 标的物分类
private String subMattercategoryCode; // 标的物编码
private String subMatterCategoryName; // 标的物名称
private String beginSiteType; // 地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)
private String beginSiteCode; // 发货地编号
private String beginSiteName; // 发货地名称
private String beginSiteAddress; // 详细地址
private String endSiteType; // 地点类型
private String endSiteCode; // 收货地编号
private String endSiteName; // 收货地名称
private String endSiteAddress; // 详细地址
private String contractTypeDispatch; // 运输方式 (10-汽运;20-船运;30-水汽联运)
}

View File

@@ -0,0 +1,18 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 货物装卸要求
*/
@Data
public class LoadingRequirement {
private String loadingReqSourceId; // 货物装卸行号
private String loadingReqSourceCode; // 货物装卸编号
private String deliveredAtPlace; // 提货地责任方
private String deliveredAtFeeparty; // 提货地费用承担方
private String destinationResponsibleParty; // 终到地责任方
private String intermediateStationParty; // 终到地费用承担方
private String destinationResponsibleFeeparty; // 中间站责任方
private String intermediateResponsibleFeeparty; // 中间站费用承担方
}

View File

@@ -0,0 +1,21 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 客商信息
*/
@Data
public class Partner {
private String partnerSourceId; // 客商信息行号
private String partnerSourceCode; // 客商信息编码
private String partnerName; // 供应商名称
private String partnerCode; // 供应商代码
private String legalRepresentative; // 对方法定代表人
private String partnerCurrency; // 币种
private String contactPerson; // 对方联系人
private String contactInformation; // 对方联系人联系方式
private String internalTransaction; // 是否内部交易
private String partnerType; // 客商类型
private String domesticOrOverseas; // 境内/外
}

View File

@@ -0,0 +1,23 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 接货地址
*/
@Data
public class ReceivingAddr {
private String recivingAddrSourceId; // 接货地址行号
private String recivingAddrSourceCode; // 接货地址编号
private String categoryLevel; // 标的物分类
private String ccCategoryCode; // 标的物编码
private String categoryName; // 标的物名称
private String siteCode; // 接货编码
private String siteName; // 接货名称
private String siteType; // 地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)
private String siteAddress; // 详细地址
private String consigneePrivatewire; // 专用线
private String consignerContact; // 收货人
private String contactPerson; // 联系人
private String contactPhone; // 联系电话
}

View File

@@ -0,0 +1,14 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 服务费用项目
*/
@Data
public class ServiceFee {
private String serviceFeeSourceId; // 服务费用项目行号
private String serviceFeeSourceCode; // 服务费用项目编号
private String serviceFeeName; // 服务项目名称
private String expenseType; // 计费类别
}

View File

@@ -0,0 +1,15 @@
package com.zt.plat.module.contractorder.api.vo.contract.international;
import lombok.Data;
/*
* 仓库明细
*/
@Data
public class Storge {
private String storgeSourceId; // 合同明细行号
private String storgeSourceCode; // 合同明细行编号
private String warehouseCode; // 仓库编号
private String warehouseName; // 仓库名称
private String warehouseAddress; // 详细地址
}

View File

@@ -27,4 +27,6 @@ public interface ErrorCodeConstants {
ErrorCode CONTRACT_STATUS_NOT_ARCHIVE = new ErrorCode(1_027_000_012, "{}状态合同不允许归档");
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP");
ErrorCode CONTRACT_ORDER_EXISTS = new ErrorCode(1_027_000_014, "关联订单已存在");
ErrorCode CONTRACT_SUBMIT_ERP_FAIL = new ErrorCode(1_027_000_015, "合同提交erp失败{}");
ErrorCode CONTRACT_UNKNOWN_OPERATE = new ErrorCode(1_027_000_015, "未知的操作");
}

View File

@@ -163,7 +163,7 @@ public class PurchaseOrderController implements BusinessControllerMarker {
//根据订单id修改订单状态
@PutMapping("/update-order-status")
@Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'采购订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改")
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated PurchaseOrderStsReqVO req) {
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) {
purchaseOrderService.updateOrderStatusByIdOrOrderNo(req);
return success(true);
}

View File

@@ -1,5 +1,7 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SaleOrderDetailsRespVO;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -41,7 +43,7 @@ public class DownOrUpOrderRespVO {
* 订单
*/
@Schema(description = "订单")
private PurchaseOrderRespVO order;
private Object order;
}

View File

@@ -0,0 +1,23 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.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 OrderStsReqVO {
@Schema(description = "订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26419")
private List<Long> ids;
@Schema(description = "订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "订单状态不能为空")
private String sts;
@Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private List<String> orderNos;
}

View File

@@ -1,23 +0,0 @@
package com.zt.plat.module.contractorder.controller.admin.purchaseorder.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 PurchaseOrderStsReqVO {
@Schema(description = "采购订单编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "26419")
private List<Long> ids;
@Schema(description = "采购订单状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "采购订单状态不能为空")
private String sts;
@Schema(description = "采购订单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
private List<String> orderNos;
}

View File

@@ -49,14 +49,14 @@ public class SalesOrderController implements BusinessControllerMarker {
@PostMapping("/create")
@Operation(summary = "创建采购订单")
@Operation(summary = "创建销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:create')")
public CommonResult<SalesOrderRespVO> createSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO createReqVO) {
return success(salesOrderService.createSalesOrder(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新采购订单")
@Operation(summary = "更新销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:update')")
public CommonResult<Boolean> updateSalesOrder(@Valid @RequestBody SalesOrderSaveReqVO updateReqVO) {
salesOrderService.updateSalesOrder(updateReqVO);
@@ -64,7 +64,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@DeleteMapping("/delete")
@Operation(summary = "删除采购订单")
@Operation(summary = "删除销售订单")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')")
public CommonResult<Boolean> deleteSalesOrder(@RequestParam("id") Long id) {
@@ -74,7 +74,7 @@ public class SalesOrderController implements BusinessControllerMarker {
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除采购订单")
@Operation(summary = "批量删除销售订单")
@PreAuthorize("@ss.hasPermission('base:sales-order:delete')")
public CommonResult<Boolean> deleteSalesOrderList(@RequestBody BatchDeleteReqVO req) {
salesOrderService.deleteSalesOrderListByIds(req.getIds());
@@ -82,8 +82,8 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@GetMapping("/get")
@Operation(summary = "获得采购订单")
@Parameter(name = "id", description = "id是订单主键splyBsnTp是订单类型采购或者是消费", required = true, example = "1024")
@Operation(summary = "获得销售订单")
@Parameter(name = "id", description = "id是订单主键splyBsnTp是订单类型销售或者是消费", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')")
public CommonResult<SalesOrderRespVO> getSalesOrder(@RequestParam("id") Long id,@RequestParam(value = "splyBsnTp",required = false) String splyBsnTp) {
SalesOrderDO purchaseOrder = salesOrderService.getSalesOrder(id, splyBsnTp);
@@ -96,7 +96,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@GetMapping("/page")
@Operation(summary = "获得采购订单分页")
@Operation(summary = "获得销售订单分页")
@PreAuthorize("@ss.hasPermission('base:sales-order:query')")
public CommonResult<PageResult<SalesOrderRespVO>> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) {
PageResult<SalesOrderDO> pageResult = salesOrderService.getSalesOrderPage(pageReqVO);
@@ -109,7 +109,7 @@ public class SalesOrderController implements BusinessControllerMarker {
}
@GetMapping("/export-excel")
@Operation(summary = "导出采购订单 Excel")
@Operation(summary = "导出销售订单 Excel")
@PreAuthorize("@ss.hasPermission('base:sales-order:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportSalesOrderExcel(@Valid SalesOrderPageReqVO pageReqVO,
@@ -117,7 +117,7 @@ public class SalesOrderController implements BusinessControllerMarker {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<SalesOrderDO> list = salesOrderService.getSalesOrderPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "采购订单.xls", "数据", PurchaseOrderRespVO.class,
ExcelUtils.write(response, "销售订单.xls", "数据", PurchaseOrderRespVO.class,
BeanUtils.toBean(list, PurchaseOrderRespVO.class));
}
@@ -141,6 +141,32 @@ public class SalesOrderController implements BusinessControllerMarker {
public CommonResult<Boolean> orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) {
return success(salesOrderService.orderPassReject(reqVO));
}
//关联订单
@PostMapping("/link-order")
@Operation(summary = "关联订单")
public CommonResult<Boolean> linkOrder(@RequestBody @Validated LinkOrderReqVO req) {
return success(salesOrderService.linkOrder(req));
}
//根据订单id和方式获取上或下游订单
@PostMapping("/order-by-order-id-and-type")
@Operation(summary = "根据订单id和方式获取上或下游订单")
public CommonResult<List<DownOrUpOrderRespVO>> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) {
return success( salesOrderService.getOrderByOrderIdAndType(reqVO));
}
@PostMapping("/bound-order")
@Operation(summary = "获取已绑定的订单")
public CommonResult<List<PurchaseOrderRespVO>> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) {
return success(salesOrderService.getBindOrderByOrder(reqVO));
}
@PutMapping("/update-order-status")
@Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'销售订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改")
public CommonResult<Boolean> updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) {
salesOrderService.updateOrderStatusByIdOrOrderNo(req);
return success(true);
}
}

View File

@@ -5,6 +5,7 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.contractorder.api.dto.contract.ContractRespDTO;
import com.zt.plat.module.contractorder.api.vo.contract.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO;
import jakarta.validation.Valid;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.ResponseEntity;
@@ -203,5 +204,7 @@ public interface ContractService {
Boolean complete(List<Long> ids);
JSONObject sendToErp(ErpContractSaveReqVO erpContractVO);
ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO);
}

View File

@@ -1584,7 +1584,8 @@ public class ContractServiceImpl implements ContractService {
* @param erpContractVO 合同映射数据
* @return 提交结果
*/
private JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) {
@Override
public JSONObject sendToErp(ErpContractSaveReqVO erpContractVO) {
JSONObject erpResult = new JSONObject();
HashMap<String, String> result = erpContractService.submitErp(erpContractVO);
@@ -1651,7 +1652,8 @@ public class ContractServiceImpl implements ContractService {
* @param contractMainDO 合同主信息
* @return 合同映射信息
*/
private ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
@Override
public ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO) {
ErpContractSaveReqVO erpContractVO = new ErpContractSaveReqVO();
// 合同主信息表主键:BSE_CTRT_MAIN

View File

@@ -96,7 +96,7 @@ public interface PurchaseOrderService {
* @param reqVO 订单状态
*
*/
void updateOrderStatusByIdOrOrderNo(PurchaseOrderStsReqVO reqVO);
void updateOrderStatusByIdOrOrderNo(OrderStsReqVO reqVO);
/**
* 获取物料
*
@@ -124,4 +124,6 @@ public interface PurchaseOrderService {
* @return 结果
*/
Boolean linkOrder(@Valid LinkOrderReqVO LinkOrderReqVO);
List<PurchaseOrderDetailsRespVO> getOrderByIds(List<Long> ids);
}

View File

@@ -425,7 +425,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
}
@Override
public void updateOrderStatusByIdOrOrderNo(PurchaseOrderStsReqVO reqVO) {
public void updateOrderStatusByIdOrOrderNo(OrderStsReqVO reqVO) {
// 校验存在
if (reqVO.getIds() != null) {
validatePurchaseOrderExists(reqVO.getIds());
@@ -494,6 +494,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
return systemRelativityMapper.insert(saveDO) > 0;
}
private void setValue(ErpOrderUpdateReqVO erpOrderUpdateReqVO, PurchaseOrderWithDetailsVO purchaseOrderWithDetailsVO) {
//head
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseOrderWithDetailsVO.getPurchaseOrder().getId());
@@ -607,16 +609,17 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
throw exception(PURCHASE_ORDER_NOT_EXISTS);
}
String contractNumber = purchaseOrderDO.getContractNumber();// 合同号
ContractRespVO contractRespVO = contractService.getBySystemContractNumber(contractNumber);
ContractRespVO upRelation = null;
if ("up".equals(reqVO.getOrderType())) {
log.info("获取上游订单");
//上游
upRelation = contractService.getUpRelation(Long.valueOf(contractNumber));
upRelation = contractService.getUpRelation(contractRespVO.getId());
} else {
//下游
log.info("获取下游订单");
upRelation = contractService.getDownRelation(Long.valueOf(contractNumber));
upRelation = contractService.getDownRelation(contractRespVO.getId());
}
List<DownOrUpOrderRespVO> orderList = new ArrayList<>();
if (upRelation != null) {
@@ -662,4 +665,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
}
return orderList;
}
@Override
public List<PurchaseOrderDetailsRespVO> getOrderByIds(List<Long> ids) {
List<PurchaseOrderWithDetailsVO> purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderByIds(ids);
List<PurchaseOrderDetailsRespVO> purchaseOrderDetailsRespVOS = new ArrayList<>();
purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> {
PurchaseOrderDetailsRespVO purchaseOrderDetailsRespVO = BeanUtils.toBean(purchaseOrderWithDetailsVO.getPurchaseOrder(), PurchaseOrderDetailsRespVO.class);
purchaseOrderDetailsRespVO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDetailsRespVO.class));
purchaseOrderDetailsRespVOS.add(purchaseOrderDetailsRespVO);
});
return purchaseOrderDetailsRespVOS;
}
}

View File

@@ -2,7 +2,7 @@ package com.zt.plat.module.contractorder.service.salesorder;
import java.util.*;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseorderReqVO;
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.SalesOrderReviewReqVO;
@@ -91,4 +91,34 @@ public interface SalesOrderService {
*
*/
boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO);
/**
* 消费订单关联采购订单
*
* @param reqVO 采购订单
*
*/
boolean linkOrder(LinkOrderReqVO reqVO);
/**
* 获取消费订单详情
*
* @param reqVO 采购订单
*
*/
List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO);
/**
* 获取已绑定消费订单详情
*
* @param reqVO 采购订单
*
*/
List<PurchaseOrderRespVO> getBindOrderByOrder(DownOrUpOrderReqVO reqVO);
/**
* 修改订单状态
*
* @param req 采购订单
*
*/
void updateOrderStatusByIdOrOrderNo(OrderStsReqVO req);
}

View File

@@ -5,41 +5,44 @@ import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
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.purchaseorder.vo.PurchaseorderReqVO;
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.*;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
import com.zt.plat.module.contractorder.enums.contract.DictEnum;
import com.zt.plat.module.contractorder.enums.purchaseorder.OrderStatusEnum;
import com.zt.plat.module.contractorder.service.contract.ContractService;
import com.zt.plat.module.contractorder.util.constants.ProcessDefinitionKeyConstants;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpSalesOrderSaveReqVO;
import com.zt.plat.module.erp.service.erp.ErpOrderService;
import com.zt.plat.module.system.api.sequence.SequenceApi;
import com.zt.plat.module.system.api.user.AdminUserApi;
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
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 java.util.ArrayList;
import java.util.List;
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.*;
@@ -72,6 +75,13 @@ public class SalesOrderServiceImpl implements SalesOrderService {
@Resource
private ErpOrderService erpOrderService;
@Resource
private SystemRelativityMapper systemRelativityMapper;
@Resource
private ContractService contractService;
@Override
@Transactional
@@ -249,7 +259,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
if (ObjectUtils.isEmpty(salesOrderDO.getProcessInstanceId())) {
BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO();
pidto.setProcessDefinitionKey(ProcessDefinitionKeyConstants.PURCHASE_ORDER_REVIEW_PROCESS);
pidto.setProcessDefinitionKey(ProcessDefinitionKeyConstants.SALES_ORDER_REVIEW_PROCESS);
pidto.setBusinessKey(String.valueOf(id));
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData();
if (StringUtils.isNotBlank(data)) {
@@ -277,7 +287,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) {
// 如果状态是驳回状态,需要重新创建一个流程实例
BpmProcessInstanceCreateReqDTO pidtoNew = new BpmProcessInstanceCreateReqDTO();
pidtoNew.setProcessDefinitionKey(ProcessDefinitionKeyConstants.PURCHASE_ORDER_REVIEW_PROCESS);
pidtoNew.setProcessDefinitionKey(ProcessDefinitionKeyConstants.SALES_ORDER_REVIEW_PROCESS);
pidtoNew.setBusinessKey(String.valueOf(id));
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidtoNew).getData();
if (StringUtils.isNotBlank(data)) {
@@ -350,5 +360,104 @@ public class SalesOrderServiceImpl implements SalesOrderService {
return false;
}
@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<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) {
throw exception(CONTRACT_ORDER_EXISTS);
}
return systemRelativityMapper.insert(saveDO) > 0;
}
@Override
public List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) {
SalesOrderDO salesOrderDO = salesOrderMapper.selectById(reqVO.getOrderId());
if (salesOrderDO == null) {
throw exception(PURCHASE_ORDER_NOT_EXISTS);
}
String contractNumber = salesOrderDO.getContractNumber();// 合同号
ContractRespVO bySystemContractNumber = contractService.getBySystemContractNumber(contractNumber);
ContractRespVO upRelation = null;
if ("up".equals(reqVO.getOrderType())) {
log.info("获取上游订单");
//上游
upRelation = contractService.getUpRelation(bySystemContractNumber.getId());
} else {
//下游
log.info("获取下游订单");
upRelation = contractService.getDownRelation(bySystemContractNumber.getId());
}
List<DownOrUpOrderRespVO> orderList = new ArrayList<>();
if (upRelation != null) {
String systemContractNumber = upRelation.getSystemContractNumber();
List<SalesOrderDO> salesOrderDOS = salesOrderMapper.selectList(new LambdaQueryWrapper<SalesOrderDO>().eq(SalesOrderDO::getContractNumber, systemContractNumber));
salesOrderDOS.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());
downOrUpOrderRespVO.setOrder(BeanUtils.toBean(p, SalesOrderRespVO.class));
orderList.add(downOrUpOrderRespVO);
}
);
}
return orderList;
}
@Override
public List<PurchaseOrderRespVO> getBindOrderByOrder(DownOrUpOrderReqVO reqVO) {
List<PurchaseOrderRespVO> orderList = new ArrayList<>();
if ("up".equals(reqVO.getOrderType())) {
log.info("获取上游订单");
//上游
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getDownId, reqVO.getOrderId()));
if (!systemRelativityDOS.isEmpty()) {
List<SalesOrderDO> salesOrderDOS = salesOrderMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getUpId).toList());
orderList = BeanUtils.toBean(salesOrderDOS, PurchaseOrderRespVO.class);
}
} else {
//下游
log.info("获取下游订单");
List<SystemRelativityDO> systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper<SystemRelativityDO>().eq(SystemRelativityDO::getUpId, reqVO.getOrderId()));
if (!systemRelativityDOS.isEmpty()) {
List<SalesOrderDO> purchaseOrderDOS = salesOrderMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getDownId).toList());
orderList = BeanUtils.toBean(purchaseOrderDOS, PurchaseOrderRespVO.class);
}
}
return orderList;
}
@Override
public void updateOrderStatusByIdOrOrderNo(OrderStsReqVO reqVO) {
// 校验存在
if (reqVO.getIds() != null) {
validateSalesOrderExists(reqVO.getIds());
}
if (reqVO.getOrderNos() != null) {
validateSalesOrderNosExists(reqVO.getOrderNos());
}
OrderStatusEnum byCode = OrderStatusEnum.getByCode(reqVO.getSts());
if (byCode == null) {
throw exception(PURCHASE_ORDER_STATUS_ERROR);
}
salesOrderMapper.update(new LambdaUpdateWrapper<SalesOrderDO>().in(reqVO.getOrderNos() != null, SalesOrderDO::getSystemOrderNumber, reqVO.getOrderNos()).in(reqVO.getIds() != null, SalesOrderDO::getId, reqVO.getIds()).set(SalesOrderDO::getStatus, reqVO.getSts()));
}
private void validateSalesOrderNosExists(List<String> orderNos) {
List<SalesOrderDO> list = salesOrderMapper.selectList(new LambdaQueryWrapper<SalesOrderDO>().in(SalesOrderDO::getSystemOrderNumber, orderNos));
if (CollUtil.isEmpty(list) || list.size() != orderNos.size()) {
throw exception(PURCHASE_ORDER_NOT_EXISTS);
}
}
}

View File

@@ -3,4 +3,5 @@ package com.zt.plat.module.contractorder.util.constants;
public interface ProcessDefinitionKeyConstants {
String PURCHASE_ORDER_REVIEW_PROCESS = "purchase_order_review";
String SALES_ORDER_REVIEW_PROCESS = "sales_order_review";
}