Merge remote-tracking branch 'origin/dev_fifo_z' into dev_fifo_z

dev_unify
wangwei 7 months ago
commit bfd75a8285

@ -423,9 +423,9 @@ public class UdiRelevanceController extends BaseController {
try {
ThreadUtil.execAsync(() -> {
CodeRel codeRel = new CodeRel();
if(udiProductEntity.getProductsType() == null || udiProductEntity.getProductsType() == 1){
if (udiProductEntity.getProductsType() == null || udiProductEntity.getProductsType() == 1) {
codeRel.setDiNameCode(udiRelevanceSaveRequest.getNameCode());
}else {
} else {
codeRel.setDrugCode(udiRelevanceSaveRequest.getNameCode());
}
codeRel.setYbbm(udiRelevanceSaveRequest.getYbbm());
@ -434,8 +434,8 @@ public class UdiRelevanceController extends BaseController {
codeRel.setUpdateTime(new Date());
spsDirectClient.updateCodeRelDetail(codeRel);
});
}catch (Exception e){
System.out.println("上传多码融合:"+e);
} catch (Exception e) {
System.out.println("上传多码融合:" + e);
}
return ResultVOUtils.success("更新成功");

@ -829,9 +829,14 @@ public class IoCodeTempController extends BaseController {
}
} else {
if (IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) {
if (udiRelevanceResponse.getDistributeMaxLevel() != null && IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) {
return ResultVOUtils.error(500, "当前产品不支持采集该包装层级追溯码!");
}
if (udiRelevanceResponse.getDistributeMaxLevel() == null && IntUtil.value(udiRelevanceResponse.getPackLevel()) > 1) {
return ResultVOUtils.error(500, "当前产品不支持采集该包装层级追溯码!");
}
if (IntUtil.value(udiRelevanceResponse.getPackLevel()) < IntUtil.value(udiRelevanceResponse.getDistributeLevel())) {
return ResultVOUtils.error(500, "当前产品不支持采集该包装层级追溯码!");
}
@ -1366,9 +1371,14 @@ public class IoCodeTempController extends BaseController {
}
} else {
if (IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) {
if (udiRelevanceResponse.getDistributeMaxLevel() != null && IntUtil.value(udiRelevanceResponse.getDistributeMaxLevel()) < IntUtil.value(udiRelevanceResponse.getPackLevel())) {
return ResultVOUtils.error(500, "当前产品不支持采集该包装层级追溯码!");
}
if (udiRelevanceResponse.getDistributeMaxLevel() == null && IntUtil.value(udiRelevanceResponse.getPackLevel()) > 1) {
return ResultVOUtils.error(500, "当前产品不支持采集该包装层级追溯码!");
}
if (IntUtil.value(udiRelevanceResponse.getPackLevel()) < IntUtil.value(udiRelevanceResponse.getDistributeLevel())) {
return ResultVOUtils.error(500, "当前产品不支持采集该包装层级追溯码!");
}

@ -286,7 +286,7 @@ public class ErpBasicClient {
return listBaseResponse;
} catch (Exception e) {
log.error("获取医保单据信息", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错"+e.getMessage());
return ResultVOUtils.error(500, "连接第三方系统接口服务出错" + e.getMessage());
}
}
@ -503,7 +503,7 @@ public class ErpBasicClient {
}
}
public BaseResponse<Map<String,String[]>> getBuyType(String thirdSys) {
public BaseResponse<Map<String, String[]>> getBuyType(String thirdSys) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(thirdSys);
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getBuyType";
try {
@ -511,14 +511,14 @@ public class ErpBasicClient {
if (StrUtil.isEmpty(response)) {
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
BaseResponse<Map<String,String[]>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<Map<String,String[]>>>() {
BaseResponse<Map<String, String[]>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<Map<String, String[]>>>() {
});
return listBaseResponse;
} catch (Exception e) {
log.error("获取交易类型集合", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错"+e.getMessage());
return ResultVOUtils.error(500, "连接第三方系统接口服务出错" + e.getMessage());
}
}
}

@ -19,4 +19,6 @@ public interface CompanyProductRelevanceService extends IService<CompanyProductR
boolean deleteByRlId(String id);
boolean isExitByRelId(String relId);
String insertOrReadId(Long udiRlIdFk, String unitId);
}

@ -2,6 +2,7 @@ package com.glxp.api.service.basic.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
@ -15,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@ -59,4 +61,25 @@ public class CompanyProductRelevanceServiceImpl extends ServiceImpl<CompanyProdu
public boolean isExitByRelId(String relId) {
return companyProductRelevanceDao.exists(new QueryWrapper<CompanyProductRelevanceEntity>().eq("udiRlIdFk", relId));
}
@Override
public String insertOrReadId(Long udiRlIdFk, String unitId) {
CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceDao.selectOne(new LambdaQueryWrapper<CompanyProductRelevanceEntity>()
.eq(CompanyProductRelevanceEntity::getUdiRlIdFk, udiRlIdFk)
.eq(CompanyProductRelevanceEntity::getUnitFk, unitId).last("limit 1"));
if (companyProductRelevanceEntity != null) {
return companyProductRelevanceEntity.getCustomerId();
} else {
companyProductRelevanceEntity = new CompanyProductRelevanceEntity();
companyProductRelevanceEntity.setId(IdUtil.getSnowflakeNextId());
companyProductRelevanceEntity.setCustomerId(unitId);
companyProductRelevanceEntity.setUnitFk(unitId);
companyProductRelevanceEntity.setUdiRlIdFk(udiRlIdFk);
companyProductRelevanceEntity.setUpdateTime(new Date());
companyProductRelevanceEntity.setCreateTime(new Date());
companyProductRelevanceDao.insertCompanyProductRelevance(companyProductRelevanceEntity);
}
return null;
}
}

@ -19,6 +19,7 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.entity.collect.*;
import com.glxp.api.entity.inout.IoCodeEntity;
import com.glxp.api.entity.inout.IoCodeTempEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.system.SystemParamConfigEntity;
@ -32,6 +33,7 @@ import com.glxp.api.req.inout.ReviewFinishRequest;
import com.glxp.api.res.basic.BasicSkPrescribeResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.basic.CompanyProductRelevanceService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
import com.glxp.api.service.basic.UdiRlSupService;
@ -40,6 +42,8 @@ import com.glxp.api.service.inout.IoCheckInoutService;
import com.glxp.api.service.inout.IoOrderService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.util.*;
import lombok.extern.slf4j.Slf4j;
import org.jfree.util.Log;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
@ -47,11 +51,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@Service
public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBackupMapper, IoCollectOrderBackup> {
@ -161,6 +164,9 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
}
@Resource
CompanyProductRelevanceService companyProductRelevanceService;
@Transactional(rollbackFor = Exception.class)
public void generateOrder(String billNo, AuthAdmin authAdmin) {
@ -201,6 +207,21 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodes) {
lossCodesList.add(buildCodeEntity(collectOrderCodeMan, orderEntity));
}
/**
*
*/
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_SP) {
Map<Long, List<IoCodeTempEntity>> groupedMap = lossCodesList.stream()
.collect(Collectors.groupingBy(IoCodeTempEntity::getRelId));
groupedMap.forEach((key, value) -> {
companyProductRelevanceService.insertOrReadId(key, collectOrder.getFromCorp());
});
for (IoCodeTempEntity codeTempEntity : lossCodesList) {
codeTempEntity.setSupId(collectOrder.getFromCorp());
}
}
orderService.insertOrder(orderEntity);
codesTempDao.insertBatch(lossCodesList);
addInoutService.dealProcess(orderEntity);
@ -229,71 +250,9 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
}
updateReview(authAdmin, orderEntity);
}
} else if (IntUtil.value(sysWorkplaceDocumentEntity.getIsMatching()) == 0) {
//todo 根据单据类型上传医保或者第三方系统
PostCollectOrderRequest orderRequest = new PostCollectOrderRequest();
orderRequest.setThirdSys("thirdId");
orderRequest.setWebTitle(WEB_TITLE);
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrder.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = combieOrderDetail(collectOrderBizRequest);
collectOrder.setCollectOrderBizResponseList(collectOrderBizResponses);
List<IoCollectCodeBackup> list = ioCollectCodeBackService.list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, collectOrder.getBillNo()));
collectOrder.setCodeList(list);
List<IoCollectOrderBackup> collectOrderList = new ArrayList<>();
collectOrderList.add(collectOrder);
orderRequest.setCollectOrderList(collectOrderList);
// 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading");
if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) {
List<String> codeList = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
String[] codes = collectOrderBizResponse.getFinishUdiCode().split(",");
// 遍历fruits数组
for (String code : codes) {
if (StrUtil.isNotBlank(code)) {
List<RelCodeDetail> relCodeDetailList = relCodeDetailService.getAllNext(code);
if (relCodeDetailList != null && relCodeDetailList.size() > 0) {
for (RelCodeDetail relCodeDetail : relCodeDetailList) {
codeList.add(relCodeDetail.getCurCode());
}
}
}
}
}
BaseResponse<List> baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList);
if (baseResponseCheckCode.getCode() == 20000) {
List listCheckCode = baseResponseCheckCode.getData();
if (listCheckCode == null || listCheckCode.size() > 0) {
log.error("单据的所有码有已经传输过医保的,请核实");
throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponseCheckCode.getMessage());
}
} else {
throw new JsonException("查询码关联关系服务出错," + baseResponseCheckCode.getMessage());
}
}
// 医保上传
BaseResponse<BasicSkPrescribeResponse> baseResponse = erpBasicClient.postOrder(orderRequest);
log.debug("单据返回=========" + baseResponse);
if (baseResponse.getCode() == 20000) {
// 触发上传 转发至中继服务 到外网 再到国家同步库
ThreadUtil.execAsync(() -> {
BaseResponse<String> stringBaseResponse = new BaseResponse<>();
try {
stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest);
} catch (Exception e) {
throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage());
}
});
} else {
throw new JsonException("连接第三方系统接口服务出错," + baseResponse.getMessage());
}
}
uploadThrid(collectOrder);
// //插入处方备份表
// IoCollectOrderBackup ioCollectOrderBackup = new IoCollectOrderBackup();
// BeanUtils.copyProperties(collectOrder, ioCollectOrderBackup);
@ -312,6 +271,72 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
// }
}
public void uploadThrid(IoCollectOrderBackup collectOrder) {
//todo 根据单据类型上传医保或者第三方系统
PostCollectOrderRequest orderRequest = new PostCollectOrderRequest();
orderRequest.setThirdSys("thirdId");
orderRequest.setWebTitle(WEB_TITLE);
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(collectOrder.getBillNo());
List<CollectOrderBizResponse> collectOrderBizResponses = combieOrderDetail(collectOrderBizRequest);
collectOrder.setCollectOrderBizResponseList(collectOrderBizResponses);
List<IoCollectCodeBackup> list = ioCollectCodeBackService.list(new LambdaQueryWrapper<IoCollectCodeBackup>().eq(IoCollectCodeBackup::getBillNo, collectOrder.getBillNo()));
collectOrder.setCodeList(list);
List<IoCollectOrderBackup> collectOrderList = new ArrayList<>();
collectOrderList.add(collectOrder);
orderRequest.setCollectOrderList(collectOrderList);
// 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading");
if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) {
List<String> codeList = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
String[] codes = collectOrderBizResponse.getFinishUdiCode().split(",");
// 遍历fruits数组
for (String code : codes) {
if (StrUtil.isNotBlank(code)) {
List<RelCodeDetail> relCodeDetailList = relCodeDetailService.getAllNext(code);
if (relCodeDetailList != null && relCodeDetailList.size() > 0) {
for (RelCodeDetail relCodeDetail : relCodeDetailList) {
codeList.add(relCodeDetail.getCurCode());
}
}
}
}
}
BaseResponse<List> baseResponseCheckCode = erpBasicClient.collectOrderCheckCodeUploading(codeList);
if (baseResponseCheckCode.getCode() == 20000) {
List listCheckCode = baseResponseCheckCode.getData();
if (listCheckCode == null || listCheckCode.size() > 0) {
log.error("单据的所有码有已经传输过医保的,请核实");
throw new JsonException("此单据的所有码有已经传输过医保的,请核实" + baseResponseCheckCode.getMessage());
}
} else {
throw new JsonException("查询码关联关系服务出错," + baseResponseCheckCode.getMessage());
}
}
// 医保上传
BaseResponse<BasicSkPrescribeResponse> baseResponse = erpBasicClient.postOrder(orderRequest);
log.debug("单据返回=========" + baseResponse);
if (baseResponse.getCode() == 20000) {
// 触发上传 转发至中继服务 到外网 再到国家同步库
ThreadUtil.execAsync(() -> {
BaseResponse<String> stringBaseResponse = new BaseResponse<>();
try {
stringBaseResponse = erpBasicClient.collectOrderUpload(orderRequest);
} catch (Exception e) {
throw new JsonException("触发上传 转发至中继服务 到外网 再到国家同步库 接口服务出错:" + stringBaseResponse.getMessage());
}
});
}
if (baseResponse.getCode() == 520) {
Log.error("上传失败," + baseResponse.getMessage());
} else {
throw new JsonException("连接第三方系统接口服务出错," + baseResponse.getMessage());
}
}
@Resource
UdiRlSupService udiRlSupService;

@ -4897,5 +4897,5 @@ INSERT IGNORE INTO auth_menu(`menu_id`, `menu_name`, `parent_id`, `order_num`, `
`is_frame`,
`is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`,
`update_by`, `update_time`, `remark`)
VALUES (6001, '医保上传统计', 5210, 999, 'inout/split/tag/stats', 'collect/CollectOrderStats', NULL, 1, 0, 'C', '0', '0', NULL, '', '超级用户', '2024-11-18 17:46:08', NULL, NULL, NULL);
VALUES (6001, '医保上传统计', 5210, 999, 'inout/split/tag/stats', 'collect/CollectOrderStatsNew', NULL, 1, 0, 'C', '0', '0', NULL, '', '超级用户', '2024-11-18 17:46:08', NULL, NULL, NULL);

Loading…
Cancel
Save