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

workplace
wangwei 10 months ago
commit e6e0ece77a

@ -0,0 +1,33 @@
package com.glxp.api.constant;
public enum BusTypeConstant {
YPCF002("药品处方单","YPCF002"),
CGJH001("采购计划","CGJH001"),
LYRK("领药入库","LYRK"),
GMRK("购买入库","GMRK"),
LYCK("领药出库","LYCK"),
;
private String name;
private String busType;
BusTypeConstant(String name, String busType) {
this.name = name;
this.busType = busType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBusType() {
return busType;
}
public void setBusType(String busType) {
this.busType = busType;
}
}

@ -10,4 +10,7 @@ public interface ConstantType {
String SPLIT_RETURN = "SC72249388338364"; //拆零退货
String SPLIT_OUT = "SC72197936495755"; //拆零出库
String SPLIT_CORP = "72198012799726";
}

@ -1,5 +1,6 @@
package com.glxp.api.controller.collect;
import cn.hutool.core.collection.CollUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
@ -11,6 +12,8 @@ import com.glxp.api.req.inout.AddTagCodeReqeust;
import com.glxp.api.req.inout.DeleteTageCodeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.CollectOrderCodeManResponse;
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.res.inout.VailTagResultResponse;
import com.glxp.api.service.auth.SysWorkplaceService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.collect.IoCollectOrderBizService;
@ -18,6 +21,7 @@ import com.glxp.api.service.collect.IoCollectOrderCodeManService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.util.GennerOrderUtils;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONException;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -26,6 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@ -37,15 +42,6 @@ public class IoCollectOrderCodeManController extends BaseController {
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
GennerOrderUtils gennerOrderUtils;
@Resource
SysWorkplaceService sysWorkPlaceService;
/**
*
@ -82,6 +78,38 @@ public class IoCollectOrderCodeManController extends BaseController {
return ResultVOUtils.success(collectOrder);
}
/**
* )
*
* @return
*/
@PostMapping("/udiwms/ioSplit/collect/order/batchAddCode")
public BaseResponse batchAddCode(@RequestBody @Valid AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
IoCollectOrder collectOrder = null;
VailTagResultResponse vailTagResultResponse = new VailTagResultResponse();
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) {
for (String code : addTagCodeReqeust.getCodeList()) {
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
addTagCodeReqeust.setCode(code);
vailCodeResultResponse.setCode(code);
try {
collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust);
} catch (JSONException e) {
vailCodeResultResponse.setErrMsg(e.getMessage());
vailCodeResultResponse.setStatus(2);
}
}
}
vailTagResultResponse.setCollectOrder(collectOrder);
vailTagResultResponse.setVailCodeResultResponses(vailCodeResultResponses);
return ResultVOUtils.success(vailCodeResultResponses);
}
@PostMapping("/udiwms/ioSplit/collect/code/remove")
public BaseResponse removeCode(@RequestBody @Valid DeleteTageCodeRequest deleteTageCodeRequest,

@ -30,6 +30,7 @@ public class IoCollectOriginController {
/**
*
*
* @param collectOrderRequest
* @return
*/

@ -8,6 +8,7 @@ import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.service.inout.impl.IoCodeService;
@ -44,6 +45,7 @@ import com.glxp.api.util.*;
import com.glxp.api.util.udi.FilterUdiUtils;
import com.glxp.api.util.udi.UdiCalCountUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
@ -91,8 +93,6 @@ public class IoCodeTempController extends BaseController {
@Resource
IoCodeService codeService;
@Resource
InvPreProductDetailService invPreProductDetailService;
@Resource
IoAddInoutService ioAddInoutService;
@Resource
IoOrderDetailCodeService ioOrderDetailCodeService;
@ -282,7 +282,7 @@ public class IoCodeTempController extends BaseController {
UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
if (checkUdi == null) {
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
return ResultVOUtils.error(500, "产品字典不存在此产品!");
}
boolean checkSuccess = true;
String lostMsg = "";
@ -338,6 +338,110 @@ public class IoCodeTempController extends BaseController {
}
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/batchVailCode")
public BaseResponse batchVailCode(@RequestBody AddEnterCodeRequest addEnterCodeRequest) {
List<String> codeList = addEnterCodeRequest.getCodeList();
if (CollUtil.isEmpty(codeList))
return ResultVOUtils.error(500, "追溯码不能为空");
codeList = codeList.stream().distinct().collect(Collectors.toList());
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
for (String code : codeList) {
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(1);
vailCodeResultResponse.setErrMsg("解析正确");
vailCodeResultResponses.add(vailCodeResultResponse);
if (udiEntity == null) {
vailCodeResultResponse.setStatus(2);
vailCodeResultResponse.setErrMsg("追溯码格式错误");
continue;
}
UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
if (checkUdi == null) {
vailCodeResultResponse.setStatus(2);
vailCodeResultResponse.setErrMsg("产品字典不存在此产品");
continue;
}
}
return ResultVOUtils.success(vailCodeResultResponses);
}
@RepeatSubmit()
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/batchAddCode")
@CusRedissonAnnotation(cacheName = RedissonCacheKey.WEB_ADD_CODE, key = {"#addOrderCodeRequest.corpOrderId", "#addOrderCodeRequest.codeList"}, timeOutMsg = "系统正在处理,请勿重复提交")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse batchAddCode(@RequestBody AddOrderCodeRequest addOrderCodeRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
AddCodeResult addCodeResult = new AddCodeResult();
List<String> codeList = addOrderCodeRequest.getCodeList();
if (CollUtil.isEmpty(codeList))
return ResultVOUtils.error(500, "追溯码不能为空");
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
for (String code : codeList) {
AddOrderRequest addOrderRequest = new AddOrderRequest();
BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest);
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo());
}
if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) {
udiEntity.setProduceDate(addOrderRequest.getProduceDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) {
udiEntity.setExpireDate(addOrderRequest.getExpireDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
AuthAdmin authAdmin = getUser();
addOrderRequest.setInvCode(authAdmin.getLocInvCode());
if (IntUtil.value(addOrderCodeRequest.getInoutType()) == 2) {
addOrderRequest.setAction(ConstantType.SPLIT_RETURN);
} else {
addOrderRequest.setAction(ConstantType.SPLIT_OUT);
}
addOrderRequest.setFromCorp(ConstantType.SPLIT_CORP);
BaseResponse baseResponse = null;
if (IntUtil.value(udiEntity.getProductType()) == 2) {
baseResponse = adddGrugOrder(addOrderRequest, udiEntity, code);
} else {
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code);
}
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
if (baseResponse.getCode() == 20000) {
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(1);
vailCodeResultResponse.setErrMsg("正确");
AddCodeResult temp = (AddCodeResult) baseResponse.getData();
addCodeResult.setOrderId(temp.getOrderId());
} else {
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(2);
vailCodeResultResponse.setErrMsg(baseResponse.getMessage());
}
vailCodeResultResponses.add(vailCodeResultResponse);
}
addCodeResult.setVailCodeResultResponses(vailCodeResultResponses);
return ResultVOUtils.success();
}
public String checkNewCode(UdiEntity originEnity, String newCode) {
UdiEntity newEntity = FilterUdiUtils.getUdi(originEnity.getUdi() + newCode);
if (newEntity == null || originEnity == null) {
@ -396,10 +500,9 @@ public class IoCodeTempController extends BaseController {
} else {
return addMaterOrder(addOrderRequest, udiEntity, code);
}
}
@Transactional(rollbackFor = Exception.class)
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
AddCodeResult addCodeResult = new AddCodeResult();
@ -981,12 +1084,12 @@ public class IoCodeTempController extends BaseController {
return ResultVOUtils.success(addCodeResult);
}
@Transactional(rollbackFor = Exception.class)
public BaseResponse adddGrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
AddCodeResult addCodeResult = new AddCodeResult();
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
//批次号校验
//判断此产品是否开启允许无批次号
UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi());

@ -12,6 +12,7 @@ import com.glxp.api.entity.basic.BasicSkProjectEntity;
import com.glxp.api.entity.basic.BasicSkSickerEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.thrsys.ThrManufacturerEntity;
import com.glxp.api.entity.thrsys.ThrOrderEntity;
import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity;
import com.glxp.api.entity.thrsys.ThrSystemEntity;
import com.glxp.api.exception.JsonException;
@ -32,6 +33,7 @@ import com.glxp.api.res.basic.BasicSkSickerResponse;
import com.glxp.api.res.chs.YbHcflEntityResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.res.thrsys.ThrCorpsResponse;
import com.glxp.api.res.thrsys.ThrOrderResponse;
import com.glxp.api.res.thrsys.ThrProductsResponse;
import com.glxp.api.res.thrsys.UdiwmsWarehouseDetail;
import com.glxp.api.service.thrsys.ThrSystemService;
@ -233,6 +235,28 @@ public class ErpBasicClient {
}
/**
*
* @param filterThrOrderRequest
* @return
*/
public BaseResponse<PageSimpleResponse<ThrOrderResponse>> 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>>>() {
});
return listBaseResponse;
} catch (Exception e) {
log.error("获取三方单据信息", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
}
/**
*
*

@ -2,10 +2,14 @@ package com.glxp.api.req.inout;
import lombok.Data;
import java.util.List;
@Data
public class AddEnterCodeRequest {
private String originCode;
private String workPlaceCode;
private String busType;
private String code;
private List<String> codeList;
private String viewType;
}

@ -0,0 +1,47 @@
package com.glxp.api.req.inout;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class AddOrderCodeRequest {
/**
*
*/
@NotNull(message = "工位编码不能为空")
private Long workPlaceCode;
/**
*
*/
@NotNull(message = "业务类型不能为空")
private String splitBusType;
/**
*
*/
@NotNull(message = "本地单号不能为空")
private String corpOrderId;
/**
*
*/
private String code;
/**
*
*/
@NotNull(message = "溯码不能为空")
private List<String> codeList;
/**
* 1:2退
*/
@NotNull(message = "上货方式不能为空")
private Integer inoutType;
/**
*
*/
private String billNo;
}

