diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java index 418f03e0..fe87ac06 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/DepartmentInstanceRelativityController.java @@ -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 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 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 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 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 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> getDepartmentInstanceRelativityPage(@Valid DepartmentInstanceRelativityPageReqVO pageReqVO) { PageResult 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 { diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java index f04f8605..543602e3 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TemplateInstanceController.java @@ -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 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 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 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 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 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> getTemplateInstancePage(@Valid TemplateInstancePageReqVO pageReqVO) { PageResult pageResult = templateInstanceService.getTemplateInstancePage(pageReqVO); PageResult 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 publishTemplateInstance(@Valid @RequestBody List 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> listExcludingDisabled(@Valid TemplateInstancePageReqVO pageReqVO) { PageResult 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 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 createVersion(@Valid @NotEmpty(message = "模版实例id不能为空") String id) { return success(templateInstanceService.createVersion(id)); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplItmController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplItmController.java index 237afb9a..288b802e 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplItmController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplItmController.java @@ -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 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 updateTmplTpSts(@RequestBody UpdateStsVO updateStsVO) { + tmplItmService.updateTmplTpSts(updateStsVO); + return success(true); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpController.java index 0474acbc..5a3987b5 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpController.java @@ -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 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 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 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 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 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> getTmplTpPage(@Valid TmplTpPageReqVO pageReqVO) { PageResult 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> getFieldAndClause(@Valid @NotEmpty(message = "编号不能为空")@RequestParam("id") String id) { Map 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 updateStatus(@RequestBody Map 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> preview(@Valid @RequestParam("id") Long id) { // List 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 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 ltmEdit(@Valid @RequestBody TmplTpEditOrDeleteReqVO reqVO) { tmplTpService.ltmEdit(reqVO); return success(true); diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpFldController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpFldController.java index cd49af5e..503b14c5 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpFldController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplTpFldController.java @@ -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 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 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 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> getTmplTpList( @Valid TmplFldPageReqVO pageReqVO) { PageResult 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>> getTmplTpListByClass(String clazz) { return success(tmplTpFldService.getTmplTpListByClass(clazz)); } + @PutMapping("/update-sts") + @Operation(summary = "更新模板字段状态") + @PreAuthorize("@ss.hasPermission('base:tmpl-tp-fld:update')") + public CommonResult updateTmplTpSts(@RequestBody UpdateStsVO updateStsVO) { + tmplTpFldService.updateTmplTpSts(updateStsVO); + return success(true); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldRespVO.java index 47b08169..eaed5e55 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplFldRespVO.java @@ -40,4 +40,7 @@ public class TmplFldRespVO { @ExcelProperty("是否必填") private String isMust; + @Schema(description = "字段状态", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("字段状态") + private String sts; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmRespVO.java index c4f7490b..e0f8fec5 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmRespVO.java @@ -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; + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmSaveReqVO.java index 7c38c99c..f7f3a64e 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplItmSaveReqVO.java @@ -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; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplTpFldSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplTpFldSaveReqVO.java index 2bbd634d..43ee90a0 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplTpFldSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplTpFldSaveReqVO.java @@ -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; + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/UpdateStsVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/UpdateStsVO.java new file mode 100644 index 00000000..b276a65b --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/UpdateStsVO.java @@ -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 ids; + @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "启用和禁用或者其他") + @NotEmpty(message = "状态为空") + private String sts; +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplItmDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplItmDO.java index 0996f78c..84e76570 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplItmDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplItmDO.java @@ -29,4 +29,7 @@ public class TmplItmDO extends BusinessBaseDO { @TableField("ITM_VAL") private String itmVal; + @TableField("STS") + private String sts; + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplTpFldDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplTpFldDO.java index 9ffb89a2..95a74f79 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplTpFldDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/tmpltp/TmplTpFldDO.java @@ -73,4 +73,7 @@ public class TmplTpFldDO extends BusinessBaseDO { // 继承业务基类,自动 */ @TableField("ORGN_TP") private String orgnTp; + + @TableField("STS") + private String sts; } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmService.java index 65f21796..284f2d83 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmService.java @@ -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 { * @return 模板条目 */ List listTmplItmByIds(@Valid @NotEmpty(message = "ids不能为空") List ids); + /** + * 更新模板条目状态 + * + * @param updateStsVO 更新信息 + */ + void updateTmplTpSts(UpdateStsVO updateStsVO); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmServiceImpl.java index 2b4020c0..43478a7f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplItmServiceImpl.java @@ -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 implements TmplItmService{ @Override public TmplItmRespVO createTmplItm(TmplItmSaveReqVO tmplItmSaveReqVO) { @@ -76,4 +81,10 @@ public class TmplItmServiceImpl extends ServiceImpl im public List listTmplItmByIds(List ids) { return baseMapper.selectByIds(ids); } + + @Override + public void updateTmplTpSts(UpdateStsVO updateStsVO) { + log.info("更新模板字段状态,参数:【{}】", updateStsVO); + baseMapper.update(Wrappers.lambdaUpdate().set(TmplItmDO::getSts, updateStsVO.getSts()).in(TmplItmDO::getId, updateStsVO.getIds())); + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldService.java index 66286f04..abddb114 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldService.java @@ -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 { */ List getTmplTpListByValKeys(List< String> valNames); + void updateTmplTpSts(UpdateStsVO updateStsVO); + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldServiceImpl.java index 6475e32c..925e3830 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpFldServiceImpl.java @@ -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 getTmplTpListByValKeys(List valNames) { return baseMapper.selectList(new LambdaQueryWrapper().in(TmplTpFldDO::getFldKy, valNames)); } + + @Override + public void updateTmplTpSts(UpdateStsVO updateStsVO) { + log.info("更新模板字段状态,参数:【{}】", updateStsVO); + baseMapper.update(Wrappers.lambdaUpdate().set(TmplTpFldDO::getSts, updateStsVO.getSts()).in(TmplTpFldDO::getId, updateStsVO.getIds())); + } } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java index 6b942876..b31f3a19 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/ContractApi.java @@ -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 updateOrderStatus(@RequestParam("orderId") Long orderId, @RequestParam("status") String status); @PostMapping(PREFIX + "/order-by-order-no") - @Operation(summary = "更新订单状态", description = "通过订单编号获取订单信息") + @Operation(summary = "通过订单编号获取订单信息", description = "通过订单编号获取订单信息") CommonResult> getOrderByOrderNo(@RequestBody List orderNoS); @PostMapping(PREFIX + "/create") @Operation(summary = "创建合同") CommonResult create(@Valid @RequestBody ContractSaveReqVO reqVO); + + @PostMapping(PREFIX + "/order-by-order-id") + @Operation(summary = "通过订单id获取订单信息", description = "通过订单编号获取订单信息") + CommonResult> getOrderByOrderIds(@RequestBody List ids); + + @PostMapping(PREFIX + "/send") + @Operation(summary = "国贸2.0系统创建合同调用") + CommonResult push(@Valid @RequestBody ContractRequest reqVO); } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java index 6963bd1c..37edaea1 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/PrchOrdDtlDTO.java @@ -77,7 +77,7 @@ public class PrchOrdDtlDTO { * 税码(字典: PRCH_TAX);推送ERP */ - private BigDecimal taxNum; + private String taxNum; /** * 是否基于GR的发票校验;推送ERP */ diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java new file mode 100644 index 00000000..79193871 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Account.java @@ -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; // 地址、电话 +} \ 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/api/vo/contract/international/ContractRequest.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java new file mode 100644 index 00000000..2f92d66c --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ContractRequest.java @@ -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 attachList; // 附件清单列表 + + // 嵌套列表 + private List partnerList; // 客商信息 + private List goodsSiteList; // 收发港/站点 + private List loadingRequirementsList; // 货物装卸要求 + private List accountList; // 收付款账号 + private List freightList; // 费用明细 + private List serviceFeeList; // 服务费用项目 + private List storgeList; // 仓库明细 + private List receivingAddrList; // 接货地址 +} \ 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/api/vo/contract/international/Freight.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java new file mode 100644 index 00000000..740ba73f --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Freight.java @@ -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; // 费用承担 +} \ 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/api/vo/contract/international/GoodsSite.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java new file mode 100644 index 00000000..d4fc6878 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/GoodsSite.java @@ -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-水汽联运) +} \ 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/api/vo/contract/international/LoadingRequirement.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java new file mode 100644 index 00000000..7b8f31ea --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/LoadingRequirement.java @@ -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; // 中间站费用承担方 +} \ 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/api/vo/contract/international/Partner.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java new file mode 100644 index 00000000..7ac0033c --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Partner.java @@ -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; // 境内/外 +} \ 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/api/vo/contract/international/ReceivingAddr.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java new file mode 100644 index 00000000..b72dae84 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ReceivingAddr.java @@ -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; // 联系电话 +} \ 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/api/vo/contract/international/ServiceFee.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java new file mode 100644 index 00000000..d70adc0f --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/ServiceFee.java @@ -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; // 计费类别 +} \ 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/api/vo/contract/international/Storge.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java new file mode 100644 index 00000000..18decdc2 --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/Storge.java @@ -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; // 详细地址 +} \ 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/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java index d4eb20d7..6a2ebcc3 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/ErrorCodeConstants.java @@ -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, "未知的操作"); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 5f44aee1..bac292b9 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -1,28 +1,41 @@ package com.zt.plat.module.contractorder.api; +import cn.hutool.json.JSONObject; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.contractorder.api.dto.PrchOrdDtlDTO; 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.*; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PurchaseOrderDetailsRespVO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractMainDO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFieldDO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.ContractOtherFormDO; +import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; +import com.zt.plat.module.contractorder.dal.mysql.contract.ContractMainMapper; +import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFieldMapper; +import com.zt.plat.module.contractorder.dal.mysql.contract.ContractOtherFormMapper; +import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; +import com.zt.plat.module.contractorder.enums.contract.DictEnum; import com.zt.plat.module.contractorder.service.contract.ContractService; import com.zt.plat.module.contractorder.service.purchaseorder.PurchaseOrderService; +import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; import jakarta.annotation.Resource; -import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; -import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; +import java.time.ZoneId; import java.util.ArrayList; import java.util.List; +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.pojo.CommonResult.success; +import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.*; @RestController @Validated @@ -34,7 +47,13 @@ public class ContractApiImpl implements ContractApi { @Resource private PurchaseOrderService purchaseOrderService; @Resource - private RedisTemplate redisTemplate; + private ContractMainMapper contractMainMapper; + @Resource + private ContractOtherFormMapper contractOtherFormMapper; + @Resource + private ContractOtherFieldMapper contractOtherFieldMapper; + @Resource + private SystemRelativityMapper systemRelativityMapper; @Override public ContractRespDTO getContractByPaperNumber(String contractPaperNumber) { @@ -66,14 +85,1604 @@ public class ContractApiImpl implements ContractApi { } @Override - public CommonResult create(@Valid @RequestBody ContractSaveReqVO reqVO) { - log.info("外部调用创建合同接口,参数:{}", reqVO); - redisTemplate.opsForHash().put( - "HT-TEMP", - reqVO.getContractPaperNumber() - + "-" - + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmSSS")), - reqVO); + public CommonResult create(ContractSaveReqVO reqVO) { + return null; + } + + @Transactional + @Override + public CommonResult push(@RequestBody ContractRequest reqVO) { + + // 合同主信息表映射 + ContractMainDO contractMainDO = new ContractMainDO(); + // 合同编号 + contractMainDO.setContractPaperNumber(reqVO.getContractCode()); + // 合同名称 + contractMainDO.setContractName(reqVO.getContractName()); + // 施工类型编号 默认值:SAPO2NCOZC + contractMainDO.setConstructionTypeNumber("SAPO2NCOZC"); + // 施工类型名称 默认值:铜非施工合同支出类 + contractMainDO.setConstructionTypeName("铜非施工合同支出类"); + // 类别 默认值:购销合同(1) + contractMainDO.setCategory("1"); + // 是否虚拟合同 默认值:否(0) + contractMainDO.setContractVirtual("0"); + // 代理方 默认值:NULL + // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) + contractMainDO.setSignDate(LocalDateTime.ofInstant(reqVO.getSignDate().toInstant(), ZoneId.systemDefault())); + // 开始日期 -> 合同有效期起 (格式: yyyyMMdd) + contractMainDO.setStartDate(LocalDateTime.ofInstant(reqVO.getContractStartDate().toInstant(), ZoneId.systemDefault())); + // 结束日期 -> 合同有效期止 (格式: yyyyMMdd) + contractMainDO.setEndDate(LocalDateTime.ofInstant(reqVO.getContractEndDate().toInstant(), ZoneId.systemDefault())); + // 币种 -> 合同币种 + contractMainDO.setCurrency(reqVO.getCurrencyCode()); + // 原币金额 -> 预估含税总金额 + contractMainDO.setCooAmount(reqVO.getEstimateAmountTotal()); + // 本币金额 -> 预估含税总金额 + contractMainDO.setBasicAmount(reqVO.getEstimateAmountTotal()); + // 状态 默认值:正在执行(EF) 执行中 + contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); + // 是否有预付款 默认值:否 + contractMainDO.setHasPrepayment("0"); + // 预付款比例 默认值:NULL + // 预付款金额 默认值:NULL + // 是否有质保金 默认值:否 + contractMainDO.setHasQualityAmount("0"); + // 质保金比例 默认值:NULL + // 质保金金额 默认值:NULL + // 是否内部企业 TODO + // 收支性质 默认值:支出 + contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode()); + // 是否框架合同 TODO + // 境内/境外 -> 客商信息:境内/外 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getPartnerCode()); + } + // 建筑服务发生地 默认值:NULL + // 达到收款条件金额 默认值:NULL + // 是否有履约保证金 默认值:否 + contractMainDO.setHasDeposit("0"); + // 原币履约保证金 默认值:NULL + // 本币履约保证金 默认值:NULL + // 交易方式 默认值:先款后货 + contractMainDO.setHasPayable("PRE_PAY"); + // 合同类型 默认值:物流合同 + contractMainDO.setContractType("3"); + // 签署地 -> 签约地 (40-签约必填) + contractMainDO.setSignPlace(reqVO.getSignSite()); + // 甲方公司编号(采购方) -> 账套代码 + contractMainDO.setPurchaseCompanyNumber(reqVO.getBookId()); + // 甲方公司名称 -> 账套名称 null + // 甲方地址 默认值:NULL + // 甲方法定代表人 默认值:NULL + // 乙方公司编号(销售方) -> 客商信息:供应商代码 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode()); + } + // 乙方公司名称 -> 客商信息:供应商名称 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName()); + } + // 乙方地址 默认值:NULL + // 乙方企业负责人 默认值:NULL + + // 逻辑处理 + // 操作标志 I 新增/更新;D 删除 + String operateFlag = reqVO.getOperateFlag(); + // 合同唯一键 + String externalId = reqVO.getContractId(); + // 系统合同ID + Long contractId = null; + // 查询系统关联合同 + SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne("UP_ID", externalId); + if ("I".equals(operateFlag)) { + if (systemRelativityDO != null && systemRelativityDO.getDownId() != null) { // 修改合同 + contractId = systemRelativityDO.getDownId(); + contractMainDO.setId(contractId); + contractMainMapper.updateById(contractMainDO); + } else { // 新增合同 + contractMainMapper.insert(contractMainDO); + contractId = contractMainDO.getId(); + + // 生成关联数据 + SystemRelativityDO saveRelation = new SystemRelativityDO(); + saveRelation.setUpId(Long.parseLong(externalId)); + saveRelation.setDownId(contractId); + saveRelation.setWay("EXTERNAL"); + saveRelation.setStatus(DictEnum.BSE_SYS_REL_TP_CONTRACT.getCode()); + systemRelativityMapper.insert(saveRelation); + } + } else if ("D".equals(operateFlag)) { + if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); + contractId = systemRelativityDO.getDownId(); + contractMainMapper.deleteById(contractId); + } else { + throw exception(CONTRACT_UNKNOWN_OPERATE); + } + + // 提交合同到erp + // 生成ERP合同映射表 + ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO); + + // 调用ERP模块 + JSONObject erpResult = contractService.sendToErp(erpContractVO); + log.info("合同提交ERP结果:{}", erpResult); + + // 更新合同状态 + if (!erpResult.getBool("success")) { + throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg")); + } + + // 多余请求参数保存到动态条款明细表 + List contractOtherFieldDOS = new ArrayList<>(); + ContractOtherFieldDO contractOtherFieldDO = new ContractOtherFieldDO(); + // 基础信息----- + // 组织ID + contractOtherFieldDO.setFieldNumber("orgId"); + contractOtherFieldDO.setFieldName("组织ID"); + contractOtherFieldDO.setFieldValue(reqVO.getOrgId()); + contractOtherFieldDO.setFieldDescription("组织ID"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 合同操作类型 (新增, 变更, 修正) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("operateType"); + contractOtherFieldDO.setFieldName("合同操作类型 (新增, 变更, 修正)"); + contractOtherFieldDO.setFieldValue(reqVO.getOperateType()); + contractOtherFieldDO.setFieldDescription("合同操作类型 (新增, 变更, 修正)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 业务合同编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("contractBusinessNo"); + contractOtherFieldDO.setFieldName("业务合同编号"); + contractOtherFieldDO.setFieldValue(reqVO.getContractBusinessNo()); + contractOtherFieldDO.setFieldDescription("业务合同编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方合同号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("contractExternalNo"); + contractOtherFieldDO.setFieldName("对方合同号"); + contractOtherFieldDO.setFieldValue(reqVO.getContractExternalNo()); + contractOtherFieldDO.setFieldDescription("对方合同号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 系统合同版本号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("contractVersion"); + contractOtherFieldDO.setFieldName("系统合同版本号"); + contractOtherFieldDO.setFieldValue(reqVO.getContractVersion().toString()); + contractOtherFieldDO.setFieldDescription("系统合同版本号"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 合同状态代码 (值集: 40-签约) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("contractStatus"); + contractOtherFieldDO.setFieldName("合同状态代码 (值集: 40-签约)"); + contractOtherFieldDO.setFieldValue(reqVO.getContractStatus()); + contractOtherFieldDO.setFieldDescription("合同状态代码 (值集: 40-签约)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 合同类型 (货运;货代;仓储;保险) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("contractType"); + contractOtherFieldDO.setFieldName("合同类型 (货运;货代;仓储;保险)"); + contractOtherFieldDO.setFieldValue(reqVO.getContractType()); + contractOtherFieldDO.setFieldDescription("合同类型 (货运;货代;仓储;保险)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 是否非标准合同文本 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("textType"); + contractOtherFieldDO.setFieldName("是否非标准合同文本"); + contractOtherFieldDO.setFieldValue(reqVO.getTextType()); + contractOtherFieldDO.setFieldDescription("是否非标准合同文本"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 是否固定单价 (0-浮动, 1-固定) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("priceType"); + contractOtherFieldDO.setFieldName("是否固定单价 (0-浮动, 1-固定)"); + contractOtherFieldDO.setFieldValue(reqVO.getPriceType()); + contractOtherFieldDO.setFieldDescription("是否固定单价 (0-浮动, 1-固定)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 结算方式 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("settleMethod"); + contractOtherFieldDO.setFieldName("结算方式"); + contractOtherFieldDO.setFieldValue(reqVO.getSettleMethod()); + contractOtherFieldDO.setFieldDescription("结算方式"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方合同号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("firstContractCode"); + contractOtherFieldDO.setFieldName("对方合同号"); + contractOtherFieldDO.setFieldValue(reqVO.getFirstContractCode()); + contractOtherFieldDO.setFieldDescription("对方合同号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 结算依据 (10-交货量, 20-卸车量) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("settleGist"); + contractOtherFieldDO.setFieldName("结算依据 (10-交货量, 20-卸车量)"); + contractOtherFieldDO.setFieldValue(reqVO.getSettleGist()); + contractOtherFieldDO.setFieldDescription("结算依据 (10-交货量, 20-卸车量)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 税率 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("priceTaxRate"); + contractOtherFieldDO.setFieldName("税率"); + contractOtherFieldDO.setFieldValue(reqVO.getPriceTaxRate().toString()); + contractOtherFieldDO.setFieldDescription("税率"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("transType"); + contractOtherFieldDO.setFieldName("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)"); + contractOtherFieldDO.setFieldValue(reqVO.getTransType()); + contractOtherFieldDO.setFieldDescription("运输方式 (10-铁路或汽运, 20-水路运输, 30-铁路运输, 40-汽车运输, 50-航空运输)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 包装方式 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("packMethod"); + contractOtherFieldDO.setFieldName("包装方式"); + contractOtherFieldDO.setFieldValue(reqVO.getPackMethod()); + contractOtherFieldDO.setFieldDescription("包装方式"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 在途损耗 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("intransitLoss"); + contractOtherFieldDO.setFieldName("在途损耗"); + contractOtherFieldDO.setFieldValue(reqVO.getIntransitLoss().toString()); + contractOtherFieldDO.setFieldDescription("在途损耗"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 提货地 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("pickupLocation"); + contractOtherFieldDO.setFieldName("提货地"); + contractOtherFieldDO.setFieldValue(reqVO.getPickupLocation()); + contractOtherFieldDO.setFieldDescription("提货地"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 仓库数 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("warehouseNum"); + contractOtherFieldDO.setFieldName("仓库数"); + contractOtherFieldDO.setFieldValue(reqVO.getWarehouseNum().toString()); + contractOtherFieldDO.setFieldDescription("仓库数"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 按码单入库磅差比 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("weightDisparity"); + contractOtherFieldDO.setFieldName("按码单入库磅差比"); + contractOtherFieldDO.setFieldValue(reqVO.getWeightDisparity().toString()); + contractOtherFieldDO.setFieldDescription("按码单入库磅差比"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 投保标的 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("insuredSubjectMatter"); + contractOtherFieldDO.setFieldName("投保标的"); + contractOtherFieldDO.setFieldValue(reqVO.getInsuredSubjectMatter()); + contractOtherFieldDO.setFieldDescription("投保标的"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 预计年保险总额 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("estimateCoverageAmount"); + contractOtherFieldDO.setFieldName("预计年保险总额"); + contractOtherFieldDO.setFieldValue(reqVO.getEstimateCoverageAmount().toString()); + contractOtherFieldDO.setFieldDescription("预计年保险总额"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 预计年保险费 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("estimatePremium"); + contractOtherFieldDO.setFieldName("预计年保险费"); + contractOtherFieldDO.setFieldValue(reqVO.getEstimatePremium().toString()); + contractOtherFieldDO.setFieldDescription("预计年保险费"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 保险费率 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("premiumRate"); + contractOtherFieldDO.setFieldName("保险费率"); + contractOtherFieldDO.setFieldValue(reqVO.getPremiumRate().toString()); + contractOtherFieldDO.setFieldDescription("保险费率"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备注信息 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("remark"); + contractOtherFieldDO.setFieldName("备注信息"); + contractOtherFieldDO.setFieldValue(reqVO.getRemark()); + contractOtherFieldDO.setFieldDescription("备注信息"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 经办人工号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("createdUser"); + contractOtherFieldDO.setFieldName("经办人工号"); + contractOtherFieldDO.setFieldValue(reqVO.getCreatedUser()); + contractOtherFieldDO.setFieldDescription("经办人工号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 经办人姓名 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("createdUserName"); + contractOtherFieldDO.setFieldName("经办人姓名"); + contractOtherFieldDO.setFieldValue(reqVO.getCreatedUserName()); + contractOtherFieldDO.setFieldDescription("经办人姓名"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 拟签递交人工号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("approveSubmitCode"); + contractOtherFieldDO.setFieldName("拟签递交人工号"); + contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitCode()); + contractOtherFieldDO.setFieldDescription("拟签递交人工号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 拟签递交人姓名 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("approveSubmitName"); + contractOtherFieldDO.setFieldName("拟签递交人姓名"); + contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitName()); + contractOtherFieldDO.setFieldDescription("拟签递交人姓名"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 拟签呈批日期 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("approveSubmitDate"); + contractOtherFieldDO.setFieldName("拟签呈批日期"); + contractOtherFieldDO.setFieldValue(reqVO.getApproveSubmitDate().toString()); + contractOtherFieldDO.setFieldDescription("拟签呈批日期"); + contractOtherFieldDO.setType("Date"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 拟签通过人工号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("approvePassCode"); + contractOtherFieldDO.setFieldName("拟签通过人工号"); + contractOtherFieldDO.setFieldValue(reqVO.getApprovePassCode()); + contractOtherFieldDO.setFieldDescription("拟签通过人工号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 拟签通过人姓名 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("approvePassName"); + contractOtherFieldDO.setFieldName("拟签通过人姓名"); + contractOtherFieldDO.setFieldValue(reqVO.getApprovePassName()); + contractOtherFieldDO.setFieldDescription("拟签通过人姓名"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 拟签通过日期 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("approvePassDate"); + contractOtherFieldDO.setFieldName("拟签通过日期"); + contractOtherFieldDO.setFieldValue(reqVO.getApprovePassDate().toString()); + contractOtherFieldDO.setFieldDescription("拟签通过日期"); + contractOtherFieldDO.setType("Date"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方签约人 (40-签约必填) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("signFirstPerson"); + contractOtherFieldDO.setFieldName("对方签约人 (40-签约必填)"); + contractOtherFieldDO.setFieldValue(reqVO.getSignFirstPerson()); + contractOtherFieldDO.setFieldDescription("对方签约人 (40-签约必填)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 我方签约人工号 (40-签约必填) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("signSecondPersonCode"); + contractOtherFieldDO.setFieldName("我方签约人工号 (40-签约必填)"); + contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonCode()); + contractOtherFieldDO.setFieldDescription("我方签约人工号 (40-签约必填)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 我方签约人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("signSecondPersonName"); + contractOtherFieldDO.setFieldName("我方签约人"); + contractOtherFieldDO.setFieldValue(reqVO.getSignSecondPersonName()); + contractOtherFieldDO.setFieldDescription("我方签约人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 推荐签约人工号 (40-签约必填, Y/N) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("onceAuthorityFlag"); + contractOtherFieldDO.setFieldName("推荐签约人工号 (40-签约必填, Y/N)"); + contractOtherFieldDO.setFieldValue(reqVO.getOnceAuthorityFlag()); + contractOtherFieldDO.setFieldDescription("推荐签约人工号 (40-签约必填, Y/N)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 推荐签约人工号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("signOnceAccredit"); + contractOtherFieldDO.setFieldName("推荐签约人工号"); + contractOtherFieldDO.setFieldValue(reqVO.getSignOnceAccredit()); + contractOtherFieldDO.setFieldDescription("推荐签约人工号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段1 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol1"); + contractOtherFieldDO.setFieldName("备用字段1"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol1()); + contractOtherFieldDO.setFieldDescription("备用字段1"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段2 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol2"); + contractOtherFieldDO.setFieldName("备用字段2"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol2()); + contractOtherFieldDO.setFieldDescription("备用字段2"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段3 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol3"); + contractOtherFieldDO.setFieldName("备用字段3"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol3()); + contractOtherFieldDO.setFieldDescription("备用字段3"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段4 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol4"); + contractOtherFieldDO.setFieldName("备用字段4"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol4()); + contractOtherFieldDO.setFieldDescription("备用字段4"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段5 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol5"); + contractOtherFieldDO.setFieldName("备用字段5"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol5()); + contractOtherFieldDO.setFieldDescription("备用字段5"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段6 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol6"); + contractOtherFieldDO.setFieldName("备用字段6"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol6()); + contractOtherFieldDO.setFieldDescription("备用字段6"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段7 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol7"); + contractOtherFieldDO.setFieldName("备用字段7"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol7()); + contractOtherFieldDO.setFieldDescription("备用字段7"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段8 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol8"); + contractOtherFieldDO.setFieldName("备用字段8"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol8()); + contractOtherFieldDO.setFieldDescription("备用字段8"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段9 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol9"); + contractOtherFieldDO.setFieldName("备用字段9"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol9()); + contractOtherFieldDO.setFieldDescription("备用字段9"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 备用字段10 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setFieldNumber("extCol10"); + contractOtherFieldDO.setFieldName("备用字段10"); + contractOtherFieldDO.setFieldValue(reqVO.getExtCol10()); + contractOtherFieldDO.setFieldDescription("备用字段10"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + + // 明细部分保存 + // 附件清单列表 + ContractOtherFormDO contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("attachList"); + contractOtherFormDO.setFormName("附件清单列表"); + contractOtherFormDO.setFormDescription("附件清单列表"); + contractOtherFormMapper.insert(contractOtherFormDO); + contractOtherFieldDOS = new ArrayList<>(); + if (reqVO.getAttachList() != null && !reqVO.getAttachList().isEmpty()) { + for (String attach : reqVO.getAttachList()) { + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("attach"); + contractOtherFieldDO.setFieldName("附件"); + contractOtherFieldDO.setFieldValue(attach); + contractOtherFieldDO.setFieldDescription("附件"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + } + } + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + //----- 嵌套列表 + // 客商信息 + if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) { + for (Partner partner : reqVO.getPartnerList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("partnerList"); + contractOtherFormDO.setFormName("客商信息"); + contractOtherFormDO.setFormDescription("客商信息"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + // 客商信息行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerSourceId"); + contractOtherFieldDO.setFieldName("客商信息行号"); + contractOtherFieldDO.setFieldValue(partner.getPartnerSourceId()); + contractOtherFieldDO.setFieldDescription("客商信息行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 客商信息编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerSourceCode"); + contractOtherFieldDO.setFieldName("客商信息编码"); + contractOtherFieldDO.setFieldValue(partner.getPartnerSourceCode()); + contractOtherFieldDO.setFieldDescription("客商信息编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 供应商名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerName"); + contractOtherFieldDO.setFieldName("供应商名称"); + contractOtherFieldDO.setFieldValue(partner.getPartnerName()); + contractOtherFieldDO.setFieldDescription("供应商名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 供应商代码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerCode"); + contractOtherFieldDO.setFieldName("供应商代码"); + contractOtherFieldDO.setFieldValue(partner.getPartnerCode()); + contractOtherFieldDO.setFieldDescription("供应商代码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方法定代表人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("legalRepresentative"); + contractOtherFieldDO.setFieldName("对方法定代表人"); + contractOtherFieldDO.setFieldValue(partner.getLegalRepresentative()); + contractOtherFieldDO.setFieldDescription("对方法定代表人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 币种 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerCurrency"); + contractOtherFieldDO.setFieldName("币种"); + contractOtherFieldDO.setFieldValue(partner.getPartnerCurrency()); + contractOtherFieldDO.setFieldDescription("币种"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方联系人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactPerson"); + contractOtherFieldDO.setFieldName("对方联系人"); + contractOtherFieldDO.setFieldValue(partner.getContactPerson()); + contractOtherFieldDO.setFieldDescription("对方联系人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 对方联系人联系方式 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactInformation"); + contractOtherFieldDO.setFieldName("对方联系人联系方式"); + contractOtherFieldDO.setFieldValue(partner.getContactInformation()); + contractOtherFieldDO.setFieldDescription("对方联系人联系方式"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 是否内部交易 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("internalTransaction"); + contractOtherFieldDO.setFieldName("是否内部交易"); + contractOtherFieldDO.setFieldValue(partner.getInternalTransaction()); + contractOtherFieldDO.setFieldDescription("是否内部交易"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 客商类型 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partnerType"); + contractOtherFieldDO.setFieldName("客商类型"); + contractOtherFieldDO.setFieldValue(partner.getPartnerType()); + contractOtherFieldDO.setFieldDescription("客商类型"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 境内/外 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("domesticOrOverseas"); + contractOtherFieldDO.setFieldName("境内/外"); + contractOtherFieldDO.setFieldValue(partner.getDomesticOrOverseas()); + contractOtherFieldDO.setFieldDescription("境内/外"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 收发港/站点 + if (reqVO.getGoodsSiteList() != null && !reqVO.getGoodsSiteList().isEmpty()) { + for (GoodsSite goodsSite : reqVO.getGoodsSiteList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("goodsSiteList"); + contractOtherFormDO.setFormName("收发港/站点"); + contractOtherFormDO.setFormDescription("收发港/站点"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + // 收发港站点行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("goodsSiteSourceId"); + contractOtherFieldDO.setFieldName("收发港站点行号"); + contractOtherFieldDO.setFieldValue(goodsSite.getGoodsSiteSourceId()); + contractOtherFieldDO.setFieldDescription("收发港站点行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收发港站点编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("goodsSiteSourceCode"); + contractOtherFieldDO.setFieldName("收发港站点编号"); + contractOtherFieldDO.setFieldValue(goodsSite.getGoodsSiteSourceCode()); + contractOtherFieldDO.setFieldDescription("收发港站点编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物分类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("subMattercategoryLevel"); + contractOtherFieldDO.setFieldName("标的物分类"); + contractOtherFieldDO.setFieldValue(goodsSite.getSubMattercategoryLevel()); + contractOtherFieldDO.setFieldDescription("标的物分类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("subMattercategoryCode"); + contractOtherFieldDO.setFieldName("标的物编码"); + contractOtherFieldDO.setFieldValue(goodsSite.getSubMattercategoryCode()); + contractOtherFieldDO.setFieldDescription("标的物编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("subMatterCategoryName"); + contractOtherFieldDO.setFieldName("标的物名称"); + contractOtherFieldDO.setFieldValue(goodsSite.getSubMatterCategoryName()); + contractOtherFieldDO.setFieldDescription("标的物名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteType"); + contractOtherFieldDO.setFieldName("地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteType()); + contractOtherFieldDO.setFieldDescription("地点类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteCode"); + contractOtherFieldDO.setFieldName("发货地编号"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteCode()); + contractOtherFieldDO.setFieldDescription("发货地编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteName"); + contractOtherFieldDO.setFieldName("发货地名称"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteName()); + contractOtherFieldDO.setFieldDescription("发货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(goodsSite.getBeginSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地点类型 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteType"); + contractOtherFieldDO.setFieldName("地点类型"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteType()); + contractOtherFieldDO.setFieldDescription("地点类型"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteCode"); + contractOtherFieldDO.setFieldName("收货地编号"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteCode()); + contractOtherFieldDO.setFieldDescription("收货地编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteName"); + contractOtherFieldDO.setFieldName("收货地名称"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteName()); + contractOtherFieldDO.setFieldDescription("收货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(goodsSite.getEndSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 运输方式 (10-汽运;20-船运;30-水汽联运) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contractTypeDispatch"); + contractOtherFieldDO.setFieldName("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setFieldValue(goodsSite.getContractTypeDispatch()); + contractOtherFieldDO.setFieldDescription("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 货物装卸要求 + if (reqVO.getLoadingRequirementsList() != null && !reqVO.getLoadingRequirementsList().isEmpty()) { + for (LoadingRequirement loadingRequirement : reqVO.getLoadingRequirementsList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("loadingRequirementsList"); + contractOtherFormDO.setFormName("货物装卸要求"); + contractOtherFormDO.setFormDescription("货物装卸要求"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 货物装卸行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("loadingReqSourceId"); + contractOtherFieldDO.setFieldName("货物装卸行号"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getLoadingReqSourceId()); + contractOtherFieldDO.setFieldDescription("货物装卸行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 货物装卸编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("loadingReqSourceCode"); + contractOtherFieldDO.setFieldName("货物装卸编号"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getLoadingReqSourceCode()); + contractOtherFieldDO.setFieldDescription("货物装卸编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 提货地责任方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("deliveredAtPlace"); + contractOtherFieldDO.setFieldName("提货地责任方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDeliveredAtPlace()); + contractOtherFieldDO.setFieldDescription("提货地责任方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 提货地费用承担方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("deliveredAtFeeparty"); + contractOtherFieldDO.setFieldName("提货地费用承担方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDeliveredAtFeeparty()); + contractOtherFieldDO.setFieldDescription("提货地费用承担方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 终到地责任方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("destinationResponsibleParty"); + contractOtherFieldDO.setFieldName("终到地责任方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDestinationResponsibleParty()); + contractOtherFieldDO.setFieldDescription("终到地责任方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 终到地费用承担方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("intermediateStationParty"); + contractOtherFieldDO.setFieldName("终到地费用承担方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getIntermediateStationParty()); + contractOtherFieldDO.setFieldDescription("终到地费用承担方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 中间站责任方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("destinationResponsibleFeeparty"); + contractOtherFieldDO.setFieldName("中间站责任方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getDestinationResponsibleFeeparty()); + contractOtherFieldDO.setFieldDescription("中间站责任方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 中间站费用承担方 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("intermediateResponsibleFeeparty"); + contractOtherFieldDO.setFieldName("中间站费用承担方"); + contractOtherFieldDO.setFieldValue(loadingRequirement.getIntermediateResponsibleFeeparty()); + contractOtherFieldDO.setFieldDescription("中间站费用承担方"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 收付款账号 + if (reqVO.getAccountList() != null && !reqVO.getAccountList().isEmpty()) { + for (Account account : reqVO.getAccountList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("accountList"); + contractOtherFormDO.setFormName("收付款账号"); + contractOtherFormDO.setFormDescription("收付款账号"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 收付款账号行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountSourceId"); + contractOtherFieldDO.setFieldName("收付款账号行号"); + contractOtherFieldDO.setFieldValue(account.getAccountSourceId()); + contractOtherFieldDO.setFieldDescription("收付款账号行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收付款账号编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountSourceCode"); + contractOtherFieldDO.setFieldName("收付款账号编号"); + contractOtherFieldDO.setFieldValue(account.getAccountSourceCode()); + contractOtherFieldDO.setFieldDescription("收付款账号编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 类别 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountType"); + contractOtherFieldDO.setFieldName("类别"); + contractOtherFieldDO.setFieldValue(account.getAccountType()); + contractOtherFieldDO.setFieldDescription("类别"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("accountName"); + contractOtherFieldDO.setFieldName("名称"); + contractOtherFieldDO.setFieldValue(account.getAccountName()); + contractOtherFieldDO.setFieldDescription("名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 开户银行 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("bankAccountName"); + contractOtherFieldDO.setFieldName("开户银行"); + contractOtherFieldDO.setFieldValue(account.getBankAccountName()); + contractOtherFieldDO.setFieldDescription("开户银行"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 银行账号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("bankAccountNo"); + contractOtherFieldDO.setFieldName("银行账号"); + contractOtherFieldDO.setFieldValue(account.getBankAccountNo()); + contractOtherFieldDO.setFieldDescription("银行账号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 纳税人识别号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("identificationNumber"); + contractOtherFieldDO.setFieldName("纳税人识别号"); + contractOtherFieldDO.setFieldValue(account.getIdentificationNumber()); + contractOtherFieldDO.setFieldDescription("纳税人识别号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地址、电话 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("addressPhoneTel"); + contractOtherFieldDO.setFieldName("地址、电话"); + contractOtherFieldDO.setFieldValue(account.getAddressPhoneTel()); + contractOtherFieldDO.setFieldDescription("地址、电话"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 费用明细 + if (reqVO.getFreightList() != null && !reqVO.getFreightList().isEmpty()) { + for (Freight freight : reqVO.getFreightList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("freightList"); + contractOtherFormDO.setFormName("费用明细"); + contractOtherFormDO.setFormDescription("费用明细"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 费用明细行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("freightSourceId"); + contractOtherFieldDO.setFieldName("费用明细行号"); + contractOtherFieldDO.setFieldValue(freight.getFreightSourceId()); + contractOtherFieldDO.setFieldDescription("费用明细行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用明细编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("freightSourceCode"); + contractOtherFieldDO.setFieldName("费用明细编号"); + contractOtherFieldDO.setFieldValue(freight.getFreightSourceCode()); + contractOtherFieldDO.setFieldDescription("费用明细编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteCode"); + contractOtherFieldDO.setFieldName("发货地编号"); + contractOtherFieldDO.setFieldValue(freight.getBeginSiteCode()); + contractOtherFieldDO.setFieldDescription("发货地编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 发货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteName"); + contractOtherFieldDO.setFieldName("发货地名称"); + contractOtherFieldDO.setFieldValue(freight.getBeginSiteName()); + contractOtherFieldDO.setFieldDescription("发货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("beginSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(freight.getBeginSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteCode"); + contractOtherFieldDO.setFieldName("收货地编码"); + contractOtherFieldDO.setFieldValue(freight.getEndSiteCode()); + contractOtherFieldDO.setFieldDescription("收货地编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货地名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteName"); + contractOtherFieldDO.setFieldName("收货地名称"); + contractOtherFieldDO.setFieldValue(freight.getEndSiteName()); + contractOtherFieldDO.setFieldDescription("收货地名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("endSiteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(freight.getEndSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 运输方式 (10-汽运;20-船运;30-水汽联运) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contractTypeDispatch"); + contractOtherFieldDO.setFieldName("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setFieldValue(freight.getContractTypeDispatch()); + contractOtherFieldDO.setFieldDescription("运输方式 (10-汽运;20-船运;30-水汽联运)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用类型 (包干费、汽运费、港口费...) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeTypeCode"); + contractOtherFieldDO.setFieldName("费用类型 (包干费、汽运费、港口费...)"); + contractOtherFieldDO.setFieldValue(freight.getFeeTypeCode()); + contractOtherFieldDO.setFieldDescription("费用类型 (包干费、汽运费、港口费...)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeTypeName"); + contractOtherFieldDO.setFieldName("费用名称"); + contractOtherFieldDO.setFieldValue(freight.getFeeTypeName()); + contractOtherFieldDO.setFieldDescription("费用名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 是否乙方提货 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("isPartybPickup"); + contractOtherFieldDO.setFieldName("是否乙方提货"); + contractOtherFieldDO.setFieldValue(freight.getIsPartybPickup()); + contractOtherFieldDO.setFieldDescription("是否乙方提货"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 乙方提货单价 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("partybPickupPrice"); + contractOtherFieldDO.setFieldName("乙方提货单价"); + contractOtherFieldDO.setFieldValue(freight.getPartybPickupPrice().toString()); + contractOtherFieldDO.setFieldDescription("乙方提货单价"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用大类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeCategoryL"); + contractOtherFieldDO.setFieldName("费用大类"); + contractOtherFieldDO.setFieldValue(freight.getFeeCategoryL()); + contractOtherFieldDO.setFieldDescription("费用大类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用小类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("feeCategoryS"); + contractOtherFieldDO.setFieldName("费用小类"); + contractOtherFieldDO.setFieldValue(freight.getFeeCategoryS()); + contractOtherFieldDO.setFieldDescription("费用小类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的仓 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("goodsStorage"); + contractOtherFieldDO.setFieldName("标的仓"); + contractOtherFieldDO.setFieldValue(freight.getGoodsStorage()); + contractOtherFieldDO.setFieldDescription("标的仓"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("categoryName"); + contractOtherFieldDO.setFieldName("标的物"); + contractOtherFieldDO.setFieldValue(freight.getCategoryName()); + contractOtherFieldDO.setFieldDescription("标的物"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 免堆期 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("noHeapDays"); + contractOtherFieldDO.setFieldName("免堆期"); + contractOtherFieldDO.setFieldValue(freight.getNoHeapDays().toString()); + contractOtherFieldDO.setFieldDescription("免堆期"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("quantityUnitCode"); + contractOtherFieldDO.setFieldName("计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)"); + contractOtherFieldDO.setFieldValue(freight.getQuantityUnitCode()); + contractOtherFieldDO.setFieldDescription("计费单位 (01-元/吨; 02-元/40GP; 03-元/20GP; 04-元/车)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 单价 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("priceWithtax"); + contractOtherFieldDO.setFieldName("单价"); + contractOtherFieldDO.setFieldValue(freight.getPriceWithtax().toString()); + contractOtherFieldDO.setFieldDescription("单价"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 税率(%) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("priceTaxRate"); + contractOtherFieldDO.setFieldName("税率(%)"); + contractOtherFieldDO.setFieldValue(freight.getPriceTaxRate().toString()); + contractOtherFieldDO.setFieldDescription("税率(%)"); + contractOtherFieldDO.setType("BigDecimal"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 费用承担 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("costBearing"); + contractOtherFieldDO.setFieldName("费用承担"); + contractOtherFieldDO.setFieldValue(freight.getCostBearing()); + contractOtherFieldDO.setFieldDescription("费用承担"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 服务费用项目 + if (reqVO.getServiceFeeList() != null && !reqVO.getServiceFeeList().isEmpty()) { + for (ServiceFee serviceFee : reqVO.getServiceFeeList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("serviceFeeList"); + contractOtherFormDO.setFormName("服务费用项目"); + contractOtherFormDO.setFormDescription("服务费用项目"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 服务费用项目行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("serviceFeeSourceId"); + contractOtherFieldDO.setFieldName("服务费用项目行号"); + contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeSourceId()); + contractOtherFieldDO.setFieldDescription("服务费用项目行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 服务费用项目编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("serviceFeeSourceCode"); + contractOtherFieldDO.setFieldName("服务费用项目编号"); + contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeSourceCode()); + contractOtherFieldDO.setFieldDescription("服务费用项目编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 服务项目名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("serviceFeeName"); + contractOtherFieldDO.setFieldName("服务项目名称"); + contractOtherFieldDO.setFieldValue(serviceFee.getServiceFeeName()); + contractOtherFieldDO.setFieldDescription("服务项目名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 计费类别 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("expenseType"); + contractOtherFieldDO.setFieldName("计费类别"); + contractOtherFieldDO.setFieldValue(serviceFee.getExpenseType()); + contractOtherFieldDO.setFieldDescription("计费类别"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 仓库明细 + if (reqVO.getStorgeList() != null && !reqVO.getStorgeList().isEmpty()) { + for (Storge storge : reqVO.getStorgeList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("storgeList"); + contractOtherFormDO.setFormName("仓库明细"); + contractOtherFormDO.setFormDescription("仓库明细"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 合同明细行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("storgeSourceId"); + contractOtherFieldDO.setFieldName("合同明细行号"); + contractOtherFieldDO.setFieldValue(storge.getStorgeSourceId()); + contractOtherFieldDO.setFieldDescription("合同明细行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 合同明细行编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("storgeSourceCode"); + contractOtherFieldDO.setFieldName("合同明细行编号"); + contractOtherFieldDO.setFieldValue(storge.getStorgeSourceCode()); + contractOtherFieldDO.setFieldDescription("合同明细行编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 仓库编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("warehouseCode"); + contractOtherFieldDO.setFieldName("仓库编号"); + contractOtherFieldDO.setFieldValue(storge.getWarehouseCode()); + contractOtherFieldDO.setFieldDescription("仓库编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 仓库名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("warehouseName"); + contractOtherFieldDO.setFieldName("仓库名称"); + contractOtherFieldDO.setFieldValue(storge.getWarehouseName()); + contractOtherFieldDO.setFieldDescription("仓库名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("warehouseAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(storge.getWarehouseAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + // 接货地址 + if (reqVO.getReceivingAddrList() != null && !reqVO.getReceivingAddrList().isEmpty()) { + for (ReceivingAddr receivingAddr : reqVO.getReceivingAddrList()) { + + contractOtherFormDO = new ContractOtherFormDO(); + contractOtherFormDO.setContractMainId(contractId); + contractOtherFormDO.setFormNumber("receivingAddrList"); + contractOtherFormDO.setFormName("接货地址"); + contractOtherFormDO.setFormDescription("接货地址"); + contractOtherFormMapper.insert(contractOtherFormDO); + + contractOtherFieldDOS = new ArrayList<>(); + + // 接货地址行号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("recivingAddrSourceId"); + contractOtherFieldDO.setFieldName("接货地址行号"); + contractOtherFieldDO.setFieldValue(receivingAddr.getRecivingAddrSourceId()); + contractOtherFieldDO.setFieldDescription("接货地址行号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 接货地址编号 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("recivingAddrSourceCode"); + contractOtherFieldDO.setFieldName("接货地址编号"); + contractOtherFieldDO.setFieldValue(receivingAddr.getRecivingAddrSourceCode()); + contractOtherFieldDO.setFieldDescription("接货地址编号"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物分类 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("categoryLevel"); + contractOtherFieldDO.setFieldName("标的物分类"); + contractOtherFieldDO.setFieldValue(receivingAddr.getCategoryLevel()); + contractOtherFieldDO.setFieldDescription("标的物分类"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("ccCategoryCode"); + contractOtherFieldDO.setFieldName("标的物编码"); + contractOtherFieldDO.setFieldValue(receivingAddr.getCcCategoryCode()); + contractOtherFieldDO.setFieldDescription("标的物编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 标的物名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("categoryName"); + contractOtherFieldDO.setFieldName("标的物名称"); + contractOtherFieldDO.setFieldValue(receivingAddr.getCategoryName()); + contractOtherFieldDO.setFieldDescription("标的物名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 接货编码 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteCode"); + contractOtherFieldDO.setFieldName("接货编码"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteCode()); + contractOtherFieldDO.setFieldDescription("接货编码"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 接货名称 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteName"); + contractOtherFieldDO.setFieldName("接货名称"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteName()); + contractOtherFieldDO.setFieldDescription("接货名称"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库) + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteType"); + contractOtherFieldDO.setFieldName("地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteType()); + contractOtherFieldDO.setFieldDescription("地址类型 (QY-区域; GK-港口; MT-码头; CK-仓库)"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 详细地址 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("siteAddress"); + contractOtherFieldDO.setFieldName("详细地址"); + contractOtherFieldDO.setFieldValue(receivingAddr.getSiteAddress()); + contractOtherFieldDO.setFieldDescription("详细地址"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 专用线 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("consigneePrivatewire"); + contractOtherFieldDO.setFieldName("专用线"); + contractOtherFieldDO.setFieldValue(receivingAddr.getConsigneePrivatewire()); + contractOtherFieldDO.setFieldDescription("专用线"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 收货人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("consignerContact"); + contractOtherFieldDO.setFieldName("收货人"); + contractOtherFieldDO.setFieldValue(receivingAddr.getConsignerContact()); + contractOtherFieldDO.setFieldDescription("收货人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 联系人 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactPerson"); + contractOtherFieldDO.setFieldName("联系人"); + contractOtherFieldDO.setFieldValue(receivingAddr.getContactPerson()); + contractOtherFieldDO.setFieldDescription("联系人"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + // 联系电话 + contractOtherFieldDO = new ContractOtherFieldDO(); + contractOtherFieldDO.setRelativityId(contractOtherFormDO.getId()); + contractOtherFieldDO.setFieldNumber("contactPhone"); + contractOtherFieldDO.setFieldName("联系电话"); + contractOtherFieldDO.setFieldValue(receivingAddr.getContactPhone()); + contractOtherFieldDO.setFieldDescription("联系电话"); + contractOtherFieldDO.setType("String"); + contractOtherFieldDO.setContractMainId(contractId.toString()); + contractOtherFieldDOS.add(contractOtherFieldDO); + + // 保存 + contractOtherFieldMapper.insertBatch(contractOtherFieldDOS); + } + } + return success(true); } + + @Override + public CommonResult> getOrderByOrderIds(List ids) { + if (ids==null||ids.isEmpty()){ + throw new RuntimeException("订单id为空"); + } + List purchaseOrderWithDetailsDTOS = new ArrayList<>(); + List purchaseOrderWithDetailsVOS = purchaseOrderService.getOrderByIds(ids); + purchaseOrderWithDetailsVOS.forEach(purchaseOrderWithDetailsVO -> { + if (purchaseOrderWithDetailsVO!= null) { + PurchaseOrderWithDetailsDTO purchaseOrderWithDetailsDTO = BeanUtils.toBean(purchaseOrderWithDetailsVO, + PurchaseOrderWithDetailsDTO.class); + if (purchaseOrderWithDetailsVO.getOrderDetails().isEmpty()) { + purchaseOrderWithDetailsDTO.setOrderDetails(new ArrayList<>()); + } else { + purchaseOrderWithDetailsDTO.setOrderDetails(BeanUtils.toBean(purchaseOrderWithDetailsVO.getOrderDetails(), PrchOrdDtlDTO.class)); + } + purchaseOrderWithDetailsDTOS.add(purchaseOrderWithDetailsDTO); + } + }); + return success(purchaseOrderWithDetailsDTOS); + } } 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 1c20680c..406dc9f3 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 @@ -163,7 +163,7 @@ public class PurchaseOrderController implements BusinessControllerMarker { //根据订单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 OrderStsReqVO req) { purchaseOrderService.updateOrderStatusByIdOrOrderNo(req); return success(true); } 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 index 3f8b1149..8533e852 100644 --- 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 @@ -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; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/OrderStsReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/OrderStsReqVO.java new file mode 100644 index 00000000..e1f61ccc --- /dev/null +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/OrderStsReqVO.java @@ -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 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/controller/admin/purchaseorder/vo/PurchaseOrderStsReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderStsReqVO.java deleted file mode 100644 index 84c56053..00000000 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderStsReqVO.java +++ /dev/null @@ -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 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/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 index 7de85649..60f26b64 100644 --- 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 @@ -49,14 +49,14 @@ public class SalesOrderController implements BusinessControllerMarker { @PostMapping("/create") - @Operation(summary = "创建采购订单") + @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 = "更新采购订单") + @Operation(summary = "更新销售订单") @PreAuthorize("@ss.hasPermission('base:sales-order:update')") public CommonResult 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 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 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 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> getSalesOrderPage(@Valid SalesOrderPageReqVO pageReqVO) { PageResult 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 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 orderPassReject(@RequestBody SalesOrderReviewReqVO reqVO) { return success(salesOrderService.orderPassReject(reqVO)); } + //关联订单 + @PostMapping("/link-order") + @Operation(summary = "关联订单") + public CommonResult linkOrder(@RequestBody @Validated LinkOrderReqVO req) { + return success(salesOrderService.linkOrder(req)); + } + //根据订单id和方式获取上或下游订单 + @PostMapping("/order-by-order-id-and-type") + @Operation(summary = "根据订单id和方式获取上或下游订单") + public CommonResult> getOrderByOrderIdAndType(@RequestBody DownOrUpOrderReqVO reqVO) { + return success( salesOrderService.getOrderByOrderIdAndType(reqVO)); + } + + + @PostMapping("/bound-order") + @Operation(summary = "获取已绑定的订单") + public CommonResult> boundOrder(@RequestBody DownOrUpOrderReqVO reqVO) { + return success(salesOrderService.getBindOrderByOrder(reqVO)); + } + + @PutMapping("/update-order-status") + @Operation(summary = "批量修改订单状态", description = "sts取值于字典名称'销售订单状态',字典类型'PRCH_ORD_STS' 可以根据订单号和订单id修改") + public CommonResult updateOrderStatus(@RequestBody @Validated OrderStsReqVO req) { + salesOrderService.updateOrderStatusByIdOrOrderNo(req); + return success(true); + } } 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 81e34610..818c2a93 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 @@ -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 ids); + JSONObject sendToErp(ErpContractSaveReqVO erpContractVO); + ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO); } 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 9ebf4767..26f48aa5 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 @@ -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 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 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 74f6e71f..ac08315b 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 @@ -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 getOrderByIds(List ids); } 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 4a8e1645..ba378c64 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 @@ -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 orderList = new ArrayList<>(); if (upRelation != null) { @@ -662,4 +665,16 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { } return orderList; } + + @Override + public List getOrderByIds(List ids) { + List purchaseOrderWithDetailsVOS = purchaseOrderMapper.selectOrderByIds(ids); + List 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; + } } 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 index d73c7f7e..50ba33f1 100644 --- 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 @@ -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 getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO); + /** + * 获取已绑定消费订单详情 + * + * @param reqVO 采购订单 + * + */ + + List getBindOrderByOrder(DownOrUpOrderReqVO reqVO); + /** + * 修改订单状态 + * + * @param req 采购订单 + * + */ + void updateOrderStatusByIdOrOrderNo(OrderStsReqVO req); } 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 index 22e92553..f46abdd1 100644 --- 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 @@ -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().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { + throw exception(CONTRACT_ORDER_EXISTS); + } + return systemRelativityMapper.insert(saveDO) > 0; + } + + + @Override + public List 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 orderList = new ArrayList<>(); + if (upRelation != null) { + String systemContractNumber = upRelation.getSystemContractNumber(); + + List salesOrderDOS = salesOrderMapper.selectList(new LambdaQueryWrapper().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 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()) { + List salesOrderDOS = salesOrderMapper.selectByIds(systemRelativityDOS.stream().map(SystemRelativityDO::getUpId).toList()); + orderList = BeanUtils.toBean(salesOrderDOS, PurchaseOrderRespVO.class); + } + } else { + //下游 + log.info("获取下游订单"); + List systemRelativityDOS = systemRelativityMapper.selectList(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, reqVO.getOrderId())); + if (!systemRelativityDOS.isEmpty()) { + List 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().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 orderNos) { + List list = salesOrderMapper.selectList(new LambdaQueryWrapper().in(SalesOrderDO::getSystemOrderNumber, orderNos)); + if (CollUtil.isEmpty(list) || list.size() != orderNos.size()) { + throw exception(PURCHASE_ORDER_NOT_EXISTS); + } + } } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/util/constants/ProcessDefinitionKeyConstants.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/util/constants/ProcessDefinitionKeyConstants.java index 2a15e8e4..c9f41add 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/util/constants/ProcessDefinitionKeyConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/util/constants/ProcessDefinitionKeyConstants.java @@ -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"; }