diff --git a/base-server/src/main/resources/application-dev.yml b/base-server/src/main/resources/application-dev.yml index 9a9d5799..38ea26dc 100644 --- a/base-server/src/main/resources/application-dev.yml +++ b/base-server/src/main/resources/application-dev.yml @@ -105,3 +105,41 @@ justauth: prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 +erp: + address: hana-dev.yncic.com + sapsys: ZTDEV203 + +eplat: + share: + #ePlat共享服务请求地址前缀 + urlPrex: http://10.1.7.110 + #ePlat分配的clientId + clientId: ztjgj5gsJ2uU20900h9j + #ePlat分配的密钥 + clientSecret: DC82AD38EA764719B6DC7D71AAB4856C + +seata: + enabled: true + application-id: base-server + tx-service-group: dev_tx_group + enable-auto-data-source-proxy: true + data-source-proxy-mode: AT + registry: + type: file + config: + type: file + service: + vgroupMapping: + default_tx_group: default + dev_tx_group: default + test_tx_group: default + prod_tx_group: default + default: + grouplist: 172.16.46.63:30088 + client: + tm: + defaultGlobalTransactionTimeout: 60000 + undo: + logTable: undo_log + dataValidation: true + logSerialization: jackson \ No newline at end of file diff --git a/base-server/src/main/resources/application-local.yml b/base-server/src/main/resources/application-local.yml index 3035e5d8..34a2edce 100644 --- a/base-server/src/main/resources/application-local.yml +++ b/base-server/src/main/resources/application-local.yml @@ -95,3 +95,41 @@ zt: access-log: # 访问日志的配置项 enable: true +erp: + address: hana-dev.yncic.com + sapsys: ZTDEV203 + +eplat: + share: + #ePlat共享服务请求地址前缀 + urlPrex: http://10.1.7.110 + #ePlat分配的clientId + clientId: ztjgj5gsJ2uU20900h9j + #ePlat分配的密钥 + clientSecret: DC82AD38EA764719B6DC7D71AAB4856C + +seata: + enabled: true + application-id: base-server + tx-service-group: dev_tx_group + enable-auto-data-source-proxy: true + data-source-proxy-mode: AT + registry: + type: file + config: + type: file + service: + vgroupMapping: + default_tx_group: default + dev_tx_group: default + test_tx_group: default + prod_tx_group: default + default: + grouplist: 172.16.46.63:30088 + client: + tm: + defaultGlobalTransactionTimeout: 60000 + undo: + logTable: undo_log + dataValidation: true + logSerialization: jackson \ No newline at end of file diff --git a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java index 63e1908d..1a3fd65d 100644 --- a/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java +++ b/zt-module-base/zt-module-base-api/src/main/java/com/zt/plat/module/tmpltp/enums/ErrorCodeConstants.java @@ -32,6 +32,8 @@ public interface ErrorCodeConstants { ErrorCode FILE_UPLOAD_EER = new ErrorCode(1_027_000_523, "文件上传失败"); ErrorCode TMPL_INSC_ITM_BSN_NOT_EXISTS = new ErrorCode(1_027_000_524, "业务实例条款不存在"); ErrorCode TMPL_INSC_DAT_BSN_NOT_EXISTS = new ErrorCode(1_027_000_530, "业务实例字段不存在"); + ErrorCode TMPL_INSC_ITM_BSN_EXISTS = new ErrorCode(1_027_000_540, "业务实例条款已存在"); + ErrorCode TMPL_INSC_DAT_BSN_EXISTS = new ErrorCode(1_027_000_541, "业务实例条款已存在"); //Illegal operation type } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplInscBsnRelController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplInscBsnRelController.java index be2d7d95..7616847e 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplInscBsnRelController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/TmplInscBsnRelController.java @@ -85,12 +85,7 @@ public class TmplInscBsnRelController implements BusinessControllerMarker { @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('base:tmpl-insc-bsn-rel:query')") public CommonResult getTmplInscBsnRel(@RequestParam("id") Long id) { - TmplInscBsnRelDO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(id); - TmplInscBsnRelRespVO tmplInscBsnRelRespVO = BeanUtils.toBean(tmplInscBsnRel, TmplInscBsnRelRespVO.class); - if (tmplInscBsnRelRespVO != null) { - tmplInscBsnRelService.getTmplInscBsnRelDetails(tmplInscBsnRelRespVO); - } - return success(tmplInscBsnRelRespVO); + return success(tmplInscBsnRelService.getTmplInscBsnRel(id)); } @GetMapping("/page") @@ -120,4 +115,19 @@ public class TmplInscBsnRelController implements BusinessControllerMarker { BeanUtils.toBean(list, TmplInscBsnRelRespVO.class)); } + + @GetMapping("/value-info") + @Operation(summary = "根据合Id和实例Id获取字段和条款") + @PreAuthorize("@ss.hasPermission('base:tmpl-insc-bsn-rel:query')") + public CommonResult> valueInfo(@RequestParam("cttId") @Valid @NotEmpty(message = "合同Id不能为空") String cttId, @RequestParam("inscId") @Valid @NotEmpty(message = "模版实例id不能为空") String inscId) { + return success(tmplInscBsnRelService.valueInfo(cttId, inscId)); + } + + @GetMapping("/bsn-info") + @Operation(summary = "根据合id和实例id获取中间表") + @PreAuthorize("@ss.hasPermission('base:tmpl-insc-bsn-rel:query')") + public CommonResult bseInfo(@RequestParam("cttId") @Valid @NotEmpty(message = "合同Id不能为空") String cttId, @RequestParam("inscId") @Valid @NotEmpty(message = "模版实例id不能为空") String inscId) { + return success(tmplInscBsnRelService.bseInfo(cttId, inscId)); + } + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java index 70a16ed7..e57b41f4 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/onlyoffice/service/OnlyOfficeCallbackServiceImpl.java @@ -5,6 +5,8 @@ import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.base.controller.admin.templtp.onlyoffice.pojo.Action; import com.zt.plat.module.base.controller.admin.templtp.onlyoffice.pojo.History; import com.zt.plat.module.base.controller.admin.templtp.onlyoffice.pojo.OnlyOfficeCallback; +import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplInscBsnRelDO; +import com.zt.plat.module.base.dal.mysql.tmpltp.TmplInscBsnRelMapper; import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService; import com.zt.plat.module.infra.api.file.FileApi; import com.zt.plat.module.infra.api.file.dto.FileCreateReqDTO; @@ -29,7 +31,7 @@ import static com.zt.plat.module.base.controller.admin.templtp.onlyoffice.util.U public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService { private final FileApi fileApi; private final TemplateInstanceService templateInstanceService; - + private final TmplInscBsnRelMapper tmplInscBsnRelMapper; @Override public void processCallback(OnlyOfficeCallback callback, String id,String fileName) { log.info("收到OnlyOffice文档回调: {}", callback.getKey()); @@ -354,7 +356,10 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService fileInfo.put("name", fileRespDTO.getName()); fileInfo.put("directory", fileRespDTO.getDirectory()); fileInfo.put("key", callback.getKey()); - templateInstanceService.updateTemplateInstanceFileUrlByInstanceId(id, JSONObject.toJSONString(fileInfo)); + TmplInscBsnRelDO createReqVO = new TmplInscBsnRelDO(); + createReqVO.setId(Long.valueOf(id)); + createReqVO.setCntt(JSONObject.toJSONString(fileInfo)); + tmplInscBsnRelMapper.updateById(createReqVO); } else { // 创建文件失败,处理错误 log.error("文件创建失败,错误信息:{}", result.getMsg()); diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/FieldAndClauseRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/FieldAndClauseRespVO.java index ab8984ab..26b07b45 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/FieldAndClauseRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/FieldAndClauseRespVO.java @@ -8,7 +8,7 @@ import java.util.List; @Schema(description = "管理后台 - 合同动态表单 响应 VO") @Data public class FieldAndClauseRespVO { - @Schema(description = "模板分类") + @Schema(description = "模板字段") List tmplFldRespVOS; @Schema(description = "条款") List tmplItmRespVOS; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplInscBsnRelRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplInscBsnRelRespVO.java index 9ea29fcf..abcc4a5b 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplInscBsnRelRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/templtp/vo/TmplInscBsnRelRespVO.java @@ -42,18 +42,18 @@ public class TmplInscBsnRelRespVO { private List deptIds; - @Schema(description = "实例字段;这个是实例字段绑定的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "") - private List templateInstanceDataRespVOS; +// @Schema(description = "实例字段;这个是实例字段绑定的字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "") +// private List templateInstanceDataRespVOS; - @Schema(description = "实例条款;这个是实例条款绑定的条款;", requiredMode = Schema.RequiredMode.REQUIRED, example = "") - private List instanceItemRespVOS; +// @Schema(description = "实例条款;这个是实例条款绑定的条款;", requiredMode = Schema.RequiredMode.REQUIRED, example = "") +// private List instanceItemRespVOS; @Schema(description = "使用部门编", requiredMode = Schema.RequiredMode.REQUIRED, example = "") private List DeptRespVOS; - @Schema(description = "模版实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试分类名称") - @ExcelProperty("模版实例名称") - private String inscName; +// @Schema(description = "模版实例名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试分类名称") +// @ExcelProperty("模版实例名称") +// private String inscName; @Schema(description = "业务实例字段", requiredMode = Schema.RequiredMode.REQUIRED, example = "") @ExcelProperty("业务实例字段") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java index 8e57b3c1..c31f05ed 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelService.java @@ -53,7 +53,7 @@ public interface TmplInscBsnRelService { * @param id 编号 * @return 模板实例与业务中间 */ - TmplInscBsnRelDO getTmplInscBsnRel(Long id); + TmplInscBsnRelRespVO getTmplInscBsnRel(Long id); /** * 获得模板实例与业务中间分页 @@ -70,9 +70,22 @@ public interface TmplInscBsnRelService { void getTmplInscBsnRelDetails(TmplInscBsnRelRespVO tmplInscBsnRelRespVO); /** - * 跟新cntt + * 更新cntt * * @param bsnId ,params */ void updateCntt(Long bsnId,String params); + /** + * 获取字段和条款 + * + * @param cttId ,inscId + */ + Map valueInfo(String cttId,String inscId); + + /** + * 获取中间表 + * + * @param cttId ,inscId + */ + TmplInscBsnRelRespVO bseInfo(String cttId,String inscId); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java index 35215704..bb043ec7 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscBsnRelServiceImpl.java @@ -23,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; @@ -47,32 +44,37 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { private TmplInscBsnRelMapper tmplInscBsnRelMapper; @Resource private TemplateInstanceService templateInstanceService; + @Resource private TmplInscDatBsnService tmplInscDatBsnService; @Resource private TmplInscItmBsnService tmplInscItmBsnService; @Override + @Transactional(rollbackFor = Exception.class) public TmplInscBsnRelRespVO createTmplInscBsnRel(TmplInscBsnRelSaveReqVO createReqVO) { - TemplateInstanceRespVO templateInstance = templateInstanceService.getTemplateInstance(createReqVO.getInscId()); - if (templateInstance == null) { - throw exception(TEMPLATE_INSTANCE_NOT_EXISTS); - } - String type = "cntt"; - if (templateInstance.getCntt().isEmpty() && templateInstance.getOrigCntt().isEmpty()) { - throw exception(TEMPLATE_INSTANCE_FILE_NOT_EXISTS); - } - if (templateInstance.getCntt().isEmpty()) { - type = "origCntt"; - } - //下载文件并且上传文件 - fileUpload(createReqVO, templateInstance, type); +// TemplateInstanceRespVO templateInstance = templateInstanceService.getTemplateInstance(createReqVO.getInscId()); +// if (templateInstance == null) { +// throw exception(TEMPLATE_INSTANCE_NOT_EXISTS); +// } +// String type = "cntt"; +// if (templateInstance.getCntt().isEmpty() && templateInstance.getOrigCntt().isEmpty()) { +// throw exception(TEMPLATE_INSTANCE_FILE_NOT_EXISTS); +// } +// if (templateInstance.getCntt().isEmpty()) { +// type = "origCntt"; +// } +// //下载文件并且上传文件 +// fileUpload(createReqVO, templateInstance, type); // 插入 TmplInscBsnRelDO tmplInscBsnRel = BeanUtils.toBean(createReqVO, TmplInscBsnRelDO.class); + // tmplInscBsnRel.setBsnId(Long.valueOf(createReqVO.getUuid())); tmplInscBsnRelMapper.insert(tmplInscBsnRel); // 返回 return BeanUtils.toBean(tmplInscBsnRel, TmplInscBsnRelRespVO.class); } + + @Override public void updateTmplInscBsnRel(TmplInscBsnRelSaveReqVO updateReqVO) { // 校验存在 @@ -83,7 +85,7 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void deleteTmplInscBsnRel(Long id) { // 校验存在 validateTmplInscBsnRelExists(id); @@ -92,11 +94,10 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void deleteTmplInscBsnRelListByIds(List ids) { // 校验存在 validateTmplInscBsnRelExists(ids); - // 删除 //删除业务实例字段值 deleteFldOrItmByIds(tmplInscBsnRelMapper.selectByIds(ids).stream().map(TmplInscBsnRelDO::getBsnId).map(String::valueOf).toList(), tmplInscDatBsnService); //删除业务实例字段值 @@ -118,8 +119,14 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { } @Override - public TmplInscBsnRelDO getTmplInscBsnRel(Long id) { - return tmplInscBsnRelMapper.selectById(id); + public TmplInscBsnRelRespVO getTmplInscBsnRel(Long id) { + TmplInscBsnRelDO tmplInscBsnRelDO = tmplInscBsnRelMapper.selectById(id); + TmplInscBsnRelRespVO tmplInscBsnRelRespVO = BeanUtils.toBean(tmplInscBsnRelDO, TmplInscBsnRelRespVO.class); + if (tmplInscBsnRelRespVO != null){ + getTmplInscBsnRelDetails(tmplInscBsnRelRespVO); + } + + return tmplInscBsnRelRespVO; } @Override @@ -130,8 +137,8 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { @Override public void getTmplInscBsnRelDetails(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { tmplInscBsnRelRespVO.setDeptIds(setDeptData(tmplInscBsnRelRespVO));//获取部门使用范围 - tmplInscBsnRelRespVO.setInstanceItemRespVOS(setInstanceItemRespVOS(tmplInscBsnRelRespVO));//获取条款; - tmplInscBsnRelRespVO.setTemplateInstanceDataRespVOS(setTemplateInstanceDataRespVOS(tmplInscBsnRelRespVO)); // 实例字段 +// tmplInscBsnRelRespVO.setInstanceItemRespVOS(setInstanceItemRespVOS(tmplInscBsnRelRespVO));//获取条款; +// tmplInscBsnRelRespVO.setTemplateInstanceDataRespVOS(setTemplateInstanceDataRespVOS(tmplInscBsnRelRespVO)); // 实例字段 //业务条款 tmplInscBsnRelRespVO.setTmplInscItmBsnRespVOS(setTmplInscItmBsnRespVOS(tmplInscBsnRelRespVO)); //业务字段 @@ -140,9 +147,9 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { tmplInscBsnRelRespVO.setDeptRespVOS(deptApi.getDeptList(tmplInscBsnRelRespVO.getDeptIds().stream().map(Long::valueOf).toList()).getData()); // 部门详情 } TemplateInstanceRespVO templateInstance = SpringUtil.getBean(TemplateInstanceService.class).getTemplateInstance(tmplInscBsnRelRespVO.getInscId()); - if (templateInstance != null) { - tmplInscBsnRelRespVO.setInscName(!templateInstance.getName().isEmpty() ? templateInstance.getName() : "分类未命名"); - } +// if (templateInstance != null) { +// tmplInscBsnRelRespVO.setInscName(!templateInstance.getName().isEmpty() ? templateInstance.getName() : "分类未命名"); +// } } @Override @@ -154,23 +161,24 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { throw exception(TEMPLATE_INSTANCE_FILE_NOT_EXISTS); } TmplInscBsnRelDO tmplInscBsnRelDO = tmplInscBsnRelDOS.get(0); - tmplInscBsnRelDO.setCntt( params); + tmplInscBsnRelDO.setCntt(params); tmplInscBsnRelMapper.updateById(tmplInscBsnRelDO); log.info("更新业务实例cntt字段值成功"); } + //业务条款 private List setTmplInscItmBsnRespVOS(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { List tmplInscItmBsnRespVOS = BeanUtils.toBean(SpringUtil.getBean(TmplInscItmBsnMapper.class).selectList(new LambdaQueryWrapper() .eq(TmplInscItmBsnDO::getBsnId, tmplInscBsnRelRespVO.getBsnId()) ), TmplInscItmBsnRespVO.class); - tmplInscItmBsnRespVOS.forEach(tmplInscItmBsnRespVO -> { - tmplInscBsnRelRespVO.getInstanceItemRespVOS().forEach(instanceItemRespVO -> { - if (tmplInscItmBsnRespVO.getInscItmId().equals(instanceItemRespVO.getId())) { - tmplInscItmBsnRespVO.setItmName(instanceItemRespVO.getItmName()); - } - }); - }); +// tmplInscItmBsnRespVOS.forEach(tmplInscItmBsnRespVO -> { +// tmplInscBsnRelRespVO.getInstanceItemRespVOS().forEach(instanceItemRespVO -> { +// if (tmplInscItmBsnRespVO.getInscItmId().equals(instanceItemRespVO.getId())) { +// tmplInscItmBsnRespVO.setItmName(instanceItemRespVO.getItmName()); +// } +// }); +// }); return tmplInscItmBsnRespVOS; } @@ -178,12 +186,12 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { private List setTmplInscDatBsnRespVOS(TmplInscBsnRelRespVO tmplInscBsnRelRespVO) { List tmplInscDatBsnRespVOS = BeanUtils.toBean(SpringUtil.getBean(TmplInscDatBsnMapper.class).selectList(new LambdaQueryWrapper()), TmplInscDatBsnRespVO.class); - tmplInscDatBsnRespVOS.forEach(tmplInscDatBsnRespVO -> tmplInscBsnRelRespVO.getTemplateInstanceDataRespVOS().forEach(templateInstanceDataRespVO -> { - if (templateInstanceDataRespVO.getId().toString().equals(tmplInscDatBsnRespVO.getInscFldId())) { +// tmplInscDatBsnRespVOS.forEach(tmplInscDatBsnRespVO -> tmplInscBsnRelRespVO.getTemplateInstanceDataRespVOS().forEach(templateInstanceDataRespVO -> { +// if (templateInstanceDataRespVO.getId().toString().equals(tmplInscDatBsnRespVO.getInscFldId())) { // tmplInscDatBsnRespVO.setFldVal(templateInstanceDataRespVO.getFldKy()); - tmplInscDatBsnRespVO.setFldKy(templateInstanceDataRespVO.getFldKy()); - } - })); +// tmplInscDatBsnRespVO.setFldKy(templateInstanceDataRespVO.getFldKy()); +// } +// })); return tmplInscDatBsnRespVOS; } @@ -288,5 +296,69 @@ public class TmplInscBsnRelServiceImpl implements TmplInscBsnRelService { } } + @Override + public Map valueInfo(String cttId, String inscId) { + // 1、通过实例和合同Id获取业务 + TmplInscBsnRelDO tmplInscBsnRelDO = tmplInscBsnRelMapper.selectOne( + TmplInscBsnRelDO::getBsnId, cttId, + TmplInscBsnRelDO::getInscId, inscId + ); + if (tmplInscBsnRelDO == null) { + throw exception(TMPL_INSC_BSN_REL_NOT_EXISTS); + } + + List valueInfoS = new ArrayList<>(); + // 2、获取绑定的字段 + List tmplInscDatBsnList = tmplInscDatBsnService + .getTmplInscDatBsnListByBsnId(String.valueOf(tmplInscBsnRelDO.getBsnId())); + + + Optional.ofNullable(tmplInscDatBsnList) + .ifPresent(list -> list.forEach(tmplInscDatBsnRespVO -> { + ValueInfo valueInfo = new ValueInfo( + tmplInscDatBsnRespVO.getId(), + tmplInscDatBsnRespVO.getFldKy(), + tmplInscDatBsnRespVO.getFldVal(), + "field", + tmplInscDatBsnRespVO.getInscFldId() + ); + valueInfoS.add(valueInfo); + })); + + // 3、获取条款 + List tmplInscItmBsnList = tmplInscItmBsnService.getTmplInscItmBsnList(String.valueOf(tmplInscBsnRelDO.getBsnId())); + Optional.ofNullable(tmplInscItmBsnList) + .ifPresent(list -> list.forEach(tmplInscItmBsnRespVO -> { + ValueInfo valueInfo = new ValueInfo( + tmplInscItmBsnRespVO.getId(), + tmplInscItmBsnRespVO.getItmName(), + tmplInscItmBsnRespVO.getVal(), + "item", + tmplInscItmBsnRespVO.getItmId() + ); + valueInfoS.add(valueInfo); + })); + + return Map.of("data", valueInfoS, "id", tmplInscBsnRelDO.getId()); + } + + @Override + public TmplInscBsnRelRespVO bseInfo(String cttId, String inscId) { + TmplInscBsnRelDO tmplInscBsnRelDO = tmplInscBsnRelMapper.selectOne( + TmplInscBsnRelDO::getBsnId, cttId, + TmplInscBsnRelDO::getInscId, inscId + ); + return BeanUtils.toBean(tmplInscBsnRelDO, TmplInscBsnRelRespVO.class); + } + + + private record ValueInfo( + String id, + String label, + String value, + String type, + String codeNumber + ) { + } } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java index 184b2f05..a85fd5a9 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnService.java @@ -69,5 +69,12 @@ public interface TmplInscDatBsnService { * */ void deleteTmplInscDatBsnListByBsnIds(@Valid @NotEmpty(message = "业务编号不能为空") List ids); + /** + * 通过业务id查询业务字段 + * + * @param id 业务id + * + */ + List getTmplInscDatBsnListByBsnId(@Valid @NotEmpty(message = "业务编号不能为空") String id); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java index 4704d96b..cabbfdcc 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscDatBsnServiceImpl.java @@ -24,6 +24,7 @@ import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.e import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; +import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_INSC_DAT_BSN_EXISTS; import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_INSC_DAT_BSN_NOT_EXISTS; /** @@ -40,12 +41,20 @@ public class TmplInscDatBsnServiceImpl implements TmplInscDatBsnService { @Override public TmplInscDatBsnRespVO createTmplInscDatBsn(TmplInscDatBsnSaveReqVO createReqVO) { + //判断存在 + validateTmplInscDatBsnExistsByKey(createReqVO); // 插入 TmplInscDatBsnDO tmplInscDatBsn = BeanUtils.toBean(createReqVO, TmplInscDatBsnDO.class); tmplInscDatBsnMapper.insert(tmplInscDatBsn); // 返回 return BeanUtils.toBean(tmplInscDatBsn, TmplInscDatBsnRespVO.class); } + private void validateTmplInscDatBsnExistsByKey(TmplInscDatBsnSaveReqVO createReqVO) { + List tmplInscDatBsnDOS = tmplInscDatBsnMapper.selectList(TmplInscDatBsnDO::getInscFldId, createReqVO.getInscFldId()); + if (!tmplInscDatBsnDOS.isEmpty()) { + throw exception(TMPL_INSC_DAT_BSN_EXISTS); + } + } @Override public void updateTmplInscDatBsn(TmplInscDatBsnSaveReqVO updateReqVO) { @@ -101,4 +110,10 @@ public class TmplInscDatBsnServiceImpl implements TmplInscDatBsnService { tmplInscDatBsnMapper.update(new LambdaUpdateWrapper().in(TmplInscDatBsnDO::getBsnId, ids).set(TmplInscDatBsnDO::getDeleted, 1)); } + @Override + public List getTmplInscDatBsnListByBsnId(String id) { + List tmplInscDatBsnDOS = tmplInscDatBsnMapper.selectList(TmplInscDatBsnDO::getBsnId, id); + return BeanUtils.toBean(tmplInscDatBsnDOS, TmplInscDatBsnRespVO.class); + } + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnService.java index 4e12ee6d..e4de75a7 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnService.java @@ -67,5 +67,12 @@ public interface TmplInscItmBsnService { * @param ids 编号 */ void deleteTmplInscDatBsnListByBsnIds(@Valid @NotEmpty(message = "业务编号不能为空") List ids); + /** + * 获取条款值列表 + * + * @param bsnId 业务编号 + * @return TmplInscItmBsnRespVO + */ + List getTmplInscItmBsnList(@Valid @NotEmpty(message = "创建信息不能为空")String bsnId); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnServiceImpl.java index 84a81e59..dce85146 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplInscItmBsnServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; + import com.zt.plat.module.base.controller.admin.templtp.vo.*; import com.zt.plat.framework.common.pojo.PageResult; @@ -19,11 +20,11 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.util.object.BeanUtils; - import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; +import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_INSC_ITM_BSN_EXISTS; import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_INSC_ITM_BSN_NOT_EXISTS; /** @@ -40,6 +41,8 @@ public class TmplInscItmBsnServiceImpl implements TmplInscItmBsnService { @Override public TmplInscItmBsnRespVO createTmplInscItmBsn(TmplInscItmBsnSaveReqVO createReqVO) { + //校验存在 + validateTmplInscItmBsnExistsByKey(createReqVO); // 插入 TmplInscItmBsnDO tmplInscItmBsn = BeanUtils.toBean(createReqVO, TmplInscItmBsnDO.class); tmplInscItmBsnMapper.insert(tmplInscItmBsn); @@ -47,6 +50,13 @@ public class TmplInscItmBsnServiceImpl implements TmplInscItmBsnService { return BeanUtils.toBean(tmplInscItmBsn, TmplInscItmBsnRespVO.class); } + void validateTmplInscItmBsnExistsByKey(TmplInscItmBsnSaveReqVO createReqVO) { + List tmplInscItmBsnDOS = tmplInscItmBsnMapper.selectList(TmplInscItmBsnDO::getBsnId, createReqVO.getBsnId(), TmplInscItmBsnDO::getInscItmId, createReqVO.getBsnId()); + if (!tmplInscItmBsnDOS.isEmpty()){ + throw exception(TMPL_INSC_ITM_BSN_EXISTS); + } + } + @Override public void updateTmplInscItmBsn(TmplInscItmBsnSaveReqVO updateReqVO) { // 校验存在 @@ -65,12 +75,12 @@ public class TmplInscItmBsnServiceImpl implements TmplInscItmBsnService { } @Override - public void deleteTmplInscItmBsnListByIds(List ids) { + public void deleteTmplInscItmBsnListByIds(List ids) { // 校验存在 validateTmplInscItmBsnExists(ids); // 删除 tmplInscItmBsnMapper.deleteByIds(ids); - } + } private void validateTmplInscItmBsnExists(List ids) { List list = tmplInscItmBsnMapper.selectByIds(ids); @@ -101,4 +111,10 @@ public class TmplInscItmBsnServiceImpl implements TmplInscItmBsnService { tmplInscItmBsnMapper.update(new LambdaUpdateWrapper().in(TmplInscItmBsnDO::getBsnId, ids).set(TmplInscItmBsnDO::getDeleted, 1)); } + @Override + public List getTmplInscItmBsnList(String bsnId) { + List tmplInscItmBsnDOS = tmplInscItmBsnMapper.selectList(TmplInscItmBsnDO::getBsnId, bsnId); + return BeanUtils.toBean(tmplInscItmBsnDOS, TmplInscItmBsnRespVO.class); + } + } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java index 4def12c7..94260173 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/contract/ContractRespDTO.java @@ -236,6 +236,12 @@ public class ContractRespDTO { @Schema(description = "代理方名称") private String agentName; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + + @Schema(description = "模板中间表ID") + private Long businessId; + // 物料信息 private List detail; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/OrderDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/OrderDTO.java index 3925ffb3..c5077382 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/OrderDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/OrderDTO.java @@ -283,6 +283,11 @@ public class OrderDTO { */ @TableField("PYER_NUM") private String payerNum; + /** + * 货权准转移类型 + */ + private String meteringType; + /** * 订单明细 diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java index a67db32c..99558e93 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/dto/order/PurchaseOrderWithDetailsDTO.java @@ -198,6 +198,11 @@ public class PurchaseOrderWithDetailsDTO { * 税码 */ private String taxNum; + + /** + * 货权准转移类型 + */ + private String meteringType; /** * 采购订单明细 */ diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java index 1c1bbc1e..23fda3eb 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractRespVO.java @@ -1,8 +1,8 @@ package com.zt.plat.module.contractorder.api.vo.contract; -import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO; -import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscDatBsnRespVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscItmBsnRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -242,14 +242,20 @@ public class ContractRespVO { @Schema(description = "代理方名称") private String agentName; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + + @Schema(description = "模板中间表ID") + private Long businessId; + // 物料信息 private List detail; - // 合同动态表单 - private List dynamicsFields; + // 合同动态字段 + private List dynamicsFields; // 合同动态条款 - private List dynamicsItems; + private List dynamicsItems; // 价款结算条款 private List formulas; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java index 6b0bd4ca..484e95ad 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/ContractSaveReqVO.java @@ -1,7 +1,8 @@ package com.zt.plat.module.contractorder.api.vo.contract; import cn.hutool.json.JSONArray; -import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataSaveReqVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscDatBsnSaveReqVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscItmBsnSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; @@ -211,11 +212,20 @@ public class ContractSaveReqVO { @Schema(description = "代理方名称") private String agentName; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + + @Schema(description = "模板中间表ID") + private Long businessId; + // 物料信息 private List detail; - // 合同动态表单 - private List dynamicsFields; + // 合同动态字段 + private List dynamicsFields; + + // 合同动态条款 + private List dynamicsItems; // 价款结算条款 private List formulas; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java index 2ef612fa..d588e806 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/RelationReqVo.java @@ -10,9 +10,9 @@ public class RelationReqVo { @Schema(description = "上游主键", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "上游主键不能为空") - private Long upId; + private String upId; @Schema(description = "下游主键", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "下游主键不能为空") - private Long downId; + private String downId; } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java index 238351cc..27445d65 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntContract.java @@ -39,10 +39,10 @@ public class IntContract { private String contractType; // 合同类型 (货运;货代;仓储;保险) @Schema(description = "是否非标准合同文本") private String textType; // 是否非标准合同文本 - @Schema(description = "合同有效期起 (格式: yyyyMMdd)") - private String contractStartDate; // 合同有效期起 (格式: yyyyMMdd) - @Schema(description = "合同有效期止 (格式: yyyyMMdd)") - private String contractEndDate; // 合同有效期止 (格式: yyyyMMdd) + @Schema(description = "合同有效期起") + private String contractStartDate; // 合同有效期起 + @Schema(description = "合同有效期止") + private String contractEndDate; // 合同有效期止 @Schema(description = "是否固定单价 (0-浮动, 1-固定)") private String priceType; // 是否固定单价 (0-浮动, 1-固定) @Schema(description = "合同币种") @@ -97,8 +97,8 @@ public class IntContract { private String approvePassDate; // 拟签通过日期 @Schema(description = "签约地 (40-签约必填)") private String signSite; // 签约地 (40-签约必填) - @Schema(description = "签约日期 (40-签约必填, 格式: yyyyMMdd)") - private String signDate; // 签约日期 (40-签约必填, 格式: yyyyMMdd) + @Schema(description = "签约日期 (40-签约必填)") + private String signDate; // 签约日期 (40-签约必填) @Schema(description = "对方签约人 (40-签约必填)") private String signFirstPerson; // 对方签约人 (40-签约必填) @Schema(description = "我方签约人工号 (40-签约必填)") 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 f718befc..3da24f33 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 @@ -36,6 +36,7 @@ import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -44,9 +45,7 @@ import org.springframework.web.bind.annotation.RestController; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; +import java.time.*; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -178,7 +177,7 @@ public class ContractApiImpl implements ContractApi { SystemRelativityDO systemRelativityDO = systemRelativityMapper.selectOne("UP_ID", externalId); if ("I".equals(operateFlag)) { if (systemRelativityDO != null && systemRelativityDO.getDownId() != null) { // 修改合同 - contractId = systemRelativityDO.getDownId(); + contractId = Long.parseLong(systemRelativityDO.getDownId()); contractMainDO.setId(contractId); contractMainMapper.updateById(contractMainDO); } else { // 新增合同 @@ -187,15 +186,15 @@ public class ContractApiImpl implements ContractApi { // 生成关联数据 SystemRelativityDO saveRelation = new SystemRelativityDO(); - saveRelation.setUpId(Long.parseLong(externalId)); - saveRelation.setDownId(contractId); + saveRelation.setUpId(externalId); + saveRelation.setDownId(contractId.toString()); saveRelation.setWay(DictEnum.BSE_SYS_REL_WY_EXTERNAL.getCode()); 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(); + contractId = Long.parseLong(systemRelativityDO.getDownId()); contractMainMapper.deleteById(contractId); // 删除动态条款信息 contractOtherFormMapper.delete("CTRT_MAIN_ID", contractId.toString()); @@ -378,17 +377,17 @@ public class ContractApiImpl implements ContractApi { // 返回数据 IntPushContractRespVO body = new IntPushContractRespVO(); body.set__requestId_(pushReqVO.get__requestId_()); - body.set__interfaceType__(pushReqVO.get__interfaceType__()); + body.set__interfaceType__("R_MY_JG_10"); body.setBusiBillCode(pushReqVO.getBusiBillCode()); body.setCode(code); - body.setMessage(String.format("推送合同[%s]%s", pushReqVO.getData().getContractCode(), code >= 0 ? "成功" : "失败:" + msg)); + body.setMessage(String.format("推送合同[%s]%s", pushReqVO.getBusiBillCode(), code >= 0 ? "成功" : "失败:" + msg)); body.setDatetime(DateTimeFormatter.ofPattern("yyyyMMddHHmmss").format(LocalDateTime.now())); body.setSystem("JYGK"); body.setOperateFlag(pushReqVO.getOperateFlag()); // 回调参数 JSONObject req = new JSONObject(); - req.set("messageKey", pushReqVO.getBusiBillCode()); + req.set("messageKey", "R_JG_MY_00"); req.set("messageBody", body); try { log.info("国贸系统推送合同回调参数:{}",req); @@ -565,13 +564,21 @@ public class ContractApiImpl implements ContractApi { // 是否虚拟合同 默认值:否(0) contractMainDO.setContractVirtual(DictEnum.ERP_CTRT_YN_NO.getCode()); // 代理方 默认值:NULL - // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); - contractMainDO.setSignDate(LocalDateTime.parse(reqVO.getSignDate()+"000000", formatter)); - // 开始日期 -> 合同有效期起 (格式: yyyyMMdd) - contractMainDO.setStartDate(LocalDateTime.parse(reqVO.getContractStartDate()+"000000", formatter)); - // 结束日期 -> 合同有效期止 (格式: yyyyMMdd) - contractMainDO.setEndDate(LocalDateTime.parse(reqVO.getContractEndDate()+"000000", formatter)); + // 签署日期 -> 签约日期 (40-签约必填) + if (StringUtils.isNotEmpty(reqVO.getSignDate())) { + contractMainDO.setSignDate(Instant.ofEpochMilli(Long.parseLong(reqVO.getSignDate())) + .atZone(ZoneId.systemDefault()).toLocalDateTime()); + } + // 开始日期 -> 合同有效期起 + if (StringUtils.isNotEmpty(reqVO.getContractStartDate())) { + contractMainDO.setStartDate(Instant.ofEpochMilli(Long.parseLong(reqVO.getContractStartDate())) + .atZone(ZoneId.systemDefault()).toLocalDateTime()); + } + // 结束日期 -> 合同有效期止 + if (StringUtils.isNotEmpty(reqVO.getContractEndDate())) { + contractMainDO.setEndDate(Instant.ofEpochMilli(Long.parseLong(reqVO.getContractEndDate())) + .atZone(ZoneId.systemDefault()).toLocalDateTime()); + } // 币种 -> 合同币种 contractMainDO.setCurrency(reqVO.getCurrencyCode()); // 原币金额 -> 预估含税总金额 diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java index 74e6b13f..2305802c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/LinkOrderReqVO.java @@ -7,9 +7,9 @@ import lombok.Data; @Schema(description = "关联订单请求参数 VO") public class LinkOrderReqVO { @Schema(description = "上游订单号") - private Long upOrderId; + private String upOrderId; @Schema(description = "下游订单号") - private Long downOrderId; + private String downOrderId; @Schema(description = "关联订单类型") private String linkOrderType; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderPageReqVO.java index 264bec30..722bd030 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderPageReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo; +import com.alibaba.excel.annotation.ExcelProperty; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -133,5 +134,8 @@ public class PurchaseOrderPageReqVO extends PageParam { @Schema(description = "订单分类") private String splyBsnTp; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderRespVO.java index e929725a..0afdcb6d 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderRespVO.java @@ -196,4 +196,8 @@ public class PurchaseOrderRespVO { @ExcelProperty(" 审批意见") private String reviewOpinion; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + @ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java index 7b1d2c6b..9e535b7c 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/purchaseorder/vo/PurchaseOrderSaveReqVO.java @@ -178,4 +178,21 @@ public class PurchaseOrderSaveReqVO { @Schema(description = "订单分类(字典:SPLY_BSN_TP)", example = "2") @ExcelProperty("订单分类") private String splyBsnTp; + + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + @ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + + @Schema(description = "产品组名") + @ExcelProperty("产品组名") + private String pdtGrpName; + @Schema(description = "产品组编码") + @ExcelProperty("产品组编码") + private String pdtGrpCdg; + @Schema(description = "付款方名称") + @ExcelProperty("付款方名称") + private String payerName; + @Schema(description = "付款方编码") + @ExcelProperty("付款方编码") + private String payerNum; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java index fa338741..cc19053e 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderPageReqVO.java @@ -156,4 +156,7 @@ public class SalesOrderPageReqVO extends PageParam { @ExcelProperty("产品组编码") private String pdtGrpCdg; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java index 0ea0bc9b..0a021010 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderRespVO.java @@ -220,5 +220,8 @@ public class SalesOrderRespVO { @Schema(description = "付款方编码") @ExcelProperty("付款方编码") private String payerNum; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + @ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java index 1083eb1d..c81d92f6 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/controller/admin/salesorder/vo/SalesOrderSaveReqVO.java @@ -198,4 +198,8 @@ public class SalesOrderSaveReqVO { @Schema(description = "付款方编码") @ExcelProperty("付款方编码") private String payerNum; + @Schema(description = "货权转移类型(字典:ASY_MTNG_TP)") + @ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)") + private String meteringType; + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java index f5d9681e..4a34ee24 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/ContractMainDO.java @@ -3,6 +3,7 @@ package com.zt.plat.module.contractorder.dal.dataobject.contract; import com.baomidou.mybatisplus.annotation.*; import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; import lombok.*; + import java.math.BigDecimal; import java.time.LocalDateTime; @@ -205,12 +206,12 @@ public class ContractMainDO extends BusinessBaseDO { @TableField("RMK") private String remark; /** - * 施工类型编号;与ERP(HTLXBH)对应,拓展信息 + * 施工类型编号(字典:ERP_CTRT_HTLXBH);与ERP(HTLXBH)对应,拓展信息 */ @TableField("CON_TP_NUM") private String constructionTypeNumber; /** - * 施工类型名称;与ERP(HTLXMC)对应,拓展信息 + * 施工类型名称(字典:ERP_CTRT_HTLXBH);与ERP(HTLXMC)对应,拓展信息 */ @TableField("CON_TP_NAME") private String constructionTypeName; @@ -399,4 +400,14 @@ public class ContractMainDO extends BusinessBaseDO { */ @TableField("AGT_NAME") private String agentName; + /** + * 货权转移类型(字典:ASY_MTNG_TP) + */ + @TableField("MTNG_TP") + private String meteringType; + /** + * 模板中间表ID + */ + @TableField("BSN_ID") + private Long businessId; } \ No newline at end of file diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java index 08913671..a11238db 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/contract/SystemRelativityDO.java @@ -31,12 +31,12 @@ public class SystemRelativityDO extends BusinessBaseDO { * 上游主键 */ @TableField("UP_ID") - private Long upId; + private String upId; /** * 下游主键 */ @TableField("DOWN_ID") - private Long downId; + private String downId; /** * 方式系统;内关联/系统外关联 */ diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java index 239e6eb3..b17c2a13 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/purchaseorder/PurchaseOrderDO.java @@ -283,4 +283,10 @@ public class PurchaseOrderDO extends BusinessBaseDO { */ @TableField("TAX_RTE") private BigDecimal taxRte; + + /** + * 货权准转移类型 + */ + @TableField("MTRG_TP") + private String meteringType; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java index b57601f7..c375f286 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/dataobject/salesorder/SalesOrderDO.java @@ -303,9 +303,8 @@ public class SalesOrderDO extends BusinessBaseDO { */ @TableField("PYER_NUM") private String payerNum; -// /** -// * 税码 -// */ -// @TableField("TAX_NUM") -// private String taxNum; + /** + * 货权准转移类型 + */ + private String meteringType; } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java index 08363dba..a6fa05e1 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java @@ -61,6 +61,7 @@ public interface PurchaseOrderMapper extends BaseMapperX { .eqIfPresent(PurchaseOrderDO::getSplyBsnTp, reqVO.getSplyBsnTp() != null ? reqVO.getSplyBsnTp() : "PUR") .eqIfPresent(PurchaseOrderDO::getCause, reqVO.getCause()) .eqIfPresent(PurchaseOrderDO::getStatus, reqVO.getStatus()) + .eqIfPresent(PurchaseOrderDO::getMeteringType, reqVO.getMeteringType()) .likeIfPresent(PurchaseOrderDO::getPurchaseGroupName, reqVO.getPurchaseGroupName()) .orderByDesc(PurchaseOrderDO::getId)); } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java index 92976d9e..d54853fe 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/salesorder/SalesOrderMapper.java @@ -27,6 +27,7 @@ public interface SalesOrderMapper extends BaseMapperX { .eqIfPresent(SalesOrderDO::getSupplierNumber, reqVO.getSupplierNumber()) .likeIfPresent(SalesOrderDO::getSupplierName, reqVO.getSupplierName()) .eqIfPresent(SalesOrderDO::getType, reqVO.getType()) + .eqIfPresent(SalesOrderDO::getMeteringType, reqVO.getMeteringType()) .betweenIfPresent(SalesOrderDO::getVoucherDate, reqVO.getVoucherDate()) .eqIfPresent(SalesOrderDO::getPurchaseOrganizationCustomsDeclaration, reqVO.getPurchaseOrganizationCustomsDeclaration()) .likeIfPresent(SalesOrderDO::getReceiveFactoryName, reqVO.getReceiveFactoryName()) 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 3f6f68da..3a50ccef 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 @@ -12,15 +12,18 @@ import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.framework.tenant.core.context.CompanyContextHolder; -import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceDataRespVO; -import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO; -import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO; -import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelRespVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscBsnRelSaveReqVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscDatBsnSaveReqVO; +import com.zt.plat.module.base.controller.admin.templtp.vo.TmplInscItmBsnSaveReqVO; import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplInscBsnRelDO; import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceItemMapper; import com.zt.plat.module.base.dal.mysql.tmpltp.TmplInscBsnRelMapper; import com.zt.plat.module.base.service.tmpltp.TemplateInstanceDataService; +import com.zt.plat.module.base.service.tmpltp.TmplInscBsnRelService; +import com.zt.plat.module.base.service.tmpltp.TmplInscDatBsnService; +import com.zt.plat.module.base.service.tmpltp.TmplInscItmBsnService; 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.*; @@ -120,6 +123,12 @@ public class ContractServiceImpl implements ContractService { private FileApi fileApi; @Resource private TmplInscBsnRelMapper tmplInscBsnRelMapper; + @Resource + private TmplInscBsnRelService tmplInscBsnRelService; + @Resource + private TmplInscDatBsnService tmplInscDatBsnService; + @Resource + private TmplInscItmBsnService tmplInscItmBsnService; @Override public PageResult getContractPage(ContractPageReqVO pageReqVO) { @@ -276,22 +285,31 @@ public class ContractServiceImpl implements ContractService { }); } - // 合同动态表单 - List templateInstanceDataDOS = new ArrayList<>(); - if (reqVO.getDynamicsFields() != null && !reqVO.getDynamicsFields().isEmpty()) { - reqVO.getDynamicsFields().forEach(dynamicsField -> { - TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO(); - BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO); - templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString()); - templateInstanceDataDOS.add(templateInstanceDataDO); + // 合同动态表单及条款 + // 更新关联主表 + TmplInscBsnRelSaveReqVO tmplInscBsnRelSaveReqVO = new TmplInscBsnRelSaveReqVO(); + tmplInscBsnRelSaveReqVO.setId(reqVO.getBusinessId()); + tmplInscBsnRelSaveReqVO.setBsnId(contractId); + tmplInscBsnRelService.updateTmplInscBsnRel(tmplInscBsnRelSaveReqVO); + // 保存动态字段 + List dynamicsFields = reqVO.getDynamicsFields(); + if (dynamicsFields != null && !dynamicsFields.isEmpty()) { + dynamicsFields.forEach(dynamicsField -> { + dynamicsField.setBsnId(reqVO.getBusinessId().toString()); + tmplInscDatBsnService.createTmplInscDatBsn(dynamicsField); }); } - // 更新合同动态表单值 - if (!templateInstanceDataDOS.isEmpty()) { - templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS); + // 保存动态条款 + List dynamicsItems = reqVO.getDynamicsItems(); + if (dynamicsItems != null && !dynamicsItems.isEmpty()) { + dynamicsItems.forEach(dynamicsItem -> { + dynamicsItem.setBsnId(reqVO.getBusinessId().toString()); + tmplInscItmBsnService.createTmplInscItmBsn(dynamicsItem); + }); } - return contractMainDO.getId(); + + return contractId; } @Override @@ -372,19 +390,12 @@ public class ContractServiceImpl implements ContractService { respVO.setNots(BeanUtils.toBean(notDOS, NotRespVO.class)); } - // 查询并设置合同动态表单 - List templateInstanceDataDOS = templateInstanceDataMapper - .selectList(TableFieldConstants.BSE_TMPL_INSC_DAT_INSC_ID, contractMainDO.getInstanceId()); - if (templateInstanceDataDOS != null && !templateInstanceDataDOS.isEmpty()) { - respVO.setDynamicsFields(BeanUtils.toBean(templateInstanceDataDOS, TemplateInstanceDataRespVO.class)); - } - - // 查询并设置合同动态条款 - List templateInstanceItemDOS = templateInstanceItemMapper - .selectList(TableFieldConstants.BSE_TMPL_INSC_ITM_INSC_ID, contractMainDO.getInstanceId()); - if (templateInstanceItemDOS != null && !templateInstanceItemDOS.isEmpty()) { - respVO.setDynamicsItems(BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class)); - } + // 查询合同动态字段及条款 + TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId()); + // 设置合同动态字段 + respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS()); + // 设置合同动态条款 + respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS()); return respVO; } @@ -466,19 +477,12 @@ public class ContractServiceImpl implements ContractService { respVO.setNots(BeanUtils.toBean(notDOS, NotRespVO.class)); } - // 查询并设置合同动态表单 - List templateInstanceDataDOS = templateInstanceDataMapper - .selectList(TableFieldConstants.BSE_TMPL_INSC_DAT_INSC_ID, contractMainDO.getInstanceId()); - if (templateInstanceDataDOS != null && !templateInstanceDataDOS.isEmpty()) { - respVO.setDynamicsFields(BeanUtils.toBean(templateInstanceDataDOS, TemplateInstanceDataRespVO.class)); - } - - // 查询并设置合同动态条款 - List templateInstanceItemDOS = templateInstanceItemMapper - .selectList(TableFieldConstants.BSE_TMPL_INSC_ITM_INSC_ID, contractMainDO.getInstanceId()); - if (templateInstanceItemDOS != null && !templateInstanceItemDOS.isEmpty()) { - respVO.setDynamicsItems(BeanUtils.toBean(templateInstanceItemDOS, TemplateInstanceItemRespVO.class)); - } + // 查询合同动态字段及条款 + TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId()); + // 设置合同动态字段 + respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS()); + // 设置合同动态条款 + respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS()); return respVO; } @@ -501,7 +505,7 @@ public class ContractServiceImpl implements ContractService { // 已关联的上游合同id集合 List systemRelativityDOS = systemRelativityMapper.selectList(); - LinkedHashSet relationIds = new LinkedHashSet<>(); + LinkedHashSet relationIds = new LinkedHashSet<>(); if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { systemRelativityDOS.forEach(systemRelativityDO -> { relationIds.add(systemRelativityDO.getUpId()); @@ -569,7 +573,7 @@ public class ContractServiceImpl implements ContractService { // 已关联的上游合同id集合 List systemRelativityDOS = systemRelativityMapper.selectList(); - LinkedHashSet relationIds = new LinkedHashSet<>(); + LinkedHashSet relationIds = new LinkedHashSet<>(); if (systemRelativityDOS!= null && !systemRelativityDOS.isEmpty()) { systemRelativityDOS.forEach(systemRelativityDO -> { relationIds.add(systemRelativityDO.getDownId()); @@ -634,7 +638,7 @@ public class ContractServiceImpl implements ContractService { } // 上游合同ID - Long upId = systemRelativityDO.getUpId(); + String upId = systemRelativityDO.getUpId(); // 获取上游合同信息 ContractMainDO contractMainDO = contractMainMapper.selectById(upId); @@ -660,7 +664,7 @@ public class ContractServiceImpl implements ContractService { } // 下游合同ID - Long upId = systemRelativityDO.getUpId(); + String upId = systemRelativityDO.getUpId(); // 获取下游合同信息 ContractMainDO contractMainDO = contractMainMapper.selectById(upId); @@ -900,19 +904,17 @@ public class ContractServiceImpl implements ContractService { }); } - // 合同动态表单 - List templateInstanceDataDOS = new ArrayList<>(); + // 更新合同动态字段 if (reqVO.getDynamicsFields() != null && !reqVO.getDynamicsFields().isEmpty()) { - reqVO.getDynamicsFields().forEach(dynamicsField -> { - TemplateInstanceDataDO templateInstanceDataDO = new TemplateInstanceDataDO(); - BeanUtils.copyProperties(dynamicsField, templateInstanceDataDO); - templateInstanceDataDO.setInscId(reqVO.getInstanceId().toString()); - templateInstanceDataDOS.add(templateInstanceDataDO); + reqVO.getDynamicsFields().forEach(field -> { + tmplInscDatBsnService.updateTmplInscDatBsn(field); }); } - // 更新合同动态表单值 - if (!templateInstanceDataDOS.isEmpty()) { - templateInstanceDataService.setTemplateInstanceData(templateInstanceDataDOS); + // 更新合同动态表单 + if (reqVO.getDynamicsItems() != null && !reqVO.getDynamicsItems().isEmpty()) { + reqVO.getDynamicsItems().forEach(item -> { + tmplInscItmBsnService.updateTmplInscItmBsn(item); + }); } // 合同状态更新 @@ -1980,7 +1982,7 @@ public class ContractServiceImpl implements ContractService { // 单据名称(拼音) String documentName = "XTHT"; // 公司编码 - String companyId = CompanyContextHolder.getCompanyId().toString(); + String companyId = CompanyContextHolder.getCompanyId()!= null ? CompanyContextHolder.getCompanyId().toString() : ""; // 年月日 String yearMounth8Bit = LocalDate.now() .format(DateTimeFormatter.ofPattern(DateConstants.DATE_FORMAT_YEAR_MONTH_DAY_8_BIT)); 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 bb27ac35..a078f9a5 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 @@ -6,12 +6,13 @@ 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.CommonResult; +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.bpm.enums.task.BpmTaskStatusEnum; 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.dal.dataobject.contract.SystemRelativityDO; @@ -30,22 +31,17 @@ 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.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.Collectors; - -import com.zt.plat.framework.common.pojo.PageResult; -import com.zt.plat.framework.common.util.object.BeanUtils; - import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; @@ -491,8 +487,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { SystemRelativityDO saveDO = new SystemRelativityDO(); saveDO.setStatus(DictEnum.BSE_SYS_REL_TP_ORDER.getCode()); - saveDO.setUpId(LinkOrderReqVO.getUpOrderId()); - saveDO.setDownId(LinkOrderReqVO.getDownOrderId()); + saveDO.setUpId(LinkOrderReqVO.getUpOrderId().toString()); + saveDO.setDownId(LinkOrderReqVO.getDownOrderId().toString()); //判断订单有没有关联过 if (systemRelativityMapper.selectCount(new LambdaQueryWrapper().eq(SystemRelativityDO::getUpId, saveDO.getUpId()).eq(SystemRelativityDO::getDownId, saveDO.getDownId())) > 0) { throw exception(CONTRACT_ORDER_EXISTS); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml index 09f0787c..63636abd 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/resources/mapper/purchaseorder/PurchaseOrderMapper.xml @@ -19,6 +19,7 @@ po.SPLR_NUM, po.SPLR_NAME, po.TP, + po.MTRG_TP, po.VCHR_DT, po.PRCH_ORGZ_CD, po.RCV_FACT_NAME, @@ -143,6 +144,7 @@ po.PPR_CTRT_NUM, po.AGR_NUM, po.RMK, + po.MTRG_TP, po.UNT, po.AGT_NUM, po.AGT_NAME, @@ -264,6 +266,7 @@ +