@ -3,6 +3,7 @@ package com.glxp.api.req.inout;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class AddTagCodeReqeust {
@ -15,16 +16,40 @@ public class AddTagCodeReqeust {
/**
* udi/
*/
@NotNull(message = "追溯码不能为空")
private String code;
/**
*
*/
private List<String> codeList;
/**
*
*/
private String billNo;
/**
*
*/
private Long workPlaceCode;
/**
*
*/
private String fromCorp;
/**
*
*/
private String fromCorpName;
/**
*
*/
private String invCode;
/**
*
*/
private Boolean insert;
/**
*
*/
private String busType;

@ -33,5 +33,14 @@ public class FilterThrOrderRequest extends ListPageRequest {
private String thirdAction;
private String thirdOrderFk;
private Integer allocateStatus;
/**
*
*/
private Long workPlaceCode;
/**
*
*/
private String fromType;
private String busType;
private List<ThrOrderResponse> erpOrderResponses;
}

@ -2,8 +2,11 @@ package com.glxp.api.res.inout;
import lombok.Data;
import java.util.List;
@Data
public class AddCodeResult {
private String orderId;
private String errMsg;
List<VailCodeResultResponse> vailCodeResultResponses;
}

@ -0,0 +1,14 @@
package com.glxp.api.res.inout;
import lombok.Data;
@Data
public class VailCodeResultResponse {
private String code;
/**
* 1:2
*/
private Integer status;
private String errMsg;
}

@ -0,0 +1,13 @@
package com.glxp.api.res.inout;
import com.glxp.api.entity.collect.IoCollectOrder;
import lombok.Data;
import java.util.List;
@Data
public class VailTagResultResponse {
IoCollectOrder collectOrder;
private List<VailCodeResultResponse> vailCodeResultResponses;
}

@ -1,6 +1,7 @@
package com.glxp.api.res.thrsys;
import com.baomidou.mybatisplus.annotation.TableField;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
import lombok.Data;
import java.math.BigDecimal;
@ -20,7 +21,7 @@ public class ThrOrderResponse {
private String fromInvCode; //往来仓库
private String thirdSysFk;
private List<ThrOrderDetailEntity> detailList;
private List<ThrOrderResponse.SubErpOrder> subErpOrders;
//增加字段

@ -0,0 +1,49 @@
package com.glxp.api.service.collect;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.BusTypeConstant;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.service.collect.down.*;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
*
*/
@Component
public class DownloadFactory {
@Resource
private YPCF002Download ypcf002Download;
@Resource
private ThrOrderDownload thrOrderDownload;
/**
*
*
* @param collectOrderRequest
* @return
*/
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
String busType = collectOrderRequest.getBusType();
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())) {
return thrOrderDownload.downloadOrder(collectOrderRequest);
}
return ResultVOUtils.error("下载失败,未配置业务类型");
}
}

