|
|
|
@ -10,9 +10,12 @@ import com.glxp.api.admin.constant.ConstantStatus;
|
|
|
|
|
import com.glxp.api.admin.constant.ConstantType;
|
|
|
|
|
import com.glxp.api.admin.dao.basic.BussinessTypeDao;
|
|
|
|
|
import com.glxp.api.admin.dao.basic.UnitMaintainDao;
|
|
|
|
|
import com.glxp.api.admin.dao.inout.CodesTempDao;
|
|
|
|
|
import com.glxp.api.admin.dao.inout.OrderDao;
|
|
|
|
|
import com.glxp.api.admin.dao.inventory.*;
|
|
|
|
|
import com.glxp.api.admin.entity.auth.AuthAdmin;
|
|
|
|
|
import com.glxp.api.admin.entity.basic.BussinessTypeEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.basic.UdiEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.basic.UnitMaintainEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.inout.OrderEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.inout.WarehouseEntity;
|
|
|
|
@ -25,10 +28,7 @@ import com.glxp.api.admin.req.inventory.FilterInvCountOrderRequest;
|
|
|
|
|
import com.glxp.api.admin.res.inventory.InvCountOrderResponse;
|
|
|
|
|
import com.glxp.api.admin.service.auth.CustomerService;
|
|
|
|
|
import com.glxp.api.admin.service.inventory.InvCountOrderService;
|
|
|
|
|
import com.glxp.api.admin.util.CustomUtil;
|
|
|
|
|
import com.glxp.api.admin.util.GennerOrderUtils;
|
|
|
|
|
import com.glxp.api.admin.util.MyStrUtil;
|
|
|
|
|
import com.glxp.api.admin.util.OrderNoTypeBean;
|
|
|
|
|
import com.glxp.api.admin.util.*;
|
|
|
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
|
|
@ -64,6 +64,10 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
|
|
|
|
|
private BussinessTypeDao bussinessTypeDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private UnitMaintainDao unitMaintainDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private OrderDao orderDao;
|
|
|
|
|
@Resource
|
|
|
|
|
private CodesTempDao codesTempDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<InvCountOrderResponse> filterList(FilterInvCountOrderRequest filterInvCountOrderRequest) {
|
|
|
|
@ -214,30 +218,7 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
|
|
|
|
|
if (CollUtil.isNotEmpty(inDetailList)) {
|
|
|
|
|
log.info("盘点单据:" + invCountOrder.getOrderId() + " 转入库单开始");
|
|
|
|
|
//查询盘点入库单据类型
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getInAction());
|
|
|
|
|
log.info("盘点入库单据类型为:" + bussinessTypeEntity.getName() + " ,单据类型编码为:" + invCountSettingEntity.getInAction());
|
|
|
|
|
|
|
|
|
|
//构造单据数据
|
|
|
|
|
OrderEntity orderEntity = new OrderEntity();
|
|
|
|
|
orderEntity.setMainAction(ConstantType.TYPE_PUT);
|
|
|
|
|
orderEntity.setAction(invCountSettingEntity.getInAction());
|
|
|
|
|
orderEntity.setActDate(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
orderEntity.setCreateTime(orderEntity.getActDate());
|
|
|
|
|
orderEntity.setInvStorageCode(invCountOrder.getInvStorageCode());
|
|
|
|
|
orderEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode());
|
|
|
|
|
//查询单据往来单位数据
|
|
|
|
|
UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByErpId(bussinessTypeEntity.getDefaultUnit());
|
|
|
|
|
orderEntity.setFromCorpId(unitMaintainEntity.getErpId());
|
|
|
|
|
orderEntity.setFromCorp(unitMaintainEntity.getName());
|
|
|
|
|
orderEntity.setCorpOrderId(CustomUtil.getId() + "x");
|
|
|
|
|
orderEntity.setExportStatus(0); //设置导出状态为未导出
|
|
|
|
|
orderEntity.setContrastStatus(0);//设置erp校验状态为未校验
|
|
|
|
|
orderEntity.setReceiveStatus(0); //设置验收状态为未验收
|
|
|
|
|
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
|
|
|
|
|
orderEntity.setErpFk(null);//关联业务单据置空
|
|
|
|
|
orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单
|
|
|
|
|
orderEntity.setLocStorageCode(invCountOrder.getInvStorageCode());
|
|
|
|
|
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
|
|
|
|
|
OrderEntity orderEntity = createOrder(invCountSettingEntity, invCountOrder, ConstantType.TYPE_PUT);
|
|
|
|
|
|
|
|
|
|
//查找盘点码中标记为多的码
|
|
|
|
|
FilterInvCountCodesRequest codesRequest = new FilterInvCountCodesRequest();
|
|
|
|
@ -252,22 +233,80 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
|
|
|
|
|
warehouseEntity.setAction(invCountSettingEntity.getInAction());
|
|
|
|
|
warehouseEntity.setMainAction(ConstantType.TYPE_PUT);
|
|
|
|
|
warehouseEntity.setActor(invCountOrder.getCreateUser());
|
|
|
|
|
warehouseEntity.setOrderId(orderEntity.getId());
|
|
|
|
|
warehouseEntity.setInvStorageCode(invCountOrder.getInvStorageCode());
|
|
|
|
|
warehouseEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode());
|
|
|
|
|
warehouseEntity.setLocStorageCode(invCountOrder.getInvStorageCode());
|
|
|
|
|
warehouseEntity.setFromCorp(orderEntity.getFromCorp());
|
|
|
|
|
warehouseEntity.setFromCorpId(orderEntity.getFromCorpId());
|
|
|
|
|
warehouseEntity.setCorpOrderId(orderEntity.getCorpOrderId());
|
|
|
|
|
|
|
|
|
|
UdiEntity udi = FilterUdiUtils.getUdi(invCountCodes.getCode());
|
|
|
|
|
warehouseEntity.setBatchNo(udi.getBatchNo());
|
|
|
|
|
warehouseEntity.setProduceDate(udi.getProduceDate());
|
|
|
|
|
warehouseEntity.setExpireDate(udi.getExpireDate());
|
|
|
|
|
warehouseEntity.setSerialNo(udi.getSerialNo());
|
|
|
|
|
warehouseEntity.setNameCode(udi.getUdi());
|
|
|
|
|
warehouseEntity.setCount(1);
|
|
|
|
|
warehouseEntity.setReCount(1);
|
|
|
|
|
|
|
|
|
|
warehouseEntities.add(warehouseEntity);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
orderDao.insertOrder(orderEntity);
|
|
|
|
|
codesTempDao.insertCodesTemp(warehouseEntities);
|
|
|
|
|
|
|
|
|
|
log.info("盘点单据转入库单完成,单号为:" + orderEntity.getId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(outDetailList)) {
|
|
|
|
|
log.info("盘点单据:" + invCountOrder.getOrderId() + " 转出库单开始");
|
|
|
|
|
//查询盘点入库单据类型
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getOutAction());
|
|
|
|
|
log.info("盘点出库单据类型为:" + bussinessTypeEntity.getName() + " ,单据类型编码为:" + bussinessTypeEntity.getAction());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生成单据和条码数据
|
|
|
|
|
*
|
|
|
|
|
* @param invCountSettingEntity
|
|
|
|
|
* @param invCountOrder
|
|
|
|
|
* @param type
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public OrderEntity createOrder(InvCountSettingEntity invCountSettingEntity, InvCountOrder invCountOrder, String type) {
|
|
|
|
|
BussinessTypeEntity bussinessTypeEntity;
|
|
|
|
|
|
|
|
|
|
if (ConstantType.TYPE_PUT.equals(type)) {
|
|
|
|
|
bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getInAction());
|
|
|
|
|
} else {
|
|
|
|
|
bussinessTypeEntity = bussinessTypeDao.selectByAction(invCountSettingEntity.getOutAction());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//构造单据数据
|
|
|
|
|
OrderEntity orderEntity = new OrderEntity();
|
|
|
|
|
orderEntity.setMainAction(ConstantType.TYPE_PUT);
|
|
|
|
|
orderEntity.setAction(invCountSettingEntity.getInAction());
|
|
|
|
|
orderEntity.setActDate(DateUtil.date().toString(DatePattern.NORM_DATETIME_PATTERN));
|
|
|
|
|
orderEntity.setCreateTime(orderEntity.getActDate());
|
|
|
|
|
orderEntity.setInvStorageCode(invCountOrder.getInvStorageCode());
|
|
|
|
|
orderEntity.setInvWarehouseCode(invCountOrder.getInvWarehouseCode());
|
|
|
|
|
//查询单据往来单位数据
|
|
|
|
|
UnitMaintainEntity unitMaintainEntity = unitMaintainDao.selectByErpId(bussinessTypeEntity.getDefaultUnit());
|
|
|
|
|
orderEntity.setFromCorpId(unitMaintainEntity.getErpId());
|
|
|
|
|
orderEntity.setFromCorp(unitMaintainEntity.getName());
|
|
|
|
|
orderEntity.setCorpOrderId(CustomUtil.getId() + "x");
|
|
|
|
|
orderEntity.setExportStatus(0); //设置导出状态为未导出
|
|
|
|
|
orderEntity.setContrastStatus(0);//设置erp校验状态为未校验
|
|
|
|
|
orderEntity.setReceiveStatus(0); //设置验收状态为未验收
|
|
|
|
|
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS);
|
|
|
|
|
orderEntity.setErpFk(null);//关联业务单据置空
|
|
|
|
|
orderEntity.setFromType(ConstantStatus.FROM_COUNT); //单据来源设置为盘点单据转单
|
|
|
|
|
orderEntity.setLocStorageCode(invCountOrder.getInvStorageCode());
|
|
|
|
|
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + MyStrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd"));
|
|
|
|
|
orderEntity.setId(orderNo);
|
|
|
|
|
return orderEntity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|