Merge branch 'dev' into 'test'

修改bug

See merge request jygk/dsc-base!13
This commit is contained in:
付鹏飞
2025-10-29 02:43:17 +00:00
20 changed files with 125 additions and 105 deletions

View File

@@ -32,4 +32,7 @@ public class TmpItmPageReqVO extends PageParam {
@Schema(description = "创建时间") @Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDate[] createTime; private LocalDate[] createTime;
@Schema(description = "状态")
private String sts;
} }

View File

@@ -28,6 +28,10 @@ public class TmplFldPageReqVO extends PageParam {
@Schema(description = "备注") @Schema(description = "备注")
private String rmk; private String rmk;
@Schema(description = "状态")
private String sts;
@Schema(description = "是否必填") @Schema(description = "是否必填")
private String isMust; private String isMust;

View File

@@ -15,6 +15,7 @@ public interface TmplItmMapper extends BaseMapperX<TmplItmDO> {
.likeIfPresent(TmplItmDO::getItmName, reqVO.getItmName()) .likeIfPresent(TmplItmDO::getItmName, reqVO.getItmName())
.likeIfPresent(TmplItmDO::getItmNum, reqVO.getItmNum()) .likeIfPresent(TmplItmDO::getItmNum, reqVO.getItmNum())
.eqIfPresent(TmplItmDO::getRmk, reqVO.getRmk()) .eqIfPresent(TmplItmDO::getRmk, reqVO.getRmk())
.eqIfPresent(TmplItmDO::getSts, reqVO.getSts())
.betweenIfPresent(TmplItmDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(TmplItmDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(TmplItmDO::getId)); .orderByDesc(TmplItmDO::getId));
} }

View File

@@ -17,6 +17,7 @@ public interface TmplTpFldMapper extends BaseMapperX<TmplTpFldDO> {
.eqIfPresent(TmplTpFldDO::getFldDoc, reqVO.getFldDoc()) .eqIfPresent(TmplTpFldDO::getFldDoc, reqVO.getFldDoc())
.eqIfPresent(TmplTpFldDO::getIsMust, reqVO.getIsMust()) .eqIfPresent(TmplTpFldDO::getIsMust, reqVO.getIsMust())
.eqIfPresent(TmplTpFldDO::getDatTp, reqVO.getDatTp()) .eqIfPresent(TmplTpFldDO::getDatTp, reqVO.getDatTp())
.eqIfPresent(TmplTpFldDO::getSts, reqVO.getSts())
.betweenIfPresent(TmplTpFldDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(TmplTpFldDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(TmplTpFldDO::getId)); .orderByDesc(TmplTpFldDO::getId));
} }

View File

@@ -29,6 +29,7 @@ public interface TmplTpMapper extends BaseMapperX<TmplTpDO> {
.eqIfPresent(TmplTpDO::getPrnId, reqVO.getPrnId()) .eqIfPresent(TmplTpDO::getPrnId, reqVO.getPrnId())
.eqIfPresent(TmplTpDO::getSrt, reqVO.getSrt()) .eqIfPresent(TmplTpDO::getSrt, reqVO.getSrt())
.eqIfPresent(TmplTpDO::getSts, reqVO.getSts()) .eqIfPresent(TmplTpDO::getSts, reqVO.getSts())
.eqIfPresent(TmplTpDO::getSts, reqVO.getSts())
.betweenIfPresent(TmplTpDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(TmplTpDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(TmplTpDO::getId)); .orderByDesc(TmplTpDO::getId));
} }

View File

