|
|
|
@ -1,9 +1,23 @@
|
|
|
|
|
package com.glxp.api.admin.service.inventory.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.glxp.api.admin.dao.inventory.InvMaintenanceOrderDao;
|
|
|
|
|
import com.glxp.api.admin.dao.inventory.InvMaintenanceOrderDetailDao;
|
|
|
|
|
import com.glxp.api.admin.dao.inventory.InvProductDetailDao;
|
|
|
|
|
import com.glxp.api.admin.entity.basic.UdiEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
|
|
|
|
|
import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest;
|
|
|
|
|
import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest;
|
|
|
|
|
import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse;
|
|
|
|
|
import com.glxp.api.admin.service.inventory.InvMAOrderDetailService;
|
|
|
|
|
import com.glxp.api.admin.util.FilterUdiUtils;
|
|
|
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
@ -19,12 +33,61 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private InvMaintenanceOrderDetailDao invMAOrderDetailDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private InvMaintenanceOrderDao invMaintenanceOrderDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private InvProductDetailDao invProductDetailDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<InvMAOrderDetailResponse> filterList(FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest) {
|
|
|
|
|
if (null == filterInvMAOrderDetailRequest) {
|
|
|
|
|
return Collections.emptyList();
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
if (null == filterInvMAOrderDetailRequest.getPage() && null == filterInvMAOrderDetailRequest.getLimit()) {
|
|
|
|
|
PageHelper.offsetPage((filterInvMAOrderDetailRequest.getPage() - 1) * filterInvMAOrderDetailRequest.getLimit(), filterInvMAOrderDetailRequest.getLimit());
|
|
|
|
|
}
|
|
|
|
|
return invMAOrderDetailDao.filterList(filterInvMAOrderDetailRequest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public BaseResponse addOrderDetail(InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity) {
|
|
|
|
|
//解析条码
|
|
|
|
|
UdiEntity udi = FilterUdiUtils.getUdi(invMaintenanceOrderDetailEntity.getCode());
|
|
|
|
|
//查询此条码是否重复
|
|
|
|
|
InvMaintenanceOrderDetailEntity maintenanceOrderDetailEntity = invMAOrderDetailDao.selectByOrderIdAndCode(invMaintenanceOrderDetailEntity.getOrderIdFk(), invMaintenanceOrderDetailEntity.getCode());
|
|
|
|
|
if (null != maintenanceOrderDetailEntity) {
|
|
|
|
|
if (StrUtil.isBlank(udi.getSerialNo()) || (StrUtil.isBlank(udi.getBatchNo()) && StrUtil.isBlank(udi.getSerialNo()))) {
|
|
|
|
|
maintenanceOrderDetailEntity.setCount(maintenanceOrderDetailEntity.getCount() + 1);
|
|
|
|
|
invMAOrderDetailDao.updateByPrimaryKey(maintenanceOrderDetailEntity);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "条码重复!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//查询养护记录信息
|
|
|
|
|
InvMaintenanceOrderEntity maOrder = invMaintenanceOrderDao.selectByOrderId(invMaintenanceOrderDetailEntity.getOrderIdFk());
|
|
|
|
|
//查询此产品库存详情是否存在
|
|
|
|
|
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
|
|
|
|
|
filterInvProductDetailRequest.setOriginCode(invMaintenanceOrderDetailEntity.getCode());
|
|
|
|
|
filterInvProductDetailRequest.setBatchNo(udi.getBatchNo());
|
|
|
|
|
filterInvProductDetailRequest.setInvWarehouseCode(maOrder.getInvWarehouseCode());
|
|
|
|
|
filterInvProductDetailRequest.setInvSpaceCode(maOrder.getInvSpaceCode());
|
|
|
|
|
filterInvProductDetailRequest.setProductionDate(udi.getProduceDate());
|
|
|
|
|
filterInvProductDetailRequest.setExpireDate(udi.getExpireDate());
|
|
|
|
|
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
|
|
|
|
|
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
|
|
|
|
|
log.info("库存中存在,添加到库存养护记录详情中");
|
|
|
|
|
//设置养护状态为未养护
|
|
|
|
|
invMaintenanceOrderDetailEntity.setMaintenanceStatus(0);
|
|
|
|
|
//设置设备养护状态为正常
|
|
|
|
|
invMaintenanceOrderDetailEntity.setDeviceStatus(1);
|
|
|
|
|
invMaintenanceOrderDetailEntity.setCount(1);
|
|
|
|
|
invMaintenanceOrderDetailEntity.setBatchNo(udi.getBatchNo());
|
|
|
|
|
invMaintenanceOrderDetailEntity.setProduceDate(udi.getProduceDate());
|
|
|
|
|
invMaintenanceOrderDetailEntity.setExpireDate(udi.getExpireDate());
|
|
|
|
|
invMaintenanceOrderDetailEntity.setNameCode(udi.getUdi());
|
|
|
|
|
invMaintenanceOrderDetailEntity.setProductId(invProductDetailEntities.get(0).getProductIdFk());
|
|
|
|
|
invMAOrderDetailDao.insert(invMaintenanceOrderDetailEntity);
|
|
|
|
|
}
|
|
|
|
|
return ResultVOUtils.success("添加库存养护详情成功!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|