Merge remote-tracking branch 'origin/dev' into test
This commit is contained in:
@@ -72,4 +72,5 @@ public interface ErrorCodeConstants {
|
|||||||
|
|
||||||
// ========== 主数据同步 ==========
|
// ========== 主数据同步 ==========
|
||||||
ErrorCode MASTER_DATA_SYNC_DISABLED = new ErrorCode(1_027_900_001, "主数据同步功能已禁用");
|
ErrorCode MASTER_DATA_SYNC_DISABLED = new ErrorCode(1_027_900_001, "主数据同步功能已禁用");
|
||||||
|
ErrorCode MASTER_DATA_SYNC_BATCH_SIZE_TOO_LARGE = new ErrorCode(1_027_900_002, "最大批次不得超过 1000");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.zt.plat.module.base.dal.dataobject.base;
|
package com.zt.plat.module.base.dal.dataobject.base;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.zt.plat.framework.mybatis.core.dataobject.BaseDO;
|
||||||
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +20,7 @@ import lombok.*;
|
|||||||
/**
|
/**
|
||||||
* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
|
* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO
|
||||||
*/
|
*/
|
||||||
public class ElementDO extends BusinessBaseDO {
|
public class ElementDO extends BaseDO {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,9 @@ public class MasterDataSyncServiceImpl implements MasterDataSyncService {
|
|||||||
if (!properties.isEnabled()) {
|
if (!properties.isEnabled()) {
|
||||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.MASTER_DATA_SYNC_DISABLED);
|
throw ServiceExceptionUtil.exception(ErrorCodeConstants.MASTER_DATA_SYNC_DISABLED);
|
||||||
}
|
}
|
||||||
|
if (command.getBatchSize() > 1000) {
|
||||||
|
throw ServiceExceptionUtil.exception(ErrorCodeConstants.MASTER_DATA_SYNC_BATCH_SIZE_TOO_LARGE, command.getBatchSize());
|
||||||
|
}
|
||||||
MasterDataSyncReport report = MasterDataSyncReport.start(command);
|
MasterDataSyncReport report = MasterDataSyncReport.start(command);
|
||||||
List<String> materialCodes = sanitizeCodes(command.getMaterialCodes());
|
List<String> materialCodes = sanitizeCodes(command.getMaterialCodes());
|
||||||
report.setMaterialCodes(materialCodes);
|
report.setMaterialCodes(materialCodes);
|
||||||
@@ -306,7 +309,11 @@ public class MasterDataSyncServiceImpl implements MasterDataSyncService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
MaterialInfomationDO current = existingById.get(codeId);
|
MaterialInfomationDO current = existingById.get(codeId);
|
||||||
String name = normalizeValue(item.getMaterialName());
|
// 名称优先取 MDM 的长描述(desclong),若为空再回退到 desc1
|
||||||
|
String name = normalizeValue(item.getLongDescription());
|
||||||
|
if (name == null) {
|
||||||
|
name = normalizeValue(item.getMaterialName());
|
||||||
|
}
|
||||||
if (current == null) {
|
if (current == null) {
|
||||||
MaterialInfomationDO created = MaterialInfomationDO.builder()
|
MaterialInfomationDO created = MaterialInfomationDO.builder()
|
||||||
.id(codeId)
|
.id(codeId)
|
||||||
|
|||||||
@@ -14,7 +14,11 @@ public enum OrderStatusEnum {
|
|||||||
IN_PROGRESS("IN_PROGRESS", "执行中"),
|
IN_PROGRESS("IN_PROGRESS", "执行中"),
|
||||||
// 关闭状态
|
// 关闭状态
|
||||||
CLOSED("CLOSE", "关闭"),
|
CLOSED("CLOSE", "关闭"),
|
||||||
REJECTED("REJECT", "驳回");
|
REJECTED("REJECT", "驳回"),
|
||||||
|
FIND("FIND", "ERP提交成功"),
|
||||||
|
RLBK("RLBK", "ERP提交失败"),
|
||||||
|
RCVG("RCVG", "ERP执行中"),
|
||||||
|
WAIT("WAIT", "ERP待上传");
|
||||||
|
|
||||||
/** 状态编码 */
|
/** 状态编码 */
|
||||||
private final String code;
|
private final String code;
|
||||||
|
|||||||
@@ -200,4 +200,6 @@ public class PurchaseOrderRespVO {
|
|||||||
@ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)")
|
@ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)")
|
||||||
private String meteringType;
|
private String meteringType;
|
||||||
|
|
||||||
|
@Schema(description = "erp失败原因")
|
||||||
|
private String issueCause;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -224,4 +224,7 @@ public class SalesOrderRespVO {
|
|||||||
@ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)")
|
@ExcelProperty("货权转移类型(字典:ASY_MTNG_TP)")
|
||||||
private String meteringType;
|
private String meteringType;
|
||||||
|
|
||||||
|
@Schema(description = "erp失败原因")
|
||||||
|
private String issueCause;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -289,4 +289,11 @@ public class PurchaseOrderDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("MTNG_TP")
|
@TableField("MTNG_TP")
|
||||||
private String meteringType;
|
private String meteringType;
|
||||||
|
/**
|
||||||
|
* erp失败原因
|
||||||
|
*/
|
||||||
|
@TableField("ISS_CAUS")
|
||||||
|
private String issueCause;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -308,4 +308,7 @@ public class SalesOrderDO extends BusinessBaseDO {
|
|||||||
*/
|
*/
|
||||||
@TableField("MTNG_TP")
|
@TableField("MTNG_TP")
|
||||||
private String meteringType;
|
private String meteringType;
|
||||||
|
|
||||||
|
@TableField("ISS_CAUS")
|
||||||
|
private String issueCause;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
|||||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO;
|
||||||
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
||||||
|
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||||
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
|
||||||
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper;
|
||||||
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper;
|
import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PurchaseOrderMapper;
|
||||||
@@ -90,11 +91,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
|
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
|
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
|
||||||
if (Objects.equals(createReqVO.getIsPush(), 1)) {
|
purchaseOrder.setIsPush(0);
|
||||||
purchaseOrder.setStatus(OrderStatusEnum.DRAFT.getCode()); //设置初始状态
|
purchaseOrder.setStatus(OrderStatusEnum.IN_PROGRESS.getCode());
|
||||||
} else {
|
|
||||||
purchaseOrder.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
|
||||||
}
|
|
||||||
//生成订单号
|
//生成订单号
|
||||||
String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp());
|
String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp());
|
||||||
purchaseOrder.setSystemOrderNumber(orderNumber);
|
purchaseOrder.setSystemOrderNumber(orderNumber);
|
||||||
@@ -348,28 +346,30 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//todo 4. 推送ERP并处理返回结果
|
//todo 4. 推送ERP并处理返回结果
|
||||||
// String s = erpOrderService.submitOrderToErp061(erpOrderSaveReqVO);
|
// String result = erpOrderService.submitOrderToErp061(erpOrderSaveReqVO);
|
||||||
log.info("订单推送成功,订单id【{}】", order.getId());
|
log.info("订单推送成功,订单id【{}】", order.getId());
|
||||||
|
String result="3333";
|
||||||
// 解析ERP返回的ID
|
// 解析ERP返回的ID
|
||||||
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("id",R())));
|
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("id",R())));
|
||||||
String erpId = jsonObject.getString("id");
|
String erpId = jsonObject.getString("id");
|
||||||
if (erpId != null && !erpId.isEmpty()) {
|
if (result != null) { //todo 需要改为真实返回的数据
|
||||||
// 更新订单的ERP编号
|
JSONObject job = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R())));
|
||||||
PurchaseOrderDO updateDO = new PurchaseOrderDO();
|
String id = job.containsKey("id")?jsonObject.getString("id"):null;
|
||||||
updateDO.setId(order.getId());
|
if (id != null) {
|
||||||
updateDO.setOrderSAPNumber(erpId);
|
PurchaseOrderDO upVo = new PurchaseOrderDO();
|
||||||
updateDO.setStatus(OrderStatusEnum.IN_PROGRESS.getCode());
|
upVo.setId(purchaseOrderWithDetailsVO.getPurchaseOrder().getId());
|
||||||
int updateCount = purchaseOrderMapper.updateById(updateDO);
|
upVo.setOrderSAPNumber(id);
|
||||||
if (updateCount > 0) {
|
upVo.setErpStatus(OrderStatusEnum.FIND.getCode());
|
||||||
log.info("更新订单ERPID成功,订单id【{}】", order.getId());
|
purchaseOrderMapper.updateById(upVo);
|
||||||
} else {
|
}else {
|
||||||
log.error("订单更新失败,订单id【{}】", order.getId());
|
PurchaseOrderDO upVo = new PurchaseOrderDO();
|
||||||
throw new RuntimeException("订单更新失败");
|
upVo.setId(purchaseOrderWithDetailsVO.getPurchaseOrder().getId());
|
||||||
|
upVo.setOrderSAPNumber(id);
|
||||||
|
upVo.setErpStatus(OrderStatusEnum.RLBK.getCode());
|
||||||
|
upVo.setCause("ERP返回结果为空");//TODO 这里先写死
|
||||||
|
purchaseOrderMapper.updateById(upVo);
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
log.error("ERP返回ID为空,订单id【{}】", order.getId());
|
|
||||||
throw new RuntimeException("ERP返回ID为空");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return "ERP推送成功";
|
return "ERP推送成功";
|
||||||
|
|||||||
@@ -243,12 +243,19 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
|||||||
String result="3333";
|
String result="3333";
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R())));
|
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(Map.of("salesdocument",R())));
|
||||||
String salesdocument = jsonObject.getString("salesdocument");
|
String salesdocument = jsonObject.containsKey("salesdocument")?jsonObject.getString("salesdocument"):null;
|
||||||
if (salesdocument != null) {
|
if (salesdocument != null) {
|
||||||
SalesOrderDO upVo = new SalesOrderDO();
|
SalesOrderDO upVo = new SalesOrderDO();
|
||||||
upVo.setId(salesOrderDO.getId());
|
upVo.setId(salesOrderDO.getId());
|
||||||
upVo.setOrderSAPNumber(salesdocument);
|
upVo.setOrderSAPNumber(salesdocument);
|
||||||
upVo.setStatus(OrderStatusEnum.IN_PROGRESS.getCode());
|
upVo.setErpStatus(OrderStatusEnum.FIND.getCode());
|
||||||
|
salesOrderMapper.updateById(upVo);
|
||||||
|
}else {
|
||||||
|
SalesOrderDO upVo = new SalesOrderDO();
|
||||||
|
upVo.setId(salesOrderDO.getId());
|
||||||
|
upVo.setOrderSAPNumber(salesdocument);
|
||||||
|
upVo.setErpStatus(OrderStatusEnum.RLBK.getCode());
|
||||||
|
upVo.setCause("ERP返回结果为空");//TODO 这里先写死
|
||||||
salesOrderMapper.updateById(upVo);
|
salesOrderMapper.updateById(upVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user