@ -141,6 +141,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.billNo(orderNo)
.busType(sysWorkplaceDocumentEntity.getDocumentTypeCode())
.fromCorp(addTagCodeReqeust.getFromCorp())
.fromCorpName(addTagCodeReqeust.getFromCorpName())
.billTime(new Date())
.workPlaceCode(workPlace.getWorkplaceId())
.createTime(new Date())
@ -430,7 +431,7 @@ public class IoCollectOrderCodeManService extends ServiceImpl<IoCollectOrderCode
.payFeeCode(udiRelevanceResponse.getPayFeeCode())
.cpmctymc(udiRelevanceResponse.getCpmctymc())
.nameCode(udiRelevanceResponse.getNameCode())
.ggxh(udiRelevanceResponse.getGgxh())
.ggxh(StrUtil.isNotEmpty(udiRelevanceResponse.getGgxh()) ? udiRelevanceResponse.getGgxh() : udiRelevanceResponse.getBzgg())
.batchNo(udiEntity.getBatchNo())
.productDate(udiEntity.getProduceDate())
.expireDate(udiEntity.getExpireDate())

@ -420,7 +420,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
.payFeeCode(udiRelevanceResponse.getPayFeeCode())
.cpmctymc(bizEntity.getItemName())
.nameCode(udiRelevanceResponse.getNameCode())
.ggxh(bizEntity.getGgxh())
.batchNo(bizEntity.getBatchNo())
.count((int) doubleValue)
.measureUnit(bizEntity.getMeasureUnit())
@ -428,7 +427,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
.unTagCount(bizEntity.getCount()).build();
if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 2) {
collectOrderBiz.setGgxh(udiRelevanceResponse.getBzgg());
collectOrderBiz.setMeasureUnit(udiRelevanceResponse.getPrepnUnit());
}
collectOrderBizs.add(collectOrderBiz);
@ -447,6 +445,7 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
/**
*
*
* @param ioCollectOrderList
* @param addr
*/
@ -508,7 +507,6 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
collectOrderBiz.setPayFeeCode(udiRelevanceResponse.getPayFeeCode());
collectOrderBiz.setNameCode(udiRelevanceResponse.getNameCode());
if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 2) {
collectOrderBiz.setGgxh(udiRelevanceResponse.getBzgg());
collectOrderBiz.setMeasureUnit(udiRelevanceResponse.getPrepnUnit());
}
}
@ -688,6 +686,9 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
}
@Resource
UdiRlSupService udiRlSupService;
private IoCodeTempEntity buildCodeEntity(IoCollectOrderCodeMan collectOrderCodeMan, IoOrderEntity orderEntity) {
IoCodeTempEntity tempEntity = new IoCodeTempEntity();
tempEntity.setOrderId(orderEntity.getBillNo());
@ -704,6 +705,9 @@ public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoC
tempEntity.setReCount(collectOrderCodeMan.getScanCount());
tempEntity.setCreateTime(new Date());
tempEntity.setUpdateTime(new Date());
CompanyProductRelevanceEntity udiRlSupEntity = udiRlSupService.selOneByRlId(tempEntity.getRelId());
if (udiRlSupEntity != null)
tempEntity.setSupId(udiRlSupEntity.getCustomerId());
tempEntity.setDeptCode(orderEntity.getDeptCode());
return tempEntity;
}

