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

fencang
anthonyywj2 3 years ago
commit e5c95acbfb

@ -31,4 +31,11 @@ public interface BussinessLocalTypeDao {
boolean deleteById(@Param("id") String id); boolean deleteById(@Param("id") String id);
BussinessLocalTypeEntity selectById(String id); BussinessLocalTypeEntity selectById(String id);
/**
*
*
* @param action
*/
boolean selectPreInByOrderType(String action);
} }

@ -30,4 +30,11 @@ public interface InvPreInProductDetailDao {
List<String> findAllCode(FilterInvProductDetailRequest filterInvProductDetailRequest); List<String> findAllCode(FilterInvProductDetailRequest filterInvProductDetailRequest);
boolean deleteAll(); boolean deleteAll();
/**
* orderId
*
* @param orderIdFk ID
*/
boolean deleteByOrderId(String orderIdFk);
} }

@ -7,12 +7,10 @@ import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.ConstantType; import com.glxp.sale.admin.constant.ConstantType;
import com.glxp.sale.admin.dao.basic.BussinessLocalTypeDao;
import com.glxp.sale.admin.dao.basic.BussinessTypeDao; import com.glxp.sale.admin.dao.basic.BussinessTypeDao;
import com.glxp.sale.admin.dao.inout.*; import com.glxp.sale.admin.dao.inout.*;
import com.glxp.sale.admin.dao.inventory.InvProductDao; import com.glxp.sale.admin.dao.inventory.*;
import com.glxp.sale.admin.dao.inventory.InvProductDetailDao;
import com.glxp.sale.admin.dao.inventory.InvSubWarehouseDao;
import com.glxp.sale.admin.dao.inventory.InvWarehouseDao;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity; import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity; import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity; import com.glxp.sale.admin.entity.inout.StockOrderEntity;
@ -49,25 +47,25 @@ import java.util.stream.Collectors;
public class OrderServiceImpl implements OrderService { public class OrderServiceImpl implements OrderService {
@Resource @Resource
OrderDao orderDao; private OrderDao orderDao;
@Resource @Resource
WarehouseDao warehouseDao; private WarehouseDao warehouseDao;
@Resource @Resource
BussinessTypeDao bussinessTypeDao; private BussinessTypeDao bussinessTypeDao;
@Resource @Resource
StockOrderDao stockOrderDao; private StockOrderDao stockOrderDao;
@Resource @Resource
InvWarehouseDao invWarehouseDao; private InvWarehouseDao invWarehouseDao;
@Resource @Resource
InvSubWarehouseService invSubWarehouseService; private InvSubWarehouseService invSubWarehouseService;
@Resource @Resource
CodesDao codesDao; private CodesDao codesDao;
@Resource @Resource
CodesTempDao codesTempDao; private CodesTempDao codesTempDao;
@Resource @Resource
SystemParamConfigService systemParamConfigService; private SystemParamConfigService systemParamConfigService;
@Resource @Resource
GennerOrderUtils gennerOrderUtils; private GennerOrderUtils gennerOrderUtils;
@Resource @Resource
private InvProductDao invProductDao; private InvProductDao invProductDao;
@Resource @Resource
@ -78,6 +76,12 @@ public class OrderServiceImpl implements OrderService {
private OrderDetailDao orderDetailDao; private OrderDetailDao orderDetailDao;
@Resource @Resource
private InvSubWarehouseDao invSubWarehouseDao; private InvSubWarehouseDao invSubWarehouseDao;
@Resource
private BussinessLocalTypeDao bussinessLocalTypeDao;
@Resource
private InvPreInProductDao invPreInProductDao;
@Resource
private InvPreInProductDetailDao invPreInProductDetailDao;
@Override @Override
public List<OrderEntity> listOrders(OrderQueryRequest orderQueryRequest) { public List<OrderEntity> listOrders(OrderQueryRequest orderQueryRequest) {
@ -445,6 +449,61 @@ public class OrderServiceImpl implements OrderService {
orderFilterRequest.setId(id); orderFilterRequest.setId(id);
OrderEntity orderEntity = orderDao.findOne(orderFilterRequest); OrderEntity orderEntity = orderDao.findOne(orderFilterRequest);
if (orderEntity.getStatus().equals(ConstantStatus.ORDER_STATUS_SUCCESS)) { if (orderEntity.getStatus().equals(ConstantStatus.ORDER_STATUS_SUCCESS)) {
//删除单据相关数据,更新库存
try {
if (isPreInOrder(orderEntity)) {
//查询预验收库详情
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOrderIdFk(id);
List<InvProductDetailEntity> invProductDetailEntities = invPreInProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
Map<String, List<InvProductDetailEntity>> invPreInProductDetailMap = invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk));
List<InvProductEntity> invPreInProductList = new ArrayList<>(invPreInProductDetailMap.keySet().size());
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk());
filterInvProductRequest.setSupId(invProductDetailEntity.getSupId());
filterInvProductRequest.setInvStorageCode(invProductDetailEntity.getInvStorageCode());
filterInvProductRequest.setInvWarehouseCode(invProductDetailEntity.getInvWarehouseCode());
if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) {
filterInvProductRequest.setBatchNo("empty");
} else {
filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo());
}
List<InvProductEntity> invPerInProductEntities = invPreInProductDao.filterInvProduct(filterInvProductRequest);
InvProductEntity invProductEntity = invPerInProductEntities.get(0);
if (ConstantType.TYPE_PUT.equals(invProductDetailEntity.getMainAction())) {
//入库,在原有库存基础上减库存
int count = invProductEntity.getInCount() - invProductDetailEntity.getCount();
invProductEntity.setInCount(count);
} else if (ConstantType.TYPE_OUT.equals(invProductDetailEntity.getMainAction())) {
//出库,在原有库存上增加库存
int count = invProductEntity.getOutCount() - invProductDetailEntity.getCount();
invProductEntity.setOutCount(count);
}
invPreInProductList.add(invProductEntity);
}
//删除库存详情
invPreInProductDetailDao.deleteByOrderId(id);
//更新库存
for (InvProductEntity invProductEntity : invPreInProductList) {
//查询库存码详情,如果库存码详情为空,则删除此库存
FilterInvProductDetailRequest detailParams = new FilterInvProductDetailRequest();
detailParams.setBatchNo(invProductEntity.getBatchNo());
detailParams.setInvCodes(Collections.singletonList(invProductEntity.getInvStorageCode()));
detailParams.setProductIdFk(invProductEntity.getRelIdFk());
int count = invPreInProductDetailDao.statCount(detailParams);
if (count == 0) {
//如果库存码详情为空,则删除此库存
invPreInProductDao.deleteById(String.valueOf(invProductEntity.getId()));
} else {
invProductDao.updateInvProduct(invProductEntity);
}
}
} else {
//查询库存详情 //查询库存详情
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest(); FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOrderIdFk(id); filterInvProductDetailRequest.setOrderIdFk(id);
@ -479,8 +538,6 @@ public class OrderServiceImpl implements OrderService {
invProductList.add(productEntity); invProductList.add(productEntity);
} }
//删除单据相关数据,更新库存
try {
//删除库存详情 //删除库存详情
invProductDetailDao.deleteByOrderId(id); invProductDetailDao.deleteByOrderId(id);
//更新库存 //更新库存
@ -498,6 +555,8 @@ public class OrderServiceImpl implements OrderService {
invProductDao.updateInvProduct(invProductEntity); invProductDao.updateInvProduct(invProductEntity);
} }
} }
}
//删除码详情 //删除码详情
codesDao.deleteByOrderId(id); codesDao.deleteByOrderId(id);
//查询业务单据 //查询业务单据
@ -553,4 +612,15 @@ public class OrderServiceImpl implements OrderService {
return orderDao.updateOrderTime(actDate, auditTime, DateUtil.getDateTime(), orderIds); return orderDao.updateOrderTime(actDate, auditTime, DateUtil.getDateTime(), orderIds);
} }
/**
*
*
* @param orderEntity
* @return
*/
private boolean isPreInOrder(OrderEntity orderEntity) {
return bussinessLocalTypeDao.selectPreInByOrderType(orderEntity.getAction());
}
} }

@ -198,4 +198,10 @@
FROM basic_bustype_local FROM basic_bustype_local
WHERE id = #{id} WHERE id = #{id}
</select> </select>
<select id="selectPreInByOrderType" resultType="java.lang.Boolean">
select preIn from basic_bustype_local where action = (
select localAction from basic_bussiness_type where basic_bussiness_type.action = #{action}
)
</select>
</mapper> </mapper>

@ -51,6 +51,9 @@
<if test="invWarehouseCode != '' and invWarehouseCode != null"> <if test="invWarehouseCode != '' and invWarehouseCode != null">
AND invWarehouseCode = #{invWarehouseCode} AND invWarehouseCode = #{invWarehouseCode}
</if> </if>
<if test="orderIdFk != '' and orderIdFk != null">
AND orderIdFk = #{orderIdFk}
</if>
</where> </where>
</select> </select>

Loading…
Cancel
Save