|
|
@ -8,6 +8,7 @@ import com.glxp.api.entity.inv.InvProductDetailEntity;
|
|
|
|
import com.glxp.api.exception.JsonException;
|
|
|
|
import com.glxp.api.exception.JsonException;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
|
|
|
|
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.IoCollectOrderService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOriginService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOriginService;
|
|
|
|
import com.glxp.api.service.inout.impl.IoCodeService;
|
|
|
|
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.FilterUdiUtils;
|
|
|
|
import com.glxp.api.util.udi.UdiCalCountUtil;
|
|
|
|
import com.glxp.api.util.udi.UdiCalCountUtil;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
|
@ -91,8 +93,6 @@ public class IoCodeTempController extends BaseController {
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
IoCodeService codeService;
|
|
|
|
IoCodeService codeService;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
InvPreProductDetailService invPreProductDetailService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
IoAddInoutService ioAddInoutService;
|
|
|
|
IoAddInoutService ioAddInoutService;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
IoOrderDetailCodeService ioOrderDetailCodeService;
|
|
|
|
IoOrderDetailCodeService ioOrderDetailCodeService;
|
|
|
@ -225,9 +225,9 @@ public class IoCodeTempController extends BaseController {
|
|
|
|
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
|
|
|
|
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
|
|
|
|
if (udiEntity == null) {
|
|
|
|
if (udiEntity == null) {
|
|
|
|
String viewType = addEnterCodeRequest.getViewType();
|
|
|
|
String viewType = addEnterCodeRequest.getViewType();
|
|
|
|
if (viewType.equals("tagCode")){
|
|
|
|
if (viewType.equals("tagCode")) {
|
|
|
|
IoCollectOrder collectOrder = collectOrderService.getByBillNo(code);
|
|
|
|
IoCollectOrder collectOrder = collectOrderService.getByBillNo(code);
|
|
|
|
if (collectOrder == null ){
|
|
|
|
if (collectOrder == null) {
|
|
|
|
//=============================================//
|
|
|
|
//=============================================//
|
|
|
|
//本地数据库 无此单据时 触发 用billNo 到 处方下载方法 进行下载
|
|
|
|
//本地数据库 无此单据时 触发 用billNo 到 处方下载方法 进行下载
|
|
|
|
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
|
|
|
|
CollectOrderRequest collectOrderRequest = new CollectOrderRequest();
|
|
|
@ -235,23 +235,23 @@ public class IoCodeTempController extends BaseController {
|
|
|
|
collectOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
|
|
|
collectOrderRequest.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
|
|
|
collectOrderRequest.setBillNo(code);
|
|
|
|
collectOrderRequest.setBillNo(code);
|
|
|
|
BaseResponse baseResponse = collectOriginService.downloadOrderV2(collectOrderRequest);
|
|
|
|
BaseResponse baseResponse = collectOriginService.downloadOrderV2(collectOrderRequest);
|
|
|
|
if (ResultEnum.SUCCESS.getCode() == baseResponse.getCode()){
|
|
|
|
if (ResultEnum.SUCCESS.getCode() == baseResponse.getCode()) {
|
|
|
|
collectOrder = collectOrderService.getByBillNo(code);
|
|
|
|
collectOrder = collectOrderService.getByBillNo(code);
|
|
|
|
//=============================================//
|
|
|
|
//=============================================//
|
|
|
|
BaseResponse response = ResultVOUtils.error(601, code);
|
|
|
|
BaseResponse response = ResultVOUtils.error(601, code);
|
|
|
|
response.setData(collectOrder);
|
|
|
|
response.setData(collectOrder);
|
|
|
|
return response;
|
|
|
|
return response;
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
BaseResponse response = ResultVOUtils.error(501, "UDI码格式错误");
|
|
|
|
BaseResponse response = ResultVOUtils.error(501, "UDI码格式错误");
|
|
|
|
response.setData(originCode);
|
|
|
|
response.setData(originCode);
|
|
|
|
return response;
|
|
|
|
return response;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
BaseResponse response = ResultVOUtils.error(601, code);
|
|
|
|
BaseResponse response = ResultVOUtils.error(601, code);
|
|
|
|
response.setData(collectOrder);
|
|
|
|
response.setData(collectOrder);
|
|
|
|
return response;
|
|
|
|
return response;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else{
|
|
|
|
} else {
|
|
|
|
String sptmtodi = systemParamConfigService.selectValueByParamKey(Constant.SPTM_TO_DI);
|
|
|
|
String sptmtodi = systemParamConfigService.selectValueByParamKey(Constant.SPTM_TO_DI);
|
|
|
|
if (sptmtodi.equals("1")) {
|
|
|
|
if (sptmtodi.equals("1")) {
|
|
|
|
if (code.length() == 13) {
|
|
|
|
if (code.length() == 13) {
|
|
|
@ -282,7 +282,7 @@ public class IoCodeTempController extends BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
|
|
|
|
UdiRelevanceResponse checkUdi = udiRelevanceService.selectByNameCode(udiEntity.getUdi());
|
|
|
|
if (checkUdi == null) {
|
|
|
|
if (checkUdi == null) {
|
|
|
|
return ResultVOUtils.error(500, "耗材字典不存在此产品!");
|
|
|
|
return ResultVOUtils.error(500, "产品字典不存在此产品!");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
boolean checkSuccess = true;
|
|
|
|
boolean checkSuccess = true;
|
|
|
|
String lostMsg = "";
|
|
|
|
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) {
|
|
|
|
public String checkNewCode(UdiEntity originEnity, String newCode) {
|
|
|
|
UdiEntity newEntity = FilterUdiUtils.getUdi(originEnity.getUdi() + newCode);
|
|
|
|
UdiEntity newEntity = FilterUdiUtils.getUdi(originEnity.getUdi() + newCode);
|
|
|
|
if (newEntity == null || originEnity == null) {
|
|
|
|
if (newEntity == null || originEnity == null) {
|
|
|
@ -396,10 +500,9 @@ public class IoCodeTempController extends BaseController {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
return addMaterOrder(addOrderRequest, udiEntity, code);
|
|
|
|
return addMaterOrder(addOrderRequest, udiEntity, code);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
|
|
|
|
public BaseResponse addMaterOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
|
|
|
|
|
|
|
|
|
|
|
|
AddCodeResult addCodeResult = new AddCodeResult();
|
|
|
|
AddCodeResult addCodeResult = new AddCodeResult();
|
|
|
@ -981,12 +1084,12 @@ public class IoCodeTempController extends BaseController {
|
|
|
|
return ResultVOUtils.success(addCodeResult);
|
|
|
|
return ResultVOUtils.success(addCodeResult);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public BaseResponse adddGrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
|
|
|
|
public BaseResponse adddGrugOrder(AddOrderRequest addOrderRequest, UdiEntity udiEntity, String code) {
|
|
|
|
AddCodeResult addCodeResult = new AddCodeResult();
|
|
|
|
AddCodeResult addCodeResult = new AddCodeResult();
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
|
|
|
|
InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(addOrderRequest.getInvCode());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//批次号校验
|
|
|
|
//批次号校验
|
|
|
|
//判断此产品是否开启允许无批次号
|
|
|
|
//判断此产品是否开启允许无批次号
|
|
|
|
UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi());
|
|
|
|
UdiProductEntity udiInfoEntity = udiProductService.findByNameCode(udiEntity.getUdi());
|
|
|
|