fix:推送CRM失败记录日志
parent
d0d6919b11
commit
61ba3c9680
|
|
@ -59,7 +59,10 @@ public class VueProjectOrderInfoController extends BaseController {
|
|||
@RequiresPermissions(value = {"project:order:list", "project:order:approve"}, logical = Logical.OR)
|
||||
@GetMapping("/approve/list")
|
||||
public TableDataInfo listApprove(ProjectOrderInfo projectOrderInfo) {
|
||||
projectOrderInfo.setApprove(ShiroUtils.getUserId().toString());
|
||||
// admin用户可查看所有待审批数据,不按审批人过滤
|
||||
if (!ShiroUtils.getSysUser().isAdmin()) {
|
||||
projectOrderInfo.setApprove(ShiroUtils.getUserId().toString());
|
||||
}
|
||||
startPage();
|
||||
List<ProjectOrderInfo> list = projectOrderInfoService.selectProjectOrderInfoList(projectOrderInfo);
|
||||
clearPage();
|
||||
|
|
@ -69,7 +72,10 @@ public class VueProjectOrderInfoController extends BaseController {
|
|||
@RequiresPermissions(value = {"project:order:list", "project:order:approve"}, logical = Logical.OR)
|
||||
@GetMapping("/approve/log/list")
|
||||
public TableDataInfo listApproveLog(ProjectOrderInfo projectOrderInfo) {
|
||||
projectOrderInfo.setApproveLog(ShiroUtils.getUserId().toString());
|
||||
// admin用户可查看所有审批历史数据,不按审批人过滤
|
||||
if (!ShiroUtils.getSysUser().isAdmin()) {
|
||||
projectOrderInfo.setApproveLog(ShiroUtils.getUserId().toString());
|
||||
}
|
||||
startPage();
|
||||
List<ProjectOrderInfo> list = projectOrderInfoService.selectProjectOrderInfoList(projectOrderInfo);
|
||||
clearPage();
|
||||
|
|
|
|||
|
|
@ -0,0 +1,51 @@
|
|||
package com.ruoyi.sip.domain;
|
||||
|
||||
/**
|
||||
* 推送CRM失败错误日志
|
||||
*/
|
||||
public class OmsSendCrmErrorLog {
|
||||
|
||||
/** 主键 */
|
||||
private Integer id;
|
||||
|
||||
/** 项目ID */
|
||||
private Long projectId;
|
||||
|
||||
/** 项目编号 */
|
||||
private String projectCode;
|
||||
|
||||
/** 错误信息 */
|
||||
private String msg;
|
||||
|
||||
public Integer getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Integer id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getProjectId() {
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public void setProjectId(Long projectId) {
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
public String getProjectCode() {
|
||||
return projectCode;
|
||||
}
|
||||
|
||||
public void setProjectCode(String projectCode) {
|
||||
this.projectCode = projectCode;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package com.ruoyi.sip.mapper;
|
||||
|
||||
import com.ruoyi.sip.domain.OmsSendCrmErrorLog;
|
||||
|
||||
public interface OmsSendCrmErrorLogMapper {
|
||||
|
||||
int insert(OmsSendCrmErrorLog log);
|
||||
}
|
||||
|
|
@ -27,6 +27,7 @@ import com.ruoyi.sip.dto.HomepageQueryDto;
|
|||
import com.ruoyi.sip.dto.StatisticsDetailDto;
|
||||
import com.ruoyi.sip.dto.StatisticsDto;
|
||||
import com.ruoyi.sip.dto.integration.OpportunityUpdateRequestDto;
|
||||
import com.ruoyi.sip.mapper.OmsSendCrmErrorLogMapper;
|
||||
import com.ruoyi.sip.mapper.ProjectInfoMapper;
|
||||
import com.ruoyi.sip.service.*;
|
||||
import liquibase.hub.model.Project;
|
||||
|
|
@ -94,6 +95,8 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
|
|||
private IProjectOrderInfoService orderInfoService;
|
||||
@Autowired
|
||||
private IOpportunityIntegrationService opportunityIntegrationService;
|
||||
@Autowired
|
||||
private OmsSendCrmErrorLogMapper sendCrmErrorLogMapper;
|
||||
private static final String PROJECT_CODE_PREFIX = "V";
|
||||
private static final Integer PROJECT_CODE_LENGTH = 6;
|
||||
|
||||
|
|
@ -348,6 +351,20 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
|
|||
opportunityIntegrationService.updateOpportunity(requestDto);
|
||||
} catch (Exception e) {
|
||||
log.error("项目更新后同步商机失败, projectId:{}, opportunityCode:{}", projectInfo.getId(), requestDto.getOpportunityCode(), e);
|
||||
// 将异常信息记录到错误日志表
|
||||
try {
|
||||
OmsSendCrmErrorLog errorLog = new OmsSendCrmErrorLog();
|
||||
errorLog.setProjectId(projectInfo.getId());
|
||||
errorLog.setProjectCode(requestDto.getOpportunityCode());
|
||||
String errMsg = e.getMessage();
|
||||
if (errMsg != null && errMsg.length() > 10240) {
|
||||
errMsg = errMsg.substring(0, 10240);
|
||||
}
|
||||
errorLog.setMsg(errMsg);
|
||||
sendCrmErrorLogMapper.insert(errorLog);
|
||||
} catch (Exception ex) {
|
||||
log.error("记录推送CRM错误日志失败, projectId:{}", projectInfo.getId(), ex);
|
||||
}
|
||||
}
|
||||
};
|
||||
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
||||
|
|
@ -376,7 +393,11 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
|
|||
if (projectInfo.getId() != null) {
|
||||
projectOrderInfos = orderInfoService.selectProjectOrderInfoByProjectId(Collections.singletonList(projectInfo.getId()));
|
||||
if (CollUtil.isNotEmpty(projectOrderInfos)) {
|
||||
requestDto.setActualSignedAmount(projectOrderInfos.get(0).getShipmentAmount());
|
||||
ProjectOrderInfo firstOrder = projectOrderInfos.get(0);
|
||||
BigDecimal actualSignedAmount = firstOrder.getActualPurchaseAmount() != null
|
||||
? firstOrder.getActualPurchaseAmount()
|
||||
: firstOrder.getShipmentAmount();
|
||||
requestDto.setActualSignedAmount(actualSignedAmount);
|
||||
}
|
||||
}
|
||||
requestDto.setExpectedCloseDate(formatterDate(projectInfo.getEstimatedOrderTime(), DateUtils.YYYY_MM_DD));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.sip.mapper.OmsSendCrmErrorLogMapper">
|
||||
|
||||
<insert id="insert" parameterType="com.ruoyi.sip.domain.OmsSendCrmErrorLog">
|
||||
insert into oms_send_crm_error_log (project_id, project_code, msg)
|
||||
values (#{projectId}, #{projectCode}, #{msg})
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue