diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/constant/DsPartConstant.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/constant/DsPartConstant.java index b36baa61..353c985e 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/constant/DsPartConstant.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/dashboard/constant/DsPartConstant.java @@ -27,5 +27,5 @@ public interface DsPartConstant { */ Integer SIN_TER_TYPE_SMM = 5; - //endregion + String PDM_DRAWING_URL = "http://MESLoginUser:MESloginUseradmin@pdm.caoe.com/Windchill/netmarkets/jsp/ext/caoe/mes/export.jsp?oid="; } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClient.java index a07b16b8..269f34bf 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClient.java @@ -43,6 +43,7 @@ public interface IErpDataPartClient { String API_PREFIX = "/feign/erpdata/client"; String SENDING_PART_GIVE_ERP = API_PREFIX + "/sendingPartGiveErp"; + String OPEN_PDM_DRAWING = API_PREFIX + "/openPdmDrawing"; /** * 调用erp过程发送零件信息(烧结零件不同步erp) @@ -50,4 +51,12 @@ public interface IErpDataPartClient { */ @PostMapping(SENDING_PART_GIVE_ERP) void sendingPartGiveErp(org.springblade.desk.dashboard.pojo.entity.DsPartEntity dsPart); + + /** + * 获取pdm图纸地址 + * @param partCode + * @return + */ + @PostMapping(OPEN_PDM_DRAWING) + String openPdmDrawing(String partCode); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java index 2394e6b7..4de3cfe0 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java @@ -16,4 +16,9 @@ public class IErpDataPartClientFallback implements IErpDataPartClient { public void sendingPartGiveErp(org.springblade.desk.dashboard.pojo.entity.DsPartEntity dsPart) { R.fail("调用erp过程发送零件信息 失败"); } + + @Override + public String openPdmDrawing(String partCode) { + return "获取PDM图纸失败"; + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java index a6c8302a..aaf159d0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java @@ -40,9 +40,11 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.dashboard.constant.DsPartConstant; import org.springblade.desk.dashboard.pojo.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -75,6 +77,7 @@ public class DsPartController extends BladeController { private final IDsPartService dsPartService; + /** * 零件信息表 详情 */ @@ -273,6 +276,21 @@ public class DsPartController extends BladeController { return R.data(dsPartService.selectAll()); } + /** + * 获取pdm图纸地址 + */ + @GetMapping("/getPdmDocLink") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取pdm图纸地址") + public R syncPart(@RequestParam String partCode) { + String url = null; + String docLink = dsPartService.openPdmDrawing(partCode); + if (StringUtils.isNotBlank(docLink)) { + url = DsPartConstant.PDM_DRAWING_URL + docLink; + } + return R.data(url); + } + /** * 测试接口 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java index 29a55b68..7f4b77e9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java @@ -288,4 +288,11 @@ public interface IDsPartService extends BaseService { * @return */ List getClassCakeWork(String partCode,String roamNo,String partVersion); + + /** + * 根据零件号查询图纸 + * @param partCode + * @return + */ + String openPdmDrawing(String partCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java index 0aa88684..abc8aadb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java @@ -426,7 +426,7 @@ public class DsPartServiceImpl extends BaseServiceImpl dsPartEntityList = selectDsPartByPatCode(partCode); + if(CollectionUtils.isEmpty(dsPartEntityList)){ + throw new ServiceException("零件号不存在:"+partCode); + } + log.info("零件号存在:{}",partCode); + + //查询erp + String url = getErpDataPartClient().openPdmDrawing(partCode); + + return url; + } + /** * 创建维护任务 */ diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java index c73dc452..296fbbd7 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java @@ -28,4 +28,10 @@ public class ErpDataPartClient implements IErpDataPartClient{ public void sendingPartGiveErp(DsPartEntity dsPart) { partService.sendingPartGiveErp(dsPart); } + + @Override + @GetMapping(OPEN_PDM_DRAWING) + public String openPdmDrawing(String partCode) { + return partService.openPdmDrawing(partCode); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.java index db27836a..2c1b5ef5 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.java @@ -1,6 +1,8 @@ package org.springblade.erpdata.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.apache.ibatis.annotations.Param; import org.springblade.erpdata.pojo.dto.table.Wo; /** @@ -8,7 +10,10 @@ import org.springblade.erpdata.pojo.dto.table.Wo; * * @author lqk */ -public interface ErpPartMapper extends BaseMapper { +public interface ErpPartMapper extends Mapper { + String selectPdmpart(@Param("partCode") String partCode); + + String selectPrtbasdef(@Param("partCode") String partCode); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.xml index 2111a341..667602d2 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.xml +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartMapper.xml @@ -2,4 +2,17 @@ + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartService.java index 70c6e038..d87d5026 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartService.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartService.java @@ -11,11 +11,18 @@ import org.springblade.erpdata.pojo.dto.table.Wo; * * @author lqk */ -public interface IErpPartService extends BaseService { +public interface IErpPartService { /** * 同步零件数据至ERP * @param dsPart */ void sendingPartGiveErp(DsPartEntity dsPart) ; + + /** + *获取pdm图纸地址 + * @param partCode + * @return + */ + String openPdmDrawing(String partCode); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartServiceImpl.java index 891dc05d..2d5c2bd5 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartServiceImpl.java @@ -1,5 +1,6 @@ package org.springblade.erpdata.service.impl; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.google.protobuf.ServiceException; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -8,6 +9,7 @@ import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.Func; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; import org.springblade.erpdata.mapper.ErpPartMapper; +import org.springblade.erpdata.mapper.ErpPartoplinkFirseqMapper; import org.springblade.erpdata.mapper.ErpWoMapper; import org.springblade.erpdata.pojo.dto.table.Wo; import org.springblade.erpdata.service.IErpPartService; @@ -26,9 +28,10 @@ import java.sql.Timestamp; @Slf4j @RequiredArgsConstructor @Service -public class ErpPartServiceImpl extends BaseServiceImpl implements IErpPartService { +public class ErpPartServiceImpl implements IErpPartService { private final DataSource dataSource; + private final ErpPartMapper erpPartMapper; @Override public void sendingPartGiveErp(DsPartEntity dsPart) { @@ -59,4 +62,25 @@ public class ErpPartServiceImpl extends BaseServiceImpl imple log.error("JDBC调用ERP失败:{}", dsPart.getPartCode(), e); } } + + @Override + public String openPdmDrawing(String partCode) { + // 查询视图 v_mes_rb_pdmpart + log.info("查询erp获取图纸地址:{}",partCode); + String url = erpPartMapper.selectPdmpart(partCode); + if(StringUtils.isNotEmpty(url)){ + log.info("从pdmpart获取到pdm图纸地址:{}", url); + return url; + } + + // 如果v_mes_rb_pdmpart为空,查询v_mes_rb_prtbasdef + url = erpPartMapper.selectPrtbasdef(partCode); + if(StringUtils.isNotEmpty(url)){ + log.info("从prtbasdef获取到pdm图纸地址:{}", url); + return url; + } + + log.warn("未找到零件{}的pdm图纸地址", partCode); + return null; + } }