@@ -252,8 +252,8 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
// 1. 根据条件查询匹配的节点 // 1. 根据条件查询匹配的节点
List<TmplTpDO> matchedNodes = baseMapper.selectList(new LambdaQueryWrapper<TmplTpDO>() List<TmplTpDO> matchedNodes = baseMapper.selectList(new LambdaQueryWrapper<TmplTpDO>()
.eq(name != null && !name.isEmpty(), TmplTpDO::getName, name) .like(name != null && !name.isEmpty(), TmplTpDO::getName, name)
.eq(num != null && !num.isEmpty(), TmplTpDO::getNum, num)); .like(num != null && !num.isEmpty(), TmplTpDO::getNum, num));
if (matchedNodes.isEmpty()) { if (matchedNodes.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();

View File

@@ -21,6 +21,7 @@
AND rel.DELETED = 0 AND rel.DELETED = 0
AND tp.DELETED = 0 AND tp.DELETED = 0
AND tp.id = #{id} AND tp.id = #{id}
and itm.sts=1
</select> </select>
<select id="getField" resultType="com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO"> <select id="getField" resultType="com.zt.plat.module.base.controller.admin.templtp.vo.TmplFldRespVO">
@@ -33,6 +34,7 @@
AND r.DELETED = '0' AND r.DELETED = '0'
AND t.DELETED = '0' AND t.DELETED = '0'
AND t.id = #{id} AND t.id = #{id}
AND f.sts=1
ORDER BY t.SRT, f.FLD_KY ORDER BY t.SRT, f.FLD_KY
</select> </select>

View File

@@ -30,4 +30,7 @@ public class Partner {
private String partnerType; // 客商类型 private String partnerType; // 客商类型
@Schema(description = "境内/外") @Schema(description = "境内/外")
private String domesticOrOverseas; // 境内/外 private String domesticOrOverseas; // 境内/外
@Schema(description = "erp合同编号")
private String erpContractPaperNumber; // erp合同编号
} }

View File

@@ -28,5 +28,6 @@ public interface ErrorCodeConstants {
ErrorCode CONTRACT_STATUS_NOT_SUBMIT_ERP = new ErrorCode(1_027_000_013, "{}状态合同不允许提交ERP"); 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_ORDER_EXISTS = new ErrorCode(1_027_000_014, "关联订单已存在");
ErrorCode CONTRACT_SUBMIT_ERP_FAIL = new ErrorCode(1_027_000_015, "合同提交erp失败{}"); ErrorCode CONTRACT_SUBMIT_ERP_FAIL = new ErrorCode(1_027_000_015, "合同提交erp失败{}");
ErrorCode CONTRACT_UNKNOWN_OPERATE = new ErrorCode(1_027_000_015, "未知的操作"); ErrorCode CONTRACT_UNKNOWN_OPERATE = new ErrorCode(1_027_000_016, "未知的操作");
ErrorCode CONTRACT_PARTNER_NOT_EXISTS = new ErrorCode(1_027_000_017, "客商信息不存在");
} }

View File

