diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index dc89c0b52..fa17d7e0f 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -989,9 +989,12 @@ public class IoCodeTempController extends BaseController { if (codeEnttitys.size() > 0) { exitLocalEntity = isExitLocal(code, codeEnttitys); if (exitLocalEntity != null) { - if (StrUtil.isEmpty(exitLocalEntity.getSupId()) || exitLocalEntity.getRelId() == null) { - return ResultVOUtils.error(500, "当前UDI码已存在,且存在异常未处理!"); + if (!(bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_RETURN) || bussinessTypeEntity.getAction().equals(ConstantType.SPLIT_OUT))) { + if (StrUtil.isEmpty(exitLocalEntity.getSupId()) || exitLocalEntity.getRelId() == null) { + return ResultVOUtils.error(500, "当前UDI码已存在,且存在异常未处理!"); + } } + udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(exitLocalEntity.getNameCode(), null); BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity); diff --git a/src/main/java/com/glxp/api/controller/thrsys/DrugMachineController.java b/src/main/java/com/glxp/api/controller/thrsys/DrugMachineController.java new file mode 100644 index 000000000..8a801d38e --- /dev/null +++ b/src/main/java/com/glxp/api/controller/thrsys/DrugMachineController.java @@ -0,0 +1,48 @@ +package com.glxp.api.controller.thrsys; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.req.drugMachine.PutGoodsA001Request; +import com.glxp.api.req.drugMachine.PutGoodsB001Request; +import com.glxp.api.req.drugMachine.SendGoodsB002Request; +import com.glxp.api.service.thrsys.DrugMachineService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Slf4j +@RestController +public class DrugMachineController { + + + @Resource + DrugMachineService drugMachineService; + + /** + * B001 + * 发药机上货接口2 + * 药械追溯管理系统提供接收接口,接收发药机上货信息 + * @param putGoodsB001Request + * @return + */ + @PostMapping("/drugMachine/putGoods/B001") + public BaseResponse putGoodsB001(@RequestBody PutGoodsB001Request putGoodsB001Request) { + return drugMachineService.putGoodsB001(putGoodsB001Request); + } + + + /** + * B002 + * 发药机发药接口 + * 药械追溯管理系统提供接收接口,接收发药机发药信息 + * @param sendGoodsB002Request + * @return + */ + @PostMapping("/drugMachine/sendGoods/B002") + public BaseResponse sendGoodsB002(@RequestBody SendGoodsB002Request sendGoodsB002Request) { + return drugMachineService.sendGoodsB002(sendGoodsB002Request); + } +} diff --git a/src/main/java/com/glxp/api/http/ErpBasicClient.java b/src/main/java/com/glxp/api/http/ErpBasicClient.java index b172ff341..890ed5949 100644 --- a/src/main/java/com/glxp/api/http/ErpBasicClient.java +++ b/src/main/java/com/glxp/api/http/ErpBasicClient.java @@ -14,6 +14,7 @@ import com.glxp.api.http.req.UdiwmsBusTypeRequest; import com.glxp.api.http.req.UdiwmsUnitRequest; import com.glxp.api.req.basic.*; import com.glxp.api.req.collect.PostCollectOrderRequest; +import com.glxp.api.req.drugMachine.PutGoodsA001Request; import com.glxp.api.req.thrsys.*; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.basic.BasicSkPrescribeResponse; @@ -526,4 +527,27 @@ public class ErpBasicClient { return ResultVOUtils.error(500, "连接第三方系统接口服务出错" + e.getMessage()); } } + + + + + + public BaseResponse> putGoodsA001(PutGoodsA001Request putGoodsA001Request,String thirdSys) { + ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(thirdSys); + String url = basicThirdSysEntity.getThridUrl() + "/drugMachine/putGoods/A001"; + try { + String response = okHttpCli.doGet(url); + if (StrUtil.isEmpty(response)) { + return ResultVOUtils.error(500, "连接第三方系统接口服务出错"); + } + BaseResponse> listBaseResponse = + JSONObject.parseObject(response, new TypeReference>>() { + }); + + return listBaseResponse; + } catch (Exception e) { + log.error("获取发药机上货接口1", e); + return ResultVOUtils.error(500, "连接第三方系统接口服务出错" + e.getMessage()); + } + } } diff --git a/src/main/java/com/glxp/api/req/drugMachine/PutGoodsA001Request.java b/src/main/java/com/glxp/api/req/drugMachine/PutGoodsA001Request.java new file mode 100644 index 000000000..ee219acb2 --- /dev/null +++ b/src/main/java/com/glxp/api/req/drugMachine/PutGoodsA001Request.java @@ -0,0 +1,89 @@ +package com.glxp.api.req.drugMachine; + +import lombok.Data; + +import java.sql.Date; + +@Data +public class PutGoodsA001Request { + + /** + * 是必要参数 + * 记录号 + */ + private String orderId; + + /** + * 是必要参数 + * 产品编码 + */ + private String productCode; + + /** + * 是必要参数 + * 产品通用名称 + */ + private String productName; + + /** + * 是必要参数 + * 上货时间 + */ + private Date putTime; + + /** + * 是必要参数 + * 数量 + */ + private Integer count; + + /** + * 包装规格(可选) + */ + private String bzgg; + + /** + * 计量单位(可选) + */ + private String unit; + + /** + * 批准文号(可选) + */ + private String approvalNum; + + /** + * 制剂单位(可选) + */ + private String prepnUnit; + + /** + * 制剂规格(可选) + */ + private String prepnSpec; + + /** + * 备用字段1(可选) + */ + private String remark1; + + /** + * 备用字段2(可选) + */ + private String remark2; + + /** + * 备用字段3(可选) + */ + private String remark3; + + /** + * 备用字段4(可选) + */ + private String remark4; + + /** + * 备用字段5(可选) + */ + private String remark5; +} diff --git a/src/main/java/com/glxp/api/req/drugMachine/PutGoodsB001Request.java b/src/main/java/com/glxp/api/req/drugMachine/PutGoodsB001Request.java new file mode 100644 index 000000000..2f2e9dbd1 --- /dev/null +++ b/src/main/java/com/glxp/api/req/drugMachine/PutGoodsB001Request.java @@ -0,0 +1,88 @@ +package com.glxp.api.req.drugMachine; + +import lombok.Data; + +import java.util.Date; + +@Data +public class PutGoodsB001Request { + /** + * 记录号 + */ + private String orderId; + + /** + * 轨道编号 + */ + private String queueCode; + + /** + * 产品编码 + */ + private String productCode; + + /** + * 产品通用名称 + */ + private String productName; + + /** + * 上货时间 + */ + private Date putTime; + + /** + * 数量 + */ + private Integer count; + + /** + * 包装规格(可选) + */ + private String bzgg; + + /** + * 计量单位(可选) + */ + private String unit; + + /** + * 批准文号(可选) + */ + private String approvalNum; + + /** + * 制剂单位(可选) + */ + private String prepnUnit; + + /** + * 制剂规格(可选) + */ + private String prepnSpec; + + /** + * 备用字段1(可选) + */ + private String remark1; + + /** + * 备用字段2(可选) + */ + private String remark2; + + /** + * 备用字段3(可选) + */ + private String remark3; + + /** + * 备用字段4(可选) + */ + private String remark4; + + /** + * 备用字段5(可选) + */ + private String remark5; +} diff --git a/src/main/java/com/glxp/api/req/drugMachine/SendGoodsB002Request.java b/src/main/java/com/glxp/api/req/drugMachine/SendGoodsB002Request.java new file mode 100644 index 000000000..8dbdc7074 --- /dev/null +++ b/src/main/java/com/glxp/api/req/drugMachine/SendGoodsB002Request.java @@ -0,0 +1,100 @@ +package com.glxp.api.req.drugMachine; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SendGoodsB002Request { + + + /** + * 记录号 + */ + private String orderId; + + /** + * 处方单号(可选) + */ + private String prescribeNum; + + /** + * 收货方(可选) + */ + private String fromCorp; + + /** + * 轨道编号 + */ + private String queueCode; + + /** + * 产品编码 + */ + private String productCode; + + /** + * 产品通用名称 + */ + private String productName; + + /** + * 发药时间 + */ + private Date disTime; + + /** + * 数量 + */ + private Integer count; + + /** + * 包装规格(可选) + */ + private String bzgg; + + /** + * 计量单位(可选) + */ + private String unit; + + /** + * 批准文号(可选) + */ + private String approvalNum; + + /** + * 制剂单位(可选) + */ + private String prepnUnit; + + /** + * 制剂规格(可选) + */ + private String prepnSpec; + + /** + * 备用字段1(可选) + */ + private String remark1; + + /** + * 备用字段2(可选) + */ + private String remark2; + + /** + * 备用字段3(可选) + */ + private String remark3; + + /** + * 备用字段4(可选) + */ + private String remark4; + + /** + * 备用字段5(可选) + */ + private String remark5; +} diff --git a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java index 3c080e846..944fbd7e8 100644 --- a/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java +++ b/src/main/java/com/glxp/api/service/collect/down/ThrOrderDownload.java @@ -109,7 +109,6 @@ public class ThrOrderDownload implements IDownload { if (BusTypeConstant.QXCF001.getBusType().equals(collectOrderRequest.getBusType())) { collectOrderBiz.setRelId(entity.getRelId()); - if (StrUtil.isNotEmpty(entity.getCheckCode())) { // 1. 先查询完全匹配的情况 LambdaQueryWrapper exactMatchWrapper = new LambdaQueryWrapper<>(); @@ -124,6 +123,7 @@ public class ThrOrderDownload implements IDownload { if (exactMatches.isEmpty()) { errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";"); } + } else { BasicProductsEntity basicProductsEntity = basicProductsDao.selectOne(new LambdaQueryWrapper().eq(BasicProductsEntity::getYbbm, entity.getYbbm()).last("limit 1")); if (basicProductsEntity == null || StrUtil.isEmpty(basicProductsEntity.getNameCode())) { diff --git a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java index db6f3d3da..729da4c4a 100644 --- a/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoSplitCodeService.java @@ -331,19 +331,19 @@ public class IoSplitCodeService extends ServiceImpl 0) { - List ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(),queueCode ); + List ioSplitFifoCodeEntities = splitFifoCodeService.findByRelId(putWorkPlaceCode, collectOrderBiz.getRelId(), collectOrderBiz.getBatchNo(), queueCode); if (ioSplitFifoCodeEntities.size() < quotient) { if (isAuto) throw new JsonException(500, "提交失败,工位库存数量不足!"); // else return; } - if (ioSplitFifoCodeEntities.size() > 0){ + if (ioSplitFifoCodeEntities.size() > 0) { for (int i = 0; i < quotient; i++) { IoSplitFifoCodeEntity splitFifoCodeEntity = ioSplitFifoCodeEntities.get(i); collectOrderBiz.setUnTagCount(IntUtil.value(collectOrderBiz.getUnTagCount()) - IntUtil.value(udiRelevanceResponse.getBhxjsl())); diff --git a/src/main/java/com/glxp/api/service/sync/HeartService.java b/src/main/java/com/glxp/api/service/sync/HeartService.java index 7038fb763..cfc7503c0 100644 --- a/src/main/java/com/glxp/api/service/sync/HeartService.java +++ b/src/main/java/com/glxp/api/service/sync/HeartService.java @@ -1882,6 +1882,7 @@ public class HeartService { // basicProductsDao.replaceBatchs(productsList, 1000); } if (CollectionUtil.isNotEmpty(relevanceList)) { + relevanceDao.replaceBatch(relevanceList); } if (CollectionUtil.isNotEmpty(corpList)) { corpDao.replaceBatch(corpList); diff --git a/src/main/java/com/glxp/api/service/thrsys/DrugMachineService.java b/src/main/java/com/glxp/api/service/thrsys/DrugMachineService.java new file mode 100644 index 000000000..5a16500e1 --- /dev/null +++ b/src/main/java/com/glxp/api/service/thrsys/DrugMachineService.java @@ -0,0 +1,60 @@ +package com.glxp.api.service.thrsys; + +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.http.ErpBasicClient; +import com.glxp.api.req.drugMachine.PutGoodsA001Request; +import com.glxp.api.req.drugMachine.PutGoodsB001Request; +import com.glxp.api.req.drugMachine.SendGoodsB002Request; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +@Slf4j +public class DrugMachineService { + + + @Resource + ErpBasicClient erpBasicClient; + + /** + * A001 + * 发药机上货接口1 + * 发药机提供接收接口,接收药械追溯管理系统的上货信息 + * @param putGoodsA001Request + * @return + */ + public BaseResponse putGoodsA001(PutGoodsA001Request putGoodsA001Request){ + return erpBasicClient.putGoodsA001(putGoodsA001Request,"thirdSys"); + } + + /** + * B001 + * 发药机上货接口2 + * 药械追溯管理系统提供接收接口,接收发药机上货信息 + * @param putGoodsB001Request + * @return + */ + public BaseResponse putGoodsB001(PutGoodsB001Request putGoodsB001Request) { + + // TODO: 2024/12/24 + return ResultVOUtils.success(); + } + + /** + * B002 + * 发药机发药接口 + * 药械追溯管理系统提供接收接口,接收发药机发药信息 + * @param sendGoodsB002Request + * @return + */ + public BaseResponse sendGoodsB002(SendGoodsB002Request sendGoodsB002Request) { + // TODO: 2024/12/24 + return ResultVOUtils.success(); + } + + + +}