Merge branch 'dev' into 'test'
修改bug See merge request jygk/dsc-base!13
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<>();
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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合同编号
|
||||||
}
|
}
|
||||||
@@ -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, "客商信息不存在");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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(必须)不能为空")
|
||||||
|
|||||||
@@ -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(必须)不能为空")
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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合同映射分页
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user