@@ -8,6 +8,14 @@ import lombok.Getter;
@Getter @Getter
public enum DictEnum { public enum DictEnum {
/** 业务类型 */
BSN_TP_3("物流合同","3",null),
/** ERP合同类型编码 */
ERP_CTRT_HTLXBH_SAP02NCOZC("SAP铜非施工合同支出类","SAP02NCOZC",null),
/** 交易方式 */
HS_PYBL_TP_PRE_PAY("先款后货","PRE_PAY",null),
/** ERP合同类别 */
ERP_CTRT_HTLB_1("购销合同","1",null),
/** ERP请求状态 */ /** ERP请求状态 */
ERP_REQ_STS_RLBK("失败","RLBK",null), ERP_REQ_STS_RLBK("失败","RLBK",null),
ERP_REQ_STS_RCVG("执行中","RCVG",null), ERP_REQ_STS_RCVG("执行中","RCVG",null),

View File

@@ -182,21 +182,55 @@ public class ContractApiImpl implements ContractApi {
if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS); if (systemRelativityDO == null || systemRelativityDO.getDownId() == null) throw exception(CONTRACT_NOT_EXISTS);
contractId = systemRelativityDO.getDownId(); contractId = systemRelativityDO.getDownId();
contractMainMapper.deleteById(contractId); contractMainMapper.deleteById(contractId);
// 删除动态条款信息
contractOtherFormMapper.delete("CTRT_MAIN_ID", contractId.toString());
contractOtherFieldMapper.delete("CTRT_MAIN_ID", contractId.toString());
return success(true);
} else { } else {
throw exception(CONTRACT_UNKNOWN_OPERATE); throw exception(CONTRACT_UNKNOWN_OPERATE);
} }
// 提交合同到erp // 根据客商信息列表提交多个合同映射到erp
// 生成ERP合同映射表 if (reqVO.getPartnerList() == null || reqVO.getPartnerList().isEmpty()) {
ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO); throw exception(CONTRACT_PARTNER_NOT_EXISTS);
}
// 调用ERP模块 // 合同主信息-合同编号
JSONObject erpResult = contractService.sendToErp(erpContractVO); String contractPaperNumber = contractMainDO.getContractPaperNumber();
log.info("合同提交ERP结果{}", erpResult); // 合同主信息-合同名称
String contractName = contractMainDO.getContractName();
for (int i = 0; i < reqVO.getPartnerList().size(); i++) {
Partner partner = reqVO.getPartnerList().get(i);
// 调用ERP失败 // 根据客商信息设置合同信息
if (!erpResult.getBool("success")) { // 合同编号
throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg")); contractMainDO.setContractPaperNumber(contractPaperNumber + "_" + String.format("%03d", (i+1)));
reqVO.getPartnerList().get(i)
.setErpContractPaperNumber(contractPaperNumber + "_" + String.format("%03d", (i+1)));
// 合同名称
contractMainDO.setContractName(contractName + "_" + String.format("%03d", (i+1)));
// 境内/境外 -> 客商信息:境内/外
contractMainDO.setIsDomestic(partner.getDomesticOrOverseas());
// 乙方公司编号(销售方) -> 客商信息:供应商代码
contractMainDO.setSalesCompanyNumber(partner.getPartnerCode());
// ERP乙方公司编码
contractMainDO.setErpSalesCompanyNumber(partner.getPartnerCode());
// 乙方公司名称 -> 客商信息:供应商名称
contractMainDO.setSalesCompanyName(partner.getPartnerName());
// ERP乙方公司名称
contractMainDO.setErpSalesCompanyName(partner.getPartnerName());
// 生成ERP合同映射表
ErpContractSaveReqVO erpContractVO = contractService.getErpContract(contractMainDO);
// 调用ERP模块
JSONObject erpResult = contractService.sendToErp(erpContractVO);
log.info("合同提交ERP结果{}", erpResult);
// 调用ERP失败
if (!erpResult.getBool("success")) {
throw exception(CONTRACT_SUBMIT_ERP_FAIL, erpResult.getStr("errMsg"));
}
} }
// 删除动态条款信息 // 删除动态条款信息
@@ -335,22 +369,25 @@ public class ContractApiImpl implements ContractApi {
} }
return CommonResult.success(purchaseOrderDetails); return CommonResult.success(purchaseOrderDetails);
} }
private ContractMainDO getcontractMainDO(ContractRequest reqVO) { private ContractMainDO getcontractMainDO(ContractRequest reqVO) {
// 合同主信息表映射 // 合同主信息表映射
ContractMainDO contractMainDO = new ContractMainDO(); ContractMainDO contractMainDO = new ContractMainDO();
// 系统合同编号
contractMainDO.setSystemContractNumber(contractService.generateSystemContractNumber(DictEnum.ERP_CTRT_HTLXBH_SAP02NCOZC.getCode()));
// 合同编号 // 合同编号
contractMainDO.setContractPaperNumber(reqVO.getContractCode()); contractMainDO.setContractPaperNumber(reqVO.getContractCode());
// 合同名称 // 合同名称
contractMainDO.setContractName(reqVO.getContractName()); contractMainDO.setContractName(reqVO.getContractName());
// 施工类型编号 默认值:SAP02NCOZC // 施工类型编号 默认值:SAP02NCOZC
contractMainDO.setConstructionTypeNumber("SAP02NCOZC"); contractMainDO.setConstructionTypeNumber(DictEnum.ERP_CTRT_HTLXBH_SAP02NCOZC.getCode());
// 施工类型名称 默认值:铜非施工合同支出类 // 施工类型名称 默认值:铜非施工合同支出类
contractMainDO.setConstructionTypeName("SAP铜非施工合同支出类"); contractMainDO.setConstructionTypeName(DictEnum.ERP_CTRT_HTLXBH_SAP02NCOZC.getLabel());
// 类别 默认值:购销合同(1) // 类别 默认值:购销合同(1)
contractMainDO.setCategory("1"); contractMainDO.setCategory(DictEnum.ERP_CTRT_HTLB_1.getCode());
// 是否虚拟合同 默认值:否(0) // 是否虚拟合同 默认值:否(0)
contractMainDO.setContractVirtual("0"); contractMainDO.setContractVirtual(DictEnum.ERP_CTRT_YN_NO.getCode());
// 代理方 默认值:NULL // 代理方 默认值:NULL
// 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd) // 签署日期 -> 签约日期 (40-签约必填, 格式: yyyyMMdd)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
@@ -372,11 +409,11 @@ public class ContractApiImpl implements ContractApi {
// 状态 默认值:正在执行(EF) 执行中 // 状态 默认值:正在执行(EF) 执行中
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode()); contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode());
// 是否有预付款 默认值:否 // 是否有预付款 默认值:否
contractMainDO.setHasPrepayment("0"); contractMainDO.setHasPrepayment(DictEnum.ERP_CTRT_YN_NO.getCode());
// 预付款比例 默认值:NULL // 预付款比例 默认值:NULL
// 预付款金额 默认值:NULL // 预付款金额 默认值:NULL
// 是否有质保金 默认值:否 // 是否有质保金 默认值:否
contractMainDO.setHasQualityAmount("0"); contractMainDO.setHasQualityAmount(DictEnum.ERP_CTRT_YN_NO.getCode());
// 质保金比例 默认值:NULL // 质保金比例 默认值:NULL
// 质保金金额 默认值:NULL // 质保金金额 默认值:NULL
// 是否内部企业 // 是否内部企业
@@ -385,20 +422,16 @@ public class ContractApiImpl implements ContractApi {
contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode()); contractMainDO.setDirection(DictEnum.ERP_RCV_DLVY_EXPENSES.getCode());
// 是否框架合同 // 是否框架合同
contractMainDO.setIsFramework(reqVO.getIsFramework()); contractMainDO.setIsFramework(reqVO.getIsFramework());
// 境内/境外 -> 客商信息:境内/外
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
contractMainDO.setIsDomestic(reqVO.getPartnerList().get(0).getDomesticOrOverseas());
}
// 建筑服务发生地 默认值:NULL // 建筑服务发生地 默认值:NULL
// 达到收款条件金额 默认值:NULL // 达到收款条件金额 默认值:NULL
// 是否有履约保证金 默认值:否 // 是否有履约保证金 默认值:否
contractMainDO.setHasDeposit("0"); contractMainDO.setHasDeposit(DictEnum.ERP_CTRT_YN_NO.getCode());
// 原币履约保证金 默认值:NULL // 原币履约保证金 默认值:NULL
// 本币履约保证金 默认值:NULL // 本币履约保证金 默认值:NULL
// 交易方式 默认值:先款后货 // 交易方式 默认值:先款后货
contractMainDO.setHasPayable("PRE_PAY"); contractMainDO.setHasPayable(DictEnum.HS_PYBL_TP_PRE_PAY.getCode());
// 合同类型 默认值:物流合同 // 合同类型 默认值:物流合同
contractMainDO.setContractType("3"); contractMainDO.setContractType(DictEnum.BSN_TP_3.getCode());
// 签署地 -> 签约地 (40-签约必填) // 签署地 -> 签约地 (40-签约必填)
contractMainDO.setSignPlace(reqVO.getSignSite()); contractMainDO.setSignPlace(reqVO.getSignSite());
// 甲方公司编号(采购方) -> 账套代码 // 甲方公司编号(采购方) -> 账套代码
@@ -410,18 +443,6 @@ public class ContractApiImpl implements ContractApi {
contractMainDO.setErpPurchaseCompanyName(""); contractMainDO.setErpPurchaseCompanyName("");
// 甲方地址 默认值:NULL // 甲方地址 默认值:NULL
// 甲方法定代表人 默认值:NULL // 甲方法定代表人 默认值:NULL
// 乙方公司编号(销售方) -> 客商信息:供应商代码
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
contractMainDO.setSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode());
// ERP乙方公司编码
contractMainDO.setErpSalesCompanyNumber(reqVO.getPartnerList().get(0).getPartnerCode());
}
// 乙方公司名称 -> 客商信息:供应商名称
if (reqVO.getPartnerList() != null && !reqVO.getPartnerList().isEmpty()) {
contractMainDO.setSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName());
// ERP乙方公司名称
contractMainDO.setErpSalesCompanyName(reqVO.getPartnerList().get(0).getPartnerName());
}
// 乙方地址 默认值:NULL // 乙方地址 默认值:NULL
// 乙方企业负责人 默认值:NULL // 乙方企业负责人 默认值:NULL

