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

dev_kcyj
chenhc 1 year ago
commit b96ddd10f6

@ -14,12 +14,11 @@ import com.glxp.api.req.forthird.ForInvOutScanCodeRequest;
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.basic.UdiRlSupResponse;
import com.glxp.api.res.forthird.ForInvOutScanCodeResponse;
import com.glxp.api.res.inv.InvProductResponse;
import com.glxp.api.service.auth.InvWarehouseService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.forthird.ForThirdSysApiService;
import com.glxp.api.service.forthird.impl.ForThirdSysApiService;
import com.glxp.api.service.inv.InvPreProductDetailService;
import com.glxp.api.service.inv.InvPreinProductDetailService;
import com.glxp.api.service.inv.impl.InvProductDetailService;
@ -90,14 +89,15 @@ public class ForThirdSysApiController {
} else
count = invPreinProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInInv.getCode(), null);
//2.获取寄售库存
InvWarehouseEntity preInv = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE);
count = invPreProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInv.getCode(), null);
//3.获取入账库库存
count = invProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true);
if (count == 0) {
//2.获取寄售库存
InvWarehouseEntity preInv = invWarehouseService.findByOne(ConstantStatus.ACTION_TYPE_ADVANCE);
count = invPreProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, preInv.getCode(), null);
}
if (count == 0) {
//3.获取入账库库存
count = invProductDetailService.vailStockCount(udiRelevanceResponses.get(0).getRelId(), udiEntity.getBatchNo(), null, null, filterInvProductRequest.getInvCode(), null, true);
}
InvProductResponse invProductResponse = new InvProductResponse();
BeanUtil.copyProperties(udiRelevanceResponses.get(0), invProductResponse);
invProductResponse.setReCount(count);
@ -133,8 +133,7 @@ public class ForThirdSysApiController {
*/
@PostMapping("/forThirdSysApi/inv/out/scanCode")
public BaseResponse invOutScanCode(@RequestBody @Valid ForInvOutScanCodeRequest forInvOutScanCodeRequest) {
ForInvOutScanCodeResponse forInvOutScanCodeResponse = forThirdSysApiService.invOutScanCode(forInvOutScanCodeRequest);
return ResultVOUtils.success(forInvOutScanCodeResponse);
return forThirdSysApiService.invOutScanCode(forInvOutScanCodeRequest);
}

@ -1,20 +0,0 @@
package com.glxp.api.service.forthird;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.forthird.ForInvOutScanCodeRequest;
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.InvProductResponse;
import java.util.List;
public interface ForThirdSysApiService {
PageSimpleResponse<InvProductResponse> invProductsFilter(FilterInvProductRequest filterInvProductRequest);
PageSimpleResponse<UdiRelevanceResponse> basicProductsSearch(FilterUdiRelRequest filterUdiRelRequest);
ForInvOutScanCodeResponse invOutScanCode(ForInvOutScanCodeRequest forInvOutScanCodeRequest);
}

@ -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) {

@ -536,7 +536,6 @@ public class IoAddInoutService {
if (tempEntity != null) {
return ResultVOUtils.error(500, "单据已存在,请勿重复提交");
}
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
BaseResponse baseResponse = checkInv(bussinessTypeEntity, pdaPostOrderRequest.getOrderDetailBizEntities(), orderEntity, pdaPostOrderRequest.getCodeTempEntities());
@ -550,14 +549,8 @@ public class IoAddInoutService {
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
resultList = checkPrice(codeTempEntity, bussinessTypeEntity, resultList);
}
// for (IoCodeTempEntity codeTempEntity : resultList) {
// if (codeTempEntity.getId() == null)
//// return ResultVOUtils.error(500, "价格发生变动!");
// log.error("价格发生变动");
// }
}
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
orderEntity.setBillNo(orderNo);
orderService.insertOrder(orderEntity);

Loading…
Cancel
Save