@ -47,6 +47,8 @@ public class IoCollectOriginService {
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
private DownloadFactory downloadFactory;
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
@ -90,23 +92,8 @@ public class IoCollectOriginService {
}
public BaseResponse downloadOrderV2(CollectOrderRequest collectOrderRequest) {
//拉取药品处方
if (collectOrderRequest.getBusType().equals("YPCF002")) {
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setPage(1);
getSickPrescribeRequest.setLimit(100);
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
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("下载成功");
}
}
return ResultVOUtils.error("下载失败");
//条件
return downloadFactory.downloadOrder(collectOrderRequest);
}

@ -0,0 +1,12 @@
package com.glxp.api.service.collect.down;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.req.collect.CollectOrderRequest;
/**
*
*/
public interface IDownload {
BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest);
}

@ -0,0 +1,149 @@
package com.glxp.api.service.collect.down;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
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.thrsys.ThrOrderDao;
import com.glxp.api.dao.thrsys.ThrOrderDetailDao;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.thrsys.ThrOrderDetailEntity;
import com.glxp.api.entity.thrsys.ThrOrderEntity;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.collect.CollectOrderRequest;
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* CGJH001
* LYRK GMRK LYCK
*/
@Service
public class ThrOrderDownload implements IDownload {
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService collectOrderService;
@Resource
private ThrOrderDao thrOrderDao;
@Resource
private ThrOrderDetailDao thrOrderDetailDao;
@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 {
//三方拉取
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
filterThrOrderRequest.setPage(1);
filterThrOrderRequest.setLimit(100);
filterThrOrderRequest.setBillNo(collectOrderRequest.getBillNo());
filterThrOrderRequest.setThirdSys("thirdId");
filterThrOrderRequest.setBusType(collectOrderRequest.getBusType());
filterThrOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
filterThrOrderRequest.setFromType(collectOrderRequest.getFromType());
BaseResponse<PageSimpleResponse<ThrOrderResponse>> 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);
}
}
}
return ResultVOUtils.error("下载失败");
}
/**
*
*
* @param thrOrderEntities
* @param collectOrderRequest
*/
private BaseResponse importThrOrder(List<ThrOrderEntity> thrOrderEntities, CollectOrderRequest collectOrderRequest) {
List<IoCollectOrder> ioCollectOrderList = new ArrayList<>();
if (CollUtil.isNotEmpty(thrOrderEntities)) {
for (ThrOrderEntity thrOrder : thrOrderEntities) {
IoCollectOrder ioCollectOrder = new 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) {
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);
collectOrderBiz.setTagStatus(1);
collectOrderBiz.setUnTagCount(0);
bizList.add(collectOrderBiz);
}
if (StrUtil.isNotBlank(errorMsg)) {
ioCollectOrder.setErrorMsg(errorMsg.toString());
ioCollectOrder.setTagStatus(4);
}
ioCollectOrder.setBizList(bizList);
ioCollectOrderList.add(ioCollectOrder);
}
collectOrderService.importPrescribe(ioCollectOrderList, collectOrderRequest.getBusType());
return ResultVOUtils.success("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}

@ -0,0 +1,40 @@
package com.glxp.api.service.collect.down;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.http.ErpBasicClient;
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class YPCF002Download implements IDownload{
@Resource
private ErpBasicClient erpBasicClient;
@Resource
private IoCollectOrderService collectOrderService;
@Override
public BaseResponse downloadOrder(CollectOrderRequest collectOrderRequest) {
GetSickPrescribeRequest getSickPrescribeRequest = new GetSickPrescribeRequest();
getSickPrescribeRequest.setPage(1);
getSickPrescribeRequest.setLimit(100);
getSickPrescribeRequest.setCode(collectOrderRequest.getBillNo());
getSickPrescribeRequest.setThirdSys("thirdId");
getSickPrescribeRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
getSickPrescribeRequest.setFromType(collectOrderRequest.getFromType());
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("下载成功");
}
return ResultVOUtils.error("下载失败");
}
}