View File

@@ -150,7 +150,7 @@ public class PrchOrdDtlSaveReqVO {
private String isEnb; private String isEnb;
@Schema(description = "科目分配详情;科目分配类别为K或P时使用(JSON)") @Schema(description = "科目分配详情;科目分配类别为K或P时使用(JSON)")
private JSONObject actsCtgrDtl; private String actsCtgrDtl;
@Schema(description = "委托加工详情;委托加工订单使用(JSON)") @Schema(description = "委托加工详情;委托加工订单使用(JSON)")
private String enttDtl; private String enttDtl;

View File

@@ -30,7 +30,7 @@ public class PurchaseOrderSaveReqVO {
@Schema(description = "公司编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "公司编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "公司编码;推送ERP必须不能为空") @NotEmpty(message = "公司编码;推送ERP必须不能为空")
private String companyNumber; private String cpNum;
@Schema(description = "客商编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "客商编码;推送ERP必须", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "客商编码;推送ERP必须不能为空") @NotEmpty(message = "客商编码;推送ERP必须不能为空")

View File

@@ -19,7 +19,7 @@ public class SalesOrderDetailSaveReqVO {
@Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "行项目;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "行项目;推送ERP(必须)不能为空") @NotNull(message = "行项目;推送ERP(必须)不能为空")
private Long lineNumber; private Long lineNumber;
@Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") @Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@NotEmpty(message = "物料名称不能为空") @NotEmpty(message = "物料名称不能为空")
@@ -47,7 +47,7 @@ public class SalesOrderDetailSaveReqVO {
@Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "计量单位;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "计量单位;推送ERP(必须)不能为空") @NotEmpty(message = "计量单位;推送ERP(必须)不能为空")
private String unit; private String unt;
@Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @Schema(description = "开票类型;推送ERP(必须)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "开票类型;推送ERP(必须)不能为空") @NotEmpty(message = "开票类型;推送ERP(必须)不能为空")

View File

@@ -207,4 +207,6 @@ public interface ContractService {
JSONObject sendToErp(ErpContractSaveReqVO erpContractVO); JSONObject sendToErp(ErpContractSaveReqVO erpContractVO);
ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO); ErpContractSaveReqVO getErpContract(ContractMainDO contractMainDO);
String generateSystemContractNumber(String category);
} }

View File

@@ -26,11 +26,13 @@ import com.zt.plat.module.contractorder.api.dto.contract.*;
import com.zt.plat.module.contractorder.api.vo.contract.*; import com.zt.plat.module.contractorder.api.vo.contract.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.*; import com.zt.plat.module.contractorder.dal.dataobject.contract.*;
import com.zt.plat.module.contractorder.dal.mysql.contract.*; import com.zt.plat.module.contractorder.dal.mysql.contract.*;
import com.zt.plat.module.contractorder.enums.*; import com.zt.plat.module.contractorder.enums.DateConstants;
import com.zt.plat.module.contractorder.enums.DictTypeConstants;
import com.zt.plat.module.contractorder.enums.ProcessConstants;
import com.zt.plat.module.contractorder.enums.TableFieldConstants;
import com.zt.plat.module.contractorder.enums.contract.DictEnum; import com.zt.plat.module.contractorder.enums.contract.DictEnum;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractPageReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractPageReqVO;
import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO; import com.zt.plat.module.erp.controller.admin.erp.vo.ErpContractSaveReqVO;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpCompanyDO;
import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO; import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO;
import com.zt.plat.module.erp.service.erp.ErpCompanyService; import com.zt.plat.module.erp.service.erp.ErpCompanyService;
import com.zt.plat.module.erp.service.erp.ErpContractService; import com.zt.plat.module.erp.service.erp.ErpContractService;
@@ -145,30 +147,14 @@ public class ContractServiceImpl implements ContractService {
// 合同主信息 // 合同主信息
ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class); ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class);
// 校验ERP的公司 // ERP甲方公司编号
if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber()) contractMainDO.setErpPurchaseCompanyNumber(reqVO.getPurchaseCompanyNumber());
|| StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { // ERP甲方公司名称
if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber())) { contractMainDO.setErpPurchaseCompanyName(reqVO.getPurchaseCompanyName());
ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getPurchaseCompanyNumber()); // ERP乙方公司编码
if (erpCompany == null) { contractMainDO.setErpSalesCompanyNumber(reqVO.getSalesCompanyNumber());
throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.PURCHASE); // ERP乙方公司名称
} else { contractMainDO.setErpSalesCompanyName(reqVO.getSalesCompanyName());
contractMainDO.setErpPurchaseCompanyNumber(erpCompany.getNumber());
contractMainDO.setErpPurchaseCompanyName(erpCompany.getName());
}
}
if (StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) {
ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getSalesCompanyNumber());
if (erpCompany == null) {
throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.SALES);
} else {
contractMainDO.setErpSalesCompanyNumber(erpCompany.getNumber());
contractMainDO.setErpSalesCompanyName(erpCompany.getName());
}
}
}
// 合同状态保存为草稿 // 合同状态保存为草稿
contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DRAFT.getCode()); contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DRAFT.getCode());
// 生成系统合同编号 // 生成系统合同编号
@@ -731,28 +717,14 @@ public class ContractServiceImpl implements ContractService {
// 请求更新的合同信息 // 请求更新的合同信息
ContractMainDO newContractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class); ContractMainDO newContractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class);
// 校验ERP的公司 // ERP甲方公司编号
if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber()) newContractMainDO.setErpPurchaseCompanyNumber(reqVO.getPurchaseCompanyNumber());
|| StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) { // ERP甲方公司名称
if (StringUtils.isNotEmpty(reqVO.getPurchaseCompanyNumber())) { newContractMainDO.setErpPurchaseCompanyName(reqVO.getPurchaseCompanyName());
ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getPurchaseCompanyNumber()); // ERP乙方公司编码
if (erpCompany == null) { newContractMainDO.setErpSalesCompanyNumber(reqVO.getSalesCompanyNumber());
throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.PURCHASE); // ERP乙方公司名称
} else { newContractMainDO.setErpSalesCompanyName(reqVO.getSalesCompanyName());
newContractMainDO.setErpPurchaseCompanyNumber(erpCompany.getNumber());
newContractMainDO.setErpPurchaseCompanyName(erpCompany.getName());
}
}
if (StringUtils.isNotEmpty(reqVO.getSalesCompanyNumber())) {
ErpCompanyDO erpCompany = erpCompanyService.getErpCompanyByNumber(reqVO.getSalesCompanyNumber());
if (erpCompany == null) {
throw exception(CONTRACT_ERP_COMPANY_PLEASE_BIND, ApiConstants.SALES);
} else {
newContractMainDO.setErpSalesCompanyNumber(erpCompany.getNumber());
newContractMainDO.setErpSalesCompanyName(erpCompany.getName());
}
}
}
// 删除关联信息 // 删除关联信息
// 查询合同明细 // 查询合同明细
@@ -1635,7 +1607,7 @@ public class ContractServiceImpl implements ContractService {
operationId = "1"; operationId = "1";
} else { } else {
// 3、如果009接口返回值中“合同编号”字段不存在值根据合同主键查询映射表中是否存在没有删除的数据如果有值为“1”如果没有值为“0” // 3、如果009接口返回值中“合同编号”字段不存在值根据合同主键查询映射表中是否存在没有删除的数据如果有值为“1”如果没有值为“0”
ErpContractDO erpContract = erpContractService.getErpContractByMainId(contractMainDO.getId()); ErpContractDO erpContract = erpContractService.getErpContractByPaperNumber(contractMainDO.getContractPaperNumber());
if (erpContract != null) { if (erpContract != null) {
operationId = "1"; operationId = "1";
} else { } else {
@@ -1971,7 +1943,8 @@ public class ContractServiceImpl implements ContractService {
* *
* @return 系统合同编号 * @return 系统合同编号
*/ */
private String generateSystemContractNumber(String category) { @Override
public String generateSystemContractNumber(String category) {
// 单据名称(拼音) // 单据名称(拼音)
String documentName = "XTHT"; String documentName = "XTHT";

View File

@@ -555,6 +555,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
} }
@Override @Override
@Transactional(rollbackFor=Exception.class)
public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) { public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) {
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId()); PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId());
if (ObjectUtils.isEmpty(purchaseOrderDO)) { if (ObjectUtils.isEmpty(purchaseOrderDO)) {
@@ -570,9 +571,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
//如果审核通过 //如果审核通过
if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) { if ("WAIT_PUSH".equals(purchaseorderReqVO.getStatus())) {
purchaseOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); purchaseOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
} else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) { } else {
//如果审核不通过 //如果审核不通过
purchaseOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode()); purchaseOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
} }
@@ -582,7 +583,6 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
purchaseOrderDO.setTaskId(undoTask.getId()); purchaseOrderDO.setTaskId(undoTask.getId());
} }
purchaseOrderMapper.updateById(purchaseOrderDO); //更新状态 purchaseOrderMapper.updateById(purchaseOrderDO); //更新状态
// 需要调用bpm 审核接口更新审批中的状态 // 需要调用bpm 审核接口更新审批中的状态
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) { if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
@@ -599,7 +599,7 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
bpmProcessInstanceApi.rejectTask(btrrDto); bpmProcessInstanceApi.rejectTask(btrrDto);
} }
} }
return false; return true;
} }
@Override @Override

