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)
|
@RequiresPermissions(value = {"project:order:list", "project:order:approve"}, logical = Logical.OR)
|
||||||
@GetMapping("/approve/list")
|
@GetMapping("/approve/list")
|
||||||
public TableDataInfo listApprove(ProjectOrderInfo projectOrderInfo) {
|
public TableDataInfo listApprove(ProjectOrderInfo projectOrderInfo) {
|
||||||
|
// admin用户可查看所有待审批数据,不按审批人过滤
|
||||||
|
if (!ShiroUtils.getSysUser().isAdmin()) {
|
||||||
projectOrderInfo.setApprove(ShiroUtils.getUserId().toString());
|
projectOrderInfo.setApprove(ShiroUtils.getUserId().toString());
|
||||||
|
}
|
||||||
startPage();
|
startPage();
|
||||||
List<ProjectOrderInfo> list = projectOrderInfoService.selectProjectOrderInfoList(projectOrderInfo);
|
List<ProjectOrderInfo> list = projectOrderInfoService.selectProjectOrderInfoList(projectOrderInfo);
|
||||||
clearPage();
|
clearPage();
|
||||||
|
|
@ -69,7 +72,10 @@ public class VueProjectOrderInfoController extends BaseController {
|
||||||
@RequiresPermissions(value = {"project:order:list", "project:order:approve"}, logical = Logical.OR)
|
@RequiresPermissions(value = {"project:order:list", "project:order:approve"}, logical = Logical.OR)
|
||||||
@GetMapping("/approve/log/list")
|
@GetMapping("/approve/log/list")
|
||||||
public TableDataInfo listApproveLog(ProjectOrderInfo projectOrderInfo) {
|
public TableDataInfo listApproveLog(ProjectOrderInfo projectOrderInfo) {
|
||||||
|
// admin用户可查看所有审批历史数据,不按审批人过滤
|
||||||
|
if (!ShiroUtils.getSysUser().isAdmin()) {
|
||||||
projectOrderInfo.setApproveLog(ShiroUtils.getUserId().toString());
|
projectOrderInfo.setApproveLog(ShiroUtils.getUserId().toString());
|
||||||
|
}
|
||||||
startPage();
|
startPage();
|
||||||
List<ProjectOrderInfo> list = projectOrderInfoService.selectProjectOrderInfoList(projectOrderInfo);
|
List<ProjectOrderInfo> list = projectOrderInfoService.selectProjectOrderInfoList(projectOrderInfo);
|
||||||
clearPage();
|
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.StatisticsDetailDto;
|
||||||
import com.ruoyi.sip.dto.StatisticsDto;
|
import com.ruoyi.sip.dto.StatisticsDto;
|
||||||
import com.ruoyi.sip.dto.integration.OpportunityUpdateRequestDto;
|
import com.ruoyi.sip.dto.integration.OpportunityUpdateRequestDto;
|
||||||
|
import com.ruoyi.sip.mapper.OmsSendCrmErrorLogMapper;
|
||||||
import com.ruoyi.sip.mapper.ProjectInfoMapper;
|
import com.ruoyi.sip.mapper.ProjectInfoMapper;
|
||||||
import com.ruoyi.sip.service.*;
|
import com.ruoyi.sip.service.*;
|
||||||
import liquibase.hub.model.Project;
|
import liquibase.hub.model.Project;
|
||||||
|
|
@ -94,6 +95,8 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
|
||||||
private IProjectOrderInfoService orderInfoService;
|
private IProjectOrderInfoService orderInfoService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IOpportunityIntegrationService opportunityIntegrationService;
|
private IOpportunityIntegrationService opportunityIntegrationService;
|
||||||
|
@Autowired
|
||||||
|
private OmsSendCrmErrorLogMapper sendCrmErrorLogMapper;
|
||||||
private static final String PROJECT_CODE_PREFIX = "V";
|
private static final String PROJECT_CODE_PREFIX = "V";
|
||||||
private static final Integer PROJECT_CODE_LENGTH = 6;
|
private static final Integer PROJECT_CODE_LENGTH = 6;
|
||||||
|
|
||||||
|
|
@ -348,6 +351,20 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
|
||||||
opportunityIntegrationService.updateOpportunity(requestDto);
|
opportunityIntegrationService.updateOpportunity(requestDto);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("项目更新后同步商机失败, projectId:{}, opportunityCode:{}", projectInfo.getId(), requestDto.getOpportunityCode(), 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()) {
|
if (TransactionSynchronizationManager.isSynchronizationActive()) {
|
||||||
|
|
@ -376,7 +393,11 @@ public class ProjectInfoServiceImpl implements IProjectInfoService {
|
||||||
if (projectInfo.getId() != null) {
|
if (projectInfo.getId() != null) {
|
||||||
projectOrderInfos = orderInfoService.selectProjectOrderInfoByProjectId(Collections.singletonList(projectInfo.getId()));
|
projectOrderInfos = orderInfoService.selectProjectOrderInfoByProjectId(Collections.singletonList(projectInfo.getId()));
|
||||||
if (CollUtil.isNotEmpty(projectOrderInfos)) {
|
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));
|
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