feat(pbom): 添加导入SAP失败的数量显示和列表
This commit is contained in:
parent
b0bc503239
commit
e1367525e5
|
|
@ -339,4 +339,24 @@ public class PBomApi extends BaseApi {
|
|||
public ResultVO<List<OperationErrorMsgVO>> importToSAP(@Valid @RequestBody @NotNull PbomImportToSAPQuery query) {
|
||||
return ResultVO.success(bomNewPbomParentService.importToSAP2(query));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导入sap失败的bom数量
|
||||
* @return 导入sap失败的bom数量
|
||||
*/
|
||||
@GetMapping("getSapErrorNum")
|
||||
@ApiOperation("获取导入sap失败的bom数量")
|
||||
public ResultVO<Integer> getSapErrorNum() {
|
||||
return ResultVO.success(bomNewPbomParentService.getSapErrorNum());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取导入sap失败的bom
|
||||
* @return 导入sap失败的bom
|
||||
*/
|
||||
@GetMapping("getSapError")
|
||||
@ApiOperation("获取导入sap失败错误信息")
|
||||
public ResultVO<List<OperationErrorMsgVO>> getSapError(@Valid @RequestParam("rowId") @NotNull Long rowId) {
|
||||
return ResultVO.success(bomNewPbomParentService.getSapError(rowId));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ import cn.hutool.core.date.DateUtil;
|
|||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.nflg.product.base.core.conmon.util.SessionUtil;
|
||||
import com.nflg.product.base.core.exception.NflgBusinessException;
|
||||
import com.nflg.product.bomnew.constant.*;
|
||||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.ImportSapParamDTO;
|
||||
|
|
@ -13,6 +16,7 @@ import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1DTO;
|
|||
import com.nflg.product.bomnew.pojo.dto.sap.impart2.T1ExtDTO;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewPbomChildEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewPbomParentEntity;
|
||||
import com.nflg.product.bomnew.pojo.entity.BomNewSapErrorMsgEntity;
|
||||
import com.nflg.product.bomnew.pojo.vo.OperationErrorMsgVO;
|
||||
import com.nflg.product.bomnew.util.VUtils;
|
||||
import nflg.product.common.constant.STATE;
|
||||
|
|
@ -44,6 +48,7 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
|||
|
||||
private final BomNewPbomParentService bomNewPbomParentService = SpringUtil.getBean(BomNewPbomParentService.class);
|
||||
private final BomNewPbomChildService bomNewPbomChildService = SpringUtil.getBean(BomNewPbomChildService.class);
|
||||
private final BomNewSapErrorMsgService bomNewSapErrorMsgService = SpringUtil.getBean(BomNewSapErrorMsgService.class);
|
||||
|
||||
public BomNewPbomExportToSAPImpl(boolean isForSale) {
|
||||
this.isForSale = isForSale;
|
||||
|
|
@ -110,12 +115,34 @@ public class BomNewPbomExportToSAPImpl implements IBomNewPbomExportToSAP {
|
|||
} else if (sapDto.getT1().size() != liErrMsg.size()) {
|
||||
state = SapStatusEnum.PUB_ERROR;
|
||||
}
|
||||
saveSapErrorMsg(rootBomRowId, liErrMsg);
|
||||
} catch (Exception ex) {
|
||||
LOGGER.error("导入SAP失败", ex);
|
||||
liErrMsg = new ArrayList<>();
|
||||
liErrMsg.add(OperationErrorMsgVO.create("", "未知异常,请联系管理员"));
|
||||
saveSapErrorMsg(rootBomRowId, liErrMsg);
|
||||
throw new NflgBusinessException(STATE.BusinessError, "导入SAP失败,请联系管理员");
|
||||
} finally {
|
||||
updateSapState(rootBomRowId, state);
|
||||
}
|
||||
return liErrMsg;
|
||||
}
|
||||
|
||||
private void saveSapErrorMsg(Long rootBomRowId, List<OperationErrorMsgVO> liErrMsg) {
|
||||
bomNewSapErrorMsgService.getBaseMapper().delete(Wrappers.lambdaQuery(BomNewSapErrorMsgEntity.class)
|
||||
.eq(BomNewSapErrorMsgEntity::getTargetRowId, rootBomRowId));
|
||||
|
||||
if (CollUtil.isNotEmpty(liErrMsg)) {
|
||||
BomNewSapErrorMsgEntity sapErrorMsgEntity = new BomNewSapErrorMsgEntity();
|
||||
sapErrorMsgEntity.setTargetRowId(rootBomRowId);
|
||||
sapErrorMsgEntity.setType(0);
|
||||
sapErrorMsgEntity.setData(JSON.toJSONString(liErrMsg));
|
||||
sapErrorMsgEntity.setCreatedName(SessionUtil.getRealName());
|
||||
sapErrorMsgEntity.setCreatedTime(LocalDateTime.now());
|
||||
bomNewSapErrorMsgService.saveOrUpdate(sapErrorMsgEntity);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateSapState(Long rootBomRowId, SapStatusEnum sapState) {
|
||||
bomNewPbomParentService.lambdaUpdate()
|
||||
.in(BomNewPbomParentEntity::getRowId, rootBomRowId)
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import cn.hutool.core.util.NumberUtil;
|
|||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
|
|
@ -105,6 +106,9 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
|||
@Resource
|
||||
SapOpUtilService sapOpUtilService;
|
||||
|
||||
@Resource
|
||||
private BomNewSapErrorMsgService bomNewSapErrorMsgService;
|
||||
|
||||
/**
|
||||
* pbom-工作列表
|
||||
*
|
||||
|
|
@ -1456,4 +1460,16 @@ public class BomNewPbomParentService extends ServiceImpl<BomNewPbomParentMapper,
|
|||
newP.setDeviseUserCode("");
|
||||
return newP;
|
||||
}
|
||||
|
||||
public Integer getSapErrorNum() {
|
||||
return this.getBaseMapper().getSapErrorNum(SessionUtil.getUserCode());
|
||||
}
|
||||
|
||||
public List<OperationErrorMsgVO> getSapError(Long rowId) {
|
||||
BomNewSapErrorMsgEntity sapErrorMsgEntity = bomNewSapErrorMsgService.lambdaQuery()
|
||||
.eq(BomNewSapErrorMsgEntity::getTargetRowId, rowId)
|
||||
.one();
|
||||
if (Objects.isNull(sapErrorMsgEntity)) return Collections.emptyList();
|
||||
return JSON.parseArray(sapErrorMsgEntity.getData(), OperationErrorMsgVO.class);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -263,6 +263,20 @@
|
|||
#{item}
|
||||
</foreach>;
|
||||
</select>
|
||||
<select id="getSapErrorWorksheet" resultType="com.nflg.product.bomnew.pojo.vo.BomNewPbomParentVO">
|
||||
SELECT *, row_id AS bomRowId
|
||||
FROM t_bom_new_pbom_parent
|
||||
WHERE status > 4
|
||||
AND (root_is = 1 OR user_root_is = 1 OR root_state = 1)
|
||||
AND sap_state > 3
|
||||
AND created_by = #{userCode}
|
||||
</select>
|
||||
<select id="getSapErrorNum" resultType="java.lang.Integer">
|
||||
SELECT COUNT(1)
|
||||
FROM t_bom_new_ebom_parent p
|
||||
INNER JOIN t_bom_new_sap_error_msg e ON p.row_id = e.target_row_id AND e.type = 1
|
||||
WHERE p.created_by = #{userCode}
|
||||
</select>
|
||||
|
||||
<sql id="upRootStateWhr">
|
||||
<foreach collection="materialNoList" item="item" open="(" separator="," close=")">
|
||||
|
|
|
|||
Loading…
Reference in New Issue