View File

@@ -328,9 +328,9 @@ public class SalesOrderServiceImpl implements SalesOrderService {
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
//如果审核通过 //如果审核通过
if (BpmProcessInstanceStatusEnum.APPROVE.getStatus().equals(approvalDetail.getStatus())) { if ("WAIT_PUSH".equals(salesOrderReviewReqVO.getStatus())) {
salesOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); salesOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
} else if (BpmProcessInstanceStatusEnum.REJECT.getStatus().equals(approvalDetail.getStatus())) { } else {
//如果审核不通过 //如果审核不通过
salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode()); salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
} }
@@ -357,7 +357,7 @@ public class SalesOrderServiceImpl implements SalesOrderService {
bpmProcessInstanceApi.rejectTask(btrrDto); bpmProcessInstanceApi.rejectTask(btrrDto);
} }
} }
return false; return true;
} }
@Override @Override

View File

@@ -55,12 +55,12 @@ public interface ErpContractService {
ErpContractDO getErpContract(Long id); ErpContractDO getErpContract(Long id);
/** /**
* 获得ERP合同映射通过合同主信息主键 * 获得ERP合同映射通过合同编号
* *
* @param contractMainId 合同主信息主键 * @param paperNumber 合同编号
* @return ERP合同映射 * @return ERP合同映射
*/ */
ErpContractDO getErpContractByMainId(Long contractMainId); ErpContractDO getErpContractByPaperNumber(String paperNumber);
/** /**
* 获得ERP合同映射分页 * 获得ERP合同映射分页

View File

@@ -104,8 +104,8 @@ public class ErpContractServiceImpl implements ErpContractService {
} }
@Override @Override
public ErpContractDO getErpContractByMainId(Long contractMainId) { public ErpContractDO getErpContractByPaperNumber(String paperNumber) {
return erpContractMapper.selectOne("CTRT_MAIN_ID", contractMainId); return erpContractMapper.selectOne("CTRT_PPR_NUM", paperNumber);
} }
@Override @Override
@@ -231,8 +231,8 @@ public class ErpContractServiceImpl implements ErpContractService {
// 转换为DO // 转换为DO
ErpContractDO erpContract = BeanUtils.toBean(erpContractVO, ErpContractDO.class); ErpContractDO erpContract = BeanUtils.toBean(erpContractVO, ErpContractDO.class);
// 根据合同主信息ID查询合同映射 // 根据合同编号查询合同映射
ErpContractDO erpContractDO = getErpContractByMainId(erpContract.getContractMainId()); ErpContractDO erpContractDO = getErpContractByPaperNumber(erpContract.getContractPaperNumber());
if (erpContractDO == null) { if (erpContractDO == null) {
// 不存在映射表则新增 // 不存在映射表则新增
erpContract.setDeleted(false); erpContract.setDeleted(false);