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

workplace
wangwei 10 months ago
commit 7886e41d07

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import java.util.Date;
@ -13,6 +15,9 @@ import java.util.Date;
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("basic_udirel")
public class UdiRelevanceEntity {

@ -237,16 +237,17 @@ public class ErpBasicClient {
/**
*
*
* @param filterThrOrderRequest
* @return
*/
public BaseResponse<PageSimpleResponse<ThrOrderResponse>> getThrOrders(FilterThrOrderRequest filterThrOrderRequest) {
public BaseResponse<PageSimpleResponse<IoCollectOrder>> getThrOrders(FilterThrOrderRequest filterThrOrderRequest) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(filterThrOrderRequest.getThirdSys());
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/getThrOrders";
try {
String response = httpOkClient.uCloudPost(url, filterThrOrderRequest);
BaseResponse<PageSimpleResponse<ThrOrderResponse>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<ThrOrderResponse>>>() {
BaseResponse<PageSimpleResponse<IoCollectOrder>> listBaseResponse =
JSONObject.parseObject(response, new TypeReference<BaseResponse<PageSimpleResponse<IoCollectOrder>>>() {
});
return listBaseResponse;

@ -13,7 +13,7 @@ import java.util.List;
@Data
public class WorkBindBusTypeRequest extends ListPageRequest {
// private List<String> documentTypeCode;
// private List<String> documentTypeCode;
private Long workplaceCode;
private String code;
private String busKey;

@ -1,6 +1,5 @@
package com.glxp.api.service.collect;
import cn.hutool.core.util.StrUtil;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusTypeConstant;
@ -30,22 +29,14 @@ public class DownloadFactory {
*/
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
String busType = collectOrderRequest.getBusType();
if (StrUtil.isBlank(busType)) {
if (busType == null) {
return ResultVOUtils.error("下载失败,未配置业务类型");
}
if (busType.equals(BusTypeConstant.YPCF002.getBusType())) {
return ypcf002Download.downloadOrder(collectOrderRequest);
} else if (busType.equals(BusTypeConstant.CGJH001.getBusType())) {
return thrOrderDownload.downloadOrder(collectOrderRequest);
} else if (busType.equals(BusTypeConstant.LYRK.getBusType())) {
return thrOrderDownload.downloadOrder(collectOrderRequest);
} else if (busType.equals(BusTypeConstant.GMRK.getBusType())) {
return thrOrderDownload.downloadOrder(collectOrderRequest);
} else if (busType.equals(BusTypeConstant.LYCK.getBusType())) {
} else {
return thrOrderDownload.downloadOrder(collectOrderRequest);
}
return ResultVOUtils.error("下载失败,未配置业务类型");
}
}

@ -99,20 +99,20 @@ public class IoCollectOriginService {
public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) {
//条件
String busType = collectOrderRequest.getBusType();
if(StrUtil.isBlank(busType)){
if (StrUtil.isBlank(busType)) {
//下载工位下的类型
WorkBindBusTypeRequest workBindBusTypeRequest = new WorkBindBusTypeRequest();
workBindBusTypeRequest.setWorkplaceCode(collectOrderRequest.getWorkPlaceCode());
List<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterList(workBindBusTypeRequest);
if(CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)){
for (SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse :sysWorkplaceDocumentResponses){
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) {
for (SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse : sysWorkplaceDocumentResponses) {
String documentTypeCode = sysWorkplaceDocumentResponse.getDocumentTypeCode();
collectOrderRequest.setBusType(documentTypeCode);
downloadFactory.downloadOrder(collectOrderRequest);
}
}
return ResultVOUtils.success("下载成功");
}else{
} else {
return downloadFactory.downloadOrder(collectOrderRequest);
}
@ -121,28 +121,29 @@ public class IoCollectOriginService {
/**
*
*
* @param collectOrderRequest
*/
@Transactional(rollbackFor = Exception.class)
public void errorHandle(CollectOrderRequest collectOrderRequest) {
if (StrUtil.isBlank(collectOrderRequest.getBillNo())){
if (StrUtil.isBlank(collectOrderRequest.getBillNo())) {
throw new JsonException(500, "单据号不能为空");
}
if (collectOrderRequest.getTagStatus() != 4){
if (collectOrderRequest.getTagStatus() != 4) {
throw new JsonException(500, "非异常单据,无需处理");
}
if(StrUtil.isBlank(collectOrderRequest.getBusType())){
if (StrUtil.isBlank(collectOrderRequest.getBusType())) {
throw new JsonException(500, "单据类型不能为空");
}
if(collectOrderRequest.getWorkPlaceCode() == null){
if (collectOrderRequest.getWorkPlaceCode() == null) {
throw new JsonException(500, "工位号不能为空");
}
//删除异常单据
collectOrderBizService.remove(new LambdaQueryWrapper<IoCollectOrderBiz>()
.eq(IoCollectOrderBiz::getOrderIdFk,collectOrderRequest.getBillNo()));
.eq(IoCollectOrderBiz::getOrderIdFk, collectOrderRequest.getBillNo()));
collectOrderService.remove(new LambdaQueryWrapper<IoCollectOrder>()
.eq(IoCollectOrder::getBillNo,collectOrderRequest.getBillNo())
.eq(IoCollectOrder::getTagStatus,4));
.eq(IoCollectOrder::getBillNo, collectOrderRequest.getBillNo())
.eq(IoCollectOrder::getTagStatus, 4));
//重新拉取
this.downloadOrderV2(collectOrderRequest);
}

@ -7,8 +7,10 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.thrsys.ThrOrderDao;
import com.glxp.api.dao.thrsys.ThrOrderDetailDao;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
@ -19,6 +21,7 @@ import com.glxp.api.req.thrsys.FilterThrOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.util.MsDateUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -44,12 +47,12 @@ public class ThrOrderDownload implements IDownload {
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
LambdaQueryWrapper<ThrOrderEntity> w = new LambdaQueryWrapper<>();
w.eq(StrUtil.isNotBlank(collectOrderRequest.getBillNo()), ThrOrderEntity::getBillNo, collectOrderRequest.getBillNo());
List<ThrOrderEntity> thrOrderEntities = thrOrderDao.selectList(w);
if (CollUtil.isNotEmpty(thrOrderEntities)) {
return this.importThrOrder(thrOrderEntities, collectOrderRequest);
} else {
// LambdaQueryWrapper<ThrOrderEntity> w = new LambdaQueryWrapper<>();
// w.eq(StrUtil.isNotBlank(collectOrderRequest.getBillNo()), ThrOrderEntity::getBillNo, collectOrderRequest.getBillNo());
// List<ThrOrderEntity> thrOrderEntities = thrOrderDao.selectList(w);
// if (CollUtil.isNotEmpty(thrOrderEntities)) {
// return this.importThrOrder(thrOrderEntities, collectOrderRequest);
// } else {
//三方拉取
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
@ -59,35 +62,17 @@ public class ThrOrderDownload implements IDownload {
filterThrOrderRequest.setBusType(collectOrderRequest.getBusType());
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getThrOrders(filterThrOrderRequest);
if (baseResponse.getCode() == 20000) {
List<ThrOrderResponse> list = baseResponse.getData().getList();
if (CollUtil.isNotEmpty(list)) {
list.forEach(item -> {
ThrOrderEntity thrOrderEntity = new ThrOrderEntity();
BeanUtil.copyProperties(item, thrOrderEntity);
thrOrderEntity.setCreateTime(new Date());
thrOrderEntity.setUpdateTime(new Date());
List<ThrOrderDetailEntity> detailList = item.getDetailList();
if (CollUtil.isNotEmpty(detailList)) {
thrOrderDetailDao.delete(new LambdaQueryWrapper<ThrOrderDetailEntity>().eq(ThrOrderDetailEntity::getOrderIdFk, item.getBillNo()));
for (ThrOrderDetailEntity detail : detailList) {
detail.setCreateTime(thrOrderEntity.getCreateTime());
detail.setUpdateTime(thrOrderEntity.getUpdateTime());
thrOrderDetailDao.insert(detail);
}
}
thrOrderDao.insertOrUpdate(thrOrderEntity);
});
//再次获取
thrOrderEntities = thrOrderDao.selectList(w);
return this.importThrOrder(thrOrderEntities, collectOrderRequest);
}
}
List<IoCollectOrder> list = baseResponse.getData().getList();
return this.importThrOrder(list, collectOrderRequest);
}
return ResultVOUtils.error("下载失败");
}
// }
@Resource
UdiRelevanceDao udiRelevanceDao;
/**
*
@ -95,41 +80,31 @@ public class ThrOrderDownload implements IDownload {
* @param thrOrderEntities
* @param collectOrderRequest
*/
private BaseResponse importThrOrder(List<ThrOrderEntity> thrOrderEntities, CollectOrderRequest collectOrderRequest) {
private BaseResponse importThrOrder(List<IoCollectOrder> thrOrderEntities, CollectOrderRequest collectOrderRequest) {
List<IoCollectOrder> ioCollectOrderList = new ArrayList<>();
if (CollUtil.isNotEmpty(thrOrderEntities)) {
for (ThrOrderEntity thrOrder : thrOrderEntities) {
for (IoCollectOrder thrOrder : thrOrderEntities) {
IoCollectOrder ioCollectOrder = new IoCollectOrder();
BeanUtil.copyProperties(thrOrder, ioCollectOrder);
StringBuilder errorMsg = new StringBuilder();
ioCollectOrder.setBillNo(thrOrder.getBillNo());
ioCollectOrder.setFromType("HIS系统");
ioCollectOrder.setFromCorp(null);
ioCollectOrder.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
ioCollectOrder.setFromCorpName("");
ioCollectOrder.setBillTime(DateUtil.parseTime(thrOrder.getBilldate()));
ioCollectOrder.setCreateTime(new Date());
ioCollectOrder.setCreateUser(collectOrderRequest.getCreateUser());
ioCollectOrder.setBackupOrderRemark1(null);
ioCollectOrder.setUpdateTime(new Date());
ioCollectOrder.setSplitStatus(0);
ioCollectOrder.setTagStatus(0);
List<ThrOrderDetailEntity> thrOrderDetailEntities = thrOrderDetailDao.selectList(new LambdaQueryWrapper<ThrOrderDetailEntity>().eq(ThrOrderDetailEntity::getOrderIdFk, thrOrder.getBillNo()));
List<IoCollectOrderBiz> bizList = new ArrayList<>();
for (ThrOrderDetailEntity entity : thrOrderDetailEntities) {
for (IoCollectOrderBiz entity : thrOrder.getBizList()) {
IoCollectOrderBiz collectOrderBiz = new IoCollectOrderBiz();
// BasicUdirelEntity basicUdirelEntity = basicUdirelDao.selectOne(new LambdaQueryWrapper<BasicUdirelEntity>().eq(BasicUdirelEntity::getMainId, entity.getPHYSIC_CODE()));
// if (basicUdirelEntity != null) {
// collectOrderBiz.setRelId(basicUdirelEntity.getId());
// } else {
// errorMsg.append(entity.getPHYSIC_NAME()).append("字典未对照").append(";");
// }
collectOrderBiz.setThrCode(null);
collectOrderBiz.setCpmctymc(null);
collectOrderBiz.setGgxh(null);
collectOrderBiz.setBatchNo(entity.getBatchNo());
collectOrderBiz.setOrderIdFk(ioCollectOrder.getBillNo());
collectOrderBiz.setCount(entity.getCount());
collectOrderBiz.setMeasureUnit(null);
BeanUtil.copyProperties(entity, collectOrderBiz);
UdiRelevanceEntity basicUdirelEntity = udiRelevanceDao.selectOne(new LambdaQueryWrapper<UdiRelevanceEntity>().eq(UdiRelevanceEntity::getMainId, entity.getThrCode()));
if (basicUdirelEntity != null) {
collectOrderBiz.setRelId(basicUdirelEntity.getId());
} else {
errorMsg.append(entity.getCpmctymc()).append("字典未对照").append(";");
}
collectOrderBiz.setTagStatus(1);
collectOrderBiz.setUnTagCount(0);
bizList.add(collectOrderBiz);

@ -8,6 +8,7 @@ import com.glxp.api.req.basic.GetSickPrescribeRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -22,19 +23,29 @@ public class YPCF002Download implements IDownload{
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
int page = 1;
int limit = 100;
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setPage(1);
getSickPrescribeRequest.setLimit(100);
getSickPrescribeRequest.setLimit(limit);
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
while (true){
getSickPrescribeRequest.setPage(page);
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
if (baseResponse.getCode() == 20000) {
List<IoCollectOrder> list = baseResponse.getData().getList();
collectOrderService.importPrescribe(list,collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
if ((list.size() >= limit && !baseResponse.getData().getTotal().equals(-666)) || IntUtil.value(baseResponse.getData().getTotal()) == -555) {
page++;
} else {
break;
}
}else {
return ResultVOUtils.error(500, "下载第三方系统产品信息异常");
}
return ResultVOUtils.error("下载失败");
}
return ResultVOUtils.success("下载成功");
}
}

Loading…
Cancel
Save