|
|
|
@ -1,26 +1,37 @@
|
|
|
|
|
package com.glxp.api.service.forthird.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.glxp.api.dao.inout.IoCodeDao;
|
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
|
import com.glxp.api.constant.Constant;
|
|
|
|
|
import com.glxp.api.constant.ConstantStatus;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.UdiEntity;
|
|
|
|
|
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.exception.JsonException;
|
|
|
|
|
import com.glxp.api.req.basic.FilterUdiRelRequest;
|
|
|
|
|
import com.glxp.api.req.forthird.ForInvOutScanCodeRequest;
|
|
|
|
|
import com.glxp.api.req.forthird.IoOrderCodeRequest;
|
|
|
|
|
import com.glxp.api.req.forthird.IoOrderRequest;
|
|
|
|
|
import com.glxp.api.req.inv.FilterInvProductRequest;
|
|
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
|
|
import com.glxp.api.res.basic.UdiRelevanceResponse;
|
|
|
|
|
import com.glxp.api.res.forthird.ForInvOutScanCodeResponse;
|
|
|
|
|
import com.glxp.api.res.inv.InvProductPageResponse;
|
|
|
|
|
import com.glxp.api.res.inv.InvProductResponse;
|
|
|
|
|
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
|
|
|
|
import com.glxp.api.service.basic.UdiRelevanceService;
|
|
|
|
|
import com.glxp.api.service.forthird.ForThirdSysApiService;
|
|
|
|
|
import com.glxp.api.service.inout.impl.IoCodeService;
|
|
|
|
|
import com.glxp.api.service.inout.IoAddInoutService;
|
|
|
|
|
import com.glxp.api.service.inout.IoCheckInoutService;
|
|
|
|
|
import com.glxp.api.service.inv.impl.InvProductService;
|
|
|
|
|
import com.glxp.api.util.CustomUtil;
|
|
|
|
|
import com.glxp.api.util.GennerOrderUtils;
|
|
|
|
|
import com.glxp.api.util.OrderNoTypeBean;
|
|
|
|
|
import com.glxp.api.util.StringUtils;
|
|
|
|
|
import com.glxp.api.util.udi.FilterUdiUtils;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@ -28,20 +39,27 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public class ForThirdSysApiServiceImpl implements ForThirdSysApiService {
|
|
|
|
|
public class ForThirdSysApiService {
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
InvProductService invProductService;
|
|
|
|
|
@Resource
|
|
|
|
|
UdiRelevanceService udiRelevanceService;
|
|
|
|
|
@Resource
|
|
|
|
|
GennerOrderUtils gennerOrderUtils;
|
|
|
|
|
@Resource
|
|
|
|
|
IBasicBussinessTypeService bussinessTypeService;
|
|
|
|
|
@Resource
|
|
|
|
|
IoCheckInoutService ioCheckInoutService;
|
|
|
|
|
@Resource
|
|
|
|
|
IoAddInoutService addInoutService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageSimpleResponse<InvProductResponse> invProductsFilter(FilterInvProductRequest filterInvProductRequest) {
|
|
|
|
|
buildForInvProductsFilter(filterInvProductRequest);
|
|
|
|
|
List<InvProductResponse> list = invProductService.filterList(filterInvProductRequest);
|
|
|
|
@ -52,7 +70,6 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService {
|
|
|
|
|
return pageResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public PageSimpleResponse<UdiRelevanceResponse> basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest) {
|
|
|
|
|
buildForBasicProductsSearchFilter(filterUdiRelRequest);
|
|
|
|
|
List<UdiRelevanceResponse> list = udiRelevanceService.filterUdiGp(filterUdiRelRequest);
|
|
|
|
@ -63,19 +80,64 @@ public class ForThirdSysApiServiceImpl implements ForThirdSysApiService {
|
|
|
|
|
return pageResponse;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
IoCodeDao codeDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest) {
|
|
|
|
|
public BaseResponse invOutScanCode(ForInvOutScanCodeRequest hisRequest) {
|
|
|
|
|
IoOrderRequest orderRequest = hisRequest.getIoOrderRequest();
|
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findByAction(orderRequest.getAction());
|
|
|
|
|
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
|
|
|
|
|
|
|
|
|
|
List<IoOrderCodeRequest> codeRequestList = hisRequest.getCodeRequestList();
|
|
|
|
|
List<IoCodeTempEntity> codeTempEntities = BeanUtil.copyToList(codeRequestList, IoCodeTempEntity.class);
|
|
|
|
|
IoOrderEntity orderEntity = new IoOrderEntity();
|
|
|
|
|
BeanUtil.copyProperties(orderRequest, orderEntity);
|
|
|
|
|
orderEntity.setBillNo(orderNo);
|
|
|
|
|
orderEntity.setCorpOrderId(CustomUtil.getId() + "x");
|
|
|
|
|
orderEntity.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
orderEntity.setAction(bussinessTypeEntity.getAction());
|
|
|
|
|
orderEntity.setFromCorp(orderRequest.getFromCorp());
|
|
|
|
|
orderEntity.setFromType(ConstantStatus.FROM_WEBNEW);
|
|
|
|
|
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_TEMP_SAVE);
|
|
|
|
|
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_DRAFT);
|
|
|
|
|
orderEntity.setCreateTime(new Date());
|
|
|
|
|
orderEntity.setUpdateUser(orderRequest.getUpdateUser() + "");
|
|
|
|
|
orderEntity.setUpdateTime(new Date());
|
|
|
|
|
orderEntity.setCustomerId("110");
|
|
|
|
|
orderEntity.setDeptCode(orderRequest.getDeptCode());
|
|
|
|
|
// orderEntity.setCheckPreInOrders(addOrderRequest.getCheckPreInOrders());
|
|
|
|
|
orderEntity.setInvCode(orderRequest.getInvCode());
|
|
|
|
|
orderEntity.setOrderType(orderRequest.getOrderType());
|
|
|
|
|
orderEntity.setBusType(bussinessTypeEntity.getBusType());
|
|
|
|
|
orderEntity.setSickerAdNum(orderRequest.getSickerAdNum());
|
|
|
|
|
|
|
|
|
|
for (IoCodeTempEntity codeEnttity : codeTempEntities) {
|
|
|
|
|
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEnttity.getCode());
|
|
|
|
|
codeEnttity.setOrderId(orderNo);
|
|
|
|
|
codeEnttity.setCorpOrderId(orderEntity.getCorpOrderId());
|
|
|
|
|
codeEnttity.setCreateTime(new Date());
|
|
|
|
|
codeEnttity.setUpdateTime(new Date());
|
|
|
|
|
codeEnttity.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
codeEnttity.setAction(bussinessTypeEntity.getAction());
|
|
|
|
|
codeEnttity.setNameCode(udiEntity.getUdi());
|
|
|
|
|
codeEnttity.setBatchNo(udiEntity.getBatchNo());
|
|
|
|
|
codeEnttity.setProduceDate(udiEntity.getProduceDate());
|
|
|
|
|
codeEnttity.setExpireDate(udiEntity.getExpireDate());
|
|
|
|
|
codeEnttity.setSerialNo(udiEntity.getSerialNo());
|
|
|
|
|
codeEnttity.setDeptCode(orderEntity.getDeptCode());
|
|
|
|
|
codeEnttity.setInvCode(orderEntity.getInvCode());
|
|
|
|
|
List<UdiRelevanceResponse> udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(udiEntity.getUdi(), false);
|
|
|
|
|
if (udiRelevanceResponses.size() == 0) {
|
|
|
|
|
return ResultVOUtils.error("收费项目未对照!");
|
|
|
|
|
}
|
|
|
|
|
codeEnttity.setRelId(udiRelevanceResponses.get(0).getId());
|
|
|
|
|
codeEnttity.setCount(1);
|
|
|
|
|
}
|
|
|
|
|
ForInvOutScanCodeResponse forInvOutScanCodeResponse = new ForInvOutScanCodeResponse();
|
|
|
|
|
System.out.println(JSON.toJSONString(forInvOutScanCodeRequest));
|
|
|
|
|
// TODO: 2024/3/15 以获取到业务单据实体 需要对单据进行操作 成功返回 单据号
|
|
|
|
|
//校验UDI码是否正确,获取最新的UDI码
|
|
|
|
|
// codeDao.selectOne(new LambdaQueryWrapper<IoCodeEntity>().eq(IoCodeEntity::getCode, forInvOutScanCodeRequest.getIoOrderRequest().getCode()));
|
|
|
|
|
String billNo = "1212121";
|
|
|
|
|
forInvOutScanCodeResponse.setBillNo(billNo);
|
|
|
|
|
return forInvOutScanCodeResponse;
|
|
|
|
|
forInvOutScanCodeResponse.setBillNo(orderNo);
|
|
|
|
|
addInoutService.dealProcess(orderEntity);
|
|
|
|
|
if (!ioCheckInoutService.checkManual(orderEntity.getBillNo())) {
|
|
|
|
|
ioCheckInoutService.check(orderEntity.getBillNo());
|
|
|
|
|
}
|
|
|
|
|
return ResultVOUtils.success(forInvOutScanCodeResponse);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void buildForBasicProductsSearchFilter(FilterUdiRelRequest filterUdiRelRequest) {
|