@ -587,10 +587,11 @@ public class IoSplitCodeService extends ServiceImpl<IoSplitCodeMapper, IoSplitCo
removeIds.add(splitFifoCodeEntity.getId());
IoSplitFifoInv splitFifoInv = splitFifoInvService.findByFifoCode(splitFifoCodeEntity);
if (splitFifoInv != null) {
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitCodeEntity.getTotalCount()));
splitFifoInv.setLockCount(IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitCodeEntity.getTotalCount()));
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount() - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount())));
splitFifoInv.setOutCount(IntUtil.value(splitFifoInv.getOutCount()) + IntUtil.value(splitFifoCodeEntity.getTotalCount()));
int lockCount = IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoCodeEntity.getTotalCount());
splitFifoInv.setLockCount(lockCount > 0 ? lockCount : 0);
splitFifoInv.setReCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInv.setAvailableCount(IntUtil.value(splitFifoInv.getInCount()) - IntUtil.value(splitFifoInv.getLockCount()) - IntUtil.value(splitFifoInv.getOutCount()));
splitFifoInvService.updateById(splitFifoInv);
}
if (count >= needCount) {

@ -3,7 +3,11 @@
<mapper namespace="com.glxp.api.dao.collect.IoCollectOrderBizMapper">
<select id="filterList" parameterType="com.glxp.api.req.collect.CollectOrderBizRequest"
resultType="com.glxp.api.res.collect.CollectOrderBizResponse">
SELECT icob.*, bp.nameCode diCode, bp.zczbhhzbapzbh, bp.manufactory,bp.bzgg
SELECT icob.*,
bp.nameCode diCode,
bp.zczbhhzbapzbh,
bp.manufactory,
bp.bzgg
FROM io_collect_order_biz icob
left join basic_udirel bu on icob.relId = bu.id
left join basic_products bp on bu.uuid = bp.uuid
@ -38,5 +42,4 @@
SET autoResCount = #{autoResCount}
WHERE id = #{id}
</update>
</mapper>

@ -4343,8 +4343,6 @@ CALL Pro_Temp_ColumnWork('thr_products', 'prepnSpec',
CALL Pro_Temp_ColumnWork('basic_ins_material', 'remark',
'varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT ''备注''',
1);

Loading…
Cancel
Save